From 4755899d2484e0aa5ae8eb274dcc3280d60587dd Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 12 Feb 2019 14:01:59 +0100 Subject: [PATCH] REGISTER fixed (no 0 hardcoded) --- radio/src/opentx.h | 1 + radio/src/telemetry/telemetry.cpp | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 4fca02dee..0ee179743 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1118,6 +1118,7 @@ union ReusableBuffer char msg[64]; uint8_t r9mPower; uint8_t pxx2_register_or_bind_step; + uint8_t pxx2_register_rx_id[PXX2_LEN_RX_ID]; char pxx2_bind_candidate_receivers_ids[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_ID]; char pxx2_bind_candidate_receivers_names[PXX2_MAX_RECEIVERS_PER_MODULE][3*PXX2_LEN_RX_ID+1]; uint8_t pxx2_bind_candidate_receivers_count; diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index ca6b29196..57adbc6e2 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -78,16 +78,14 @@ void processRegisterFrame(uint8_t module, uint8_t * frame) } if (frame[3] == 0x00) { - // RX_ID follows, we discard it for now + // RX_ID follows, we store it for the next step + memcpy(reusableBuffer.modelsetup.pxx2_register_rx_id, &frame[4], PXX2_LEN_RX_ID); reusableBuffer.modelsetup.pxx2_register_or_bind_step = REGISTER_COUNTER_ID_RECEIVED; } else if (frame[3] == 0x01) { - // RX_ID follows, we check it is good - if (1) { - - } - // PASSWORD follows, we check it is good - if (memcmp(&frame[12], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) { + // RX_ID + PASSWORD follow, we check they are good + if (memcmp(&frame[4], reusableBuffer.modelsetup.pxx2_register_rx_id, PXX2_LEN_RX_ID) == 0 && + memcmp(&frame[12], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) { reusableBuffer.modelsetup.pxx2_register_or_bind_step = REGISTER_OK; moduleSettings[module].mode = MODULE_MODE_NORMAL; POPUP_INFORMATION(STR_REG_OK);