Skip to content

Commit

Permalink
vx8: Fix raw bytestring handling (et al)
Browse files Browse the repository at this point in the history
This also fixes some other python3isms that apparently never got
addressed originally.
  • Loading branch information
kk7ds committed Nov 8, 2023
1 parent bca5bec commit 330720b
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions chirp/drivers/vx8.py
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ def get_memory_mappings(self, memory):


def _wipe_memory(mem):
mem.set_raw("\x00" * (mem.size() // 8))
mem.set_raw(b"\x00" * (mem.size() // 8))


@directory.register
Expand Down Expand Up @@ -629,7 +629,7 @@ def _checksums(self):

@staticmethod
def _add_ff_pad(val, length):
return val.ljust(length, "\xFF")[:length]
return val.ljust(length, b"\xFF")[:length]

@classmethod
def _strip_ff_pads(cls, messages):
Expand Down Expand Up @@ -720,7 +720,7 @@ def set_memory(self, mem):
_mem.power = 0

label = "".join([chr(CHARSET.index(x)) for x in mem.name.rstrip()])
_mem.label = self._add_ff_pad(label, 16)
_mem.label = self._add_ff_pad(label.encode('ascii'), 16)
# We only speak English here in chirpville
_mem.charsetbits[0] = 0x00
_mem.charsetbits[1] = 0x00
Expand Down Expand Up @@ -1338,7 +1338,7 @@ def _apply_callsign(cls, callsign, obj, default_ssid=None):
ssid = int(ssid) % 16
except ValueError:
ssid = default_ssid
setattr(obj, "callsign", cls._add_ff_pad(callsign, 6))
setattr(obj, "callsign", cls._add_ff_pad(callsign.encode('ascii'), 6))
if ssid is not None:
setattr(obj, "ssid", ssid)

Expand Down Expand Up @@ -1380,8 +1380,8 @@ def apply_digi_path(self, setting, obj):
def apply_ff_padded_string(cls, setting, obj):
# FF pad.
val = setting.value.get_value()
max_len = getattr(obj, "padded_string").size() / 8
val = str(val).rstrip()
max_len = getattr(obj, "padded_string").size() // 8
val = str(val).rstrip().encode('ascii')
setattr(obj, "padded_string", cls._add_ff_pad(val, max_len))

@classmethod
Expand Down Expand Up @@ -1440,12 +1440,9 @@ def set_settings(self, settings):
def apply_ff_padded_yaesu(cls, setting, obj):
# FF pad yaesus custom string format.
rawval = setting.value.get_value()
max_len = getattr(obj, "padded_yaesu").size() / 8
rawval = str(rawval).rstrip()
val = [CHARSET.index(x) for x in rawval]
for x in range(len(val), max_len):
val.append(0xFF)
obj.padded_yaesu = val
max_len = getattr(obj, "padded_yaesu").size() // 8
rawval = str(rawval).rstrip().translate(CHARSET).encode('ascii')
obj.padded_yaesu = list(rawval.ljust(max_len, b'\xFF')[0:max_len])

def apply_volume(cls, setting, vfo):
val = setting.value.get_value()
Expand Down

0 comments on commit 330720b

Please sign in to comment.