changeset: 1977:ff8811642690 tag: aprs_settings tag: qbase tag: qtip tag: tip user: Sean Burford date: Wed May 01 08:14:17 2013 +1000 summary: [VX8] Add APRS settings menu diff -r 35bd3e0c31b7 -r ff8811642690 chirp/vx8.py --- a/chirp/vx8.py Wed Apr 10 19:17:38 2013 -0700 +++ b/chirp/vx8.py Wed May 01 08:14:17 2013 +1000 @@ -107,6 +107,143 @@ u8 unknown7[3]; } memory[900]; +#seekto 0xC0CA; +struct { + u8 unknown0:6, + rx_baud:2; + u8 unknown1:4, + tx_delay:4; + u8 custom_symbol; + u8 unknown2; + struct { + char callsign[6]; + u8 ssid; + } my_callsign; + u8 unknown3:4, + selected_position_comment:4; + u8 unknown4; + u8 set_time_manually:1, + auto_tx_beacon:1, + ring_beacon:1, + ring_msg:1, + aprs_mute:1, + unknown6:2, + af_dual:1; + u8 unknown7:1, + aprs_units_wind_mph:1, + aprs_units_rain_inch:1, + aprs_units_temperature_f:1 + aprs_units_altitude_ft:1, + unknown8:1, + aprs_units_distance_m:1, + aprs_units_position_mmss:1; + u8 unknown9:6, + aprs_units_speed:2; + u8 unknown11:1, + filter_other:1, + filter_status:1, + filter_item:1, + filter_object:1, + filter_weather:1, + filter_position:1, + filter_mic_e:1; + u8 unknown12:2, + timezone:6; + u8 unknown13:4, + beacon_interval:4; + u8 unknown14; + u8 unknown15:7, + latitude_south:1; + u8 latitude_degree; + u8 latitude_minute; + u8 latitude_second; + u8 unknown16:7, + longitude_west:1; + u8 longitude_degree; + u8 longitude_minute; + u8 longitude_second; + u8 unknown17:4, + selected_position:4; + u8 unknown18; + u8 unknown19:6, + gps_units_altitude_ft:1, + gps_units_position_sss:1; + u8 unknown20:6, + gps_units_speed:2; + u8 unknown21[4]; + struct { + struct { + char callsign[6]; + u8 ssid; + } entry[8]; + } digi_path_8; + u8 unknown22[2]; + struct { + char msg_text[16]; + } beacon_msg[7]; + u8 unknown23:4, + selected_msg_group:4; + u8 unknown24; + struct { + char filter[9]; + } msg_group[8]; + u8 unknown25[26]; + u8 unknown26:2, + flash_msg:6; + u8 unknown27:2, + flash_grp:6; + u8 unknown28:2, + flash_bln:6; + u8 selected_digi_path; + struct { + struct { + char callsign[6]; + u8 ssid; + } entry[2]; + } digi_path_5; + struct { + struct { + char callsign[6]; + u8 ssid; + } entry[2]; + } digi_path_6; + struct { + struct { + char callsign[6]; + u8 ssid; + } entry[2]; + } digi_path_7; + u8 unknown29[14]; + u8 unknown30:6, + selected_my_symbol:2; +} aprs_settings; + +#seekto 0x%04X; +struct { + bbcd date[3]; + u8 unknown1; + bbcd time[2]; + u8 sequence; + u8 unknown2; + u8 sender_callsign[7]; + u8 data_type; + u8 yeasu_data_type; + u8 unknown3; + u8 unknown4:1, + callsign_is_ascii:1, + unknown5:6; + u8 unknown6; + u16 pkt_len; + u16 in_use; +} aprs_beacon_meta[%d]; + +#seekto 0x%04X; +struct { + u8 dst_callsign[7]; + u8 src_callsign[7]; + u8 path_and_body[%d]; +} aprs_beacon_pkt[%d]; + #seekto 0xFECA; u8 checksum; """ @@ -285,9 +422,14 @@ _memsize = 65227 _block_lengths = [ 10, 65217 ] _block_size = 32 + _mem_params = (0xC24A, # APRS beacon metadata address. + 40, # Number of beacons stored. + 0xC60A, # APRS beacon content address. + 194, # Length of beacon data stored. + 40) # Number of beacons stored. def process_mmap(self): - self._memobj = bitwise.parse(MEM_FORMAT, self._mmap) + self._memobj = bitwise.parse(MEM_FORMAT % self._mem_params, self._mmap) def get_features(self): rf = chirp_common.RadioFeatures() @@ -405,4 +547,20 @@ class VX8DRadio(VX8Radio): """Yaesu VX-8DR""" _model = "AH29D" + _mem_params = (0xC24A, # APRS beacon metadata address. + 50, # Number of beacons stored. + 0xC6FA, # APRS beacon content address. + 146, # Length of beacon data stored. + 50) # Number of beacons stored. VARIANT = "DR" + +@directory.register +class VX8GERadio(VX8Radio): + """Yaesu VX-8GE""" + _model = "AH041" + _mem_params = (0xC24A, # APRS beacon metadata address. + 50, # Number of beacons stored. + 0xC6FA, # APRS beacon content address. + 146, # Length of beacon data stored. + 50) # Number of beacons stored. + VARIANT = "GE" diff -r 35bd3e0c31b7 -r ff8811642690 tests/images/Yaesu_VX-8_DR.img Binary file tests/images/Yaesu_VX-8_DR.img has changed