1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 00:35:18 +03:00
This commit is contained in:
Bertrand Songis 2019-02-06 16:24:45 +01:00
parent 8fafb0ebf6
commit f4e555be75
4 changed files with 7 additions and 7 deletions

View file

@ -226,7 +226,7 @@ enum MenuModelSetupItems {
void onPXX2BindMenu(const char * result) void onPXX2BindMenu(const char * result)
{ {
reusableBuffer.modelsetup.pxx2_bind_receiver_index = (result - reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_names[0]) / sizeof(reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_names[0]); reusableBuffer.modelsetup.pxx2_bind_selected_receiver_index = (result - reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_names[0]) / sizeof(reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_names[0]);
reusableBuffer.modelsetup.pxx2_register_or_bind_step = BIND_RX_ID_SELECTED; reusableBuffer.modelsetup.pxx2_register_or_bind_step = BIND_RX_ID_SELECTED;
TRACE("RECEIVER SELECTED : %d", reusableBuffer.modelsetup.pxx2_bind_receiver_index); TRACE("RECEIVER SELECTED : %d", reusableBuffer.modelsetup.pxx2_bind_receiver_index);
} }
@ -1134,7 +1134,6 @@ void menuModelSetup(event_t event)
if (menuHorizontalPosition == 0) { if (menuHorizontalPosition == 0) {
if (event == EVT_KEY_BREAK(KEY_ENTER)) { if (event == EVT_KEY_BREAK(KEY_ENTER)) {
reusableBuffer.modelsetup.pxx2_register_or_bind_step = BIND_START; reusableBuffer.modelsetup.pxx2_register_or_bind_step = BIND_START;
reusableBuffer.modelsetup.pxx2_bind_receiver_index = receiverIdx;
reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_count = 0; reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_count = 0;
moduleSettings[INTERNAL_MODULE].mode ^= MODULE_MODE_BIND; moduleSettings[INTERNAL_MODULE].mode ^= MODULE_MODE_BIND;
} }
@ -1151,8 +1150,8 @@ void menuModelSetup(event_t event)
else { else {
s_editMode = 0; s_editMode = 0;
} }
if(reusableBuffer.modelsetup.pxx2_register_or_bind_step == BIND_OK) { if (reusableBuffer.modelsetup.pxx2_register_or_bind_step == BIND_OK) {
memcpy(g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[receiverIdx].rxID, reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_ids[reusableBuffer.modelsetup.pxx2_bind_receiver_index], PXX2_LEN_RX_ID); memcpy(g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[receiverIdx].rxID, reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_ids[reusableBuffer.modelsetup.pxx2_bind_selected_receiver_index], PXX2_LEN_RX_ID);
} }
} }
else if (menuHorizontalPosition == 1 && s_editMode > 0) { else if (menuHorizontalPosition == 1 && s_editMode > 0) {

View file

@ -1121,7 +1121,7 @@ union ReusableBuffer
char pxx2_bind_candidate_receivers_ids[PXX2_MAX_RECEIVERS_PER_MODULE][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]; char pxx2_bind_candidate_receivers_names[PXX2_MAX_RECEIVERS_PER_MODULE][3*PXX2_LEN_RX_ID+1];
uint8_t pxx2_bind_candidate_receivers_count; uint8_t pxx2_bind_candidate_receivers_count;
uint8_t pxx2_bind_receiver_index; uint8_t pxx2_bind_selected_receiver_index;
} modelsetup; } modelsetup;
// 103 bytes // 103 bytes

View file

@ -77,8 +77,9 @@ void Pxx2Pulses::setupBindFrame(uint8_t module)
if (reusableBuffer.modelsetup.pxx2_register_or_bind_step == BIND_RX_ID_SELECTED) { if (reusableBuffer.modelsetup.pxx2_register_or_bind_step == BIND_RX_ID_SELECTED) {
Pxx2Transport::addByte(0x01); Pxx2Transport::addByte(0x01);
for (uint8_t i=0; i<PXX2_LEN_RX_ID; i++) { for (uint8_t i=0; i<PXX2_LEN_RX_ID; i++) {
Pxx2Transport::addByte(g_model.moduleData[module].pxx2.receivers[reusableBuffer.modelsetup.pxx2_bind_receiver_index].rxID[i]); Pxx2Transport::addByte(reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_ids[reusableBuffer.modelsetup.pxx2_bind_selected_receiver_index][i]);
} }
Pxx2Transport::addByte(0x00);
} }
else { else {
Pxx2Transport::addByte(0x00); Pxx2Transport::addByte(0x00);

View file

@ -114,7 +114,7 @@ void processBindFrame(uint8_t module, uint8_t * frame)
} }
} }
else if (frame[3] == 0x01) { else if (frame[3] == 0x01) {
if (memcmp(reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_ids[reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_count], &frame[4], PXX2_LEN_RX_ID) == 0) { if (memcmp(reusableBuffer.modelsetup.pxx2_bind_candidate_receivers_ids[reusableBuffer.modelsetup.pxx2_bind_selected_receiver_index], &frame[4], PXX2_LEN_RX_ID) == 0) {
reusableBuffer.modelsetup.pxx2_register_or_bind_step = BIND_OK; reusableBuffer.modelsetup.pxx2_register_or_bind_step = BIND_OK;
moduleSettings[module].mode = MODULE_MODE_NORMAL; moduleSettings[module].mode = MODULE_MODE_NORMAL;
} }