From 2559a84a24a75725cd9cb97e913ea9315456417b Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 21 Feb 2019 13:17:00 +0100 Subject: [PATCH] Bind and registration ok (hoppefully...) --- radio/src/opentx.cpp | 2 +- radio/src/opentx.h | 1 + radio/src/pulses/pxx2.cpp | 6 +++--- radio/src/strhelpers.cpp | 10 ++++++++++ radio/src/telemetry/telemetry.cpp | 16 +++------------- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 4b416ac11..02e7fcfca 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -337,7 +337,7 @@ void defaultInputs() expo->mode = 3; // TODO constant #if defined(TRANSLATIONS_CZ) for (int c=0; c<4; c++) { - g_model.inputNames[i][c] = char2idx(STR_INPUTNAMES[1+4*(stick_index-1)+c]); + g_model.inputNames[i][c] = char2zchar(STR_INPUTNAMES[1+4*(stick_index-1)+c]); } #else for (int c=0; c<3; c++) { diff --git a/radio/src/opentx.h b/radio/src/opentx.h index bc7a7e90e..a5a9f388a 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -435,6 +435,7 @@ char zchar2char(int8_t idx); int8_t char2zchar(char c); void str2zchar(char *dest, const char *src, int size); int zchar2str(char *dest, const char *src, int size); +int cmpStrWithZchar(char * charString, char * zcharString, int size); #include "keys.h" #include "pwr.h" diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index afe9f12b8..19203d594 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -61,10 +61,10 @@ bool Pxx2Pulses::setupRegisterFrame(uint8_t module) if (reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_RX_NAME_SELECTED) { Pxx2Transport::addByte(0x01); for (uint8_t i=0; i 0) { diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 9880279f8..5de62bb3e 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -79,13 +79,13 @@ void processRegisterFrame(uint8_t module, uint8_t * frame) if (frame[3] == 0x00 && reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_START) { // RX_NAME follows, we store it for the next step - memcpy(reusableBuffer.modelSetup.pxx2.registerRxName, &frame[4], PXX2_LEN_RX_NAME); + str2zchar(reusableBuffer.modelSetup.pxx2.registerRxName, (const char *)&frame[4], PXX2_LEN_RX_NAME); reusableBuffer.modelSetup.pxx2.registerStep = REGISTER_RX_NAME_RECEIVED; } else if (frame[3] == 0x01 && reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_RX_NAME_SELECTED) { // RX_NAME + PASSWORD follow, we check they are good - if (memcmp(&frame[4], reusableBuffer.modelSetup.pxx2.registerRxName, PXX2_LEN_RX_NAME) == 0 && - memcmp(&frame[12], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) { + if (cmpStrWithZchar((char *) &frame[4], reusableBuffer.modelSetup.pxx2.registerRxName, PXX2_LEN_RX_NAME) == 0 && + cmpStrWithZchar((char *)&frame[12], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) { reusableBuffer.modelSetup.pxx2.registerStep = REGISTER_OK; moduleSettings[module].mode = MODULE_MODE_NORMAL; POPUP_INFORMATION(STR_REG_OK); @@ -109,16 +109,6 @@ void processBindFrame(uint8_t module, uint8_t * frame) } if (!found && reusableBuffer.modelSetup.pxx2.bindCandidateReceiversCount < PXX2_MAX_RECEIVERS_PER_MODULE) { memcpy(reusableBuffer.modelSetup.pxx2.bindCandidateReceiversNames[reusableBuffer.modelSetup.pxx2.bindCandidateReceiversCount], &frame[4], PXX2_LEN_RX_NAME); - /*char * c = reusableBuffer.modelSetup.pxx2.bindCandidateReceiversNames[reusableBuffer.modelSetup.pxx2.bindCandidateReceiversCount]; - for (uint8_t i=0; i> 4); - *c++ = (quartet >= 10 ? quartet + 'A' - 10 : quartet + '0'); - quartet = (byte & 0x0f); - *c++ = (quartet >= 10 ? quartet + 'A' - 10 : quartet + '0'); - *c++ = ' '; - } - *c = '\0';*/ ++reusableBuffer.modelSetup.pxx2.bindCandidateReceiversCount; reusableBuffer.modelSetup.pxx2.bindStep = BIND_RX_NAME_RECEIVED; }