python-can icon indicating copy to clipboard operation
python-can copied to clipboard

Does it support feature somelike Tx-Self Ack?

Open xRowe opened this issue 1 year ago • 4 comments

Dear

I write a script to read DTC using the awesome project.

But my script may send requests while the ECU are all sleep and CANazlyzer project is running, At this time, when the request is sent, there will be no acknowledge received, and Vector CANcase/CANazlyer will be eventually stuck(ChipState become passive, no message can be sent out then) until restart the project or ResetCan request by CAPL.

So I wonder if there is Tx-Self Ack feature like in this project avoid this situation? Sorry, I read the doc but I got nothing, so I come here?

Thank you very much

xRowe avatar Jul 18 '23 16:07 xRowe

try to set the following parameter as true: receive_own_message = True or something like this check the exact grammer usage on official document .

leijr avatar Aug 25 '23 12:08 leijr

"receive_own_message = True" makes the system to echo the sent CAN frame to the (sending) application which is unusual and not solving the described problem.

@xRowe : Tx-Self ACK is a feature of (only some!) CAN controllers to run without other nodes on the CAN bus. But it is not defined whether there is some sending on the bus.

When you send a CAN frame the ECU normally instantly wakes up to communicate with you. So there should be no problem. If this is not guaranteed I would suggest to add a second CAN controller to the CAN bus (AFAIK Vector CAN adapters always come with two channels). Then you always have a properly working CAN bus - no matter if your ECU starts in time.

hartkopp avatar Aug 25 '23 17:08 hartkopp

Maybe you could set "timeout" for send, and execpt Exception to information about success or not

luojiaaoo avatar Sep 13 '23 03:09 luojiaaoo

"receive_own_message = True" makes the system to echo the sent CAN frame to the (sending) application which is unusual and not solving the described problem.

@xRowe : Tx-Self ACK is a feature of (only some!) CAN controllers to run without other nodes on the CAN bus. But it is not defined whether there is some sending on the bus.

When you send a CAN frame the ECU normally instantly wakes up to communicate with you. So there should be no problem. If this is not guaranteed I would suggest to add a second CAN controller to the CAN bus (AFAIK Vector CAN adapters always come with two channels). Then you always have a properly working CAN bus - no matter if your ECU starts in time.

When Using CANalyzer or CANoe, there will be an option call "Tx-Self Ack". If it is checked, the Tx will ignore ack So I wanna know if there is a tricky way can acheive this, by Vector interface

xRowe avatar Oct 20 '23 12:10 xRowe