From 5acf351d0c6a66a325d46fbbfca7a5c456134f16 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 6 Feb 2019 12:08:38 +0100 Subject: [PATCH 1/3] BIND should be OK now --- radio/src/opentx.h | 7 +++++-- radio/src/pulses/pxx2.cpp | 18 ++++++++++++------ radio/src/pulses/pxx2.h | 19 +++++++++++++++---- radio/src/telemetry/telemetry.cpp | 22 +++++++++++++++------- 4 files changed, 47 insertions(+), 19 deletions(-) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 5e6b68a0b..c1b913480 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1096,6 +1096,7 @@ void opentxResume(); #else #define SD_SCREEN_FILE_LENGTH 64 #endif + union ReusableBuffer { // ARM 334 bytes @@ -1116,8 +1117,10 @@ union ReusableBuffer struct { char msg[64]; uint8_t r9mPower; - char pxx2_candidate_receivers[5][8]; - uint8_t pxx2_candidate_receivers_count; + uint8_t pxx2_register_or_bind_step; + char pxx2_bind_candidate_receivers[5][8]; + uint8_t pxx2_bind_candidate_receivers_count; + uint8_t pxx2_bind_receiver_index; } modelsetup; // 103 bytes diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index a46c85051..f313ccad8 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -57,11 +57,9 @@ void Pxx2Pulses::setupChannelsFrame(uint8_t module) void Pxx2Pulses::setupRegisterFrame(uint8_t module) { - unsigned counter = moduleSettings[module].counter; - addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_REGISTER); - if (counter == REGISTER_COUNTER_ID_RECEIVED) { + if (reusableBuffer.modelsetup.pxx2_register_or_bind_step == REGISTER_COUNTER_ID_RECEIVED) { Pxx2Transport::addByte(0x01); for (uint8_t i=0; i { public: diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 2f60affff..acff000b1 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -76,12 +76,13 @@ void processRegisterFrame(uint8_t module, uint8_t * frame) { if (frame[3] == 0x00) { // RX_ID follows, we discard it for now - moduleSettings[module].counter = REGISTER_COUNTER_ID_RECEIVED; + reusableBuffer.modelsetup.pxx2_register_or_bind_step = REGISTER_COUNTER_ID_RECEIVED; } else if (frame[3] == 0x01) { // PASSWORD follows, we check it is good if (memcmp(&frame[4], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) { - moduleSettings[module].counter = REGISTER_COUNTER_PASSWORD_RECEIVED; + reusableBuffer.modelsetup.pxx2_register_or_bind_step = REGISTER_OK; + moduleSettings[module].mode = MODULE_MODE_NORMAL; } } } @@ -90,15 +91,22 @@ void processBindFrame(uint8_t module, uint8_t * frame) { if (frame[3] == 0x00) { bool found = false; - for (uint8_t i=0; i Date: Wed, 6 Feb 2019 12:24:12 +0100 Subject: [PATCH 2/3] Compilation fix --- radio/src/gui/128x64/model_setup.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 090977c48..a8be29e22 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1013,9 +1013,8 @@ void menuModelSetup(event_t event) #if defined(PCBTARANIS) case ITEM_MODEL_REGISTRATION_ID: { - lcdDrawTextAlignedLeft(y, "Regis. ID"); - for(uint8_t pos=0; pos0) { @@ -1049,11 +1045,9 @@ void menuModelSetup(event_t event) if (attr && s_editMode==0) { moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_NORMAL; } - } break; case ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER: - { lcdDrawTextAlignedLeft(y, "Receiver"); lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, "[Add]", attr); if (attr && s_editMode>0) { @@ -1067,8 +1061,7 @@ void menuModelSetup(event_t event) } s_editMode = 0; } - } - break; + break; case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_NUMBER: case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER: @@ -1082,7 +1075,7 @@ void menuModelSetup(event_t event) case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_RANGE: case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_RANGE: { - //TODO have a proper channel assignement screen, section bellow is just for tests + // TODO have a proper channel assignement screen, section bellow is just for tests uint8_t useUpperChannels; uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k); From de77fa07e5ba89ae0abf70d9007464a28140a85a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 6 Feb 2019 12:28:52 +0100 Subject: [PATCH 3/3] Cosmetics --- radio/src/gui/128x64/model_setup.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index a8be29e22..a9253503c 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -283,7 +283,7 @@ void menuModelSetup(event_t event) POT_WARN_ITEMS(), // Pot warning NUM_STICKS + NUM_POTS + NUM_SLIDERS + NUM_ROTARY_ENCODERS - 1, // Center beeps 0, // Global functions - 4, // Registration ID + PXX2_LEN_REGISTRATION_ID - 1, // Registration ID LABEL(InternalModule), INTERNAL_MODULE_MODE_ROWS, IF_INTERNAL_MODULE_ON((uint8_t)0), // Model Number @@ -1017,7 +1017,7 @@ void menuModelSetup(event_t event) for (uint8_t pos=0; pos