Because CAN device at the other end assigns a variable to each byte in the frame. So it will read the whole 64 bit frame then split it into 8 bytes before reading the value of each as a decimal variable.
My thought was to use bitshifting, so I have built this:
PDU_Frame1 = 0;
PDU_Frame1 <<= 8; PDU_Frame1 |= SideLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= MainLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= HighLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= HazLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= IndLLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= IndRLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= RFogLights;
PDU_Frame1 <<= 8; PDU_Frame1 |= FFogLights;
It doesn't seem to work as intended though and I'm getting "f8ff022099010000" in the serial monitor..??