Closed jjundot closed 5 months ago
What are the package versions? What Connection do you use?
Can you enable debug logging and share the logs?
If you use the isotp
module, enable debug logging for it as well.
I have good hypothesis for that issue.
It's possibly a mix of 2 issues, on that will be solved by this PR and also that you are providing a rxfn that blocks forever without respecting the timeout argument being passed to you. You need to fix the later, otherwise you will always end up with a dangling thread and the app won't exit.
Thank you so much.
I use the PythonIsoTpConnection (can-isotp 2.0.3)
The PR #116 above should be very effective, in my environment, it is blocked here:
empty_rxqueue
---> self.isotp_layer.stop_receiving()
---> time.sleep(0.05)
When using CAN as a diagnostic channel, when other application messages are sent periodically on the bus, calling the client.change_session interface will block the self.conn.empty_rxqueue() interface.
The specific location is shown in the figure![image](https://github.com/pylessard/python-udsoncan/assets/11642583/53bb068d-1f04-4e81-9647-f4fe8feaf833)
Since I also need to read some application packets for other purposes at the same time, is there any other better way without filtering out the application packets?