VW MQB: Config tool update for new EPS (#28056)

old-commit-hash: a3070d0e35
beeps
Jason Young 2 years ago committed by GitHub
parent 14443527cc
commit 71b94b8d91
  1. 16
      selfdrive/debug/vw_mqb_config.py

@ -49,7 +49,7 @@ if __name__ == "__main__":
sw_pn = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_SPARE_PART_NUMBER).decode("utf-8") sw_pn = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_SPARE_PART_NUMBER).decode("utf-8")
sw_ver = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER).decode("utf-8") sw_ver = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER).decode("utf-8")
component = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.SYSTEM_NAME_OR_ENGINE_TYPE).decode("utf-8") component = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.SYSTEM_NAME_OR_ENGINE_TYPE).decode("utf-8")
odx_file = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.ODX_FILE).decode("utf-8") odx_file = uds_client.read_data_by_identifier(DATA_IDENTIFIER_TYPE.ODX_FILE).decode("utf-8").rstrip('\x00')
current_coding = uds_client.read_data_by_identifier(VOLKSWAGEN_DATA_IDENTIFIER_TYPE.CODING) # type: ignore current_coding = uds_client.read_data_by_identifier(VOLKSWAGEN_DATA_IDENTIFIER_TYPE.CODING) # type: ignore
coding_text = current_coding.hex() coding_text = current_coding.hex()
@ -70,14 +70,14 @@ if __name__ == "__main__":
coding_variant, current_coding_array, coding_byte, coding_bit = None, None, 0, 0 coding_variant, current_coding_array, coding_byte, coding_bit = None, None, 0, 0
coding_length = len(current_coding) coding_length = len(current_coding)
# EV_SteerAssisMQB/MNB cover the majority of MQB racks (EPS_MQB_ZFLS) # EPS_MQB_ZFLS
if odx_file in ("EV_SteerAssisMQB\x00", "EV_SteerAssisMNB\x00"): if odx_file in ("EV_SteerAssisMQB", "EV_SteerAssisMNB"):
coding_variant = "ZF" coding_variant = "ZFLS"
coding_byte = 0 coding_byte = 0
coding_bit = 4 coding_bit = 4
# APA racks (MQB_PP_APA) have a different coding layout # MQB_PP_APA, MQB_VWBS_GEN2
elif odx_file == "EV_SteerAssisVWBSMQBA\x00\x00\x00\x00": elif odx_file in ("EV_SteerAssisVWBSMQBA", "EV_SteerAssisVWBSMQBGen2"):
coding_variant = "APA" coding_variant = "APA"
coding_byte = 3 coding_byte = 3
coding_bit = 0 coding_bit = 0
@ -111,8 +111,8 @@ if __name__ == "__main__":
if args.action in ["enable", "disable"]: if args.action in ["enable", "disable"]:
print("\nAttempting configuration update") print("\nAttempting configuration update")
assert(coding_variant in ("ZF", "APA")) assert(coding_variant in ("ZFLS", "APA"))
# ZF EPS config coding length can be anywhere from 1 to 4 bytes, but the # ZFLS EPS config coding length can be anywhere from 1 to 4 bytes, but the
# bit we care about is always in the same place in the first byte # bit we care about is always in the same place in the first byte
if args.action == "enable": if args.action == "enable":
new_byte = current_coding_array[coding_byte] | (1 << coding_bit) new_byte = current_coding_array[coding_byte] | (1 << coding_bit)

Loading…
Cancel
Save