Skip to content

Commit 330720b

Browse files
committed
vx8: Fix raw bytestring handling (et al)
This also fixes some other python3isms that apparently never got addressed originally.
1 parent bca5bec commit 330720b

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

chirp/drivers/vx8.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ def get_memory_mappings(self, memory):
496496

497497

498498
def _wipe_memory(mem):
499-
mem.set_raw("\x00" * (mem.size() // 8))
499+
mem.set_raw(b"\x00" * (mem.size() // 8))
500500

501501

502502
@directory.register
@@ -629,7 +629,7 @@ def _checksums(self):
629629

630630
@staticmethod
631631
def _add_ff_pad(val, length):
632-
return val.ljust(length, "\xFF")[:length]
632+
return val.ljust(length, b"\xFF")[:length]
633633

634634
@classmethod
635635
def _strip_ff_pads(cls, messages):
@@ -720,7 +720,7 @@ def set_memory(self, mem):
720720
_mem.power = 0
721721

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

@@ -1380,8 +1380,8 @@ def apply_digi_path(self, setting, obj):
13801380
def apply_ff_padded_string(cls, setting, obj):
13811381
# FF pad.
13821382
val = setting.value.get_value()
1383-
max_len = getattr(obj, "padded_string").size() / 8
1384-
val = str(val).rstrip()
1383+
max_len = getattr(obj, "padded_string").size() // 8
1384+
val = str(val).rstrip().encode('ascii')
13851385
setattr(obj, "padded_string", cls._add_ff_pad(val, max_len))
13861386

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

14501447
def apply_volume(cls, setting, vfo):
14511448
val = setting.value.get_value()

0 commit comments

Comments
 (0)