log if extra in debug ecus

pull/27345/head
Shane Smiskol 3 years ago
parent 94c038dbd4
commit 065432e2f8
  1. 24
      selfdrive/car/fw_versions.py

@ -231,15 +231,28 @@ def get_fw_versions(logcan, sendcan, query_brand=None, extra=None, timeout=0.1,
# ECUs using a subaddress need be queried one by one, the rest can be done in parallel
addrs = []
parallel_addrs = []
logging_addrs = []
ecu_types = {}
# logging_addrs = defaultdict(list)
for brand, brand_versions in versions.items():
for c in brand_versions.values():
for ecu_type, addr, sub_addr in c.keys():
# print(brand, brand_versions.keys())
# print(brand, brand_versions["debug"])
for candidate, ecu in brand_versions.items():
# if brand not in logging_addrs:
# logging_addrs[brand] = []
# if car == "debug":
# logging_addrs.append() [brand].append(ecu)
# # logging_addrs[brand].append(ecu)
for ecu_type, addr, sub_addr in ecu.keys():
a = (brand, addr, sub_addr)
if a not in ecu_types:
ecu_types[a] = ecu_type
if a not in logging_addrs and candidate == "debug":
logging_addrs.append(a)
if sub_addr is None:
if a not in parallel_addrs:
parallel_addrs.append(a)
@ -248,12 +261,14 @@ def get_fw_versions(logcan, sendcan, query_brand=None, extra=None, timeout=0.1,
addrs.append([a])
addrs.insert(0, parallel_addrs)
print('logging', logging_addrs)
# Get versions and build capnp list to put into CarParams
car_fw = []
requests = [(brand, r) for brand, r in REQUESTS if query_brand is None or brand == query_brand]
for addr in tqdm(addrs, disable=not progress):
for addr_chunk in chunks(addr):
# print(addr_chunk)
for brand, r in requests:
# Skip query if no panda available
if r.bus > num_pandas * 4 - 1:
@ -268,14 +283,15 @@ def get_fw_versions(logcan, sendcan, query_brand=None, extra=None, timeout=0.1,
for (tx_addr, sub_addr), version in query.get_data(timeout).items():
f = car.CarParams.CarFw.new_message()
f.ecu = ecu_types.get((brand, tx_addr, sub_addr), Ecu.unknown)
ecu_key = (brand, tx_addr, sub_addr)
f.ecu = ecu_types.get(ecu_key, Ecu.unknown)
f.fwVersion = version
f.address = tx_addr
f.responseAddress = uds.get_rx_addr_for_tx_addr(tx_addr, r.rx_offset)
f.request = r.request
f.brand = brand
f.bus = r.bus
f.logging = r.logging
f.logging = r.logging or ecu_key in logging_addrs
if sub_addr is not None:
f.subAddress = sub_addr

Loading…
Cancel
Save