1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-26 17:55:28 +03:00

Update temperature related MSP messages (#4449)

This commit is contained in:
Michel Pastor 2019-03-09 23:20:56 +01:00 committed by GitHub
parent 21bcd50b52
commit 04bd5b0b11
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 11 deletions

View file

@ -210,4 +210,8 @@
#define SYM_CURSOR SYM_AH_LEFT // Menu cursor
#else
#define TEMP_SENSOR_SYM_COUNT 0
#endif // USE_MAX7456

View file

@ -119,10 +119,6 @@ extern uint8_t __config_end;
#define PLAY_SOUND
#endif
#ifndef USE_MAX7456
#define TEMP_SENSOR_SYM_COUNT 0
#endif
extern timeDelta_t cycleTime; // FIXME dependency on mw.c
extern uint8_t detectedSensors[SENSOR_INDEX_COUNT];

View file

@ -42,6 +42,7 @@
#include "drivers/bus_i2c.h"
#include "drivers/compass/compass.h"
#include "drivers/max7456.h"
#include "drivers/max7456_symbols.h"
#include "drivers/pwm_mapping.h"
#include "drivers/sdcard.h"
#include "drivers/serial.h"
@ -1442,10 +1443,11 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
sbufWriteU8(dst, sensorConfig->type);
for (uint8_t addrIndex; addrIndex < 8; ++addrIndex)
sbufWriteU8(dst, ((uint8_t *)&sensorConfig->address)[addrIndex]);
for (uint8_t labelIndex; labelIndex < 4; ++labelIndex)
sbufWriteU8(dst, sensorConfig->label[labelIndex]);
sbufWriteU16(dst, sensorConfig->alarm_min);
sbufWriteU16(dst, sensorConfig->alarm_max);
sbufWriteU8(dst, sensorConfig->osdSymbol);
for (uint8_t labelIndex; labelIndex < 4; ++labelIndex)
sbufWriteU8(dst, sensorConfig->label[labelIndex]);
}
break;
#endif
@ -2761,10 +2763,12 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
sensorConfig->type = sbufReadU8(src);
for (uint8_t addrIndex; addrIndex < 8; ++addrIndex)
((uint8_t *)&sensorConfig->address)[addrIndex] = sbufReadU8(src);
for (uint8_t labelIndex; labelIndex < 4; ++labelIndex)
sensorConfig->label[labelIndex] = toupper(sbufReadU8(src));
sensorConfig->alarm_min = sbufReadU16(src);
sensorConfig->alarm_max = sbufReadU16(src);
tmp_u8 = sbufReadU8(src);
sensorConfig->osdSymbol = tmp_u8 > TEMP_SENSOR_SYM_COUNT ? 0 : tmp_u8;
for (uint8_t labelIndex; labelIndex < 4; ++labelIndex)
sensorConfig->label[labelIndex] = toupper(sbufReadU8(src));
}
} else
return MSP_RESULT_ERROR;

View file

@ -45,7 +45,7 @@
#include "scheduler/protothreads.h"
PG_REGISTER_ARRAY(tempSensorConfig_t, MAX_TEMP_SENSORS, tempSensorConfig, PG_TEMP_SENSOR_CONFIG, 1);
PG_REGISTER_ARRAY(tempSensorConfig_t, MAX_TEMP_SENSORS, tempSensorConfig, PG_TEMP_SENSOR_CONFIG, 2);
#define MPU_TEMP_VALID_BIT 0
#define BARO_TEMP_VALID_BIT 1

View file

@ -33,10 +33,10 @@ typedef enum {
typedef struct {
tempSensorType_e type;
uint64_t address;
uint8_t osdSymbol;
char label[TEMPERATURE_LABEL_LEN];
int16_t alarm_min;
int16_t alarm_max;
uint8_t osdSymbol;
char label[TEMPERATURE_LABEL_LEN];
} tempSensorConfig_t;
PG_DECLARE_ARRAY(tempSensorConfig_t, MAX_TEMP_SENSORS, tempSensorConfig);