diff --git a/Firmware/LoRaSerial/LoRaSerial.ino b/Firmware/LoRaSerial/LoRaSerial.ino index eb33984f..82561953 100644 --- a/Firmware/LoRaSerial/LoRaSerial.ino +++ b/Firmware/LoRaSerial/LoRaSerial.ino @@ -64,7 +64,7 @@ const int FIRMWARE_VERSION_MINOR = 0; #define UNIQUE_ID_BYTES 16 //Number of bytes in the unique ID //Frame lengths -#define MP_HEARTBEAT_BYTES 1 //Number of data bytes in the MP_HEARTBEAT frame +#define MP_HEARTBEAT_BYTES (sizeof(uint8_t) + sizeof(unsigned long)) //Number of data bytes in the MP_HEARTBEAT frame #define P2P_FIND_PARTNER_BYTES sizeof(unsigned long) //Number of data bytes in the FIND_PARTNER frame #define P2P_SYNC_CLOCKS_BYTES (sizeof(uint8_t) + sizeof(unsigned long)) //Number of data bytes in the SYNC_CLOCKS frame #define P2P_ZERO_ACKS_BYTES sizeof(unsigned long) //Number of data bytes in the ZERO_ACKS frame diff --git a/Firmware/LoRaSerial/Radio.ino b/Firmware/LoRaSerial/Radio.ino index 0b5e29b8..66d8d1df 100644 --- a/Firmware/LoRaSerial/Radio.ino +++ b/Firmware/LoRaSerial/Radio.ino @@ -931,8 +931,7 @@ bool xmitDatagramP2PSyncClocks() radioCallHistory[RADIO_CALL_xmitDatagramP2PSyncClocks] = currentMillis; startOfData = endOfTxData; - memcpy(endOfTxData, &channelNumber, sizeof(channelNumber)); - endOfTxData += sizeof(channelNumber); + *endOfTxData++ = channelNumber; memcpy(endOfTxData, ¤tMillis, sizeof(currentMillis)); endOfTxData += sizeof(unsigned long); @@ -1149,18 +1148,20 @@ bool xmitDatagramMpHeartbeat() radioCallHistory[RADIO_CALL_xmitDatagramMpHeartbeat] = millis(); startOfData = endOfTxData; - memcpy(endOfTxData, &channelNumber, sizeof(channelNumber)); - endOfTxData += sizeof(channelNumber); + *endOfTxData++ = channelNumber; + + memcpy(endOfTxData, ¤tMillis, sizeof(currentMillis)); + endOfTxData += sizeof(unsigned long); /* - endOfTxData ---. - | - V - +----------+---------+----------+------------+---------+----------+ - | Optional | | Optional | Optional | Channel | | - | NET ID | Control | C-Timer | SF6 Length | Number | Trailer | - | 8 bits | 8 bits | 2 bytes | 8 bits | 1 byte | n Bytes | - +----------+---------+----------+------------+---------+----------+ + endOfTxData ---. + | + V + +----------+---------+----------+------------+---------+---------+----------+ + | Optional | | Optional | Optional | Channel | | | + | NET ID | Control | C-Timer | SF6 Length | Number | Millis | Trailer | + | 8 bits | 8 bits | 2 bytes | 8 bits | 1 byte | 4 bytes | n Bytes | + +----------+---------+----------+------------+---------+---------+----------+ */ //Verify the data length diff --git a/Firmware/LoRaSerial/States.ino b/Firmware/LoRaSerial/States.ino index 071b3a5d..682900ad 100644 --- a/Firmware/LoRaSerial/States.ino +++ b/Firmware/LoRaSerial/States.ino @@ -1305,7 +1305,6 @@ void updateRadioState() startChannelTimer(); channelTimerStart -= settings.maxDwellTime; syncChannelTimer(txSyncClocksUsec); - triggerEvent(TRIGGER_RX_SYNC_CLOCKS); if (settings.debugSync) {