J1939 Questions on Intended usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kurt,

J1939 just hit the raspberrypi-kernel-headers and will soon be part of
regular raspberrypi-kernel [1] while it was already
available in Python 3.9 for a couple of month. [2]

I was about to give it a spin but was confused of the call parameters.

Could you shed some light on the intended usage.

Do I need to open one socket per PGN I'm sending?
e.g.

s1 = socket.socket(socket.AF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939)
s1.bind(interface_name, MY_NAME, PGN_OF_TSC1, MY_SA)
s1.write(bytes(8))

s2 = socket.socket(socket.AF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939)
s2.bind(interface_name, MY_NAME, PGN_OF_EBC1, MY_SA)
s2.write(bytes(8))


What about the cyclic transmitted PGNs? Do I drop those into
BroadcastManager somehow?


If I want to open an ISOTP Channel while a j1939 socket exists for my
SA, does anything weird happen on that socket?

e.g. I open a KWP2000 session from tester to engine ecu:

Tester 0xF1 <--> ECU 0x00
0x18DA00F1  >>
            << 0x18DAF100

Thanks and Best Regards,
Patrick Menschel



[1] https://github.com/raspberrypi/linux/pull/4346
[2] https://docs.python.org/3.9/library/socket.html#socket.socket.bind
> CAN_J1939 protocol require a tuple (interface, name, pgn, addr) where additional
> parameters are 64-bit unsigned integer representing the ECU name, a32-bit unsigned
> integer representing the Parameter Group Number (PGN), and an 8-bit integer
> representing the address.



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux