Fixed registering/binding

This commit is contained in:
Raphael Coeffic
2021-11-06 15:59:34 +01:00
parent 3588c8d963
commit eb9425678f
5 changed files with 24 additions and 9 deletions
+19 -7
View File
@@ -88,7 +88,7 @@ void BindWaitDialog::checkEvents()
removePXX2ReceiverIfEmpty(moduleIdx, receiverIdx);
deleteLater();
if (bindInfo.step == BIND_OK) {
new MessageDialog(parent, STR_BIND, STR_BIND_OK);
POPUP_INFORMATION(STR_REG_OK);
} else {
// TODO: display error???
}
@@ -278,17 +278,17 @@ void RegisterDialog::start()
void RegisterDialog::checkEvents()
{
if (!rxName && reusableBuffer.moduleSetup.pxx2.registerStep >=
REGISTER_RX_NAME_RECEIVED) {
auto& modSetup = getPXX2ModuleSetupBuffer();
if (!rxName && modSetup.registerStep >= REGISTER_RX_NAME_RECEIVED) {
rect_t rect = waiting->getRect();
waiting->deleteLater();
rxName = new ModelTextEdit(&content->form, rect,
reusableBuffer.moduleSetup.pxx2.registerRxName,
rxName = new ModelTextEdit(&content->form, rect, modSetup.registerRxName,
PXX2_LEN_RX_NAME);
rect = exitButton->getRect();
auto okButton = new TextButton(&content->form, rect, "OK", [=]() -> int8_t {
reusableBuffer.moduleSetup.pxx2.registerStep = REGISTER_RX_NAME_SELECTED;
auto& modSetup = getPXX2ModuleSetupBuffer();
modSetup.registerStep = REGISTER_RX_NAME_SELECTED;
return 0;
});
exitButton->setLeft(left() + rect.w + 10);
@@ -296,10 +296,22 @@ void RegisterDialog::checkEvents()
FormField::link(rxName, okButton);
FormField::link(okButton, exitButton);
okButton->setFocus(SET_FOCUS_DEFAULT);
} else if (reusableBuffer.moduleSetup.pxx2.registerStep == REGISTER_OK) {
} else if (modSetup.registerStep == REGISTER_OK) {
deleteLater();
POPUP_INFORMATION(STR_REG_OK);
}
Dialog::checkEvents();
}
#if defined(HARDWARE_KEYS)
void RegisterDialog::onEvent(event_t event)
{
TRACE_WINDOWS("%s received event 0x%X", getWindowDebugString().c_str(),
event);
if (event == EVT_KEY_BREAK(KEY_EXIT)) {
deleteLater();
}
}
#endif
+3
View File
@@ -75,6 +75,9 @@ class RegisterDialog : public Dialog
void start();
void checkEvents() override;
#if defined(HARDWARE_KEYS)
void onEvent(event_t event) override;
#endif
protected:
uint8_t moduleIdx;
-1
View File
@@ -1163,7 +1163,6 @@ extern ReusableBuffer reusableBuffer;
uint8_t zlen(const char *str, uint8_t size);
bool zexist(const char *str, uint8_t size);
unsigned int effectiveLen(const char * str, unsigned int size);
char * strcat_zchar(char *dest, const char *name, uint8_t size, const char spaceSym = 0, const char *defaultName=nullptr, uint8_t defaultNameSize=0, uint8_t defaultIdx=0);
#define strcatFlightmodeName(dest, idx) strcat_zchar(dest, g_model.flightModeData[idx].name, LEN_FLIGHT_MODE_NAME, 0, STR_FM, PSIZE(TR_FM), idx+1)
#if defined(EEPROM)
+1
View File
@@ -51,6 +51,7 @@ int8_t char2zchar(char c);
void str2zchar(char *dest, const char *src, int size);
int zchar2str(char *dest, const char *src, int size);
int strnlen(const char *src, int max_size);
unsigned int effectiveLen(const char * str, unsigned int size);
char *strAppend(char *dest, const char *source, int len = 0);
char *strAppendUnsigned(char *dest, uint32_t value, uint8_t digits = 0,
+1 -1
View File
@@ -122,7 +122,7 @@ void processRegisterFrame(uint8_t module, const uint8_t * frame)
case 0x00:
if (mod.registerStep == REGISTER_INIT) {
// RX_NAME follows, we store it for the next step
str2zchar(mod.registerRxName, (const char *)&frame[4], PXX2_LEN_RX_NAME);
memcpy(mod.registerRxName, (const char *)&frame[4], PXX2_LEN_RX_NAME);
mod.registerLoopIndex = frame[12];
mod.registerStep = REGISTER_RX_NAME_RECEIVED;
#if defined(COLORLCD)