mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-18 03:52:11 +01:00
Make autotuning module optional
This commit is contained in:
parent
d0ef95ff9a
commit
652647fc87
@ -50,6 +50,7 @@
|
|||||||
|
|
||||||
#include "pios.h"
|
#include "pios.h"
|
||||||
#include "flightstatus.h"
|
#include "flightstatus.h"
|
||||||
|
#include "hwsettings.h"
|
||||||
#include "manualcontrolcommand.h"
|
#include "manualcontrolcommand.h"
|
||||||
#include "manualcontrolsettings.h"
|
#include "manualcontrolsettings.h"
|
||||||
#include "relaytuning.h"
|
#include "relaytuning.h"
|
||||||
@ -67,6 +68,7 @@ enum AUTOTUNE_STATE {AT_INIT, AT_START, AT_ROLL, AT_PITCH, AT_FINISHED, AT_SET};
|
|||||||
|
|
||||||
// Private variables
|
// Private variables
|
||||||
static xTaskHandle taskHandle;
|
static xTaskHandle taskHandle;
|
||||||
|
static bool autotuneEnabled;
|
||||||
|
|
||||||
// Private functions
|
// Private functions
|
||||||
static void AutotuneTask(void *parameters);
|
static void AutotuneTask(void *parameters);
|
||||||
@ -79,6 +81,19 @@ static void update_stabilization_settings();
|
|||||||
int32_t AutotuneInitialize(void)
|
int32_t AutotuneInitialize(void)
|
||||||
{
|
{
|
||||||
// Create a queue, connect to manual control command and flightstatus
|
// Create a queue, connect to manual control command and flightstatus
|
||||||
|
#ifdef MODULE_AUTOTUNE_BUILTIN
|
||||||
|
autotuneEnabled = true;
|
||||||
|
#else
|
||||||
|
HwSettingsInitialize();
|
||||||
|
uint8_t optionalModules[HWSETTINGS_OPTIONALMODULES_NUMELEM];
|
||||||
|
|
||||||
|
HwSettingsOptionalModulesGet(optionalModules);
|
||||||
|
|
||||||
|
if (optionalModules[HWSETTINGS_OPTIONALMODULES_AUTOTUNE] == HWSETTINGS_OPTIONALMODULES_ENABLED)
|
||||||
|
autotuneEnabled = true;
|
||||||
|
else
|
||||||
|
autotuneEnabled = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -89,13 +104,13 @@ int32_t AutotuneInitialize(void)
|
|||||||
*/
|
*/
|
||||||
int32_t AutotuneStart(void)
|
int32_t AutotuneStart(void)
|
||||||
{
|
{
|
||||||
|
// Start main task if it is enabled
|
||||||
// Start main task
|
if(autotuneEnabled) {
|
||||||
xTaskCreate(AutotuneTask, (signed char *)"Autotune", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
xTaskCreate(AutotuneTask, (signed char *)"Autotune", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||||
|
|
||||||
//TaskMonitorAdd(TASKINFO_RUNNING_ATTITUDE, taskHandle);
|
TaskMonitorAdd(TASKINFO_RUNNING_AUTOTUNE, taskHandle);
|
||||||
//PIOS_WDG_RegisterFlag(PIOS_WDG_ATTITUDE);
|
PIOS_WDG_RegisterFlag(PIOS_WDG_AUTOTUNE);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,6 +128,8 @@ static void AutotuneTask(void *parameters)
|
|||||||
portTickType lastUpdateTime = xTaskGetTickCount();
|
portTickType lastUpdateTime = xTaskGetTickCount();
|
||||||
|
|
||||||
while(1) {
|
while(1) {
|
||||||
|
|
||||||
|
PIOS_WDG_UpdateFlag(PIOS_WDG_AUTOTUNE);
|
||||||
// TODO:
|
// TODO:
|
||||||
// 1. get from queue
|
// 1. get from queue
|
||||||
// 2. based on whether it is flightstatus or manualcontrol
|
// 2. based on whether it is flightstatus or manualcontrol
|
||||||
|
@ -74,6 +74,7 @@ TIM4 | RC In 1 | Servo 3 | Servo 2 | Servo 1
|
|||||||
#define PIOS_WDG_STABILIZATION 0x0002
|
#define PIOS_WDG_STABILIZATION 0x0002
|
||||||
#define PIOS_WDG_ATTITUDE 0x0004
|
#define PIOS_WDG_ATTITUDE 0x0004
|
||||||
#define PIOS_WDG_MANUAL 0x0008
|
#define PIOS_WDG_MANUAL 0x0008
|
||||||
|
#define PIOS_WDG_AUTOTUNE 0x0010
|
||||||
|
|
||||||
//------------------------
|
//------------------------
|
||||||
// TELEMETRY
|
// TELEMETRY
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<field name="USB_HIDPort" units="function" type="enum" elements="1" options="USBTelemetry,Disabled" defaultvalue="USBTelemetry"/>
|
<field name="USB_HIDPort" units="function" type="enum" elements="1" options="USBTelemetry,Disabled" defaultvalue="USBTelemetry"/>
|
||||||
<field name="USB_VCPPort" units="function" type="enum" elements="1" options="USBTelemetry,ComBridge,Disabled" defaultvalue="Disabled"/>
|
<field name="USB_VCPPort" units="function" type="enum" elements="1" options="USBTelemetry,ComBridge,Disabled" defaultvalue="Disabled"/>
|
||||||
|
|
||||||
<field name="OptionalModules" units="" type="enum" elementnames="CameraStab,GPS,ComUsbBridge,Fault,Altitude,TxPID" options="Disabled,Enabled" defaultvalue="Disabled"/>
|
<field name="OptionalModules" units="" type="enum" elementnames="CameraStab,GPS,ComUsbBridge,Fault,Altitude,TxPID,Autotune" options="Disabled,Enabled" defaultvalue="Disabled"/>
|
||||||
<field name="DSMxBind" units="" type="uint8" elements="1" defaultvalue="0"/>
|
<field name="DSMxBind" units="" type="uint8" elements="1" defaultvalue="0"/>
|
||||||
|
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<xml>
|
<xml>
|
||||||
<object name="TaskInfo" singleinstance="true" settings="false">
|
<object name="TaskInfo" singleinstance="true" settings="false">
|
||||||
<description>Task information</description>
|
<description>Task information</description>
|
||||||
<field name="StackRemaining" units="bytes" type="uint16" elementnames="System,Actuator,Attitude,Sensors,TelemetryTx,TelemetryTxPri,TelemetryRx,GPS,ManualControl,Altitude,Stabilization,AltitudeHold,Guidance,FlightPlan,Com2UsbBridge,Usb2ComBridge,OveroSync"/>
|
<field name="StackRemaining" units="bytes" type="uint16" elementnames="System,Actuator,Attitude,Sensors,TelemetryTx,TelemetryTxPri,TelemetryRx,GPS,ManualControl,Altitude,Stabilization,AltitudeHold,Guidance,FlightPlan,Com2UsbBridge,Usb2ComBridge,OveroSync,Autotune"/>
|
||||||
<field name="Running" units="bool" type="enum" options="False,True" elementnames="System,Actuator,Attitude,Sensors,TelemetryTx,TelemetryTxPri,TelemetryRx,GPS,ManualControl,Altitude,Stabilization,AltitudeHold,Guidance,FlightPlan,Com2UsbBridge,Usb2ComBridge,OveroSync"/>
|
<field name="Running" units="bool" type="enum" options="False,True" elementnames="System,Actuator,Attitude,Sensors,TelemetryTx,TelemetryTxPri,TelemetryRx,GPS,ManualControl,Altitude,Stabilization,AltitudeHold,Guidance,FlightPlan,Com2UsbBridge,Usb2ComBridge,OveroSync,Autotune"/>
|
||||||
<field name="RunningTime" units="%" type="uint8" elementnames="System,Actuator,Attitude,Sensors,TelemetryTx,TelemetryTxPri,TelemetryRx,GPS,ManualControl,Altitude,Stabilization,AltitudeHold,Guidance,FlightPlan,Com2UsbBridge,Usb2ComBridge,OveroSync"/>
|
<field name="RunningTime" units="%" type="uint8" elementnames="System,Actuator,Attitude,Sensors,TelemetryTx,TelemetryTxPri,TelemetryRx,GPS,ManualControl,Altitude,Stabilization,AltitudeHold,Guidance,FlightPlan,Com2UsbBridge,Usb2ComBridge,OveroSync,Autotune"/>
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||||
<telemetryflight acked="true" updatemode="periodic" period="10000"/>
|
<telemetryflight acked="true" updatemode="periodic" period="10000"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user