1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-19 14:25:11 +03:00

Simplification

This commit is contained in:
Bertrand Songis 2019-03-26 16:11:00 +01:00
parent 506fc8039f
commit a11dbdf2cb
4 changed files with 23 additions and 32 deletions

View file

@ -143,7 +143,7 @@ void menuRadioModulesVersion(event_t event)
// Module model
if (y >= MENU_BODY_TOP && y < MENU_BODY_BOTTOM) {
lcdDrawText(INDENT_WIDTH, y, "Model");
uint8_t modelId = reusableBuffer.hardware.modules[module].modelID;
uint8_t modelId = reusableBuffer.hardware.modules[module].information.modelID;
if (modelId >= DIM(modulesModels))
modelId = 0;
lcdDrawText(12 * FW, y, modulesModels[modelId]);
@ -153,19 +153,19 @@ void menuRadioModulesVersion(event_t event)
// Module version
if (y >= MENU_BODY_TOP && y < MENU_BODY_BOTTOM) {
lcdDrawText(INDENT_WIDTH, y, "Version");
if (reusableBuffer.hardware.modules[module].hwVersion.data) {
drawPXX2FullVersion(12 * FW, y, reusableBuffer.hardware.modules[module].hwVersion, reusableBuffer.hardware.modules[module].swVersion);
if (reusableBuffer.hardware.modules[module].information.modelID) {
drawPXX2FullVersion(12 * FW, y, reusableBuffer.hardware.modules[module].information.hwVersion, reusableBuffer.hardware.modules[module].information.swVersion);
}
}
y += FH;
for (uint8_t receiver=0; receiver<PXX2_MAX_RECEIVERS_PER_MODULE; receiver++) {
if (reusableBuffer.hardware.modules[module].receivers[receiver].modelID) {
if (reusableBuffer.hardware.modules[module].receivers[receiver].information.modelID) {
// Receiver model
if (y >= MENU_BODY_TOP && y < MENU_BODY_BOTTOM) {
lcdDrawText(INDENT_WIDTH, y, "Receiver");
lcdDrawNumber(lcdLastRightPos + 2, y, receiver + 1);
uint8_t modelId = reusableBuffer.hardware.modules[module].receivers[receiver].modelID;
uint8_t modelId = reusableBuffer.hardware.modules[module].receivers[receiver].information.modelID;
if (modelId >= DIM(receiversModels))
modelId = 0;
lcdDrawText(12 * FW, y, receiversModels[modelId]);
@ -174,7 +174,7 @@ void menuRadioModulesVersion(event_t event)
// Receiver version
if (y >= MENU_BODY_TOP && y < MENU_BODY_BOTTOM) {
drawPXX2FullVersion(12 * FW, y, reusableBuffer.hardware.modules[module].receivers[receiver].hwVersion, reusableBuffer.hardware.modules[module].receivers[receiver].swVersion);
drawPXX2FullVersion(12 * FW, y, reusableBuffer.hardware.modules[module].receivers[receiver].information.hwVersion, reusableBuffer.hardware.modules[module].receivers[receiver].information.swVersion);
}
y += FH;
}

View file

@ -1190,15 +1190,9 @@ union ReusableBuffer
struct {
int8_t step;
uint8_t timeout;
uint8_t modelID;
PXX2Version hwVersion;
PXX2Version swVersion;
uint8_t variant;
PXX2HardwareInformation information;
struct {
uint8_t modelID;
PXX2Version hwVersion;
PXX2Version swVersion;
uint8_t variant;
PXX2HardwareInformation information;
} receivers[PXX2_MAX_RECEIVERS_PER_MODULE];
} modules[NUM_MODULES];
uint32_t updateTime;

View file

@ -203,12 +203,17 @@ class Pxx2Pulses: public PxxPulses<Pxx2Transport> {
union PXX2Version
{
uint16_t data;
struct {
uint8_t major;
uint8_t minor:4;
uint8_t revision:4;
};
uint8_t major;
uint8_t minor:4;
uint8_t revision:4;
};
struct PXX2HardwareInformation
{
uint8_t modelID;
PXX2Version hwVersion;
PXX2Version swVersion;
uint8_t variant;
};
#endif

View file

@ -50,18 +50,10 @@ void processGetHardwareInfoFrame(uint8_t module, uint8_t * frame)
}
uint8_t index = frame[3];
if (index == 0xFF) {
reusableBuffer.hardware.modules[module].modelID = frame[4];
reusableBuffer.hardware.modules[module].hwVersion.data = *((uint16_t *)&frame[5]);
reusableBuffer.hardware.modules[module].swVersion.data = *((uint16_t *)&frame[7]);
reusableBuffer.hardware.modules[module].variant = frame[9];
}
else if (index < PXX2_MAX_RECEIVERS_PER_MODULE) {
reusableBuffer.hardware.modules[module].receivers[index].modelID = frame[4];
reusableBuffer.hardware.modules[module].receivers[index].hwVersion.data = *((uint16_t *)&frame[5]);
reusableBuffer.hardware.modules[module].receivers[index].swVersion.data = *((uint16_t *)&frame[7]);
reusableBuffer.hardware.modules[module].receivers[index].variant = frame[9];
}
if (index == 0xFF)
memcpy(&reusableBuffer.hardware.modules[module].information, &frame[4], sizeof(PXX2HardwareInformation));
else if (index < PXX2_MAX_RECEIVERS_PER_MODULE)
memcpy(&reusableBuffer.hardware.modules[module].receivers[index].information, &frame[4], sizeof(PXX2HardwareInformation));
}
void processModuleSettingsFrame(uint8_t module, uint8_t * frame)