Simplification
This commit is contained in:
@@ -126,10 +126,8 @@ enum CurveType {
|
|||||||
|
|
||||||
#if defined(PCBHORUS)
|
#if defined(PCBHORUS)
|
||||||
#define NUM_RECEIVERS 10
|
#define NUM_RECEIVERS 10
|
||||||
#define MAX_RECEIVERS_PER_MODULE 5
|
|
||||||
#else
|
#else
|
||||||
#define NUM_RECEIVERS 4
|
#define NUM_RECEIVERS 4
|
||||||
#define MAX_RECEIVERS_PER_MODULE 4
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBTARANIS) || defined(PCBSKY9X) || defined(PCBHORUS)
|
#if defined(PCBTARANIS) || defined(PCBSKY9X) || defined(PCBHORUS)
|
||||||
|
|||||||
+9
-12
@@ -416,10 +416,7 @@ PACK(struct TrainerModuleData {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
PACK(struct ReceiverData {
|
PACK(struct ReceiverData {
|
||||||
uint8_t used:1;
|
char name[PXX2_LEN_RX_NAME];
|
||||||
uint8_t telemetry:1;
|
|
||||||
uint8_t dirty:6;
|
|
||||||
char name[PXX2_LEN_RX_NAME];
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -930,25 +927,25 @@ static inline void check_struct()
|
|||||||
|
|
||||||
#if defined(PCBXLITES)
|
#if defined(PCBXLITES)
|
||||||
CHKSIZE(RadioData, 858);
|
CHKSIZE(RadioData, 858);
|
||||||
CHKSIZE(ModelData, 5940);
|
CHKSIZE(ModelData, 5936);
|
||||||
#elif defined(PCBXLITE)
|
#elif defined(PCBXLITE)
|
||||||
CHKSIZE(RadioData, 852);
|
CHKSIZE(RadioData, 852);
|
||||||
CHKSIZE(ModelData, 5940);
|
CHKSIZE(ModelData, 5936);
|
||||||
#elif defined(PCBX7)
|
#elif defined(PCBX7)
|
||||||
CHKSIZE(RadioData, 858);
|
CHKSIZE(RadioData, 858);
|
||||||
CHKSIZE(ModelData, 5940);
|
CHKSIZE(ModelData, 5936);
|
||||||
#elif defined(PCBX9E)
|
#elif defined(PCBX9E)
|
||||||
CHKSIZE(RadioData, 960);
|
CHKSIZE(RadioData, 960);
|
||||||
CHKSIZE(ModelData, 6435);
|
CHKSIZE(ModelData, 6431);
|
||||||
#elif defined(PCBX9D)
|
#elif defined(PCBX9D) || defined(PCBX9DP)
|
||||||
CHKSIZE(RadioData, 880);
|
CHKSIZE(RadioData, 880);
|
||||||
CHKSIZE(ModelData, 6422);
|
CHKSIZE(ModelData, 6418);
|
||||||
#elif defined(PCBSKY9X)
|
#elif defined(PCBSKY9X)
|
||||||
CHKSIZE(RadioData, 735);
|
CHKSIZE(RadioData, 735);
|
||||||
CHKSIZE(ModelData, 5101);
|
CHKSIZE(ModelData, 5097);
|
||||||
#elif defined(PCBHORUS)
|
#elif defined(PCBHORUS)
|
||||||
CHKSIZE(RadioData, 855);
|
CHKSIZE(RadioData, 855);
|
||||||
CHKSIZE(ModelData, 9771);
|
CHKSIZE(ModelData, 9761);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef CHKSIZE
|
#undef CHKSIZE
|
||||||
|
|||||||
@@ -400,9 +400,23 @@ inline bool isDefaultModelRegistrationID()
|
|||||||
|
|
||||||
uint8_t findEmptyReceiverSlot()
|
uint8_t findEmptyReceiverSlot()
|
||||||
{
|
{
|
||||||
for (uint8_t slot=0; slot<NUM_RECEIVERS; slot++) {
|
for (uint8_t slot = 1; slot <= NUM_RECEIVERS; slot++) {
|
||||||
if (!g_model.receiverData[slot].used) {
|
bool used = false;
|
||||||
return slot + 1;
|
for (uint8_t module = 0; module < NUM_MODULES; module++) {
|
||||||
|
if (isModulePXX2(module)) {
|
||||||
|
for (uint8_t receiver = 0; receiver < PXX2_MAX_RECEIVERS_PER_MODULE; receiver++) {
|
||||||
|
if (g_model.moduleData[module].pxx2.getReceiverSlot(receiver) == slot) {
|
||||||
|
used = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (used) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!used) {
|
||||||
|
return slot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1273,7 +1287,7 @@ void menuModelSetup(event_t event)
|
|||||||
if (receiverSlot) {
|
if (receiverSlot) {
|
||||||
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DEL_BUTTON, attr);
|
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DEL_BUTTON, attr);
|
||||||
if (attr && s_editMode > 0) {
|
if (attr && s_editMode > 0) {
|
||||||
g_model.moduleData[moduleIdx].pxx2.receivers = (g_model.moduleData[moduleIdx].pxx2.receivers & BF_MASK<uint16_t>(0, receiverIdx * 3)) | ((g_model.moduleData[moduleIdx].pxx2.receivers & BF_MASK<uint16_t>((receiverIdx + 1) * 3, (MAX_RECEIVERS_PER_MODULE - 1 - receiverIdx) * 3)) >> 3);
|
g_model.moduleData[moduleIdx].pxx2.receivers = (g_model.moduleData[moduleIdx].pxx2.receivers & BF_MASK<uint16_t>(0, receiverIdx * 3)) | ((g_model.moduleData[moduleIdx].pxx2.receivers & BF_MASK<uint16_t>((receiverIdx + 1) * 3, (PXX2_MAX_RECEIVERS_PER_MODULE - 1 - receiverIdx) * 3)) >> 3);
|
||||||
memclear(&g_model.receiverData[receiverSlot - 1], sizeof(ReceiverData));
|
memclear(&g_model.receiverData[receiverSlot - 1], sizeof(ReceiverData));
|
||||||
s_editMode = 0;
|
s_editMode = 0;
|
||||||
killEvents(event);
|
killEvents(event);
|
||||||
@@ -1288,8 +1302,6 @@ void menuModelSetup(event_t event)
|
|||||||
uint8_t slot = findEmptyReceiverSlot();
|
uint8_t slot = findEmptyReceiverSlot();
|
||||||
if (slot > 0) {
|
if (slot > 0) {
|
||||||
g_model.moduleData[moduleIdx].pxx2.receivers |= (slot << (receiverIdx * 3));
|
g_model.moduleData[moduleIdx].pxx2.receivers |= (slot << (receiverIdx * 3));
|
||||||
--slot;
|
|
||||||
g_model.receiverData[slot].used = 1;
|
|
||||||
storageDirty(EE_MODEL);
|
storageDirty(EE_MODEL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,13 +67,13 @@ void menuRadioModulesVersion(event_t event)
|
|||||||
|
|
||||||
if (isModulePXX2(INTERNAL_MODULE) && IS_INTERNAL_MODULE_ON()) {
|
if (isModulePXX2(INTERNAL_MODULE) && IS_INTERNAL_MODULE_ON()) {
|
||||||
reusableBuffer.hardwareAndSettings.modules[INTERNAL_MODULE].current = PXX2_HW_INFO_TX_ID;
|
reusableBuffer.hardwareAndSettings.modules[INTERNAL_MODULE].current = PXX2_HW_INFO_TX_ID;
|
||||||
reusableBuffer.hardwareAndSettings.modules[INTERNAL_MODULE].maximum = MAX_RECEIVERS_PER_MODULE - 1;
|
reusableBuffer.hardwareAndSettings.modules[INTERNAL_MODULE].maximum = PXX2_MAX_RECEIVERS_PER_MODULE - 1;
|
||||||
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_GET_HARDWARE_INFO;
|
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_GET_HARDWARE_INFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isModulePXX2(EXTERNAL_MODULE) && IS_EXTERNAL_MODULE_ON()) {
|
if (isModulePXX2(EXTERNAL_MODULE) && IS_EXTERNAL_MODULE_ON()) {
|
||||||
reusableBuffer.hardwareAndSettings.modules[EXTERNAL_MODULE].current = PXX2_HW_INFO_TX_ID;
|
reusableBuffer.hardwareAndSettings.modules[EXTERNAL_MODULE].current = PXX2_HW_INFO_TX_ID;
|
||||||
reusableBuffer.hardwareAndSettings.modules[EXTERNAL_MODULE].maximum = MAX_RECEIVERS_PER_MODULE - 1;
|
reusableBuffer.hardwareAndSettings.modules[EXTERNAL_MODULE].maximum = PXX2_MAX_RECEIVERS_PER_MODULE - 1;
|
||||||
moduleSettings[EXTERNAL_MODULE].mode = MODULE_MODE_GET_HARDWARE_INFO;
|
moduleSettings[EXTERNAL_MODULE].mode = MODULE_MODE_GET_HARDWARE_INFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user