Hi,
Is there perhaps a cleaner and easier way to achieve what this code effectively does please? Code isn't pretty, but it works, I would just like to make it shorter perhaps if possible.
The serial print lines are purely for debugging. I presume I cannot use mathematic formulae in a print command as the output on the last two prints results in 0 as opposed to the correct math output.
Many thanks for any help offered.
int32_t uas_long_combined = 0;
uint8_t uas_long_byte3 = beaconPacket[83];
uint8_t uas_long_byte2 = beaconPacket[82];
uint8_t uas_long_byte1 = beaconPacket[81];
uint8_t uas_long_byte0 = beaconPacket[80];
int32_t uas_lat_combined = 0;
uint8_t uas_lat_byte3 = beaconPacket[87];
uint8_t uas_lat_byte2 = beaconPacket[86];
uint8_t uas_lat_byte1 = beaconPacket[85];
uint8_t uas_lat_byte0 = beaconPacket[84];
uas_long_combined = uas_long_byte3;
uas_long_combined = (uas_long_combined << 8) | uas_long_byte2;
uas_long_combined = (uas_long_combined << 8) | uas_long_byte1;
uas_long_combined = (uas_long_combined << 8) | uas_long_byte0;
uas_lat_combined = uas_lat_byte3;
uas_lat_combined = (uas_lat_combined << 8) | uas_lat_byte2;
uas_lat_combined = (uas_lat_combined << 8) | uas_lat_byte1;
uas_lat_combined = (uas_lat_combined << 8) | uas_lat_byte0;
Serial.println(uas_long_combined, HEX);
Serial.println(uas_lat_combined, HEX);
Serial.println(uas_long_combined, DEC);
Serial.println(uas_lat_combined, DEC);
Serial.println(((uas_long_combined, DEC)* 4068) / 710000000);
Serial.println(((uas_lat_combined, DEC)* 4068) / 710000000);```