├── .clang-format
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── docs
├── Doxyfile
├── images
│ ├── rc_pilot modules_transparent_bg.png
│ └── rc_pilot modules_white_bg.png
└── src
│ ├── DoxygenLayout.xml
│ ├── customdoxygen.css
│ ├── footer.html
│ ├── header.html
│ └── mainpage.dox
├── include
├── feedback.h
├── flight_mode.h
├── input_manager.h
├── log_manager.h
├── mavlink_manager.h
├── mix.h
├── printf_manager.h
├── rc_pilot_defs.h
├── setpoint_manager.h
├── settings.h
├── state_estimator.h
├── thread_defs.h
└── thrust_map.h
├── scripts
├── copy_logs
└── transfer_rcpilot
├── settings
├── hex_6dof_settings.json
└── pgaskell_settings.json
└── src
├── feedback.c
├── input_manager.c
├── log_manager.c
├── main.c
├── mavlink_manager.c
├── mix.c
├── printf_manager.c
├── setpoint_manager.c
├── settings.c
├── state_estimator.c
└── thrust_map.c
/.clang-format:
--------------------------------------------------------------------------------
1 | ---
2 | BasedOnStyle: Google
3 | BreakBeforeBraces: Allman
4 | ColumnLimit: '100'
5 | Cpp11BracedListStyle: 'true'
6 | IndentWidth: '4'
7 | Language: Cpp
8 | NamespaceIndentation: None
9 | ReflowComments: 'true'
10 | SortIncludes: 'true'
11 | SpaceAfterCStyleCast: 'false'
12 | SpaceBeforeAssignmentOperators: 'true'
13 | SpaceBeforeParens: ControlStatements
14 | SpaceInEmptyParentheses: 'false'
15 | SpacesInAngles: 'false'
16 | SpacesInCStyleCastParentheses: 'false'
17 | SpacesInContainerLiterals: 'false'
18 | SpacesInParentheses: 'false'
19 | SpacesInSquareBrackets: 'false'
20 | Standard: Cpp11
21 | TabWidth: '4'
22 | UseTab: Never
23 | AlignAfterOpenBracket: DontAlign
24 | AccessModifierOffset: -4
25 | PointerAlignment: Left
26 | AllowShortFunctionsOnASingleLine: None
27 | ...
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | docs/html/*
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 StrawsonDesign
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # This is a general use makefile for robotics cape projects written in C.
2 | # Just change the target name to match your main source code filename.
3 |
4 | SRCDIR := src
5 | BINDIR := bin
6 | BUILDDIR := build
7 | INCLUDEDIR := include
8 | TARGET := $(BINDIR)/rc_pilot
9 |
10 | # file definitions for rules
11 | SOURCES := $(shell find $(SRCDIR) -type f -name *.c)
12 | OBJECTS := $(SOURCES:$(SRCDIR)/%.c=$(BUILDDIR)/%.o)
13 | INCLUDES := $(shell find $(INCLUDEDIR) -name '*.h')
14 |
15 | CC := gcc
16 | LINKER := gcc
17 | WFLAGS := -Wall -Wextra
18 | CFLAGS := -I $(INCLUDEDIR)
19 | OPT_FLAGS := -O1
20 | LDFLAGS := -lm -lrt -pthread -lrobotcontrol -ljson-c
21 |
22 | RM := rm -rf
23 | INSTALL := install -m 4755
24 | INSTALLDIR := install -d -m 755
25 |
26 | LINK := ln -s -f
27 | LINKDIR := /etc/robotcontrol
28 | LINKNAME := link_to_startup_program
29 |
30 | prefix ?= /usr
31 |
32 |
33 | # linking Objects
34 | $(TARGET): $(OBJECTS)
35 | @mkdir -p $(BINDIR)
36 | @$(LINKER) -o $(@) $(OBJECTS) $(LDFLAGS)
37 | @echo "made: $(@)"
38 |
39 | # rule for all other objects
40 | $(BUILDDIR)/%.o : $(SRCDIR)/%.c $(INCLUDES)
41 | @mkdir -p $(dir $(@))
42 | @$(CC) -c $(CFLAGS) $(OPT_FLAGS) $(DEBUGFLAG) $< -o $(@)
43 | @echo "made: $(@)"
44 |
45 | all: $(TARGET)
46 |
47 | debug:
48 | $(MAKE) $(MAKEFILE) DEBUGFLAG="-g -D DEBUG"
49 | @echo "$(TARGET) Make Debug Complete"
50 |
51 | install:
52 | @$(INSTALLDIR) $(DESTDIR)$(prefix)/bin
53 | @$(INSTALL) $(TARGET) $(DESTDIR)$(prefix)/bin
54 | @echo "$(TARGET) Install Complete"
55 |
56 | clean:
57 | @$(RM) $(BINDIR)
58 | @$(RM) $(BUILDDIR)
59 | @$(RM) docs/html
60 | @echo "Library Clean Complete"
61 |
62 | uninstall:
63 | @$(RM) $(DESTDIR)$(prefix)/$(TARGET)
64 | @echo "$(TARGET) Uninstall Complete"
65 |
66 | runonboot:
67 | @$(MAKE) install
68 | @$(LINK) $(DESTDIR)$(prefix)/bin/$(TARGET) $(LINKDIR)/$(LINKNAME)
69 | @echo "$(TARGET) Set to Run on Boot"
70 |
71 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Multirotor Flight Controller for the Robotics Cape
2 |
3 | Please don't use this and expect it to work the way you want it to!!!!!
4 | I wrote this purely for my own use. NOT FOR PUBLIC USE!!!!
5 | It comes with no warranty, no manual, and I won't answer questions about
6 | how it works. If it breaks something, you get to keep both pieces.
7 |
8 | However, enough people have asked me for it so here it is.
9 |
10 |
11 | Note: depends on libjson-c-dev & libjson-c3
12 | sudo apt install libjson-c-dev libjson-c3
13 |
14 | also libroboticscape >v0.4.0
15 |
--------------------------------------------------------------------------------
/docs/images/rc_pilot modules_transparent_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StrawsonDesign/rc_pilot/075c33f9fb397476872d076032bb4f2e56fcc579/docs/images/rc_pilot modules_transparent_bg.png
--------------------------------------------------------------------------------
/docs/images/rc_pilot modules_white_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StrawsonDesign/rc_pilot/075c33f9fb397476872d076032bb4f2e56fcc579/docs/images/rc_pilot modules_white_bg.png
--------------------------------------------------------------------------------
/docs/src/DoxygenLayout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
--------------------------------------------------------------------------------
/docs/src/customdoxygen.css:
--------------------------------------------------------------------------------
1 | /* The standard CSS for doxygen 1.8.4 */
2 | @import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,200,200italic,400italic);
3 | @import url(http://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic,900,900italic&subset=latin,greek-ext,greek,latin-ext);
4 | body{
5 | background-color: #fff;
6 | margin: 0;
7 | font-size: 12pt;
8 | }
9 | body, table, div, p, dl,
10 | table.directory, #nav-tree,#nav-tree .label {
11 | font-family: "Segoe UI", "Lucida Sans Unicode", Helvetica, Arial, Verdana, 'Roboto', sans-serif;
12 | color: #111;
13 | font-size: 1rem;
14 | }
15 | .arrow,
16 | .navpath li.navelem a,
17 | #navrow4 a,.icon, span.mlabel,
18 | tt, code, kbd, samp, a.el,
19 | pre.fragment, div.line,
20 | .mdescLeft, .mdescRight,
21 | .memItemLeft, .memItemRight,
22 | .memTemplItemLeft, .memTemplItemRight, .memTemplParams,
23 | .memname,
24 | .params .paramdir {
25 | font-family: Consolas, 'Courier New', courier, Courier, monospace;
26 | }
27 | .title,
28 | .fieldtable th{
29 | font-family: "Cambria", serif;
30 | }
31 | #projectname,#projectbrief,
32 | h1, h2, h3 {
33 | font-family: "Segoe UI Light", 'Source Sans Pro', sans-serif;
34 | margin: 1.75em 0 .2em 0;
35 | font-weight: 200;
36 | }
37 | #projectname{color:#00afff;font-weight:350;}
38 | #projectbrief{color:#16499a;}
39 | h1,h2,h3{color: #000;}
40 | /* @group Heading Levels */
41 | .title {
42 | color: #333;
43 | letter-spacing: 0.00em;
44 | font-size: 2rem;
45 | line-height: 2.1rem;
46 | font-weight: 500;
47 | margin: 10px 2px;
48 | }
49 | h1, h1.groupheader {
50 | font-weight: 200;
51 | color: #000000;
52 | letter-spacing: 0.00em;
53 | font-size: 2.5rem;
54 | line-height: 3.7rem;
55 | }
56 | h2, h2.groupheader {
57 | font-weight: 200;
58 | color: #000000;
59 | letter-spacing: 0.00em;
60 | font-size: 2.0rem;
61 | line-height: 2.3rem;
62 | letter-spacing: 0.01em;
63 | border-bottom: none;
64 | margin: 1.75em 0 .2em 0;
65 | padding: 0px;
66 | width: 100%;
67 | }
68 | h3.groupheader {
69 | font-weight: 200;
70 | font-size: 2.0rem;
71 | line-height: 2.1rem;
72 | color: #000;
73 | }
74 | h1, h2, h3, h4, h5, h6 {
75 | /*-webkit-transition: text-shadow:none;// 0.5s linear;
76 | -moz-transition: text-shadow:none;// 0.5s linear;
77 | -ms-transition: text-shadow:none;// 0.5s linear;
78 | -o-transition: text-shadow:none;// 0.5s linear;
79 | transition: text-shadow:none;// 0.5s linear;
80 | //margin-right: 15px;
81 | //margin: 42px 0px 20px 0px;*/
82 | }
83 | h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
84 | text-shadow:none;//: 0 0 15px cyan;
85 | }
86 | dt {
87 | font-weight: bold;
88 | }
89 | div.multicol {
90 | -moz-column-gap: 1em;
91 | -webkit-column-gap: 1em;
92 | -moz-column-count: 3;
93 | -webkit-column-count: 3;
94 | }
95 | p.startli, p.startdd, p.starttd {
96 | margin-top: 2px;
97 | }
98 | p.endli {
99 | margin-bottom: 0px;
100 | }
101 | p.enddd {
102 | margin-bottom: 4px;
103 | }
104 | p.endtd {
105 | margin-bottom: 2px;
106 | }
107 | /* @end */
108 | caption {
109 | font-weight: bold;
110 | }
111 | span.legend {
112 | font-size: 70%;
113 | text-align: center;
114 | }
115 | h3.version {
116 | font-size: 90%;
117 | text-align: center;
118 | }
119 | div.qindex, div.navtab{
120 | background-color: #00aff0;/*blue*/
121 | border: 1px solid #00aff0;/*blue*/
122 | text-align: center;
123 | }
124 | div.qindex, div.navpath {
125 | width: 100%;
126 | line-height: 140%;
127 | }
128 | div.navtab {
129 | margin-right: 15px;
130 | }
131 | /* @group Link Styling */
132 | a {
133 | color: #16499a;/*darkBlue*/
134 | font-weight: normal;
135 | text-decoration: none;
136 | }
137 | a:hover {
138 | text-decoration: underline;
139 | }
140 | .contents a, .contents a:visited {
141 | color: #16499a;/*darkBlue*/
142 | }
143 | a.qindex, a.qindex:visited {
144 | color: #fff;
145 | font-weight: normal;
146 | }
147 | a.qindexHL {
148 | font-weight: normal;
149 | background-color: #9CAFD4;
150 | color: #ffffff;
151 | border: 1px double #869DCA;
152 | }
153 | .contents a.qindexHL:visited {
154 | color: #ffffff;
155 | }
156 | a.el{
157 | font-weight: normal;
158 | }
159 | a.elRef {
160 | }
161 | a.code, a.code:visited {
162 | color: #16499a;/*darkBlue*/
163 | }
164 | a.codeRef, a.codeRef:visited {
165 | color: #16499a;/*darkBlue*/
166 | }
167 | /* @end */
168 | dl.el {
169 | margin-left: -1cm;
170 | }
171 | pre.fragment {
172 | border: 1px solid #C4CFE5;
173 | background-color: #FBFCFD;
174 | padding: 4px 6px;
175 | margin: 4px 8px 4px 2px;
176 | overflow: auto;
177 | word-wrap: break-word;
178 | font-size: 10pt;
179 | line-height: 125%;
180 | }
181 | div.fragment {
182 | padding: 6px 10px;
183 | margin: 15px 0px;
184 | border: solid 1px rgb(221, 221, 221);
185 | border-radius: 3px;
186 | background-color: rgb(248, 248, 248);
187 | }
188 | div.line {
189 | min-height: 11pt;
190 | line-height: 1.0;
191 | text-wrap: unrestricted;
192 | white-space: -moz-pre-wrap; /* Moz */
193 | white-space: -pre-wrap; /* Opera 4-6 */
194 | white-space: -o-pre-wrap; /* Opera 7 */
195 | white-space: pre-wrap; /* CSS3 */
196 | word-wrap: break-word; /* IE 5.5+ */
197 | text-indent: -53px;
198 | padding-left: 53px;
199 | padding-bottom: 0px;
200 | margin: 0px;
201 | -webkit-transition-property: background-color, box-shadow;
202 | -webkit-transition-duration: 0.5s;
203 | -moz-transition-property: background-color, box-shadow;
204 | -moz-transition-duration: 0.5s;
205 | -ms-transition-property: background-color, box-shadow;
206 | -ms-transition-duration: 0.5s;
207 | -o-transition-property: background-color, box-shadow;
208 | -o-transition-duration: 0.5s;
209 | transition-property: background-color, box-shadow;
210 | transition-duration: 0.5s;
211 | }
212 | div.line.glow {
213 | background-color: blue;
214 | box-shadow: 0 0 10px blue;
215 | }
216 | span.lineno {
217 | padding-right: 4px;
218 | text-align: right;
219 | border-right: 2px solid #0F0;
220 | background-color: #E8E8E8;
221 | white-space: pre;
222 | }
223 | span.lineno a {
224 | background-color: #D8D8D8;
225 | }
226 | span.lineno a:hover {
227 | background-color: #C8C8C8;
228 | }
229 | div.ah {
230 | background-color: #16499a;/*darkBlue*/
231 | font-weight: lighter;
232 | color: #fff;/*white*/
233 | margin-bottom: 3px;
234 | margin-top: 3px;
235 | padding: 0.2em;
236 | border: none;
237 | border-radius: 0.0em;
238 | -webkit-border-radius: .0em;
239 | -moz-border-radius: .0em;
240 | box-shadow: none;
241 | -webkit-box-shadow: none;
242 | -moz-box-shadow: none;
243 | background-image: none;
244 | }
245 | div.groupHeader {
246 | margin-left: 0px;
247 | margin-top: 9px;
248 | margin-bottom: 4.7px;
249 | font-size: 19px;
250 | font-weight: normal;
251 | }
252 | div.groupText {
253 | margin-left: 16px;
254 | font-style: italic;
255 | }
256 | div.contents {
257 | margin-top: 10px;
258 | margin-left: 12px;
259 | margin-right: 8px;
260 | }
261 | td.indexkey {
262 | background-color: #EBEFF6;
263 | font-weight: bold;
264 | border: 1px solid #C4CFE5;
265 | margin: 2px 0px 2px 0;
266 | padding: 2px 10px;
267 | white-space: nowrap;
268 | vertical-align: top;
269 | }
270 | td.indexvalue {
271 | background-color: #EBEFF6;
272 | border: 1px solid #C4CFE5;
273 | padding: 2px 10px;
274 | margin: 2px 0px;
275 | }
276 | tr.memlist {
277 | background-color: #EEF1F7;
278 | }
279 | p.formulaDsp {
280 | text-align: center;
281 | }
282 | img.formulaDsp {
283 | }
284 | img.formulaInl {
285 | vertical-align: middle;
286 | }
287 | div.center {
288 | text-align: center;
289 | margin-top: 0px;
290 | margin-bottom: 0px;
291 | padding: 0px;
292 | }
293 | div.center img {
294 | border: 0px;
295 | }
296 | address.footer {
297 | text-align: right;
298 | padding-right: 12px;
299 | }
300 | img.footer {
301 | border: 0px;
302 | vertical-align: middle;
303 | width:3.5rem;
304 | }
305 | /* @group Code colorization */
306 | span.keyword {
307 | color: #008000
308 | }
309 | span.keywordtype {
310 | color: #604020
311 | }
312 | span.keywordflow {
313 | color: #e08000
314 | }
315 | span.comment {
316 | color: #800000
317 | }
318 | span.preprocessor {
319 | color: #806020
320 | }
321 | span.stringliteral {
322 | color: #002080
323 | }
324 | span.charliteral {
325 | color: #008080
326 | }
327 | span.vhdldigit {
328 | color: #ff00ff
329 | }
330 | span.vhdlchar {
331 | color: #000000
332 | }
333 | span.vhdlkeyword {
334 | color: #700070
335 | }
336 | span.vhdllogic {
337 | color: #ff0000
338 | }
339 | blockquote {
340 | background-color: #F7F8FB;
341 | border-left: 2px solid #9CAFD4;
342 | margin: 0 24px 0 4px;
343 | padding: 0 12px 0 16px;
344 | }
345 | /* @end */
346 | /*
347 | .search {
348 | color: #003399;
349 | font-weight: bold;
350 | }
351 | form.search {
352 | margin-bottom: 0px;
353 | margin-top: 0px;
354 | }
355 | input.search {
356 | font-size: 75%;
357 | color: #000080;
358 | font-weight: normal;
359 | background-color: #e8eef2;
360 | }
361 | */
362 | td.tiny {
363 | font-size: 75%;
364 | }
365 | .dirtab {
366 | padding: 4px;
367 | border-collapse: collapse;
368 | border: 1px solid #A3B4D7;
369 | }
370 | th.dirtab {
371 | background: #EBEFF6;
372 | font-weight: bold;
373 | }
374 | hr {
375 | height: 0px;
376 | border: none;
377 | border-top: 1px solid #aaa;
378 | }
379 | hr.footer {
380 | height: 0px;
381 | border-top: 3px solid #aaa;
382 | }
383 | /* @group Member Descriptions */
384 | table.memberdecls {
385 | border-spacing: 0px;
386 | padding: 0px;
387 | }
388 | .memberdecls td, .fieldtable tr {
389 | -webkit-transition-property: background-color, box-shadow;
390 | -webkit-transition-duration: 0.5s;
391 | -moz-transition-property: background-color, box-shadow;
392 | -moz-transition-duration: 0.5s;
393 | -ms-transition-property: background-color, box-shadow;
394 | -ms-transition-duration: 0.5s;
395 | -o-transition-property: background-color, box-shadow;
396 | -o-transition-duration: 0.5s;
397 | transition-property: background-color, box-shadow;
398 | transition-duration: 0.5s;
399 | }
400 | .memberdecls td.glow, .fieldtable tr.glow {
401 | background-color: blue;
402 | box-shadow: 0 0 15px blue;
403 | }
404 | .mdescLeft, .mdescRight,
405 | .memItemLeft, .memItemRight,
406 | .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
407 | background-color: #f0f4f8;
408 | border: none;
409 | margin: 4px;
410 | padding: 1px 0 0 8px;
411 | }
412 | .mdescLeft, .mdescRight {
413 | padding: 0px 8px 4px 8px;
414 | color: #555;
415 | font-style: italic;
416 | font-size: .9rem;
417 | }
418 | .memSeparator {
419 | border-bottom: 1px solid #fff;
420 | line-height: 1px;
421 | margin: 0px;
422 | padding: 0px;
423 | }
424 | .memItemLeft, .memTemplItemLeft {
425 | white-space: nowrap;
426 | }
427 | .memItemLeft{padding-top:6px;}
428 | .memItemRight, .memTemplItemRight {
429 | padding-top:6px;
430 | width: 100%;
431 | }
432 | .memTemplParams {
433 | color: #4665A2;
434 | white-space: nowrap;
435 | font-size: 80%;
436 | }
437 | /* @end */
438 | /* @group Member Details */
439 | /* Styles for detailed member documentation */
440 | .memtemplate {
441 | font-size: .8rem;
442 | color: #666;
443 | font-weight: normal;
444 | margin-left: 2px;
445 | }
446 | .memnav {
447 | background-color: #EBEFF6;
448 | border: 1px solid #A3B4D7;
449 | text-align: center;
450 | margin: 2px;
451 | margin-right: 15px;
452 | padding: 2px;
453 | }
454 | .mempage {
455 | width: 100%;
456 | }
457 | .memitem {
458 | border: 1px solid #ccc;
459 | padding: 0;
460 | margin-bottom: 10px;
461 | margin-right: 5px;
462 | -webkit-transition: box-shadow 0.5s linear;
463 | -moz-transition: box-shadow 0.5s linear;
464 | -ms-transition: box-shadow 0.5s linear;
465 | -o-transition: box-shadow 0.5s linear;
466 | transition: box-shadow 0.5s linear;
467 | display: table !important;
468 | width: 100%;
469 | }
470 | .memitem.glow {
471 | box-shadow: 0 0 15px blue;
472 | }
473 | .memname {
474 | font-weight: normal;
475 | margin-left: 0px;
476 | }
477 | .memname a.el{
478 | font-weight: normal;
479 | }
480 | .memname td {
481 | vertical-align: bottom;
482 | }
483 | .memproto, dl.reflist dt {
484 | margin-top: 1.5em;
485 | border: none;
486 | border-radius: 0;
487 | padding: 6px;
488 | color: #00aff0;
489 | font-weight: normal;
490 | text-shadow:none;
491 | background-image:none;
492 | background-color: #f0f4f8;
493 | /* opera specific markup */
494 | box-shadow: none;
495 | /* firefox specific markup */
496 | }
497 | .memdoc, dl.reflist dd {
498 | border: none;
499 | padding: 6px;
500 | border-top-width: 0;
501 | background-image: none;
502 | background-color: #FFFFFF;
503 | /* opera specific markup */
504 | border-bottom-left-radius: 0px;
505 | border-bottom-right-radius: 0px;
506 | box-shadow: none;
507 | /* firefox specific markup */
508 | -moz-border-radius-bottomleft: 0px;
509 | -moz-border-radius-bottomright: 0px;
510 | -moz-box-shadow: none;
511 | /* webkit specific markup */
512 | -webkit-border-bottom-left-radius: 0px;
513 | -webkit-border-bottom-right-radius: 0px;
514 | -webkit-box-shadow: none;
515 | }
516 | dl.reflist dt {
517 | padding: 5px;
518 | }
519 | dl.reflist dd {
520 | margin: 0px 0px 10px 0px;
521 | padding: 5px;
522 | }
523 | .paramkey {
524 | text-align: right;
525 | }
526 | .paramtype {
527 | white-space: nowrap;
528 | }
529 | .paramname {
530 | color: #602020;
531 | white-space: nowrap;
532 | }
533 | .paramname em {
534 | font-style: italic;
535 | font-weight: normal;
536 | }
537 | .paramname code {
538 | line-height: 14px;
539 | }
540 | .params, .retval, .exception, .tparams {
541 | margin-left: 0px;
542 | padding-left: 0px;
543 | }
544 | .params .paramname, .retval .paramname {
545 | font-family: Consolas, "Courier New", courier, Courier, monospace;
546 | font-size:105%;
547 | font-style: italic;
548 | font-weight: normal;
549 | text-shadow:none;
550 | background-color: #f8f8f8;
551 | display: inline;
552 | margin: 0 16px 0 0;
553 | }
554 | .params .paramtype {
555 | font-style: italic;
556 | vertical-align: top;
557 | }
558 | .params .paramdir {
559 | vertical-align: top;
560 | }
561 | table.mlabels {
562 | border-spacing: 0px;
563 | }
564 | td.mlabels-left {
565 | width: 100%;
566 | padding: 0px;
567 | }
568 | td.mlabels-right {
569 | vertical-align: middle;
570 | padding: 0px;
571 | white-space: nowrap;
572 | }
573 | span.mlabels {
574 | margin-left: 8px;
575 | }
576 | span.mlabel {
577 | background-color:#f8f8f8; /*grey*/
578 | border:1px solid #ccc;
579 | text-shadow:none;
580 | color: #00aff0;/*blue*/
581 | margin-right: 4px;
582 | padding: 2px 3px;
583 | border-radius: 0px;
584 | font-size: .7rem;
585 | white-space: nowrap;
586 | vertical-align: middle;
587 | }
588 |
589 | /* @end */
590 | /* these are for tree view when not used as main index */
591 | div.directory {
592 | margin: 10px 0px;
593 | border-top: 1px solid #A8B8D9;
594 | border-bottom: 1px solid #A8B8D9;
595 | width: 100%;
596 | }
597 | .directory table {
598 | border-collapse:collapse;
599 | }
600 | .directory td {
601 | margin: 0px;
602 | padding: 0px;
603 | vertical-align: top;
604 | }
605 | .directory td.entry {
606 | white-space: nowrap;
607 | padding-right: 6px;
608 | padding-top: 3px;
609 | }
610 | .directory td.entry a {
611 | outline:none;
612 | }
613 | .directory td.entry a img {
614 | border: none;
615 | }
616 | .directory td.desc {
617 | width: 100%;
618 | padding-left: 6px;
619 | padding-right: 6px;
620 | padding-top: 3px;
621 | border-left: 1px solid rgba(0,0,0,0.05);
622 | }
623 | .directory tr.even {
624 | padding-left: 6px;
625 | background-color: #F7F8FB;
626 | }
627 | .directory img {
628 | vertical-align: -30%;
629 | }
630 | .directory .levels {
631 | white-space: nowrap;
632 | width: 100%;
633 | text-align: right;
634 | font-size: 9pt;
635 | }
636 | .directory .levels span {
637 | cursor: pointer;
638 | padding-left: 2px;
639 | padding-right: 2px;
640 | color: #3D578C;
641 | }
642 | div.dynheader {
643 | margin-top: 8px;
644 | -webkit-touch-callout: none;
645 | -webkit-user-select: none;
646 | -khtml-user-select: none;
647 | -moz-user-select: none;
648 | -ms-user-select: none;
649 | user-select: none;
650 | }
651 | address {
652 | font-style: normal;
653 | color: #2A3D61;
654 | }
655 | table.doxtable {
656 | border-collapse:collapse;
657 | margin-top: 4px;
658 | margin-bottom: 4px;
659 | }
660 | table.doxtable td, table.doxtable th {
661 | border: 1px solid #2D4068;
662 | padding: 3px 7px 2px;
663 | }
664 | table.doxtable th {
665 | background-color: #374F7F;
666 | color: #FFFFFF;
667 | font-size: 110%;
668 | padding-bottom: 4px;
669 | padding-top: 5px;
670 | }
671 | table.fieldtable {
672 | /*width: 100%;*/
673 | margin-bottom: 10px;
674 | border: 1px solid #eee;
675 | border-spacing: 0px;
676 | -moz-border-radius: 0px;
677 | -webkit-border-radius: 0px;
678 | border-radius: 0px;
679 | -moz-box-shadow: none;
680 | -webkit-box-shadow: none;
681 | box-shadow: none;
682 | }
683 | .fieldtable td, .fieldtable th {
684 | padding: 3px 7px 2px;
685 | }
686 | .fieldtable td.fieldtype, .fieldtable td.fieldname {
687 | white-space: nowrap;
688 | border-right: 1px solid #ccc;
689 | border-bottom: 1px solid #ccc;
690 | vertical-align: top;
691 | }
692 | .fieldtable td.fieldname {
693 | padding-top: 3px;
694 | }
695 | .fieldtable td.fielddoc {
696 | border-bottom: 1px solid #ccc;
697 | /*width: 100%;*/
698 | }
699 | .fieldtable td.fielddoc p:first-child {
700 | margin-top: 0px;
701 | }
702 | .fieldtable td.fielddoc p:last-child {
703 | margin-bottom: 2px;
704 | }
705 | .fieldtable tr:last-child td {
706 | border-bottom: none;
707 | }
708 | .fieldtable th {
709 | background-image:none;
710 | background-repeat:repeat-x;
711 | background-color:#eee;
712 | font-size: 1.05rem;
713 | font-weight:normal;
714 | color: #00aff0;
715 | padding-bottom: 4px;
716 | padding-top: 5px;
717 | text-align:left;
718 | -moz-border-radius:0;
719 | -webkit-border-radius:0px;
720 | border-radius: 0px;
721 | border-bottom: 1px solid #eee;
722 | }
723 | .tabsearch {
724 | top: 0px;
725 | left: 10px;
726 | height: 36px;
727 | background-image: url('tab_b.png');
728 | z-index: 101;
729 | overflow: hidden;
730 | font-size: 13px;
731 | }
732 | .navpath ul
733 | {
734 | font-size: 11px;
735 | background-image:url('tab_b.png');
736 | background-repeat:repeat-x;
737 | background-position: 0 -5px;
738 | height:30px;
739 | line-height:30px;
740 | color:#8AA0CC;
741 | border:solid 1px #C2CDE4;
742 | overflow:hidden;
743 | margin:0px;
744 | padding:0px;
745 | }
746 | .navpath li
747 | {
748 | list-style-type:none;
749 | float:left;
750 | padding-left:10px;
751 | padding-right:15px;
752 | background-image:url('bc_s.png');
753 | background-repeat:no-repeat;
754 | background-position:right;
755 | color:#fff;
756 | }
757 | .navpath li.navelem a
758 | {
759 | height:32px;
760 | display:block;
761 | text-decoration: none;
762 | outline: none;
763 | color: #fff;
764 | font-size:.8rem;
765 | text-shadow:none;
766 | text-decoration: none;
767 | }
768 | .navpath li.navelem a:hover
769 | {
770 | color:#6884BD;
771 | }
772 | .navpath li.footer
773 | {
774 | list-style-type:none;
775 | float:right;
776 | padding-left:10px;
777 | padding-right:15px;
778 | background-image:none;
779 | background-repeat:no-repeat;
780 | background-position:right;
781 | color:#ccc;
782 | font-size: 8pt;
783 | }
784 | div.summary
785 | {
786 | float: right;
787 | font-size: 8pt;
788 | padding-right: 5px;
789 | width: 50%;
790 | text-align: right;
791 | }
792 | div.summary a
793 | {
794 | white-space: nowrap;
795 | }
796 | div.ingroups
797 | {
798 | font-size: 8pt;
799 | width: 50%;
800 | text-align: left;
801 | }
802 | div.ingroups a
803 | {
804 | white-space: nowrap;
805 | }
806 | div.header
807 | {
808 | background-image: none;
809 | background-color: #f8f8f8;
810 | margin: 0px;
811 | border: none;
812 | }
813 | div.headertitle
814 | {
815 | padding: 5px 5px 5px 10px;
816 | }
817 | dl
818 | {
819 | padding: 0 0 0 10px;
820 | }
821 | /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
822 | dl.section
823 | {
824 | margin-left: 0px;
825 | padding-left: 0px;
826 | }
827 | dl.note
828 | {
829 | margin-left: 0px;
830 | padding: 6px 0px 3px 8px;
831 | border-left: 6px solid;
832 | border-color: #D0C000;
833 | background-color: #fff799
834 | }
835 | dl.warning, dl.attention
836 | {
837 | margin-left: 0px;
838 | padding: 6px 0px 3px 8px;
839 | border-left: 6px solid;
840 | border-color: #FF0000;
841 | }
842 | dl.pre, dl.post, dl.invariant
843 | {
844 | margin-left:-7px;
845 | padding-left: 3px;
846 | border-left:4px solid;
847 | border-color: #00D000;
848 | }
849 | dl.deprecated
850 | {
851 | margin-left: 0px;
852 | padding: 6px 0px 3px 8px;
853 | border-left: 6px solid;
854 | border-color: #505050;
855 | }
856 | dl.deprecated dt a.el
857 | {
858 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
859 | }
860 | dl.todo
861 | {
862 | margin-left: 0px;
863 | padding: 6px 0px 3px 8px;
864 | border-left:4px solid;
865 | border-color: #00C0E0;
866 | }
867 | dl.test
868 | {
869 | margin-left:-7px;
870 | padding-left: 3px;
871 | border-left:4px solid;
872 | border-color: #3030E0;
873 | }
874 | dl.bug
875 | {
876 | margin-left:-7px;
877 | padding-left: 3px;
878 | border-left:4px solid;
879 | border-color: #C08050;
880 | }
881 | dl.section dd {
882 | margin-bottom: 6px;
883 | }
884 | #projectlogo
885 | {
886 | text-align: center;
887 | vertical-align: bottom;
888 | border-collapse: separate;
889 | }
890 | #projectlogo img
891 | {
892 | border: 0px none;
893 | width: 4.5rem;
894 | float:left;
895 | }
896 | #projectname
897 | {
898 | font-size: 3rem;
899 | margin: 0px;
900 | padding: 2px 0px;
901 | float:left;
902 | }
903 | #projectbrief
904 | {
905 | font-size: 1.2rem;
906 | margin: 0px;
907 | padding: 2.5rem 0 0 .25rem;
908 | float:left;
909 | font-style: italic;
910 | }
911 | #projectnumber
912 | {
913 | font: 50% Tahoma, Arial,sans-serif;
914 | margin: 0px;
915 | padding: 0px;
916 | }
917 | #titlearea
918 | {
919 | padding: 0px;
920 | margin: 0px;
921 | width: 100%;
922 | border-bottom: 1px solid #5373B4;
923 | backround-color: gainsboro;
924 | }
925 | .image
926 | {
927 | text-align: center;
928 | }
929 | .dotgraph
930 | {
931 | text-align: center;
932 | }
933 | .mscgraph
934 | {
935 | text-align: center;
936 | }
937 | .caption
938 | {
939 | font-weight: bold;
940 | }
941 | div.zoom
942 | {
943 | border: 1px solid #90A5CE;
944 | }
945 | dl.citelist {
946 | margin-bottom:50px;
947 | }
948 | dl.citelist dt {
949 | color:#334975;
950 | float:left;
951 | font-weight:bold;
952 | margin-right:10px;
953 | padding:5px;
954 | }
955 | dl.citelist dd {
956 | margin:2px 0;
957 | padding:5px 0;
958 | }
959 | div.toc {
960 | padding: 14px 25px;
961 | background-color: #F4F6FA;
962 | border: 1px solid #D8DFEE;
963 | border-radius: 7px 7px 7px 7px;
964 | float: right;
965 | height: auto;
966 | margin: 0 20px 10px 10px;
967 | width: 200px;
968 | }
969 | div.toc li {
970 | background: url("bdwn.png") no-repeat scroll 0 5px transparent;
971 | font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
972 | margin-top: 5px;
973 | padding-left: 10px;
974 | padding-top: 2px;
975 | }
976 | div.toc h3 {
977 | font: bold 12px/1.2 Arial,FreeSans,sans-serif;
978 | color: #4665A2;
979 | border-bottom: 0 none;
980 | margin: 0;
981 | }
982 | div.toc ul {
983 | list-style: none outside none;
984 | border: medium none;
985 | padding: 0px;
986 | }
987 | div.toc li.level1 {
988 | margin-left: 0px;
989 | }
990 | div.toc li.level2 {
991 | margin-left: 15px;
992 | }
993 | div.toc li.level3 {
994 | margin-left: 30px;
995 | }
996 | div.toc li.level4 {
997 | margin-left: 45px;
998 | }
999 | .inherit_header {
1000 | font-weight: bold;
1001 | color: gray;
1002 | cursor: pointer;
1003 | -webkit-touch-callout: none;
1004 | -webkit-user-select: none;
1005 | -khtml-user-select: none;
1006 | -moz-user-select: none;
1007 | -ms-user-select: none;
1008 | user-select: none;
1009 | }
1010 | .inherit_header td {
1011 | padding: 6px 0px 2px 5px;
1012 | }
1013 | .inherit {
1014 | display: none;
1015 | }
1016 | tr.heading h2 {
1017 | margin-top: 42px;
1018 | margin-bottom: 20px;
1019 | }
1020 | @media print
1021 | {
1022 | #top { display: none; }
1023 | #side-nav { display: none; }
1024 | #nav-path { display: none; }
1025 | body { overflow:visible; }
1026 | h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
1027 | .summary { display: none; }
1028 | .memitem { page-break-inside: avoid; }
1029 | #doc-content
1030 | {
1031 | margin-left:0 !important;
1032 | height:auto !important;
1033 | width:auto !important;
1034 | overflow:inherit;
1035 | display:inline;
1036 | }
1037 | }
1038 | .tabs, .tabs2, .tabs3 {
1039 | background-image: none;
1040 | background-color: #16499a; /*darkBlue*/
1041 | color: white;
1042 | }
1043 | .tablist li.current a{
1044 | text-shadow: none;
1045 | }
1046 | .tabs2 {
1047 | background-color: #00aff0; /*blue*/
1048 | font-size:11pt;
1049 | }
1050 | #navrow3{background-color: #ddd;}
1051 | #navrow3 a{color: #16499a;}
1052 | #navrow4{background-color:#eee; }
1053 | #navrow4 li{border: 1px solid #e8e8e8;}
1054 | #navrow4 a{color:#00aff0;font-weight: normal;}
1055 | .tablist li {
1056 | background-image: none;
1057 | font-size:0.8rem;
1058 | line-height:1.65rem;
1059 | }
1060 | .tablist a {
1061 | background-image: none;
1062 | color: white;
1063 | text-shadow:none;
1064 | }
1065 | .tablist a:hover {
1066 | background-image: none;
1067 | text-shadow:none;
1068 | }
1069 | .tablist li.current a {
1070 | background-image: none;
1071 | color: #fff;
1072 | text-shadow:none;
1073 | }
1074 | .tabs li.current {
1075 | background-color: #00aff0; /*blue*/
1076 | color: #fff;
1077 | }
1078 | .tabs2 li.current {
1079 | background-color: lightskyblue;/* #f0a30a;amber*/
1080 | }
1081 | .navpath {
1082 | border: none;
1083 | }
1084 | .navpath ul {
1085 | background-image:url('tab_a.png');
1086 | background-repeat:repeat-x;
1087 | background-position: 0 -5px;
1088 | /* background-image: none;*/
1089 | /* background-color: lightskyblue; /*lightblue*/*/
1090 | border: none;
1091 | }
1092 | .navpath li {
1093 | background-image: none;
1094 | }
1095 | .navpath li.navelem a {
1096 | background-image: none;
1097 | color: white;
1098 | text-shadow:none;/*: none;*/
1099 | }
1100 | .navpath li.navelem a:hover {
1101 | background-image: none;
1102 | color: white;
1103 | text-shadow:none;/*: none;*/
1104 | }
1105 | .icona {
1106 | width: 1.5rem;
1107 | height: 1.45rem;
1108 | display: inline-block;
1109 | }
1110 | .icon {
1111 | font-weight: bold;
1112 | font-size: .8rem;
1113 | height: 1rem;
1114 | width: 1rem;
1115 | display: inline-block;
1116 | background-color: #87794e;/*taupe*/
1117 | color: white;
1118 | text-align: center;
1119 | border-radius: 0px;
1120 | margin-left: 2px;
1121 | margin-right: 2px;
1122 | }
1123 | /* navtree */
1124 | #nav-tree {
1125 | background-color: #fdfdfd;
1126 | background-image: none;
1127 | font-size: 1rem;
1128 | }
1129 | #nav-tree .selected {
1130 | background-image: none;
1131 | background-color:lightskyblue;/*#f0a30a;/amber*/
1132 | text-shadow:none;
1133 | }
1134 | #nav-tree .label{
1135 | font-size: .9rem;
1136 | }
1137 | .ui-resizable-e{
1138 | background-image: none;
1139 | background-color: #c4c8ca;
1140 | }
--------------------------------------------------------------------------------
/docs/src/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
19 |
20 |