mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-31 16:52:10 +01:00
Heli: Added an explicit collective channel. Also make the default channel
number 0 since that is not invalid.
This commit is contained in:
parent
cabfbc229d
commit
1a5fd9f30e
@ -42,7 +42,7 @@
|
|||||||
#include "mixersettings.h"
|
#include "mixersettings.h"
|
||||||
#include "mixerstatus.h"
|
#include "mixerstatus.h"
|
||||||
#include "cameradesired.h"
|
#include "cameradesired.h"
|
||||||
|
#include "manualcontrolcommand.h"
|
||||||
|
|
||||||
// Private constants
|
// Private constants
|
||||||
#define MAX_QUEUE_SIZE 2
|
#define MAX_QUEUE_SIZE 2
|
||||||
@ -236,6 +236,10 @@ static void actuatorTask(void* parameters)
|
|||||||
case MIXERSETTINGS_CURVE2SOURCE_YAW:
|
case MIXERSETTINGS_CURVE2SOURCE_YAW:
|
||||||
curve2 = MixerCurve(desired.Yaw,mixerSettings.ThrottleCurve2);
|
curve2 = MixerCurve(desired.Yaw,mixerSettings.ThrottleCurve2);
|
||||||
break;
|
break;
|
||||||
|
case MIXERSETTINGS_CURVE2SOURCE_COLLECTIVE:
|
||||||
|
ManualControlCommandCollectiveGet(&curve2);
|
||||||
|
curve2 = MixerCurve(curve2,mixerSettings.ThrottleCurve2);
|
||||||
|
break;
|
||||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0:
|
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0:
|
||||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY1:
|
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY1:
|
||||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY2:
|
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY2:
|
||||||
|
@ -278,6 +278,7 @@ static void manualControlTask(void *parameters)
|
|||||||
cmd.Roll = 0;
|
cmd.Roll = 0;
|
||||||
cmd.Yaw = 0;
|
cmd.Yaw = 0;
|
||||||
cmd.Pitch = 0;
|
cmd.Pitch = 0;
|
||||||
|
cmd.Collective = 0;
|
||||||
//cmd.FlightMode = MANUALCONTROLCOMMAND_FLIGHTMODE_AUTO; // don't do until AUTO implemented and functioning
|
//cmd.FlightMode = MANUALCONTROLCOMMAND_FLIGHTMODE_AUTO; // don't do until AUTO implemented and functioning
|
||||||
// Important: Throttle < 0 will reset Stabilization coefficients among other things. Either change this,
|
// Important: Throttle < 0 will reset Stabilization coefficients among other things. Either change this,
|
||||||
// or leave throttle at IDLE speed or above when going into AUTO-failsafe.
|
// or leave throttle at IDLE speed or above when going into AUTO-failsafe.
|
||||||
@ -316,6 +317,11 @@ static void manualControlTask(void *parameters)
|
|||||||
cmd.Throttle = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_THROTTLE];
|
cmd.Throttle = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_THROTTLE];
|
||||||
flightMode = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE];
|
flightMode = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE];
|
||||||
|
|
||||||
|
if(cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE] != PIOS_RCVR_INVALID &&
|
||||||
|
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE] != PIOS_RCVR_NODRIVER &&
|
||||||
|
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE] != PIOS_RCVR_TIMEOUT)
|
||||||
|
cmd.Collective = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE];
|
||||||
|
|
||||||
AccessoryDesiredData accessory;
|
AccessoryDesiredData accessory;
|
||||||
// Set Accessory 0
|
// Set Accessory 0
|
||||||
if (settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_ACCESSORY0] !=
|
if (settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_ACCESSORY0] !=
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
<object name="ManualControlCommand" singleinstance="true" settings="false">
|
<object name="ManualControlCommand" singleinstance="true" settings="false">
|
||||||
<description>The output from the @ref ManualControlModule which descodes the receiver inputs. Overriden by GCS for fly-by-wire control.</description>
|
<description>The output from the @ref ManualControlModule which descodes the receiver inputs. Overriden by GCS for fly-by-wire control.</description>
|
||||||
<field name="Connected" units="" type="enum" elements="1" options="False,True"/>
|
<field name="Connected" units="" type="enum" elements="1" options="False,True"/>
|
||||||
<field name="Roll" units="%" type="float" elements="1"/>
|
<field name="Throttle" units="%" type="float" elements="1"/>
|
||||||
|
<field name="Roll" units="%" type="float" elements="1"/>
|
||||||
<field name="Pitch" units="%" type="float" elements="1"/>
|
<field name="Pitch" units="%" type="float" elements="1"/>
|
||||||
<field name="Yaw" units="%" type="float" elements="1"/>
|
<field name="Yaw" units="%" type="float" elements="1"/>
|
||||||
<field name="Throttle" units="%" type="float" elements="1"/>
|
<field name="Collective" units="%" type="float" elements="1"/>
|
||||||
<field name="Channel" units="us" type="uint16" elements="8"/>
|
<field name="Channel" units="us" type="uint16" elements="8"/>
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
<object name="ManualControlSettings" singleinstance="true" settings="true">
|
<object name="ManualControlSettings" singleinstance="true" settings="true">
|
||||||
<description>Settings to indicate how to decode receiver input by @ref ManualControlModule.</description>
|
<description>Settings to indicate how to decode receiver input by @ref ManualControlModule.</description>
|
||||||
<field name="ChannelGroups" units="Channel Group" type="enum"
|
<field name="ChannelGroups" units="Channel Group" type="enum"
|
||||||
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Accessory0,Accessory1,Accessory2"
|
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"
|
||||||
options="PWM,PPM,Spektrum1,Spektrum2,S.Bus,GCS,None" defaultvalue="None"/>
|
options="PWM,PPM,Spektrum1,Spektrum2,S.Bus,GCS,None" defaultvalue="None"/>
|
||||||
<field name="ChannelNumber" units="channel" type="uint8" defaultvalue="255"
|
<field name="ChannelNumber" units="channel" type="uint8" defaultvalue="0"
|
||||||
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Accessory0,Accessory1,Accessory2"/>
|
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/>
|
||||||
<field name="ChannelMin" units="us" type="int16" defaultvalue="1000"
|
<field name="ChannelMin" units="us" type="int16" defaultvalue="1000"
|
||||||
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Accessory0,Accessory1,Accessory2"/>
|
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/>
|
||||||
<field name="ChannelNeutral" units="us" type="int16" defaultvalue="1500"
|
<field name="ChannelNeutral" units="us" type="int16" defaultvalue="1500"
|
||||||
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Accessory0,Accessory1,Accessory2"/>
|
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/>
|
||||||
<field name="ChannelMax" units="us" type="int16" defaultvalue="2000"
|
<field name="ChannelMax" units="us" type="int16" defaultvalue="2000"
|
||||||
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Accessory0,Accessory1,Accessory2"/>
|
elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/>
|
||||||
|
|
||||||
<field name="Arming" units="" type="enum" elements="1" options="Always Disarmed,Always Armed,Roll Left,Roll Right,Pitch Forward,Pitch Aft,Yaw Left,Yaw Right" defaultvalue="Always Disarmed"/>
|
<field name="Arming" units="" type="enum" elements="1" options="Always Disarmed,Always Armed,Roll Left,Roll Right,Pitch Forward,Pitch Aft,Yaw Left,Yaw Right" defaultvalue="Always Disarmed"/>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<field name="AccelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
|
<field name="AccelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
|
||||||
<field name="DecelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
|
<field name="DecelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
|
||||||
<field name="ThrottleCurve1" units="percent" type="float" elements="5" elementnames="0,25,50,75,100" defaultvalue="0,0,0,0,0"/>
|
<field name="ThrottleCurve1" units="percent" type="float" elements="5" elementnames="0,25,50,75,100" defaultvalue="0,0,0,0,0"/>
|
||||||
<field name="Curve2Source" units="" type="enum" elements="1" options="Throttle,Roll,Pitch,Yaw,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Throttle"/>
|
<field name="Curve2Source" units="" type="enum" elements="1" options="Throttle,Roll,Pitch,Yaw,Collective,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Throttle"/>
|
||||||
<field name="ThrottleCurve2" units="percent" type="float" elements="5" elementnames="0,25,50,75,100" defaultvalue="0,0.25,0.5,0.75,1"/>
|
<field name="ThrottleCurve2" units="percent" type="float" elements="5" elementnames="0,25,50,75,100" defaultvalue="0,0.25,0.5,0.75,1"/>
|
||||||
<field name="Mixer1Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,CameraRoll,CameraPitch,CameraYaw,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
|
<field name="Mixer1Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,CameraRoll,CameraPitch,CameraYaw,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
|
||||||
<field name="Mixer1Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
|
<field name="Mixer1Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user