From 6af9abd9b7c4ae69860747c0a63c1415d30d946f Mon Sep 17 00:00:00 2001 From: bsongis Date: Mon, 7 Apr 2014 20:01:46 +0200 Subject: [PATCH] Temporary S.PORT IDs for AirSpeed sensor --- radio/src/telemetry/frsky_sport.cpp | 9 +++++++++ radio/src/telemetry/frsky_sport.h | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index 14bfa74de..55750d713 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -118,6 +118,10 @@ #define GPS_TIME_DATE_FIRST_ID 0x0850 #define GPS_TIME_DATE_LAST_ID 0x085f +// Temporary IDs, will be changed when FrSky will have defined them in the S.PORT protocol +#define AIR_SPEED_FIRST_ID 0x0990 +#define AIR_SPEED_LAST_ID 0x099f + // FrSky wrong IDs ? #define BETA_VARIO_ID 0x8030 #define BETA_BARO_ALT_ID 0x8010 @@ -397,6 +401,11 @@ void processSportPacket(uint8_t *packet) else if (appId >= VFAS_FIRST_ID && appId <= VFAS_LAST_ID) { frskyData.hub.vfas = SPORT_DATA_U32(packet)/10; //TODO: remove /10 and display with PREC2 when using SPORT } + else if (appId >= AIR_SPEED_FIRST_ID && appId <= AIR_SPEED_LAST_ID) { + frskyData.hub.airSpeed = SPORT_DATA_U32(packet); + if (frskyData.hub.airSpeed > frskyData.hub.maxAirSpeed) + frskyData.hub.maxAirSpeed = frskyData.hub.airSpeed; + } else if (appId >= GPS_SPEED_FIRST_ID && appId <= GPS_SPEED_LAST_ID) { frskyData.hub.gpsSpeed_bp = SPORT_DATA_U32(packet); frskyData.hub.gpsSpeed_bp = frskyData.hub.gpsSpeed_bp / 1000; diff --git a/radio/src/telemetry/frsky_sport.h b/radio/src/telemetry/frsky_sport.h index 802d4be6b..b758b3eb4 100644 --- a/radio/src/telemetry/frsky_sport.h +++ b/radio/src/telemetry/frsky_sport.h @@ -146,8 +146,8 @@ PACK(struct FrskySerialData { uint16_t minCellVolts; bool varioHighPrecision; - int16_t airSpeed; - int16_t dTE; + uint16_t airSpeed; + uint16_t dTE; }); struct FrskyData {