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

POWERBOX report replaced with FlightPAck Capacity.

This commit is contained in:
Anders Hoglund 2017-08-03 21:19:24 +02:00
parent 8b4ab25efa
commit 6be8dfa6bb

View file

@ -58,6 +58,7 @@
#define SRXL_FRAMETYPE_TELE_QOS 0x7F #define SRXL_FRAMETYPE_TELE_QOS 0x7F
#define SRXL_FRAMETYPE_TELE_RPM 0x7E #define SRXL_FRAMETYPE_TELE_RPM 0x7E
#define SRXL_FRAMETYPE_POWERBOX 0x0A #define SRXL_FRAMETYPE_POWERBOX 0x0A
#define SRXL_FRAMETYPE_TELE_FP_MAH 0x34
#define SRXL_FRAMETYPE_SID 0x00 #define SRXL_FRAMETYPE_SID 0x00
static bool srxlTelemetryEnabled; static bool srxlTelemetryEnabled;
@ -175,40 +176,29 @@ void srxlFrameRpm(sbuf_t *dst)
/* /*
typedef struct typedef struct
{ {
UINT8 identifier; // Source device = 0x0A UINT8 identifier; // Source device = 0x34
UINT8 sID; // Secondary ID UINT8 sID; // Secondary ID
UINT16 volt1; // Volts, 0.01v INT16 current_A; // Instantaneous current, 0.1A (0-3276.8A)
UINT16 volt2; // Volts, 0.01v INT16 chargeUsed_A; // Integrated mAh used, 1mAh (0-32.766Ah)
UINT16 capacity1; // mAh, 1mAh UINT16 temp_A; // Temperature, 0.1C (0-150C, 0x7FFF indicates not populated)
UINT16 capacity2; // mAh, 1mAh INT16 current_B; // Instantaneous current, 0.1A (0-3276.8A)
UINT16 spare16_1; INT16 chargeUsed_B; // Integrated mAh used, 1mAh (0-32.766Ah)
UINT16 spare16_2; UINT16 temp_B; // Temperature, 0.1C (0-150C, 0x7FFF indicates not populated)
UINT8 spare; UINT16 spare; // Not used
UINT8 alarms; // Alarm bitmask (see below) } STRU_TELE_FP_MAH;
} STRU_TELE_POWERBOX;
*/ */
#define TELE_PBOX_ALARM_VOLTAGE_1 (0x01)
#define TELE_PBOX_ALARM_VOLTAGE_2 (0x02)
#define TELE_PBOX_ALARM_CAPACITY_1 (0x04)
#define TELE_PBOX_ALARM_CAPACITY_2 (0x08)
//#define TELE_PBOX_ALARM_RPM (0x10)
//#define TELE_PBOX_ALARM_TEMPERATURE (0x20)
#define TELE_PBOX_ALARM_RESERVED_1 (0x40)
#define TELE_PBOX_ALARM_RESERVED_2 (0x80)
void srxlFramePowerBox(sbuf_t *dst) void srxlFrameFlightPackCurrent(sbuf_t *dst)
{ {
srxlSerialize8(dst, SRXL_FRAMETYPE_POWERBOX); srxlSerialize8(dst, SRXL_FRAMETYPE_TELE_FP_MAH);
srxlSerialize8(dst, SRXL_FRAMETYPE_SID); srxlSerialize8(dst, SRXL_FRAMETYPE_SID);
srxlSerialize16(dst, getBatteryVoltage() * 10); // vbat is in units of 0.1V - vbat1
srxlSerialize16(dst, getBatteryVoltage() * 10); // vbat is in units of 0.1V - vbat2
srxlSerialize16(dst, getAmperage() / 10); srxlSerialize16(dst, getAmperage() / 10);
srxlSerialize16(dst, 0xFFFF); srxlSerialize16(dst, 0xffff);
srxlSerialize16(dst, 0xff7f); // temp A Seems to be some endian problem some where in the Spektrum Chain
srxlSerialize16(dst, 0xFFFF); // spare srxlSerialize16(dst, 0xffff);
srxlSerialize16(dst, 0xFFFF); // spare srxlSerialize16(dst, 0xffff);
srxlSerialize8(dst, 0xFF); // spare srxlSerialize16(dst, 0xff7f); // temp B Seems to be some endian problem some where in the Spektrum Chain
srxlSerialize8(dst, 0x00); // ALARMS srxlSerialize16(dst, 0xffff);
} }
// schedule array to decide how often each type of frame is sent // schedule array to decide how often each type of frame is sent
@ -219,7 +209,7 @@ const srxlSchedulePtr srxlScheduleFuncs[SRXL_SCHEDULE_COUNT_MAX] = {
/* must send srxlFrameQos, Rpm and then alternating items of our own */ /* must send srxlFrameQos, Rpm and then alternating items of our own */
srxlFrameQos, srxlFrameQos,
srxlFrameRpm, srxlFrameRpm,
srxlFramePowerBox srxlFrameFlightPackCurrent
}; };
static void processSrxl(void) static void processSrxl(void)