B&W LCD receiver ID improvement (#5018)
* - Use @schwabe int/ext matching - Display model name where the receiver in currently used * French colom doesn't seem to be standard (wonder why :D) * Implement showing multiple names * Another way * Improvement suggested by @schwabe (thx m8!) * let's say it's a typo .. * By unanimous vote of participants * Updates based on Bertrtand's comments * Colon right this time ? * Cosmetics
This commit is contained in:
+32
-5
@@ -398,18 +398,45 @@ void applyDefaultTemplate()
|
||||
void checkModelIdUnique(uint8_t index, uint8_t module)
|
||||
{
|
||||
uint8_t modelId = g_model.header.modelId[module];
|
||||
uint8_t additionalOnes = 0;
|
||||
char * name = reusableBuffer.msgbuf.msg;
|
||||
|
||||
memset(reusableBuffer.msgbuf.msg, 0, sizeof(reusableBuffer.msgbuf.msg));
|
||||
|
||||
if (modelId != 0) {
|
||||
for (uint8_t i=0; i<MAX_MODELS; i++) {
|
||||
for (uint8_t i = 0; i < MAX_MODELS; i++) {
|
||||
if (i != index) {
|
||||
for (uint8_t j=0; j<NUM_MODULES; j++) {
|
||||
if (modelId == modelHeaders[i].modelId[j]) {
|
||||
POPUP_WARNING(STR_MODELIDUSED);
|
||||
return;
|
||||
if (modelId == modelHeaders[i].modelId[module]) {
|
||||
if ((WARNING_LINE_LEN - 4 - (name - reusableBuffer.msgbuf.msg)) > (signed)(modelHeaders[i].name[0] ? zlen(modelHeaders[i].name, LEN_MODEL_NAME) : sizeof(TR_MODEL) + 2)) { // you cannot rely exactly on WARNING_LINE_LEN so using WARNING_LINE_LEN-2 (-2 for the ",")
|
||||
if (reusableBuffer.msgbuf.msg[0] != 0) {
|
||||
name = strAppend(name, ", ");
|
||||
}
|
||||
if (modelHeaders[i].name[0] == 0) {
|
||||
name = strAppend(name, STR_MODEL);
|
||||
name = strAppendUnsigned(name+strlen(name),i, 2);
|
||||
}
|
||||
else {
|
||||
name += zchar2str(name, modelHeaders[i].name, LEN_MODEL_NAME);
|
||||
}
|
||||
}
|
||||
else {
|
||||
additionalOnes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (additionalOnes) {
|
||||
name = strAppend(name, " (+");
|
||||
name = strAppendUnsigned(name, additionalOnes);
|
||||
name = strAppend(name, ")");
|
||||
}
|
||||
|
||||
if (reusableBuffer.msgbuf.msg[0] != 0) {
|
||||
POPUP_WARNING(STR_MODELIDUSED);
|
||||
SET_WARNING_INFO(reusableBuffer.msgbuf.msg, sizeof(reusableBuffer.msgbuf.msg), 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1396,7 +1396,9 @@ union ReusableBuffer
|
||||
// 275 bytes
|
||||
struct
|
||||
{
|
||||
#if !defined(CPUARM)
|
||||
char listnames[NUM_BODY_LINES][LEN_MODEL_NAME];
|
||||
#endif
|
||||
#if defined(EEPROM_RLC) && LCD_W < 212
|
||||
uint16_t eepromfree;
|
||||
#endif
|
||||
@@ -1408,6 +1410,10 @@ union ReusableBuffer
|
||||
#endif
|
||||
} modelsel;
|
||||
|
||||
struct {
|
||||
char msg[64];
|
||||
} msgbuf;
|
||||
|
||||
// 103 bytes
|
||||
struct
|
||||
{
|
||||
|
||||
@@ -1030,7 +1030,7 @@
|
||||
#define TR_SET BUTTON("Set")
|
||||
#define TR_TRAINER "Trainer"
|
||||
#define TR_ANTENNAPROBLEM CENTER "TX antenna problem!"
|
||||
#define TR_MODELIDUSED TR("ID already used", "Model ID already used")
|
||||
#define TR_MODELIDUSED TR("ID used in:","Receiver ID used in:")
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
|
||||
@@ -1002,7 +1002,7 @@
|
||||
#define TR_SET "[Set]"
|
||||
#define TR_TRAINER "Trainer"
|
||||
#define TR_ANTENNAPROBLEM CENTER "TX Antenna problem!"
|
||||
#define TR_MODELIDUSED TR("ID already used","Model ID already used")
|
||||
#define TR_MODELIDUSED TR("ID used in:", "Receiver ID used in:")
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
|
||||
@@ -1043,7 +1043,7 @@
|
||||
#define TR_SET BUTTON("Déf")
|
||||
#define TR_TRAINER "Ecolage"
|
||||
#define TR_ANTENNAPROBLEM CENTER "Antenne radio défectueuse!"
|
||||
#define TR_MODELIDUSED TR("ID déjà affecté", "No de modèle déjà utilisé")
|
||||
#define TR_MODELIDUSED TR("ID affecté à :", "No de récepteur utilisé par :")
|
||||
#define TR_MODULE INDENT "Type de module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type tél.", "Type télémesure")
|
||||
#define TR_TELEMETRY_SENSORS "Capteurs"
|
||||
|
||||
@@ -1007,7 +1007,7 @@
|
||||
#define TR_SET "[Set]"
|
||||
#define TR_TRAINER "Trainer"
|
||||
#define TR_ANTENNAPROBLEM CENTER "TX Antenna problem!"
|
||||
#define TR_MODELIDUSED TR("ID already used","Model ID already used")
|
||||
#define TR_MODELIDUSED TR("ID used in:", "Receiver ID used in:")
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
|
||||
Reference in New Issue
Block a user