Open TSsimon opened 3 years ago
Hi @TSsimon , please take a look at this topic https://github.com/linux-can/can-utils/issues/228 I hope it answers your question
Thanks for your Attention @olerem ! If I understand correctly the implemented Type of SAE J1939 Transport Protocol is the RTS/CTS Type ? Is there a setting to receive TP.DT Messages without handshake?
thanks!
On the top level (from socket point of view) you do not deal with TP/ETPs at all. If you send() 8byte, the stack will send simple message. if you send more than 8 byte, the stack will send TP (all what for TP is needed) or if it is more than max TP size, it will send ETP message. See: https://github.com/linux-can/can-utils/blob/master/can-j1939-kickstart.md#larger-packets
With this tool, you can send any supported amount of data over CAN: https://github.com/linux-can/can-utils/blob/master/j1939cat.c
Hello everyone,
i got a quesition about the workflow of the J1939 TP. I'm about writing a script which is automatically responding a message > 8 Bytes after reading the 0xEA00 (RequestPGN). If i read the J1939 Documentation correctly the Request-PGN must have the requested PGN in the data-field.
So if responding some dummy data with "sendto" the TP seems to work correctly but the connection management message doesn't contain the requested PGN
Skript flow: 1) Initalize struct sockaddr_can (sockname/peername) 2) open socket 3) setsockopt(->Broadcast) 4) bind(->sockname) 5) Recvfrom() IF PGN==0xEA00 read requested pgn close(sock) 5.5 generate dummy data
6) Reinitalize struct sockaddr_can (sockname/peername) 7) open socket 8) setsockopt(->Broadcast) 9) bind(->sockname) 10) sendto( dummy-Data)
My questions: why the CM-Message doesn't contain the requested PGN? why the CM-Message was sended three times?
source-code:
`
`
candump: `
`
hope someone can help me out :)