1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 16:55:20 +03:00

Whole Cells telemetry info not updated after Telemetry Reset

This commit is contained in:
bsongis 2014-07-11 12:22:54 +02:00
parent 7c9636c58c
commit 2e0858bc0c
2 changed files with 11 additions and 11 deletions

View file

@ -165,7 +165,8 @@ PACK(struct FrskySerialData {
uint8_t gpsDistNeeded:1; // 1bits out of 16bits spare reused
int8_t gpsFix:2; // 2bits out of 16bits spare reused: -1=never fixed, 0=not fixed now, 1=fixed
uint8_t openXsensor:1; // 1bits out of 16bits spare reused: we receive data from the openXsensor
uint8_t cellsCount:4; // 4bits out of 16bits spare reused
uint8_t varioHighPrecision:1;
uint8_t spare6:3;
int32_t gpsAltitude;
@ -173,12 +174,13 @@ PACK(struct FrskySerialData {
uint16_t currentPrescale;
uint16_t power;
uint8_t cellsCount;
uint8_t sensorCellsCount[2];
uint16_t cellVolts[12];
int16_t cellsSum;
uint8_t cellsState;
uint16_t cellsState;
uint16_t minCellVolts;
bool varioHighPrecision;
uint16_t airSpeed;
uint16_t dTE;
});

View file

@ -279,8 +279,6 @@ bool checkSportPacket(uint8_t *packet)
#define SPORT_DATA_U32(packet) (*((uint32_t *)(packet+4)))
#define HUB_DATA_U16(packet) (*((uint16_t *)(packet+4)))
uint8_t noCellsSensor[2];
void frskySportProcessPacket(uint8_t *packet)
{
uint8_t dataId = packet[0];
@ -471,21 +469,21 @@ void frskySportProcessPacket(uint8_t *packet)
if (dataId == DATA_ID_FLVSS) {
// first sensor, remember its cell count
noCellsSensor[0] = cells;
cells += noCellsSensor[1];
frskyData.hub.sensorCellsCount[0] = cells;
cells += frskyData.hub.sensorCellsCount[1];
}
else {
// second sensor connected
noCellsSensor[1] = cells;
cells += noCellsSensor[0];
battnumber += noCellsSensor[0];
frskyData.hub.sensorCellsCount[1] = cells;
cells += frskyData.hub.sensorCellsCount[0];
battnumber += frskyData.hub.sensorCellsCount[0];
}
if (cells != frskyData.hub.cellsCount) {
frskySetCellsCount(cells);
}
frskySetCellVoltage(battnumber, (frskyCellVoltage_t) ((data & 0x000FFF00) >> 8) / 5);
frskySetCellVoltage(battnumber, (frskyCellVoltage_t) ((data & 0x000FFF00) >> 8) / 5);
if (useSecondCell) {
frskySetCellVoltage(battnumber+1, (frskyCellVoltage_t) ((data & 0xFFF00000) >> 20) / 5);
}