[chirp_devel] [PATCH] [vx8] New settings, from a VX-8GR
Hello, I'm new to Mercurial, but have been enjoying the fruits of your project for a while. I recently picked up a VX-8GR and noticed that not many settings were populated, so this is my first stab at adding some...
Ray
# HG changeset patch # User Ray Cielencki rayslinky@gmail.com # Date 1407084280 14400 # Sun Aug 03 12:44:40 2014 -0400 # Node ID de092ff89055726b65a355a2e8c8444f3fbb972b # Parent 73e127bbd9813b6cf966bdca1fefdc6c4ecac058 [vx8] New settings, from a VX-8GR
diff -r 73e127bbd981 -r de092ff89055 chirp/vx8.py --- a/chirp/vx8.py Tue Jul 22 19:31:33 2014 -0400 +++ b/chirp/vx8.py Sun Aug 03 12:44:40 2014 -0400 @@ -264,6 +264,27 @@ char padded_string[60]; } aprs_beacon_status_txt[5];
+#seekto 0x04bf; +struct { + u8 beep; +} beep_select; + +#seekto 0x047f; +struct { + u8 flag; + u16 unknown; + struct { + u8 padded_yaesu[16]; + } message; +} opening_message; + +#seekto 0x04da; +struct { + u8 scan_restart; + u8 unknown; + u8 scan_resume; +} scan_settings; + #seekto 0xFECA; u8 checksum; """ @@ -650,6 +671,15 @@ "every 2 minutes", "every 3 minutes", "every 4 minutes", "every 5 minutes", "every 6 minutes", "every 7 minutes", "every 8 minutes", "every 9 minutes", "every 10 minutes") + _BEEP_SELECT = ("Off", "Key+Scan", "Key") + _OPENING_MESSAGE = ("Off", "DC", "Message", "Normal") + _SCAN_RESUME = ("2.0s", "2.5s", "3.0s", "3.5s", "4.0s", "4.5s", "5.0s", + "5.5s", "6.0s", "6.5s", "7.0s", "7.5s", "8.0s", "8.5s", + "9.0s", "9.5s", "10.0s", "Busy", "Hold") + _SCAN_RESTART = ("0.1s", "0.2s", "0.3s", "0.4s", "0.5s", "0.6s", "0.7s", + "0.8s", "0.9s", "1.0s", "1.5s", "2.0s", "2.5s", "3.0s", + "3.5s", "4.0s", "4.5s", "5.0s", "5.5s", "6.0s", "6.5s", + "7.0s", "7.5s", "8.0s", "8.5s", "9.0s", "9.5s", "10.0s") _MY_SYMBOL = ("/[ Person", "/b Bike", "/> Car", "User selected")
def get_features(self): @@ -1135,12 +1165,73 @@
return menu
+ def _get_beep_select(self): + menu = RadioSettingGroup("beep_select", "Beep Select") + beep_select = self._memobj.beep_select + + val = RadioSettingValueList( + self._BEEP_SELECT, + self._BEEP_SELECT[beep_select.beep]) + rs = RadioSetting("beep_select.beep", "Beep Select", + val) + menu.append(rs) + + return menu + + def _get_scan_settings(self): + menu = RadioSettingGroup("scan_settings", "Scan Settings") + scan_settings = self._memobj.scan_settings + + val = RadioSettingValueList( + self._SCAN_RESTART, + self._SCAN_RESTART[scan_settings.scan_restart]) + rs = RadioSetting("scan_settings.scan_restart", "Scan Restart", + val) + menu.append(rs) + + val = RadioSettingValueList( + self._SCAN_RESUME, + self._SCAN_RESUME[scan_settings.scan_resume]) + rs = RadioSetting("scan_settings.scan_resume", "Scan Resume", + val) + menu.append(rs) + + return menu + + def _get_opening_message(self): + menu = RadioSettingGroup("opening_message", "Opening Message") + opening_message = self._memobj.opening_message + + val = RadioSettingValueList( + self._OPENING_MESSAGE, + self._OPENING_MESSAGE[opening_message.flag]) + rs = RadioSetting("opening_message.flag", "Flag", + val) + menu.append(rs) + + msg = "" + for i in opening_message.message.padded_yaesu: + if i == 0xFF: + break + msg += CHARSET[i & 0x7F] + val = RadioSettingValueString(0, 16, msg) + rs = RadioSetting("opening_message.message.padded_yaesu", "Message", + val) + rs.set_apply_callback(self.apply_ff_padded_yaesu, + opening_message.message) + menu.append(rs) + + return menu + def _get_settings(self): top = RadioSettingGroup("all", "All Settings", self._get_aprs_general_settings(), self._get_aprs_rx_settings(), self._get_aprs_tx_settings(), - self._get_aprs_smartbeacon()) + self._get_aprs_smartbeacon(), + self._get_beep_select(), + self._get_scan_settings(), + self._get_opening_message()) return top
def get_settings(self): @@ -1272,6 +1363,16 @@ print element.get_name() raise
+ 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) + setattr(obj, "padded_yaesu", val) + @directory.register class VX8GERadio(VX8DRadio): """Yaesu VX-8GE"""
On Sun, Aug 3, 2014 at 12:55 PM, ray c rayslinky@gmail.com wrote:
Hello, I'm new to Mercurial, but have been enjoying the fruits of your project for a while. I recently picked up a VX-8GR and noticed that not many settings were populated, so this is my first stab at adding some...
Ray
Hi Ray,
Typically your patch should have the issue number (#nnnn) in the subject or in the commit message. If if you aren't creating a patch for an existing issue, you will have to create one for your patch.
So what you can do is create a new issue. It will be assigned an issue number. Then you can use the following command to edit the commit message.
% hg qrefresh -e
Save the change and then resubmit the patch.
Thanks for taking this project on.
Jim KC9HI
participants (2)
-
Jim Unroe
-
ray c