1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-04 12:24:11 +01:00
Commit Graph

73 Commits

Author SHA1 Message Date
Brian Webb
43f6458f86 Reduced the sizeof the UAVObject metadata by:
1) Combining all binary or mode values into a single byte
  2) Adding accessor functions to read/write the flag bits
  3) Reduced the size of the time values from 32 bits to 16 bits
2012-02-20 18:45:18 -07:00
Corvus Corax
a0cd71abe6 UAVObjects ; Modules/ManualControl: Fixed metadata interface and segfault when retrieving it 2011-11-30 09:20:46 +01:00
Oleg Semyonov
0116e6a007 spektrum: rework DSM2/DSMJ/DSMX driver for explicit DSMX resolution support
- both CC serial ports are now disabled by default (no telemetry);
- serial ports now have DSM2, DSMX (10bit) and DSMX (11bit) options;
- ReceiverGroups now have DSM (MainPort) and DSM (FlexiPort) options.

For DSM2 protocol there is an explicit resolution bit in the stream, so
the DSM2 should be selected. For DSMX there is no such bit, and user
should choose the resolution from the list configuring the spektrum port.
ReceiverGroups have single DSM option which is handled by the same driver.

Downside: this implementation saves received frame first, unrolls by the
end of frame. This should be ok, but may be improved by unrolling channels
on the fly in the rx callback.

Another minor difference is that a ChannelGroup is now bound to port:
DSM (MainPort) or DSM (FlexiPort). This was considered as acceptable
solution in order to not have 6 DSM options for each ChannelGroup and
even more in case of new DSM protocol variations.

Known problem: it is not possible to choose same protocols like
DSM2/DSM2 for two ports. It can be enabled by adding an exception to
common rule, though.

The DSMX throttle channel misbehavior (zero value) is not treated
specially yet. It should trigger the failsafe being out of bounds.
More info and data dumps are required to handle this properly.
2011-10-30 19:29:03 +02:00
Corvus Corax
425bc5abbe PiOS.posix: PIOS_RCVR : fix posix port of pios_rcvr to allow compilation on 64bit systems 2011-10-11 18:07:04 +02:00
James Cotton
dfe91af686 UAVObjects: Space allocated in manualcontrolcommand did not match the number of
channels in settings.  Fixed this and added assertion to catch in future.
2011-09-09 01:17:13 -05:00
James Cotton
1a5fd9f30e Heli: Added an explicit collective channel. Also make the default channel
number 0 since that is not invalid.
2011-09-07 01:48:39 -05:00
James Cotton
72625d9971 PiOS RCVR: Make the public API use a 1 based indexing for channel numbers.
This may or may not get into next, but if so anyone following it MUST
reconfigure their inputs.
2011-09-06 16:39:08 -05:00
James Cotton
510a1760ca When disconnected set any accessory channels to neutral. Otherwise the
actuator module could keep the pitch at high.  However the "right" thing to do
seems very specific.  For example negative pitch is probably preferable.
2011-09-04 03:45:36 -05:00
James Cotton
89e640ae7f Make sure all receiver drivers return correct constants for invalid channels. 2011-09-04 01:24:16 -05:00
James Cotton
20de046292 Force system to be disarmed when a bad configuration is present 2011-09-04 00:43:33 -05:00
James Cotton
d3de8ff0ef OP-559: Process the arm status when disconnect and allow it to timeout and
disarm
2011-09-03 23:57:51 -05:00
James Cotton
697dbf4f5f OP-568 PIOS_RCVR: Standardize the values that are returned from the PIOS_RCVR and make
them symbolic constants.
- A timeout is 0
- A missing driver is 65534
- An invalid channel is 65535

ManualControl: Make it deal with the values explicitly.  A timed out value
should not be treated like a minimum duration signal.  Instead it does not
updated the scaled value but marks the data window as invalid to trigger the
failsafe.
2011-09-03 23:50:56 -05:00
Stacey Sheldon
a72c657e21 rcvr activity: Speed up activity acquisition
Activity detection logic can now move through
the active receivers more quickly.
2011-08-27 20:17:56 -04:00
James Cotton
6514fd95c7 Also initialize the ReceiverActivity object in manual control 2011-08-27 16:08:57 -05:00
James Cotton
dc340596f5 Merge branch 'next' into GCS_ChangesToUI-RuntimeCFG
Conflicts:
	flight/CopterControl/Makefile
	flight/OpenPilot/System/pios_board.c
	flight/OpenPilot/UAVObjects.inc
	flight/PiOS/STM32F10x/pios_spektrum.c
	ground/openpilotgcs/src/plugins/config/config.pro
	ground/openpilotgcs/src/plugins/config/configgadget.qrc
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	shared/uavobjectdefinition/hwsettings.xml
2011-08-27 15:26:05 -05:00
Corvus Corax
9bba1f7ae9 Posix: fix object initialization where necessary 2011-08-19 18:36:30 +02:00
James Cotton
482bec497b Revert "Fixed modules that didn't initialize used UAVObjects correctly"
Modules should initialize their settings and the objects they source.  Not just
everything.

This reverts commit 9ad85e9b7b.
2011-08-19 09:44:38 -05:00
Corvus Corax
9ad85e9b7b Fixed modules that didn't initialize used UAVObjects correctly 2011-08-19 13:20:15 +02:00
James Cotton
a592e7d398 ManualControlSettings must be also initialized in pios_board.c 2011-08-04 07:47:50 -05:00
Stacey Sheldon
90b2625deb rcvractivity: Add tracking of Rx channel activity 2011-08-02 01:27:37 -04:00
Stacey Sheldon
06cdeb7b61 rcvr: support multiple simultaneous receivers
Now also supports multiple instances of the Spektrum driver.
These are configured as Spektrum1 and Spektrum2.
2011-08-02 01:22:04 -04:00
James Cotton
96c2d24253 Merge branch 'next' into camera_stabilization
Conflicts:
	flight/CopterControl/Makefile
	flight/CopterControl/System/coptercontrol.c
	flight/Modules/Actuator/actuator.c
	flight/Modules/GPS/GPS.c
	flight/Modules/ManualControl/manualcontrol.c
	flight/Modules/Stabilization/stabilization.c
	flight/Modules/System/systemmod.c
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/stabilizationdesired.xml
2011-07-30 10:06:10 +09:00
James Cotton
333ab645ec Dos2unix manualcontrol.c to facilitate merging 2011-07-30 09:55:02 +09:00
Stacey Sheldon
6580462916 rcvr: specify drivers for groups of channels
Each channel was previously tracking a separate driver.
Now, channels are grouped within a channel group to save
RAM used for tracking and to better reflect how channels
are actually mapped.
2011-07-14 23:22:42 -04:00
Mathieu Rondonneau
612a439199 OP-423: simplify the MODULE_INITCALL macro and remove the ordering loops 2011-07-12 20:44:32 -07:00
James Cotton
53ca934b2b Merge branch 'heli_stabilization'
Conflicts:
	flight/CopterControl/System/inc/pios_config.h
	flight/Modules/Attitude/attitude.c
	flight/Modules/ManualControl/manualcontrol.c
	flight/Modules/Stabilization/stabilization.c
2011-07-12 13:28:20 -05:00
Mathieu Rondonneau
d38f6167e3 OP-423:
Also reduce heap has it does not fit in SRAM anymore (not with current compiler).
(that's ok since if there is more space available, it will be reclaimed).

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/pios_config.h
	flight/Modules/ManualControl/manualcontrol.c
2011-07-08 06:29:34 -07:00
Mathieu Rondonneau
9b9b5a1367 OP-423: remove ';' at the end of macro 2011-07-05 19:44:54 -07:00
Stacey Sheldon
740b5f1584 rcvr: convert PWM, PPM, SBUS and Spektrum to use PIOS_RCVR
All receivers now fall under the same driver API provided
by pios_rcvr.c.

This is part of a larger sequence of commits that will
switch the receiver selection over to boot time dynamic
configuration via UAVObjects.
2011-07-05 22:03:25 -04:00
James Cotton
ad8876c62a OP-193: Weak leveling variant on rate mode. Slowly will return to level. 2011-07-04 20:44:55 -05:00
James Cotton
39e646ae1d Make the rates all work properly in axis lock 2011-06-30 19:38:52 -05:00
Mathieu Rondonneau
de55c56427 OP-423: Change capital on macro to be uppercase for consistency. 2011-06-24 22:03:03 -07:00
James Cotton
c0eff41dc6 OP-410 OP-333: Created an Axis-lock setting for stabilization 2011-06-24 10:38:26 -05:00
James Cotton
f6312c7798 OP-410 OP-333: Created an Axis-lock setting for stabilization 2011-06-23 14:51:18 -05:00
Mathieu Rondonneau
0ff5e9a46f Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint 2011-06-21 22:02:13 -07:00
James Cotton
8976d22fad Merge remote-tracking branch 'origin/OP-159_os_sbus' 2011-06-21 17:51:22 -05:00
Mathieu Rondonneau
fc1e3f574c OP-423: Split task create and module init in order to postpone task creation once the full heap is available.
Also implement some ordering (quite ugly still) in the module init and task creation order so we can decide which module to start/init first
and which module to start/init last.
This will be replaced/adapter with the uavobject list later (once it's implemented).
reserving some space for module init and task create parameters to customize module/task creation (this will be usefull once we get the list and customization from customer).

Changes have been made for OP and CC. Tested comped with CC,OP, sim_posix.
Only ran on bench with CC for couple of minutes (code increase expected but no dropping of stack which is good).

This gives task creation at the time wherethe all heap is available.
2011-06-19 22:35:40 -07:00
James Cotton
5044ea36de Start initializing objects in the modules that consume them. Shouldn't affect
OP yet but not tested.
2011-06-18 14:20:51 -05:00
Mathieu Rondonneau
b67a38661e OP-423: merge master into that branch, resolve conflicts and test with CC and bl_CC
heap reamining is low (about 500) but stacks can be ajusted (specially the 200 bytes from system) to give the level close to 1Ko if needed.

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/FreeRTOSConfig.h
	flight/CopterControl/System/inc/pios_config.h
2011-06-17 19:04:09 -07:00
Mathieu Rondonneau
65cf467ca4 OP-423: move the module initialize funtion into a specific section for OP and CC.
- create linker section for those <module>Initialize()
- later this list will incorporate parameters as well. (this probably will be more a OP feature to swap/remove/delete module on the fly.
- this is not done at compile time anymore by Makefile.
- this will allow us to have control on the module start at run-time (not implemented but build the ground for it).
- this simplify the startup (Part of code re-org).
- this change does not affect sim_posix and win32 (since they don't need that)
- ensure it's compiling for PiOS.posix
- port to PiOS.win32 but not tested (not compiled)
- tested on CC
- compile on OP.
- this free ~200 bytes.
- current avalable bytes (is we keep the same remaining bytes on the stack than before) is easily passed the 1.2Ko mark on CC with new gcc (4.5.2)
- this does not include init-reorg for each module (I still think more can be freed)
2011-06-16 22:13:19 -07:00
Oleg Semyonov
d8201ec45b sbus: provide a stub based on Spektrum driver (for CC only) 2011-06-15 22:35:21 +03:00
James Cotton
99b3a629a8 OP-493: Force three AccessoryDesired objects to always exist. Routing to
Mixing channel now works.  However Accessory desired instances do not show up
in GCS.
2011-06-05 15:38:58 -05:00
James Cotton
a1d60cb77d OP-493: Use multiple instances when using multiple accessory channels 2011-06-05 15:38:57 -05:00
James Cotton
1365542103 OP-493: Populate the Accessory Desired from TX 2011-06-05 15:38:57 -05:00
Oleg Semyonov
36d2a467e0 manualcontrol: fix copy/paste error 2011-05-26 00:16:36 +03:00
James Cotton
80c839d5bb OP-475: Starting to use the new FlightStatus object 2011-05-07 13:17:21 -05:00
James Cotton
e2819c6815 Restructure the ManualControlCommand code to be much more readable. Also
facilitates the new FlightMode object.
2011-05-07 12:43:27 -05:00
Corvus Corax
5f749dda7e Modules/ManualControl: bugfix GCS Control was broken due to connection state and arming being checked outside of the "object_writable()? {}" if clause 2011-05-06 01:26:34 +02:00
James Cotton
05684e966b OP-470: Make arm/disarm threshold 50% instead of 90% 2011-05-04 22:53:00 -05:00
James Cotton
9daca1ac41 OP-469: Wasn't paying attention and missed a line 2011-05-02 22:22:57 -05:00