+6
Byte Order for bit-sized CAN messages
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
Customer support service by UserEcho
Also in GPOUT
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.
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.
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.