mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
Merge remote-tracking branch 'origin/amorale/OP-1329_airspeed_fixes' into next
This commit is contained in:
commit
7182fe0194
@ -60,7 +60,7 @@
|
|||||||
static xTaskHandle taskHandle;
|
static xTaskHandle taskHandle;
|
||||||
static bool airspeedEnabled = false;
|
static bool airspeedEnabled = false;
|
||||||
static AirspeedSettingsData airspeedSettings;
|
static AirspeedSettingsData airspeedSettings;
|
||||||
static AirspeedSettingsAirspeedSensorTypeOptions lastAirspeedSensorType = 0;
|
static AirspeedSettingsAirspeedSensorTypeOptions lastAirspeedSensorType = -1;
|
||||||
static int8_t airspeedADCPin = -1;
|
static int8_t airspeedADCPin = -1;
|
||||||
|
|
||||||
|
|
||||||
@ -119,8 +119,6 @@ int32_t AirspeedInitialize()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lastAirspeedSensorType = airspeedSettings.AirspeedSensorType;
|
|
||||||
|
|
||||||
AirspeedSensorInitialize();
|
AirspeedSensorInitialize();
|
||||||
AirspeedSettingsInitialize();
|
AirspeedSettingsInitialize();
|
||||||
|
|
||||||
@ -137,17 +135,14 @@ MODULE_INITCALL(AirspeedInitialize, AirspeedStart);
|
|||||||
static void airspeedTask(__attribute__((unused)) void *parameters)
|
static void airspeedTask(__attribute__((unused)) void *parameters)
|
||||||
{
|
{
|
||||||
AirspeedSettingsUpdatedCb(AirspeedSettingsHandle());
|
AirspeedSettingsUpdatedCb(AirspeedSettingsHandle());
|
||||||
|
bool gpsAirspeedInitialized = false;
|
||||||
AirspeedSensorData airspeedData;
|
AirspeedSensorData airspeedData;
|
||||||
AirspeedSensorGet(&airspeedData);
|
AirspeedSensorGet(&airspeedData);
|
||||||
|
|
||||||
AirspeedSettingsUpdatedCb(NULL);
|
AirspeedSettingsUpdatedCb(NULL);
|
||||||
|
|
||||||
gps_airspeedInitialize();
|
|
||||||
|
|
||||||
airspeedData.SensorConnected = AIRSPEEDSENSOR_SENSORCONNECTED_FALSE;
|
airspeedData.SensorConnected = AIRSPEEDSENSOR_SENSORCONNECTED_FALSE;
|
||||||
|
|
||||||
|
|
||||||
// Main task loop
|
// Main task loop
|
||||||
portTickType lastSysTime = xTaskGetTickCount();
|
portTickType lastSysTime = xTaskGetTickCount();
|
||||||
while (1) {
|
while (1) {
|
||||||
@ -160,8 +155,21 @@ static void airspeedTask(__attribute__((unused)) void *parameters)
|
|||||||
if (airspeedSettings.AirspeedSensorType != lastAirspeedSensorType) {
|
if (airspeedSettings.AirspeedSensorType != lastAirspeedSensorType) {
|
||||||
AlarmsSet(SYSTEMALARMS_ALARM_AIRSPEED, SYSTEMALARMS_ALARM_DEFAULT);
|
AlarmsSet(SYSTEMALARMS_ALARM_AIRSPEED, SYSTEMALARMS_ALARM_DEFAULT);
|
||||||
lastAirspeedSensorType = airspeedSettings.AirspeedSensorType;
|
lastAirspeedSensorType = airspeedSettings.AirspeedSensorType;
|
||||||
|
switch (airspeedSettings.AirspeedSensorType) {
|
||||||
|
case AIRSPEEDSETTINGS_AIRSPEEDSENSORTYPE_NONE:
|
||||||
|
// AirspeedSensor will not be updated until a different sensor is selected
|
||||||
|
// set the disconencted satus now
|
||||||
|
airspeedData.SensorConnected = AIRSPEEDSENSOR_SENSORCONNECTED_FALSE;
|
||||||
|
AirspeedSensorSet(&airspeedData);
|
||||||
|
break;
|
||||||
|
case AIRSPEEDSETTINGS_AIRSPEEDSENSORTYPE_GROUNDSPEEDBASEDWINDESTIMATION:
|
||||||
|
if (!gpsAirspeedInitialized) {
|
||||||
|
gpsAirspeedInitialized = true;
|
||||||
|
gps_airspeedInitialize();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (airspeedSettings.AirspeedSensorType) {
|
switch (airspeedSettings.AirspeedSensorType) {
|
||||||
#if defined(PIOS_INCLUDE_MPXV)
|
#if defined(PIOS_INCLUDE_MPXV)
|
||||||
case AIRSPEEDSETTINGS_AIRSPEEDSENSORTYPE_DIYDRONESMPXV7002:
|
case AIRSPEEDSETTINGS_AIRSPEEDSENSORTYPE_DIYDRONESMPXV7002:
|
||||||
@ -186,6 +194,10 @@ static void airspeedTask(__attribute__((unused)) void *parameters)
|
|||||||
gps_airspeedGet(&airspeedData, &airspeedSettings);
|
gps_airspeedGet(&airspeedData, &airspeedSettings);
|
||||||
break;
|
break;
|
||||||
case AIRSPEEDSETTINGS_AIRSPEEDSENSORTYPE_NONE:
|
case AIRSPEEDSETTINGS_AIRSPEEDSENSORTYPE_NONE:
|
||||||
|
// no need to check so often until a sensor is enabled
|
||||||
|
AlarmsSet(SYSTEMALARMS_ALARM_AIRSPEED, SYSTEMALARMS_ALARM_DEFAULT);
|
||||||
|
vTaskDelay(2000 / portTICK_RATE_MS);
|
||||||
|
continue;
|
||||||
default:
|
default:
|
||||||
airspeedData.SensorConnected = AIRSPEEDSENSOR_SENSORCONNECTED_FALSE;
|
airspeedData.SensorConnected = AIRSPEEDSENSOR_SENSORCONNECTED_FALSE;
|
||||||
break;
|
break;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<field name="SamplePeriod" units="ms" type="uint8" elements="1" defaultvalue="100"/>
|
<field name="SamplePeriod" units="ms" type="uint8" elements="1" defaultvalue="100"/>
|
||||||
<field name="ZeroPoint" units="raw" type="uint16" elements="1" defaultvalue="0"/>
|
<field name="ZeroPoint" units="raw" type="uint16" elements="1" defaultvalue="0"/>
|
||||||
<field name="Scale" units="raw" type="float" elements="1" defaultvalue="1.0"/>
|
<field name="Scale" units="raw" type="float" elements="1" defaultvalue="1.0"/>
|
||||||
<field name="AirspeedSensorType" units="" type="enum" elements="1" options="PixHawkAirspeedMS4525DO,EagleTreeAirspeedV3,DIYDronesMPXV5004,DIYDronesMPXV7002,GroundSpeedBasedWindEstimation,None" defaultvalue="GroundSpeedBasedWindEstimation"/>
|
<field name="AirspeedSensorType" units="" type="enum" elements="1" options="PixHawkAirspeedMS4525DO,EagleTreeAirspeedV3,DIYDronesMPXV5004,DIYDronesMPXV7002,GroundSpeedBasedWindEstimation,None" defaultvalue="None"/>
|
||||||
<field name="GroundSpeedBasedEstimationLowPassAlpha" units="" type="float" elements="1" defaultvalue="0.08" />
|
<field name="GroundSpeedBasedEstimationLowPassAlpha" units="" type="float" elements="1" defaultvalue="0.08" />
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user