Description
Firstly, thank you for creating this great library! It is very extensible and has been a great help in many of my projects.
One item I was hoping for help with or if there could be a recommended solution. We are currently using the library to manage a UDS reflash of an ECU. One such ECU takes a long time (~20 sec) to perform a memory erase ($31 $01 $FF $00 $XX). During this delay the module responds with a periodic $7F $78. The module times out with a $7F $72 if it does not receive a tester present in this window.
I am currently using a thread with semaphores around the other diagnostic requests to send tester present every second throughout the reflash process. The issue is that for a $7F $78 the library is blocked during this state and the semaphore around the mode $31 prevents the tester present.
Is there something built into the library that I'm missing that can support this use case? If not, could a feature be added for a callback of some type during a $7F $78 to indicate to the application that it's in this blocked state and allow for the transmission of a tester present.
Any help would be appreciated.