+6

Byte Order for bit-sized CAN messages

mdaigneault 7 years ago in IQANdesign updated by 705David 10 months ago 9 1 duplicate

Hello,


It would be great if IQAN allowed for Byte Order (Intel/Motorola) to be used on messages that are less then multiples of full bytes. Currently byte order can only be applied on 8/16/32 bit messages, but in some instances we may have a 12 or 14 bit message that requires endianess. We need to do some magic to reorder the bits before sending them, which is a pain.


For example, it is not possible in Parker to send the messages below with different byte orders, as they are not full-bytes.



Duplicates 1

The GPIN and GPOUT properties for setting byte order are only available when selecting 2 or 4 byte as length.


To change the endianness when the parameter has a different length, one will have to use bitwise operations.

Disappointing. The Auto industry still uses a lot of big endian and many of their signals are not byte aligned. Whether that is legitimate or not.

+1

I also brought this up a few months ago. As Chuck says, many CAN messages use non byte-size messages with varying endianness. One has to do some bitwise operations to correct this. This should be an easy fix to do in a future release of Parker IQAN. http://forum.iqan.se/topics/608-byte-order-for-bit-sized-can-messages/

If I understand your request correctly, you are asking for a new property to specify bit numbering? The existing property Byte order allows you to specify the order of full bytes. This is also known as endianness.

+1

Exactly, bit-level endianess.

Hi,

Has this request been approved for a further release?

Thanks

Seems this hasn't been changed in any releases in the last 4 years.

Is this advice still to use bitwise operations for each value that isn't a multiple of 8 bits?

For example I have a CAN controlled DC/DC Converter that uses Generic CAN messages. It uses 12 Bit Values for Voltage/Current but they are Motorola byte order. I can't import the DBC with these values because of the IQAN Limitation that requires the "Byte Order" property to be accessible only when the value is a multiple of 8 bits.