diff --git a/binaries/AP_FW_1.54.bin b/binaries/AP_FW_1.54.bin index 57257267..e3fc9405 100644 Binary files a/binaries/AP_FW_1.54.bin and b/binaries/AP_FW_1.54.bin differ diff --git a/binaries/AP_FW_Nodisplay.bin b/binaries/AP_FW_Nodisplay.bin index f6f38c6f..9001e059 100644 Binary files a/binaries/AP_FW_Nodisplay.bin and b/binaries/AP_FW_Nodisplay.bin differ diff --git a/binaries/AP_FW_Segmented_UK.bin b/binaries/AP_FW_Segmented_UK.bin index 351b2682..ee612e7b 100644 Binary files a/binaries/AP_FW_Segmented_UK.bin and b/binaries/AP_FW_Segmented_UK.bin differ diff --git a/zbs243_AP_FW/main.c b/zbs243_AP_FW/main.c index c51e3ad8..e0d0fc5f 100755 --- a/zbs243_AP_FW/main.c +++ b/zbs243_AP_FW/main.c @@ -33,6 +33,7 @@ struct espBlockRequest { uint8_t checksum; uint64_t ver; uint8_t blockId; + uint8_t src[8]; } __packed; struct espXferComplete { @@ -47,7 +48,7 @@ struct espAvailDataReq { } __packed; // #define TIMER_TICKS_PER_MS 1333UL -uint16_t __xdata version = 0x0011; +uint16_t __xdata version = 0x0012; #define RAW_PKT_PADDING 2 @@ -321,7 +322,7 @@ void processSerial(uint8_t lastchar) { } // sending data to the ESP -void espBlockRequest(const struct blockRequest *br) { +void espBlockRequest(const struct blockRequest *br, uint8_t* src) { struct espBlockRequest *__xdata ebr = (struct espBlockRequest *)blockbuffer; uartTx('R'); uartTx('Q'); @@ -329,6 +330,7 @@ void espBlockRequest(const struct blockRequest *br) { uartTx('>'); // u64_copy(ebr->ver, br->ver); xMemCopy8(&(ebr->ver), &(br->ver)); + xMemCopy8(&(ebr->src), src); ebr->blockId = br->blockId; addCRC(ebr, sizeof(struct espBlockRequest)); for (uint8_t c = 0; c < sizeof(struct espBlockRequest); c++) { @@ -467,7 +469,7 @@ void processBlockRequest(const uint8_t *buffer, uint8_t forceBlockDownload) { if (requestDataDownload) { serialBypassActive = false; - espBlockRequest(&requestedData); + espBlockRequest(&requestedData, rxHeader->src); nextBlockAttempt = timerGet(); }