1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 09:15:38 +03:00
This commit is contained in:
3djc 2019-02-18 11:47:01 +01:00
parent a74d4c6051
commit 77b754fb26
4 changed files with 13 additions and 10 deletions

View file

@ -285,7 +285,7 @@ void runPopupRegister(event_t event)
} }
else if (menuHorizontalPosition == 0) { else if (menuHorizontalPosition == 0) {
// [Enter] pressed // [Enter] pressed
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_REGISTER; reusableBuffer.modelSetup.pxx2.registerStep = REGISTER_RX_NAME_SELECTED;
} }
// no break // no break
@ -1121,23 +1121,25 @@ void menuModelSetup(event_t event)
break; break;
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RANGE_REGISTER: case ITEM_MODEL_INTERNAL_MODULE_PXX2_RANGE_REGISTER:
TRACE("Phase %d Mode : %d", reusableBuffer.modelSetup.pxx2.registerStep, moduleSettings[INTERNAL_MODULE].mode);
lcdDrawTextAlignedLeft(y, INDENT "Module"); lcdDrawTextAlignedLeft(y, INDENT "Module");
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_RANGE, (menuHorizontalPosition==0 ? attr : 0) ); lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_RANGE, (menuHorizontalPosition==0 ? attr : 0) );
lcdDrawText(lcdLastRightPos, y, "[Reg]", (menuHorizontalPosition==1 ? attr : 0) ); lcdDrawText(lcdLastRightPos, y, "[Reg]", (menuHorizontalPosition==1 ? attr : 0) );
if (attr) { if (attr) {
if (moduleSettings[INTERNAL_MODULE].mode == MODULE_MODE_NORMAL && s_editMode > 0) { if (moduleSettings[INTERNAL_MODULE].mode == MODULE_MODE_NORMAL && s_editMode > 0) {
if (menuHorizontalPosition == 1) { if (menuHorizontalPosition == 1 && reusableBuffer.modelSetup.pxx2.registerStep < REGISTER_RX_NAME_SELECTED) {
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_REGISTER;
reusableBuffer.modelSetup.pxx2.registerPopupVerticalPosition = 0; reusableBuffer.modelSetup.pxx2.registerPopupVerticalPosition = 0;
reusableBuffer.modelSetup.pxx2.registerPopupHorizontalPosition = 0; reusableBuffer.modelSetup.pxx2.registerPopupHorizontalPosition = 0;
reusableBuffer.modelSetup.pxx2.registerPopupEditMode = 0; reusableBuffer.modelSetup.pxx2.registerPopupEditMode = 0;
s_editMode = 0; s_editMode = 0;
POPUP_INPUT("", runPopupRegister); POPUP_INPUT("", runPopupRegister);
} }
else { else if (menuHorizontalPosition == 0 && s_editMode > 0) {
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_RANGECHECK; moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_RANGECHECK;
} }
} }
if (s_editMode == 0) { if (s_editMode == 0 && warningText == 0) {
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_NORMAL; moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_NORMAL;
} }
} }

View file

@ -58,10 +58,10 @@ bool Pxx2Pulses::setupRegisterFrame(uint8_t module)
{ {
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_REGISTER); addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_REGISTER);
if (reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_COUNTER_ID_RECEIVED) { if (reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_RX_NAME_SELECTED) {
Pxx2Transport::addByte(0x01); Pxx2Transport::addByte(0x01);
for (uint8_t i=0; i<PXX2_LEN_RX_NAME; i++) { for (uint8_t i=0; i<PXX2_LEN_RX_NAME; i++) {
Pxx2Transport::addByte(0x00); Pxx2Transport::addByte(reusableBuffer.modelSetup.pxx2.registerRxName[i]);
} }
for (uint8_t i=0; i<PXX2_LEN_REGISTRATION_ID; i++) { for (uint8_t i=0; i<PXX2_LEN_REGISTRATION_ID; i++) {
Pxx2Transport::addByte(g_model.modelRegistrationID[i]); Pxx2Transport::addByte(g_model.modelRegistrationID[i]);

View file

@ -43,7 +43,8 @@ const uint8_t CH9TO16_CHANNEL_MAPPING[] = {0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0
enum PXX2RegisterSteps { enum PXX2RegisterSteps {
REGISTER_START, REGISTER_START,
REGISTER_COUNTER_ID_RECEIVED, REGISTER_RX_NAME_RECEIVED,
REGISTER_RX_NAME_SELECTED,
REGISTER_OK REGISTER_OK
}; };

View file

@ -77,12 +77,12 @@ void processRegisterFrame(uint8_t module, uint8_t * frame)
return; return;
} }
if (frame[3] == 0x00) { if (frame[3] == 0x00 && reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_START) {
// RX_NAME follows, we store it for the next step // RX_NAME follows, we store it for the next step
memcpy(reusableBuffer.modelSetup.pxx2.registerRxName, &frame[4], PXX2_LEN_RX_NAME); memcpy(reusableBuffer.modelSetup.pxx2.registerRxName, &frame[4], PXX2_LEN_RX_NAME);
reusableBuffer.modelSetup.pxx2.registerStep = REGISTER_COUNTER_ID_RECEIVED; reusableBuffer.modelSetup.pxx2.registerStep = REGISTER_RX_NAME_RECEIVED;
} }
else if (frame[3] == 0x01) { else if (frame[3] == 0x01 && reusableBuffer.modelSetup.pxx2.registerStep == REGISTER_RX_NAME_SELECTED) {
// RX_NAME + PASSWORD follow, we check they are good // RX_NAME + PASSWORD follow, we check they are good
if (memcmp(&frame[4], reusableBuffer.modelSetup.pxx2.registerRxName, PXX2_LEN_RX_NAME) == 0 && if (memcmp(&frame[4], reusableBuffer.modelSetup.pxx2.registerRxName, PXX2_LEN_RX_NAME) == 0 &&
memcmp(&frame[12], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) { memcmp(&frame[12], g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0) {