On 09/23/11 17:23, Damien R. wrote: > On 23/09/11 16:07, Oliver Hartkopp wrote: >> On 09/23/11 15:27, Damien R. wrote: >> >>> On 23/09/11 11:11, Damien R. wrote: >>>> Hi, >>>> >>>> I'm using socket can with the raw socket protocol and I receive messages >>>> with a 11bits identifier (eg: 0x1C) but the can_id in the raw frame has >>>> a size of 32bits. So, I have the following questions: >>>> - How can I retrieve the 11bits identifier in the can_id ? >>>> - Can you explain the meaning of each bit in the cand_id ? >>>> - j1939 use a 29bits identifier, how can I retrieve the 29bits >>>> identifier in the can_id ? >>> >>> Sorry, I did not see the following part of the linux/can.h >>> >>> /* >>> * Controller Area Network Identifier structure >>> * >>> * bit 0-28 : CAN identifier (11/29 bit) >>> * bit 29 : error frame flag (0 = data frame, 1 = error frame) >>> * bit 30 : remote transmission request flag (1 = rtr frame) >>> * bit 31 : frame format flag (0 = standard 11 bit, 1 = extended 29 bit) >>> */ >>> typedef __u32 canid_t; >>> >>> So can someone explain how bits are arranged with a 11 bits identifier? Is >>> it >>> this 0...0 identifier or identifier 0...0 or something else? >> >> >> Hello Damien, >> >> you may look into >> >> http://lxr.linux.no/#linux+v3.0.4/Documentation/networking/can.txt >> >> as well as into some sample programs you can find in the trunk/test directory >> of the SocketCAN SVN on BerliOS: >> >> http://developer.berlios.de/svn/?group_id=6475 >> >> The identifier is always a 32 bit value you can access as shown in the >> examples. No need to think about the endianess of this operations on >> application level. > > Ok, thanks Oliver. > So if I understand correctly the examples the CAN_EFF_FLAG should be set with > a J1939 message and not set with a 11bits identifier message. >
Yep! Got it :-) Have fun! Oliver _______________________________________________ Socketcan-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-users
