FwQueryConfig: add data_requests

pull/31569/head
Cameron Clough 1 year ago
parent fe9e729675
commit dc5484a9b8
  1. 10
      selfdrive/car/ford/values.py
  2. 2
      selfdrive/car/fw_query_definitions.py

@ -146,6 +146,8 @@ FW_QUERY_CONFIG = FwQueryConfig(
bus=0, bus=0,
auxiliary=True, auxiliary=True,
), ),
],
data_requests=[
# Ecu.abs: Wheel Base (response[0] & 0xF0), Payload (response[0] & 0xF), # Ecu.abs: Wheel Base (response[0] & 0xF0), Payload (response[0] & 0xF),
# Steering Gear (response[1] & 0b11), Cruise Control Mode (response[5] & 0xF) # Steering Gear (response[1] & 0b11), Cruise Control Mode (response[5] & 0xF)
# Ecu.eps: Lane Keeping Aid (LKA) (response[6] & 0xFF), Traffic Jam Assist (TJA) (response[7] & 0xFF), # Ecu.eps: Lane Keeping Aid (LKA) (response[6] & 0xFF), Traffic Jam Assist (TJA) (response[7] & 0xFF),
@ -154,56 +156,48 @@ FW_QUERY_CONFIG = FwQueryConfig(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(1)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(1)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(1)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(1)],
whitelist_ecus=[Ecu.abs, Ecu.eps], whitelist_ecus=[Ecu.abs, Ecu.eps],
logging=True,
), ),
# Ecu.abs: Stop and Go (response[0] & 0x80) # Ecu.abs: Stop and Go (response[0] & 0x80)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(2)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(2)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(2)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(2)],
whitelist_ecus=[Ecu.abs], whitelist_ecus=[Ecu.abs],
logging=True,
), ),
# Ecu.debug: Wheel Base (response[4:6] & 0xFFFF) # Ecu.debug: Wheel Base (response[4:6] & 0xFFFF)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(4)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(4)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(4)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(4)],
whitelist_ecus=[Ecu.debug], whitelist_ecus=[Ecu.debug],
logging=True,
), ),
# Ecu.debug: Wheel Base (response[4:6] & 0xFFFF) # Ecu.debug: Wheel Base (response[4:6] & 0xFFFF)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(5)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(5)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(5)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(5)],
whitelist_ecus=[Ecu.debug], whitelist_ecus=[Ecu.debug],
logging=True,
), ),
# Ecu.debug: Vehicle Weight (response[0] & 0xFF) # Ecu.debug: Vehicle Weight (response[0] & 0xFF)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(6)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(6)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(6)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(6)],
whitelist_ecus=[Ecu.debug], whitelist_ecus=[Ecu.debug],
logging=True,
), ),
# Ecu.debug: Steering Gear Ratio (response[22] & 0x10) # Ecu.debug: Steering Gear Ratio (response[22] & 0x10)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(8)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(8)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(8)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(8)],
whitelist_ecus=[Ecu.debug], whitelist_ecus=[Ecu.debug],
logging=True,
), ),
# Ecu.fwdCamera: VehicleCfg_SteeringRatio (response[1:3] & 0xFFF0) # Ecu.fwdCamera: VehicleCfg_SteeringRatio (response[1:3] & 0xFFF0)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(17)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(17)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(17)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(17)],
whitelist_ecus=[Ecu.fwdCamera], whitelist_ecus=[Ecu.fwdCamera],
logging=True,
), ),
# Ecu.fwdCamera: VehicleCfg_Wheelbase (response[2:4] & 0xFFFF) # Ecu.fwdCamera: VehicleCfg_Wheelbase (response[2:4] & 0xFFFF)
Request( Request(
[StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(20)], [StdQueries.TESTER_PRESENT_REQUEST, ford_asbuilt_block_request(20)],
[StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(20)], [StdQueries.TESTER_PRESENT_RESPONSE, ford_asbuilt_block_response(20)],
whitelist_ecus=[Ecu.fwdCamera], whitelist_ecus=[Ecu.fwdCamera],
logging=True,
), ),
], ],
extra_ecus=[ extra_ecus=[

@ -87,6 +87,8 @@ class Request:
@dataclass @dataclass
class FwQueryConfig: class FwQueryConfig:
requests: list[Request] requests: list[Request]
# Additional requests for data collection after fingerprinting
data_requests: list[Request] = field(default_factory=list)
# TODO: make this automatic and remove hardcoded lists, or do fingerprinting with ecus # TODO: make this automatic and remove hardcoded lists, or do fingerprinting with ecus
# Overrides and removes from essential ecus for specific models and ecus (exact matching) # Overrides and removes from essential ecus for specific models and ecus (exact matching)
non_essential_ecus: dict[capnp.lib.capnp._EnumModule, list[str]] = field(default_factory=dict) non_essential_ecus: dict[capnp.lib.capnp._EnumModule, list[str]] = field(default_factory=dict)

Loading…
Cancel
Save