The “Data” word of the RXP or TXP is a raw 32-bit left justified word. ARINC-429 labels (the first 8 bits of the 32-bit word – Bits 0-7) are normally LSB first for bit 7, which is reversed from the rest of the word. The user must reverse the label field for transmission or reception as appropriate.
For example: a label of 0x02 would be need to flipped to 0x40. The following code snippet would flip a label from an RXP (reverse the logic for TXP).
ADT_L0_UINT32 RXPlabel;
ADT_L1_A429_RXP myRXP_buffer;
/* Flip label MSB->LSB */
RXPlabel = myRXP_buffer.Data & 0x000000FF;
tempLabel |= (RXPlabel & 1) << 7;
tempLabel |= (RXPlabel & 2) << 5;
tempLabel |= (RXPlabel & 4) << 3;
tempLabel |= (RXPlabel & 8) << 1;
tempLabel |= (RXPlabel & 16) >> 1;
tempLabel |= (RXPlabel & 32) >> 3;
tempLabel |= (RXPlabel & 62) >> 5;
tempLabel |= (RXPlabel & 128) >> 7;