Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

Why need for ORing with 0x80000000 when setting xcp CRO DTO on CAN with id extended (29 bits)

Hello...

 

I am trying to set the xcp CRO DTO CAN id's in MC Set Property.vi for Extened CAN id (29 bits)...

So far I worked only with simple ID's. I browsed in the examples and I found the  ....LabVIEW 2012\examples\ECUMC\ECUMC_Advanced.llb\subCANCompose.vi. with which I managed the communication - after performing an OR with 80000000 to the given Id...

Can someone explain me why is required that? Why not simple parse the ID which i noticed is defined as U32 - so it should be handled... ?

Btw the ID 's looks like 0x102507FA and 0x102507AF and after the ORing are 0x802507FA and 0x102507AF ...

 

Thanks in advance for the answer!

Vincent

0 Kudos
Message 1 of 7
(7,842 Views)

ORing with 0x80000000 or 0x20000000 ?

 

NI uses the 30th bit of extended CAN IDs to tell the NI-CAN driver to use the extended ID format. See here (for example) for more details.

0 Kudos
Message 2 of 7
(7,838 Views)

Hi JB...

 

Thanks for reply...

 

I just checked again in my

 

C:\Win16App\National Instruments\LabVIEW 2012\examples\ECUMC\ECUMC_Advanced.llb\subCANCompose.vi

 

and is with 0x80000000...

 

Can you please confirm that is the same on your side?

 

Thanks,

Vincent

0 Kudos
Message 3 of 7
(7,806 Views)

I can't check because this example is not installed on my machine.

 

Have you installed the NI ECU Measurement and Calibration Toolkit ? According to the name of the directory (ECUMC), I guess that this example ships and installs with this toolkit.

0 Kudos
Message 4 of 7
(7,798 Views)

Hi JB...

 

Yes ... I do have the toolkit installed...

 

Don't get me wrong...I am happy that is working but I want to know why is working like that...

 

Also I am more intrigued now by the articole you mentioned where indeed 0x20000000 is mentioned... while on my machine is ored with 0x80000000...

 

Regards,

Vincent

0 Kudos
Message 5 of 7
(7,791 Views)

Hi Vincent,

 

This link provides an explanation, Why Does ncReadNet.vi Require OR-ing 0x20000000 With Extended Arbitration IDs?.

 

Now, you are right about the example, I downloaded the toolkit and I could verify that it is using 0x80000000. Researching about this, I found this forum, please check this thread.

 

Regards

0 Kudos
Message 6 of 7
(7,780 Views)

Thank you for the reminder. I forgot Gibson's statement in above linked thread :

 

as far as I know in fact we allow to set any bit beyond 29 and interpret this as extended IDs as this is not defined in the ASAM standard and other A2L files created by various 3rd party tools dont use bit 30. So we need to be flexible 😉

 

The developers of this toolkit may have been inspired by Vector which forces the 32th bit of extended IDs. To avoid confusion : the author of this message counts the bits by starting at 0 (31...0 vs 32...1).

0 Kudos
Message 7 of 7
(7,771 Views)