Skip to content

IsoTpParallelQuery: handle response pending - #24724

Merged
sshane merged 16 commits into
masterfrom
isotp-parallel-response-pending
Jun 8, 2022
Merged

sshane merged 16 commits into
masterfrom
isotp-parallel-response-pending

Conversation

@sshane

@sshane sshane commented Jun 3, 2022 •

Copy link
Copy Markdown
Collaborator

To fix an issue with #24706, we don't consider response pending responses, so we would break before some queries finish if our queries complete fast enough

  • Tracks timeouts per address
  • Per discussion with Greg, we've seen some VW ECUs take up to 6 seconds between response pending responses, so choose timeout of 10 seconds for addresses with a response pending.
  • Continually receiving response pending from an ECU is rare, so raise max timeout to 1 minute
  • Every time an ecu responds with response pending, wait additional 10 seconds for response, then set timeout to default 0.1 seconds on valid response, and the next loop we'll break if we've gotten everything

Implementation done in panda for UdsClient, brought over for fw fingerprinting commaai/panda#723

@sshane sshane added enhancement car vehicle-specific labels Jun 3, 2022
@sshane

sshane commented Jun 3, 2022 •

Copy link
Copy Markdown
Collaborator Author

@pd0wm

pd0wm commented Jun 3, 2022

Copy link
Copy Markdown
Contributor

Think the first iteration you have a larger batch? Remember adding that to make toyota more reliable.

@sshane
sshane requested review from pd0wm and removed request for pd0wm June 3, 2022 08:12
@sshane

sshane commented Jun 3, 2022

Copy link
Copy Markdown
Collaborator Author

I see, looks like these are the number of addresses in the batches: [5, 7, 7, 13, 6, 6, 6, 5, 5, 6, 6, 6, 6, 2, 1, 1, 1, 1, 1, 1]

@pd0wm

pd0wm commented Jun 3, 2022

Copy link
Copy Markdown
Contributor

Ah ok, maybe other changes were made in the meantime that make this no longer relevant. If it works fine on Toyota you can remove it.

@sshane

sshane commented Jun 3, 2022

Copy link
Copy Markdown
Collaborator Author

If we keep as a safety net I'm fine with that, once everything completes we break anyway

@jyoung8607

Copy link
Copy Markdown
Collaborator
  • Per discussion with Greg, we've seen some VW ECUs take up to 6 seconds between response pending responses, so choose timeout of 10 seconds for addresses with a response pending.
  • Continually receiving response pending from an ECU is rare, so raise max timeout to 1 minute
  • Every time an ecu responds with response pending, wait additional 10 seconds for response, then set timeout to default 0.1 seconds on valid response, and the next loop we'll break if we've gotten everything

I can't remember how long our worst-case response to a query was (there were some long ones but not fingerprint-relevant). However, IIRC the timer was set to 6 seconds because the relevant ISO UDS standard calls for a module to repeat its 0x7fXX78 please-wait response every 5 seconds until it's ready to answer. So 10 seconds is exceedingly generous.

@sshane

sshane commented Jun 4, 2022

Copy link
Copy Markdown
Collaborator Author

@gregjhogan what do you think? Is 6 seconds good instead of 10?

@sshane
sshane force-pushed the isotp-parallel-response-pending branch from 907ad38 to e178e71 Compare June 4, 2022 05:09
@sshane

sshane commented Jun 4, 2022 •

Copy link
Copy Markdown
Collaborator Author

Just timed the FW queries on the Optima, it takes 3.9 seconds on average! We don't get any response pending responses from any ECU here, so of course it no change in the time on this car. @jyoung8607 can you time this branch before and after for the FW queries?

@sshane
sshane force-pushed the isotp-parallel-response-pending branch from 27396d5 to edd8201 Compare June 4, 2022 05:26
sshane added 2 commits June 3, 2022 22:44
only query hyundai

import time

reponse pending

no cache

all cars

no timeout to test before
This reverts commit abe9cfc.
@sshane
sshane force-pushed the isotp-parallel-response-pending branch from 366a286 to 2880fb3 Compare June 4, 2022 05:50
always debug
@sshane
sshane force-pushed the isotp-parallel-response-pending branch from b00dfb4 to 6bec521 Compare June 4, 2022 05:52
@gregjhogan

gregjhogan commented Jun 4, 2022 •

Copy link
Copy Markdown
Contributor

Notes from past PRs related to this PR ...
UDS timeouts: commaai/panda#699 (comment)
indication that an ECU needed more than a 5 second timeout after response pending: commaai/panda#699 (comment)

So it seems like we need something higher than a 5 second response pending timeout. The problem with going to short is the responses might get mixed up. I am not sure how to determine if 6 seconds is sufficient because so few ECUs use response pending for firmware queries. The only place I have personally seen it is when you ask an ECU to erase flash or compute a checksum on the firmware.

Also, if the only ECUs using response pending are things openpilot does not directly interface with for driving (e.g. airbags) maybe we should eliminate these from firmware querying.

@jyoung8607

Copy link
Copy Markdown
Collaborator

Also, if the only ECUs using response pending are things openpilot does not directly interface with for driving (e.g. airbags) maybe we should eliminate these from firmware querying.

I want to keep it for the time being. Without it, I lose some insurance that I can discriminate between similar models.

My first and best discriminator between models is the last part of three-part EPS query, the steering characteristic map identifier returned from 0xF182 APPLICATION_DATA_IDENTIFICATION. But, the blessing and curse of VW MQB is they're all so similar, and almost everything else ends up being shareable between models with differing mass and wheelbase.

I added the airbag config data because I wanted extra insurance, something else that varied with different model/chassis dynamics, different mass and wheelbase combinations. I was worried about hanging my hat exclusively on the EPS map, and getting in trouble later after we'd upstreamed a bunch of models already, when it would be much harder to fix. In fact, this has now happened (#23735).

What I really wanted was the ABS/ESP firmware, but I couldn't make it work back in the day because (drumroll!) this same problem where it returned a delayed response. Now that the parallel query is fixed, and especially now with whitelisting to tailor specialized queries to individual modules, I'd transition away from SRS if it were easy. But making that switch today would be Kind of a Big Deal, and it wouldn't let us sidestep handling of delayed responses. I do think it's worth doing someday.

@jyoung8607

Copy link
Copy Markdown
Collaborator

@jyoung8607 can you time this branch before and after for the FW queries?

Did five test runs of each variant with full output on my side to make sure all FW returned, followed by another five stripped down to just the timing output.

TL;DR: new timeout code doesn't hurt, whitelisting helps, and my SRS doesn't take very long to reply.

procedure:

comma@tici:/data$ cat time-fp.sh 
#!/bin/bash

for i in {1..5}
do
  /data/openpilot/selfdrive/car/fw_versions.py 2>/dev/null | grep "Possible matches\|Getting fw took"
done

master:

comma@tici:/data$ ./time-fp.sh 
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.889 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.901 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.921 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.919 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.935 s

isotp-parallel-response-pending:

comma@tici:/data/openpilot$ ../time-fp.sh 
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.898 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.907 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.920 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.909 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.923 s

isotp-parallel-response-pending + whitelists from #24706:

comma@tici:/data/openpilot$ ../time-fp.sh 
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.486 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.499 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.483 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.487 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 3.501 s

isotp-parallel-response-pending + whitelists from #24706 + stripped to VW queries only:

comma@tici:/data/openpilot$ ../time-fp.sh 
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 0.240 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 0.250 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 0.261 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 0.257 s
Possible matches: {'VOLKSWAGEN GOLF 7TH GEN'}
Getting fw took 0.273 s

@jyoung8607

jyoung8607 commented Jun 4, 2022 •

Copy link
Copy Markdown
Collaborator

indication that an ECU needed more than a 5 second timeout after response pending: commaai/panda#699 (comment)

That only happens with one non-standard undocumented UDS data identifier from my Telematics module, that returns something absurdly long after a delay. I think it could be GPS or cell network info. Not really something openpilot needs to handle, and retesting right now it's only taking about 3-4 seconds anyway.

There's not much harm in a longer timeout, chances of the conversation breaking down after a successful interim response are fairly low, was just highlighting the thought processes behind 5 vs 6 vs 10 seconds.

ISO-TP: RESPONSE - 0x7d1 0x22f15b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040001beb0001000040001beb032c70000000000000000001000000000000000000000000000000000000000040001be90000000040001beb00007000000000000000000100000000000f00004000426c400042304000431400120000400043c0400043204000445000930000400048c040004460400054ac00060000400055a8400054c8400055a800080000400055ec400055c8400056c4000a0000400057b4400056e84000594c001a000040005ea04000599040007e44000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a54588b00130450361614010a0000000000000000000001c700a98a2d01c700b67ac100e286000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008003e300000000000000000000000000000000000000000000000000000000000003e30000000000000000000000000000000000000000000000000000000000000002080404000021044401190400005caa0000086868686863656862626808

@sshane

sshane commented Jun 5, 2022 •

Copy link
Copy Markdown
Collaborator Author

I'm fine with 10 seconds if it will ensure we wait for all responses, this look good @gregjhogan?

Comment thread selfdrive/car/isotp_parallel_query.py Resolved
Comment thread selfdrive/car/isotp_parallel_query.py Resolved
Comment thread selfdrive/car/isotp_parallel_query.py Resolved
if self.debug:
cloudlog.warning(f"iso-tp query response pending: {tx_addr}")
else:
request_done[tx_addr] = True

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like you want to set the timeout to the current time any time you set an addr as done so you don't wait an extra timeout period below where it waits for the max timeout to be expired.

@sshane sshane Jun 6, 2022 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of the requests are of len 1, so it's possible for a brand we quit early if we never increment the counter if we only get "done" responses. What's on the branch is similar to the previous behavior of increasing the timeout for any response

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am saying you break out of the loop when cur_time - max(response_timeouts.values()) > 0 meaning after you get the last good response message you increment the timer for that rx addr and then wait for it to expire (but don't need to) but maybe this isn't worth worrying about.

@sshane sshane Jun 6, 2022 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When everything is received we break anyway.

if all(request_done.values()):
  break

@gregjhogan gregjhogan Jun 6, 2022 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, so it only waits longer than it needs to when some requests do not complete (and those requests time out before the last successful request succeeds) not sure if it is worth shaving off that 0.1 s in that scenario

@sshane sshane Jun 7, 2022 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. If we don't increment on a done response, what if we get a bunch of single frame done responses? It would eventually timeout

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the current behavior too, so I think this is okay to merge. We can adjust the timeout in another PR

@sshane
sshane merged commit 30e1f28 into master Jun 8, 2022
@sshane
sshane deleted the isotp-parallel-response-pending branch June 8, 2022 00:49
dkiiv added a commit to dkiiv/openpilot that referenced this pull request Jun 16, 2022
* Laikad: cleanup fetching orbits (commaai#24759)

* Seperate prediction orbits from regular observation orbits and download them efficient

* Cleanup

* clean and update laika

* Fix test

* Fix test

* Fix checking pos fix

* space

* update DH names + notes for MPC output curvatures (commaai#24701)

* update names + notes for MPC outputs

"current_curvature" is not the correct description of what the MPC is outputting in it's curvature_ego state.
The MPC is integrating it's free variable, curvature_rate, such that curvature[0] is actually the desired_curvature before any delay.
inversely: the curvature_rate_desired is the desired rate of change to the setpoint and not the actual curvature rate. 

If we were to set the initial curvature = measured curvature in the MPC initiation these names would be correct. 
This was possibly how it was initially set up but the nomenclature here is now confusing.

* more notes

* match

* Clarify #1

* Laikad: Use process for parsing orbits (commaai#24769)

* Use Process instead of Thread to fetch orbits

* small refactor

* Cleanup

* UI: remove DM icon (commaai#24771)

* PlotJuggler: add torque control layout (commaai#24726)

* add torque control PJ layout

* less custom transformation

* Use curvature, less noisy

* remove that

* Honda: rename Bosch harness to Bosch A

* GM: interface cleanup (commaai#24774)

* Move all defaults above models

* Remove reduntant/defaults

* make minEnableSpeed common

* Update selfdrive/car/gm/interface.py

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* IsoTpParallelQuery: handle response pending (commaai#24724)

* handle response pending

* match commit

* remove total timeout, just keep track of individual response timeouts

* fix

* add back total timeout

* this isn't reliable enough

* keep track of pending responses to print warning

* tx_addr is (addr, subaddr)

* debug

only query hyundai

import time

reponse pending

no cache

all cars

no timeout to test before

* Revert "debug"

This reverts commit abe9cfc.

* always print pending

always debug

* Only debug

* Update selfdrive/car/isotp_parallel_query.py

* remove variable only for debugging

* Install readme (commaai#24776)

README: better install on device instructions

* VW MQB: Add FW for 2020 Volkswagen Tiguan (commaai#24777)

* Kia Ceed: fix eps ECU type (commaai#24767)

should be eps

* Add missing MIRAI ESP f/w (commaai#24779)

* Add missing ESP f/w 

`@JaySheikh#7759`  2021 Mirai  DongleID/route b2c2b20082938bed|2022-06-08--05-04-03  [confirmed working]

* formatting

Co-authored-by: Shane Smiskol <shane@smiskol.com>

* Laikad: kill process correctly. Fixes CI (commaai#24780)

Kill process correctly

* LaikaD: Fix offline handling (commaai#24781)

* Test handling no internet correctly.

* Clean

* Comment

* remove del

* fullframe DM model (commaai#24762)

* get log

* simplify two nonsense

* not needed

* libyuv is a joke

* clean up

* try small

* fast but not bad

* working

* clean up driverview

* simplified

* thats mirrored

* smol

* tweak

* ref is screen

* w/ ee

* update camera model

* no if TICI

* start

* update pose thresh

* less cpu more dsp

* new libyuv

* new snpe

* add files

* test

* should be fast

* update out len

* trigger test

* use master snpe

* add cereal

* update cereal

* refactor parsing

* missing ;

* get

* wrong type

* test model

* use driver data

* 10829278-72fe-4283-a118-2cef959ce174/1550

* no pf

* adapt driverview

* ;

* rhd learner

* update libyuv buildi x64

* ad4337e

* remove blink slack

* test

* no

* use toggle

* b16

* fix for nv12

* 5b02cff5 both

* update test

* update cereal

* update cereal

* update cereal

* v2 packets

* revert libyuv

* no /

* update snpemodel

* ;

* memcpy

* fix test

* use toggle in driverview

* update power

* update replay

* Revert "update replay"

This reverts commit 1d0979c.

* update model ref

* halve cpu

* fake 8bit onnx runner

* same thresh as report

* cereal master

Co-authored-by: Comma Device <device@comma.ai>

* bump opendbc (commaai#24790)

* Honda Bosch: fix openpilot longitudinal controls mismatch (commaai#24788)

* fix bosch controls mismatch

* bump

* bump panda

* VW MQB: Add FW for 2020 Volkswagen Tiguan (commaai#24795)

* build checks do not rely on each other (commaai#24783)

* Add missing CHR engine f/w (commaai#24797)

`@papifrio#5178` 2019 Toyota C-HR ICE ("nodsu" TSS-P) DongleID/route ade67da77ee74b16|2022-06-09--00-36-15

* Lexus: NX Hybrid 2020 support (commaai#24796)

* LEXUS: Missing esp and engine FW versions in values.py

DongleId: 09ae96064ed85a14  | testRoute: 09ae96064ed85a14|2022-01-10--01-57-37 |

* Make a new platform for NX Hybrid TSS2

* Update releases

Co-authored-by: Shane Smiskol <shane@smiskol.com>

* some release notes

* EyeSight standard on all 2019+ Ascent and Forester (commaai#24799)

* on all 2019+ Ascent Forester

* update docs

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* fullframe DM: flip RHD yaw to use matching thresholds

* Toyota: Add missing esp fw version for RAV4_TSS2 (commaai#24793)

add fwVersion for RAV4_TSS2

add b'\x01F15260R302\x00\x00\x00\x00\x00\x00' to list of Ecu.esp FwVersions for RAV4_TSS2

* Revert "UI: remove DM icon (commaai#24771)"

This reverts commit 4d836c6.

* Hyundai: Tucson 2021 support (commaai#24791)

* add support for 2021 Hyundai Tucson

base configuration and fingerprints

* fix fcw again and don't use mando radar for tucson

* last fixes for working tucson

* Apply suggestions from code review

* add to cars

* increase steerRatio

* missing car info

* one platform

* rename

* add min enable speed

* update releases

Co-authored-by: bluesforte <harry3b9@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* docs: adjust steering torque thresholds (commaai#24798)

* Prius has good steering control now

* 1.5 is the threshold for good torque

* get back down there, hondas

* half stars for 1.0-1.5

* show number of cars

* try bigger

* emphasize tiers

balanced

* Add half star

* Update ref_commit

* bypass HDA2 dashcam with file (commaai#24803)

Co-authored-by: Comma Device <device@comma.ai>

* Honda: use common imperial unit message (commaai#24786)

* CAR_SPEED should be on all cars

* bump opendbc

* clean this up too

* it's an or

* clean up

* comment

* add PyQt (commaai#24811)

* count events: add simple camera debugging

* Revert fullframe DM model (commaai#24812)

* Revert "fullframe DM: flip RHD yaw to use matching thresholds"

This reverts commit 2ac6931.

* Revert "fullframe DM model (commaai#24762)"

This reverts commit d6c07a6.

* revert cereal

* Add missing fw versions for 2019 Sonata (commaai#24814)

* put cereal on master

* Car interface: set max lateral torque from table (commaai#24789)

* json

* better naem

* Read from table

* formatting and default to nan

* Generate docs

* Read from table

* this should be the same

* Prius v is full

* test we always set the tunes correctly

add to release files

* Set for all cars

Set for all cars

* Revert tuning changes

Revert tuning changes

* remove that

* fixes

* update ref commit for new maxLateralAccels

Co-authored-by: Shane Smiskol <shane@smiskol.com>

* Fix Lexus NX Hybrid 2020 engine ecu (commaai#24817)

Wrong address in engine ecu.

* compatibility docs: auto-generate star descriptions (commaai#24809)

* Auto-generate star descriptions

* Need this for the website

* And this

* required changes to make the website generation work

* better names

* Revert "better names"

This reverts commit be7dbbb.

* simpler

* Misc torque control fixes (commaai#24801)

* Fiction compensation should be based on error

* Update refs

* Add deadzone

* update ref

* Honda carcontroller and signal cleanup (commaai#24806)

* common signals

* move stopping

* space

* clean up

* bump opendbc

* test for the strip_bz2_extension method (commaai#24826)

* CI: fix docker push for base image

* pylint: add PyQt5 support

* simulator: run simulator test in ci (commaai#24691)

* run simulator test in ci

* block navd process

* block ui

* fix jenkins

* build docker

* remove tty

* remove tty for carla

* detach carla_sim

* more retries

* only build once

* add more time for bridge

* cleanup

* use qt offscreen

* expose to docker

* block ui

* use new dockerimage

* fix

* from ubuntu20.04

* install curl

* add ssh

* add locales

* noninteractive

* syntax

* use base

* smaller image

* add git + git lfs

* kill carla

* run in parallel

* fix missing agents

* default agent?

* little cleanup

* default doesn't work

* not in ci

* fix path

* fix path

* new msg

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Move selfdrive/hardware/ to system/ (commaai#24725)

* move hardware to system/

* fix mypy

* jenkins: remove unnecessary workstation clean

* bump cereal

* set AGNOS from /AGNOS file

* CI: add build job for latest Ubuntu (commaai#24637)

* CI: add build job for latest Ubuntu

* source

* source env

* scons cache

* cache pyenv

* fix key

* source

* Move a bunch of stuff to system/ part 3 (commaai#24829)

* move swaglog.py

* timezoned

* logmessaged

* version.py

* fix linter

* acados build script improvements for mac (commaai#24634)

* add Darwin build w/ universal2 libs

* add rust for acados rebuilds

* just build script fixes

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Ford: disable radar for now (commaai#24832)

The newer Ford vehicles require a different radar parser.

* Updated CARLA to v0.9.13 (commaai#24575)

* Updated CARLA to v0.9.13

* pipenv lock

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* misc jenkins fixups (commaai#24840)

* bump cereal

* remove that

* pull cl image

* lil docker cleanup

* Ford: remove Fusion DBC from release (commaai#24841)

* jenkins: lock simulator

* SConstruct: set AGNOS from /AGNOS

* Revert "SConstruct: set AGNOS from /AGNOS" until Jenkins devices are updated

This reverts commit 84c741e.

* Laikad: Use filter for correcting measurements (commaai#24824)

* Update laikad.

* Update log error

* ui: skip texture frame copy (commaai#24700)

* ui_blit working

* simpler and working

* more believable that it's real

* working on device

* build on pc

* use hardware pc

* reduce cpu usage

* yuv conversion to EGL

* move everything to cameraview

* some cleanup

* more cleanup

* init array

* init images with std::map

* dont destroy images

* do destroy images

Co-authored-by: Comma Device <device@comma.ai>

* Laikad: process executor to fetch orbits (commaai#24843)

* Use ProcessPoolExecutor to fetch orbits

* update laika repo

* Minor

* camerad: remove unused SubMaster (commaai#24844)

* navd: speed limits only when localizer is valid (commaai#24845)

* Toyota Camry TSS2: update torque control params (commaai#24819)

Use updated accel and friction values for TSS2 Camry

* ui.py: update for nv12

* Revert "thermald: consider pmic in component temp management (commaai#24708)"

This reverts commit c8c21ba.

* Couple more cars to torque tune (commaai#24848)

* try sonata on torque tune

* Couple known cars to torque control

* fix

* more fix

* Honda Bosch long: fix ACC fault (commaai#24851)

Fix Honda bosch long

Co-authored-by: redacid95 <jonathanc.olivier@gmail.com>

Co-authored-by: redacid95 <jonathanc.olivier@gmail.com>

* Move couple toyotas to torque table values (commaai#24849)

* Move couple toyotas to torque table values

* Dont set for all cars yet

* Dont regress docs

* update ref

* Move RAV4 2022 out of bronze

* pin protobuf and hypothesis versions (commaai#24852)

pin hypothesis and protobuf

* bump opendbc (commaai#24853)

* process replay: clean up common code (commaai#24855)

* regen and process replay clean up

* test_fuzzy actually uses fingerprint hardcoding

fix

* revert

* revert

* this can be a url or path so just print full variable

* remove weights fixup with new SNPE (commaai#24254)

* remove weights fixup with new SNPE

* Update ref

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Harald Schafer <harald.the.engineer@gmail.com>

* GM: add support for vehicles with manual parking brakes (commaai#24766)

Switch to general park brake signal

* little zookeeper fixes (commaai#24861)

* little zookeeper fixes

* bump that up

* bump up modeld power draw threshold

* Torque control: low speed boost (commaai#24859)

* Make very low speed more aggressive

* Less extreme low speed boost

* Update ref

* regen & process replay: support no disengage on accelerator (commaai#24850)

* ACC on if enabled != 0

* small regen clean up and add HONDA3

* fixes

* revert unneeded changes

* not used

* just alt exp

Co-authored-by: redacid95 <jonathanc.olivier@gmail.com>

* Laikad: Cache orbit and nav data (commaai#24831)

* Cache orbit and nav data

* Cleanup

* Cleanup

* Use ProcessPoolExecutor to fetch orbits

* update laika repo

* Minor

* Create json de/serializers
Save cache only 1 minute at max

* Update laika repo

* Speed up json by caching json in ephemeris class

* Update laika

* Fix test

* Use constant

* UI: new set speed design, show speed limits (commaai#24736)

* basic US design

* place based on center position

* fix typo

* eu sign without rounded box

* same as steering wheel icon

* proper rounded bottom for eu sign

* add border

* proper placement/sizes

* needs to be semi bold

* color changes

* only when engaged

* move helpers into util.h

* Fix MAX placement

* only change color when at least 5 over

* implement override state

* pixel perfect spacing around us sign

* add speed limits to release notes

* Laikad: Remove bearingDeg from message (commaai#24864)

* Remove bearingDeg from message.

* Push cereal

* Commit cereal

* ui: add black color define (commaai#24866)

* ui: advanced network settings fix button colors and sizes (commaai#24846)

* ui: button pressed color add

* match colors from other buttons

Co-authored-by: Willem Melching <willem.melching@gmail.com>

* networking.cc: remove resolved TODO

* selfdrive/ui/qt/util.cc: missing include (commaai#24867)

* laikad: calc_pos_fix numpy implementation (commaai#24865)

* Replace posfix with gauss newton method

* Cleanup

* Check if glonass is in the list

* Fix

* also return residual

* Add residuals

* Update selfdrive/locationd/laikad.py

Co-authored-by: Willem Melching <willem.melching@gmail.com>

* Cleanup

Co-authored-by: Gijs Koning <gijs-koning@live.nl>

* Update model ref

* Revert "Update model ref"

This reverts commit efc8aa0.

* Rocket league model (commaai#24869)

* dd9a502d-c8e2-4831-b365-804b0ae0739d/600 80041070-d276-4fed-bdb9-0075e5442908/420

* no elementwise op

* 9dabf0f-2e60-44bf-8d3a-d20a74aca072/600 ae746590-0bb5-4a16-80db-15f02d314f03/300 c4663a12-b499-4c9b-90dd-b169e3948cb1/60

* explicit slice

* some copies are useful

* 1456d261-d232-4654-8885-4d9fde883894/440 c06eba55-1931-4e00-9d63-acad00161be0/700 af2eb6ba-1935-4318-aaf8-868db81a4932/425

* 154f663e-d3e9-4020-ad49-0e640588ebbe/399 badb5e69-504f-4544-a99e-ba75ed204b74/800 08330327-7663-4874-af7a-dcbd2c994ba7/800

* set steer rate cost to 1.0

* smaller temporal size

* Update model reg

* update model ref again

* This did upload somehow

* Update steer rate cost

Co-authored-by: Yassine Yousfi <yyousfi1@binghamton.edu>

* HKG: simplify Kia K5 compatibility (commaai#24810)

LKAS/LFA is standard on the K5

* thermald: fix panda dropout when we miss a pandaStates (commaai#24870)

immediate fix for "panda dropout"

* VW MQB: Populate stock ACC standstill flag (commaai#24877)

* VW MQB: Populate stock ACC standstill flag

* it really do be like that sometimes

* Mazda: fix resume spam at standstill (commaai#24876)

* Fix Mazda resume spam at standstill

* one line

* Revert "one line"

This reverts commit 30c6504.

* Laikad: More logging and use last_pos_fix for correcting (commaai#24868)

Use last available pos_fix for correcting measurements.
Improve logging measurements

* ui: disable controls unresponsive alert on PC

* HCA7 + ramp speed

* bump openDBC

* bump openDBC

* HCA7 + ramp speed

* bump panda

* bump panda

* HCA7 tuning from edgy

Co-authored-by: Gijs Koning <gijs-koning@live.nl>
Co-authored-by: ClockeNessMnstr <locke.dftc@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Jason Shuler <jshuler@gmail.com>
Co-authored-by: HaraldSchafer <harald.the.engineer@gmail.com>
Co-authored-by: Jason Young <46612682+jyoung8607@users.noreply.github.com>
Co-authored-by: Erich Moraga <33645296+ErichMoraga@users.noreply.github.com>
Co-authored-by: ZwX1616 <zwx1616@gmail.com>
Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: AlexandreSato <66435071+AlexandreSato@users.noreply.github.com>
Co-authored-by: George Hotz <72895+geohot@users.noreply.github.com>
Co-authored-by: Griffin Christenson <36981741+griff12@users.noreply.github.com>
Co-authored-by: bluesforte <harry3b9@gmail.com>
Co-authored-by: Maykon Pacheco <38124066+maykonpacheco@users.noreply.github.com>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
Co-authored-by: Andrew <andrew.tec@pm.me>
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
Co-authored-by: Jeroen <33349469+jeroenlammersma@users.noreply.github.com>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
Co-authored-by: Joost Wooning <jwooning@gmail.com>
Co-authored-by: redacid95 <jonathanc.olivier@gmail.com>
Co-authored-by: YassineYousfi <yyousfi1@binghamton.edu>
Co-authored-by: Lee Jong Mun <43285072+crwusiz@users.noreply.github.com>
spektor56 pushed a commit to spektor56/ghostpilot that referenced this pull request Jun 30, 2022
* handle response pending

* match commit

* remove total timeout, just keep track of individual response timeouts

* fix

* add back total timeout

* this isn't reliable enough

* keep track of pending responses to print warning

* tx_addr is (addr, subaddr)

* debug

only query hyundai

import time

reponse pending

no cache

all cars

no timeout to test before

* Revert "debug"

This reverts commit abe9cfc.

* always print pending

always debug

* Only debug

* Update selfdrive/car/isotp_parallel_query.py

* remove variable only for debugging
66thparallel pushed a commit to 66thparallel/janes_openpilot_fork that referenced this pull request May 1, 2026
* handle response pending

* match commit

* remove total timeout, just keep track of individual response timeouts

* fix

* add back total timeout

* this isn't reliable enough

* keep track of pending responses to print warning

* tx_addr is (addr, subaddr)

* debug

only query hyundai

import time

reponse pending

no cache

all cars

no timeout to test before

* Revert "debug"

This reverts commit abe9cfc.

* always print pending

always debug

* Only debug

* Update selfdrive/car/isotp_parallel_query.py

* remove variable only for debugging
old-commit-hash: 30e1f28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

car vehicle-specific enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants