pull/27656/head
Shane Smiskol 3 years ago
parent 87d725ae93
commit 45e0f02ec4
  1. 42
      selfdrive/car/fw_versions.py

@ -163,48 +163,6 @@ def get_brand_addrs_bus(num_pandas=1):
return brand_addrs
def get_present_ecus_original(logcan, sendcan, num_pandas=1) -> Set[Tuple[int, Optional[int], int]]:
# TODO: batch requests by multiplexed OBD
queries = list()
parallel_queries = list()
responses = set()
for brand, r in REQUESTS:
# Skip query if no panda available
if r.bus > num_pandas * 4 - 1:
continue
for brand_versions in VERSIONS[brand].values():
for ecu_type, addr, sub_addr in brand_versions:
# Only query ecus in whitelist if whitelist is not empty
if len(r.whitelist_ecus) == 0 or ecu_type in r.whitelist_ecus:
a = (addr, sub_addr, r.bus)
# Build set of queries
if sub_addr is None:
if a not in parallel_queries:
parallel_queries.append(a)
else: # subaddresses must be queried one by one
if [a] not in queries:
queries.append([a])
# Build set of expected responses to filter
response_addr = uds.get_rx_addr_for_tx_addr(addr, r.rx_offset)
responses.add((response_addr, sub_addr, r.bus))
# print(queries)
# print()
# print(parallel_queries)
queries.insert(0, parallel_queries)
ecu_responses = set()
for query in queries:
print(query)
ecu_responses.update(get_ecu_addrs(logcan, sendcan, set(query), responses, timeout=0.1))
return ecu_responses
def get_present_ecus(logcan, sendcan, num_pandas=1) -> Set[Tuple[int, Optional[int], int]]:
params = Params()
queries = defaultdict(list)

Loading…
Cancel
Save