Skip to content

Commit ed1378c

Browse files
committed
simposix support instrument measure and some build opt
1 parent 5fddd22 commit ed1378c

File tree

9 files changed

+3517
-4
lines changed

9 files changed

+3517
-4
lines changed

cache/GCSConfig.xml

Lines changed: 3262 additions & 0 deletions
Large diffs are not rendered by default.

cache/pathplan

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
<!DOCTYPE PathPlan>
2+
<waypoints>
3+
<waypoint number="0">
4+
<field value="" name="description"/>
5+
<field value="31.21472147937215" name="latitude"/>
6+
<field value="121.4073747396469" name="longitude"/>
7+
<field value="2.423174257975285" name="distance_to_home"/>
8+
<field value="180" name="bearing_from_home"/>
9+
<field value="4" name="altitude_above_home"/>
10+
<field value="1" name="is_relative_to_home"/>
11+
<field value="4" name="altitude"/>
12+
<field value="2" name="velocity"/>
13+
<field value="10" name="mode"/>
14+
<field value="0" name="mode_param0"/>
15+
<field value="0" name="mode_param1"/>
16+
<field value="0" name="mode_param2"/>
17+
<field value="0" name="mode_param3"/>
18+
<field value="3" name="condition"/>
19+
<field value="0" name="condition_param0"/>
20+
<field value="0" name="condition_param1"/>
21+
<field value="0" name="condition_param2"/>
22+
<field value="0" name="condition_param3"/>
23+
<field value="0" name="command"/>
24+
<field value="1" name="jumpdestination"/>
25+
<field value="1" name="errordestination"/>
26+
<field value="0" name="is_locked"/>
27+
</waypoint>
28+
<waypoint number="1">
29+
<field value="" name="description"/>
30+
<field value="31.21472836109785" name="latitude"/>
31+
<field value="121.4073050022125" name="longitude"/>
32+
<field value="6.835949457837972" name="distance_to_home"/>
33+
<field value="255.9637746104024" name="bearing_from_home"/>
34+
<field value="4" name="altitude_above_home"/>
35+
<field value="1" name="is_relative_to_home"/>
36+
<field value="4" name="altitude"/>
37+
<field value="2" name="velocity"/>
38+
<field value="1" name="mode"/>
39+
<field value="0" name="mode_param0"/>
40+
<field value="0" name="mode_param1"/>
41+
<field value="0" name="mode_param2"/>
42+
<field value="0" name="mode_param3"/>
43+
<field value="3" name="condition"/>
44+
<field value="0" name="condition_param0"/>
45+
<field value="0" name="condition_param1"/>
46+
<field value="0" name="condition_param2"/>
47+
<field value="0" name="condition_param3"/>
48+
<field value="0" name="command"/>
49+
<field value="1" name="jumpdestination"/>
50+
<field value="1" name="errordestination"/>
51+
<field value="0" name="is_locked"/>
52+
</waypoint>
53+
<waypoint number="2">
54+
<field value="" name="description"/>
55+
<field value="31.21473753673133" name="latitude"/>
56+
<field value="121.4072526991367" name="longitude"/>
57+
<field value="11.62323376567099" name="distance_to_home"/>
58+
<field value="266.8550741645803" name="bearing_from_home"/>
59+
<field value="4" name="altitude_above_home"/>
60+
<field value="1" name="is_relative_to_home"/>
61+
<field value="4" name="altitude"/>
62+
<field value="2" name="velocity"/>
63+
<field value="1" name="mode"/>
64+
<field value="0" name="mode_param0"/>
65+
<field value="0" name="mode_param1"/>
66+
<field value="0" name="mode_param2"/>
67+
<field value="0" name="mode_param3"/>
68+
<field value="3" name="condition"/>
69+
<field value="0" name="condition_param0"/>
70+
<field value="0" name="condition_param1"/>
71+
<field value="0" name="condition_param2"/>
72+
<field value="0" name="condition_param3"/>
73+
<field value="0" name="command"/>
74+
<field value="1" name="jumpdestination"/>
75+
<field value="1" name="errordestination"/>
76+
<field value="0" name="is_locked"/>
77+
</waypoint>
78+
<waypoint number="3">
79+
<field value="" name="description"/>
80+
<field value="31.21475359408779" name="latitude"/>
81+
<field value="121.4072003960609" name="longitude"/>
82+
<field value="16.61929524116082" name="distance_to_home"/>
83+
<field value="273.9603570103904" name="bearing_from_home"/>
84+
<field value="4" name="altitude_above_home"/>
85+
<field value="1" name="is_relative_to_home"/>
86+
<field value="4" name="altitude"/>
87+
<field value="2" name="velocity"/>
88+
<field value="1" name="mode"/>
89+
<field value="0" name="mode_param0"/>
90+
<field value="0" name="mode_param1"/>
91+
<field value="0" name="mode_param2"/>
92+
<field value="0" name="mode_param3"/>
93+
<field value="3" name="condition"/>
94+
<field value="0" name="condition_param0"/>
95+
<field value="0" name="condition_param1"/>
96+
<field value="0" name="condition_param2"/>
97+
<field value="0" name="condition_param3"/>
98+
<field value="0" name="command"/>
99+
<field value="1" name="jumpdestination"/>
100+
<field value="1" name="errordestination"/>
101+
<field value="0" name="is_locked"/>
102+
</waypoint>
103+
<waypoint number="4">
104+
<field value="" name="description"/>
105+
<field value="31.21475130017989" name="latitude"/>
106+
<field value="121.4072634279728" name="longitude"/>
107+
<field value="10.62302308267411" name="distance_to_home"/>
108+
<field value="274.8207949274774" name="bearing_from_home"/>
109+
<field value="4" name="altitude_above_home"/>
110+
<field value="1" name="is_relative_to_home"/>
111+
<field value="4" name="altitude"/>
112+
<field value="2" name="velocity"/>
113+
<field value="1" name="mode"/>
114+
<field value="0" name="mode_param0"/>
115+
<field value="0" name="mode_param1"/>
116+
<field value="0" name="mode_param2"/>
117+
<field value="0" name="mode_param3"/>
118+
<field value="3" name="condition"/>
119+
<field value="0" name="condition_param0"/>
120+
<field value="0" name="condition_param1"/>
121+
<field value="0" name="condition_param2"/>
122+
<field value="0" name="condition_param3"/>
123+
<field value="0" name="command"/>
124+
<field value="0" name="jumpdestination"/>
125+
<field value="1" name="errordestination"/>
126+
<field value="0" name="is_locked"/>
127+
</waypoint>
128+
<waypoint number="5">
129+
<field value="" name="description"/>
130+
<field value="31.21475244713385" name="latitude"/>
131+
<field value="121.4073130488396" name="longitude"/>
132+
<field value="5.954690883886174" name="distance_to_home"/>
133+
<field value="279.8658229393102" name="bearing_from_home"/>
134+
<field value="4" name="altitude_above_home"/>
135+
<field value="1" name="is_relative_to_home"/>
136+
<field value="4" name="altitude"/>
137+
<field value="2" name="velocity"/>
138+
<field value="1" name="mode"/>
139+
<field value="0" name="mode_param0"/>
140+
<field value="0" name="mode_param1"/>
141+
<field value="0" name="mode_param2"/>
142+
<field value="0" name="mode_param3"/>
143+
<field value="3" name="condition"/>
144+
<field value="0" name="condition_param0"/>
145+
<field value="0" name="condition_param1"/>
146+
<field value="0" name="condition_param2"/>
147+
<field value="0" name="condition_param3"/>
148+
<field value="0" name="command"/>
149+
<field value="0" name="jumpdestination"/>
150+
<field value="1" name="errordestination"/>
151+
<field value="0" name="is_locked"/>
152+
</waypoint>
153+
<waypoint number="6">
154+
<field value="" name="description"/>
155+
<field value="31.21472836109785" name="latitude"/>
156+
<field value="121.4073733985424" name="longitude"/>
157+
<field value="1.662859250057504" name="distance_to_home"/>
158+
<field value="184.3987057434047" name="bearing_from_home"/>
159+
<field value="4" name="altitude_above_home"/>
160+
<field value="1" name="is_relative_to_home"/>
161+
<field value="4" name="altitude"/>
162+
<field value="2" name="velocity"/>
163+
<field value="7" name="mode"/>
164+
<field value="0" name="mode_param0"/>
165+
<field value="0" name="mode_param1"/>
166+
<field value="0" name="mode_param2"/>
167+
<field value="0" name="mode_param3"/>
168+
<field value="3" name="condition"/>
169+
<field value="0" name="condition_param0"/>
170+
<field value="0" name="condition_param1"/>
171+
<field value="0" name="condition_param2"/>
172+
<field value="0" name="condition_param3"/>
173+
<field value="0" name="command"/>
174+
<field value="0" name="jumpdestination"/>
175+
<field value="1" name="errordestination"/>
176+
<field value="0" name="is_locked"/>
177+
</waypoint>
178+
</waypoints>

flight/Project/gdb/qt5pinrter.zip

44.3 KB
Binary file not shown.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# qt5printers
2+
The `core.py`, `typeinfo.py` and `__init__.py` files are taken from patchset 2
3+
at https://codereview.qt-project.org/87052 and provide a GDB pretty printer for
4+
Qt5. These are authored by Alex Merry from the KDE project.
5+
6+
## Usage
7+
Copy the three Python files to `~/.gdb/qt5printers/` and add this to your
8+
`~/.gdbinit` (or execute it from an existing `gdb` session):
9+
10+
11+
python
12+
import sys, os.path
13+
sys.path.insert(0, os.path.expanduser('~/.gdb'))
14+
import qt5printers
15+
qt5printers.register_printers(gdb.current_objfile())
16+
end
17+
18+
Now verify it with your favorite program. Below you can find a quick test
19+
program.
20+
21+
### Test program
22+
Here is a test program (save it as `test.cpp`):
23+
24+
#include <QTextStream>
25+
void test(const QByteArray & ba) { }
26+
int main(void) {
27+
test(QByteArray("abc"));
28+
return 0;
29+
}
30+
31+
Compile it with:
32+
33+
g++ test.cpp $(pkg-config --cflags --libs Qt5Core) -g
34+
35+
If everything goes well you should see the expanded data:
36+
37+
$ gdb -q -ex break\ test -ex r ./a.out
38+
...
39+
Breakpoint 1, test (ba="abc" = {...}) at test.cpp:4
40+
4 test(QByteArray("abc"));
41+
42+
## Background
43+
The Qt4 pretty printers from KDevelop[0] are not fully compatible with Qt5. For
44+
instance, the latest version (from December 2014) does not properly handle
45+
QByteArray. While these qt5printers are compatible with Qt5, it conflicts with
46+
Qt4 (for example, QByteArray changed in Qt 5 from Qt 4 in this commit[1]).
47+
48+
See also:
49+
50+
- https://bugs.kde.org/show_bug.cgi?id=331044
51+
- https://techbase.kde.org/Development/Tutorials/Debugging/Debugging_with_GDB
52+
53+
54+
## License
55+
For the applicable licenses, see the headers of the files and refer to the Qt5
56+
sources at https://code.qt.io/cgit/qt/qtbase.git/tree/.
57+
58+
[0]: https://projects.kde.org/projects/extragear/kdevelop/kdevelop/repository/revisions/master/show/debuggers/gdb/printers
59+
[1]: https://code.qt.io/cgit/qt/qtbase.git/commit/src/corelib/tools/qbytearray.h?id=ad35a41739c8e1fb6db62ed37b764448b2e59ece

flight/targets/boards/simposix/firmware/Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@ include $(FLIGHT_ROOT_DIR)/make/firmware-defs.mk
3535
DEBUG ?= YES
3636

3737
# List of modules to include
38-
MODULES = ManualControl Stabilization GPS
38+
MODULES = ManualControl
39+
MODULES += Stabilization
40+
# MODULES += GPS # ENABLE when realflight!
3941
MODULES += PathPlanner
4042
MODULES += PathFollower
4143
# MODULES += CameraStab
4244
MODULES += Telemetry
4345
MODULES += Logging
44-
MODULES += FirmwareIAP
46+
MODULES += FirmwareIAP # Board Identification
4547
MODULES += StateEstimation
4648
MODULES += Sensors/simulated/Sensors
4749
#MODULES += Airspeed
@@ -110,6 +112,7 @@ SRC += $(FLIGHTLIB)/insgps13state.c
110112
SRC += $(FLIGHTLIB)/paths.c
111113
SRC += $(FLIGHTLIB)/plans.c
112114
SRC += $(FLIGHTLIB)/sanitycheck.c
115+
SRC += $(FLIGHTLIB)/instrumentation.c
113116

114117
SRC += $(MATHLIB)/sin_lookup.c
115118
SRC += $(MATHLIB)/pid.c
@@ -129,6 +132,7 @@ SRC += $(PIOSCORECOMMON)/pios_callbackscheduler.c
129132
SRC += $(PIOSCORECOMMON)/pios_deltatime.c
130133
SRC += $(PIOSCORECOMMON)/pios_notify.c
131134
SRC += $(PIOSCORECOMMON)/pios_mem.c
135+
SRC += $(PIOSCORECOMMON)/pios_instrumentation.c
132136

133137
## PIOS Hardware
134138
include $(PIOS)/posix/library.mk

flight/targets/boards/simposix/firmware/UAVObjects.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ UAVOBJSRCFILENAMES += altitudeholdstatus
119119
UAVOBJSRCFILENAMES += ekfconfiguration
120120
UAVOBJSRCFILENAMES += ekfstatevariance
121121
UAVOBJSRCFILENAMES += takeofflocation
122-
# UAVOBJSRCFILENAMES += perfcounter
122+
UAVOBJSRCFILENAMES += perfcounter
123123
UAVOBJSRCFILENAMES += systemidentsettings
124124
UAVOBJSRCFILENAMES += systemidentstate
125125

flight/targets/boards/simposix/firmware/inc/FreeRTOSConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
#define configMINIMAL_STACK_SIZE ((unsigned short)256)
6060
#define configTOTAL_HEAP_SIZE ((size_t)(45 * 1024))
6161
#define configMAX_TASK_NAME_LEN (16)
62-
#define configUSE_TRACE_FACILITY 0
62+
#define configUSE_TRACE_FACILITY 1 // uxTaskGetSystemState()
6363
#define configUSE_16_BIT_TICKS 0
6464
#define configUSE_MUTEXES 1
6565
#define configUSE_RECURSIVE_MUTEXES 1

flight/targets/boards/simposix/firmware/inc/pios_config.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
#define PIOS_INCLUDE_CALLBACKSCHEDULER
4040
#define PIOS_INCLUDE_BL_HELPER
4141

42+
//
43+
#define PIOS_INCLUDE_INSTRUMENTATION
44+
#define PIOS_INSTRUMENTATION_MAX_COUNTERS 10
45+
4246
/* Enable/Disable PiOS Modules */
4347
// #define PIOS_INCLUDE_ADC
4448
#define PIOS_INCLUDE_DELAY
@@ -82,6 +86,8 @@
8286
#define PIOS_INCLUDE_COM_FLEXI
8387

8488
#define PIOS_INCLUDE_GPS
89+
// #define MODULE_GPS_BUILTIN // used in GPS.c
90+
8591
#define PIOS_OVERO_SPI
8692
/* Supported receiver interfaces */
8793
#define PIOS_INCLUDE_RCVR

flight/targets/boards/simposix/firmware/pios_board.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ void PIOS_Board_Init(void)
120120
/* Delay system */
121121
PIOS_DELAY_Init();
122122

123+
#ifdef PIOS_INCLUDE_INSTRUMENTATION
124+
PIOS_Instrumentation_Init(PIOS_INSTRUMENTATION_MAX_COUNTERS);
125+
#endif
126+
123127
// Initialize logfs for settings.
124128
// If linking in yaffs for testing, this will be /dev0 with settings stored
125129
// via the logfs object api in /dev0/logfs/

0 commit comments

Comments
 (0)