Compare commits

..

3147 Commits

Author SHA1 Message Date
5b18f63229 Merge remote-tracking branch 'upstream/master' to the fork ro include all fsfw changes and tags 2022-01-17 15:21:17 +01:00
2a268e14d1 Merge pull request 'Release v3.0.0' (#532) from development into master
Reviewed-on: fsfw/fsfw#532
2022-01-10 14:52:31 +01:00
bd64a43819 Merge pull request 'simplified test controller and added docs gitignore' (#530) from mueller/controller-update into development
Reviewed-on: fsfw/fsfw#530
2021-12-20 14:15:37 +01:00
d0c7878da4
simplified test controller and added docs gitignore 2021-12-14 17:50:23 +01:00
2bd1e6acbd Merge pull request 'Added formatting scripts' (#527) from KSat/fsfw:mueller/clang-shell-script into development
Reviewed-on: fsfw/fsfw#527
2021-12-13 14:26:22 +01:00
9697575f50 Merge branch 'development' into mueller/clang-shell-script 2021-12-13 14:25:11 +01:00
cec44ad44c Merge pull request 'improved win32 define' (#529) from KSat/fsfw:woodward/define-improvement into development
Reviewed-on: fsfw/fsfw#529
2021-12-13 14:20:50 +01:00
David
661b7b44e0 improved win32 define 2021-12-12 19:28:51 +01:00
e952a82b65
small tweaks and fixes 2021-12-07 13:14:57 +01:00
cbcfa8fe56 Merge remote-tracking branch 'upstream/development' into mueller/clang-shell-script 2021-12-06 15:06:05 +01:00
32ba4301e4 Merge pull request 'Introducing documentation with Sphinx' (#526) from mueller/sphinx-docs into development
Reviewed-on: fsfw/fsfw#526
2021-12-06 15:05:29 +01:00
4a5204d6f6
small fix for helper script 2021-12-06 14:46:31 +01:00
df45f02c39
script fixes, odd behaviour 2021-12-03 14:55:00 +01:00
15dddd7fc4
small README section for formatting 2021-12-01 16:17:27 +01:00
fd7581f8ba Added formatting scripts
1. Added .clang-format file which contains information for the
   clang-format tool on how to format source files
2. Added shell helper script to apply all changes on HAL soures,
   test sources and primary sources

The shell script was not applied yet. This should be done shortly
before introducing the release. Also, it might be good idea to provide
instructions on how to set up the formatter for Eclipse
2021-12-01 16:11:57 +01:00
c2bf09d506 Introducing documentation with Sphinx
This PR introduces the generation of documentation based on
this excellent blog post: https://devblogs.microsoft.com/cppblog/clear-functional-c-documentation-with-sphinx-breathe-doxygen-cmake/

It combines the tools Sphinx, Doxygen and Breathe to generate good
looking HTML documentation conveniently which can be hosted easily.

The helper scripts were unified and there is now one helper.py script
which can be used to create, build and open both tests and documentation.
"./helper.py -h" can be used to get the different options.

This PR also contains some smaller fixes which were necessary for the docs
to build
2021-12-01 11:17:28 +01:00
bf31248a50 Merge pull request 'Update SerializeAdapter' (#513) from KSat/fsfw:mueller/serializeif-update into development
Reviewed-on: fsfw/fsfw#513
2021-11-29 14:37:40 +01:00
9fadc9b830 Merge branch 'development' into mueller/serializeif-update 2021-11-29 14:36:25 +01:00
8c17c7e1a7 Merge pull request 'update unittest helper scripts' (#525) from eive/fsfw:mueller/update-scripts into development
Reviewed-on: fsfw/fsfw#525
2021-11-29 14:35:07 +01:00
9c5e3565c6 Merge branch 'development' into mueller/serializeif-update 2021-11-24 18:53:28 +01:00
ecc7f1d691 Merge branch 'development' into mueller/update-scripts 2021-11-24 13:13:26 +01:00
00dced31ee
update unittest helper scripts
- Added functionality to open HTML report immediately
- Added another helper script to automatically generate unittest build
  folder
2021-11-19 13:50:46 +01:00
ab7117d81e Merge pull request 'Bugfix for Packet ID getters' (#524) from eive/fsfw:mueller/bugfix-improvements-packet-id-functions into development
Reviewed-on: fsfw/fsfw#524
2021-11-19 13:46:46 +01:00
05c4f4fadc
Bugfix for Packet ID getters
- Also added related unittests
2021-11-18 19:56:24 +01:00
186b3565e0 Merge pull request 'Unittests for Op Divider and Bitutility' (#510) from KSat/fsfw:mueller/unittests-op-divider-bitutil into development
Reviewed-on: fsfw/fsfw#510
2021-11-15 14:24:15 +01:00
e688105073 Merge branch 'development' into mueller/unittests-op-divider-bitutil 2021-11-15 14:23:34 +01:00
f7c6ec329b Merge pull request 'Filesystem Base Interface: Use IF instead of void pointer' (#511) from KSat/fsfw:mueller/filesystem-api-update into development
Reviewed-on: fsfw/fsfw#511
2021-11-15 14:23:04 +01:00
30217aa42b
updated SerializeAdapter.h
- Updates `SerializerAdapter` to also take simple pointer and simply assign the serialized and deSerialized size
- Added related unittests
2021-11-10 18:51:56 +01:00
0176c07886
use IF instead of void pointer 2021-11-10 18:49:29 +01:00
6d5eb5b387
Op Divider and bitutility updates
- Added unittests for `PeriodicOperationDivider` and the `bitutil` helpers
- Some API changes: Removed redundant bit part, because these functions are already in a namespace
- Some bugfixes for `PeriodicOperationDivider`
2021-11-10 18:48:02 +01:00
9a38106b57 Merge pull request 'STM32 SPI Updates' (#518) from mueller/stm32-spi-updates into development
Reviewed-on: fsfw/fsfw#518
2021-11-08 14:52:28 +01:00
75e16e0b7b Merge branch 'development' into mueller/stm32-spi-updates 2021-11-08 14:51:02 +01:00
87a15910fe Merge pull request 'CMakeLists fixes' (#517) from mueller/cmake-fixes into development
Reviewed-on: fsfw/fsfw#517

LGTM
2021-11-08 14:44:39 +01:00
9ad215c9a3 Merge branch 'development' into mueller/cmake-fixes 2021-10-28 09:20:02 +02:00
2ca7a84e86 Merge branch 'development' into mueller/stm32-spi-updates 2021-10-28 09:19:31 +02:00
fbeb578d1c Merge pull request 'introducing valgrind' (#521) from mohr_ci into development
Reviewed-on: fsfw/fsfw#521
2021-10-27 21:49:57 +02:00
58d4525e8a Merge branch 'development' into mohr_ci 2021-10-27 21:35:17 +02:00
8d004e9621 Merge pull request 'Out of bound reads and writes in unittests' (#519) from mohr_valgrind into development
Reviewed-on: fsfw/fsfw#519
2021-10-27 21:35:01 +02:00
a53992fdc9 introducing valgrind 2021-10-27 21:32:40 +02:00
c6bbc19b85 Merge pull request 'Adding code for CI with docker and jenkins' (#520) from mohr_ci into development
Reviewed-on: fsfw/fsfw#520
2021-10-27 20:52:57 +02:00
36aaf3d758 say hi to my new friend valgrind 2021-10-27 20:41:04 +02:00
7c855592d0 more cleaning up 2021-10-27 18:12:56 +02:00
cb7399b999 msp init improvements 2021-10-27 18:12:46 +02:00
d675621b73 grouping CS gpio definition 2021-10-27 17:32:21 +02:00
3448a8c01b SPI ComIF updates
1. Make setting a chip select pin optional
2. Make ComIF member functions public
2021-10-27 17:32:13 +02:00
42458725e8
more important fix 2021-10-27 17:10:37 +02:00
cc7250fcf5
second cmake fix 2021-10-27 17:08:59 +02:00
da42edcc0c Jenkinsfile: added stage to be more verbose 2021-10-26 20:58:34 +02:00
b02f737418 jenkins cosmetics 2021-10-26 20:53:08 +02:00
1923b339e9 I can not jenkins 2021-10-26 20:47:53 +02:00
3c41472649 tweaking Jenkinsfile 2021-10-26 20:30:22 +02:00
da19764232 Merge pull request 'Unittest and Integration test hotfix' (#516) from KSat/fsfw:mueller/unittest-hotfix into development
Reviewed-on: fsfw/fsfw#516
2021-10-26 17:36:40 +02:00
2126e6e375 simplified test task 2021-10-26 17:24:47 +02:00
5f8adc63b7
some more fixes for integration tests 2021-10-26 17:16:21 +02:00
81bae85825 hotfix for unittests 2021-10-26 17:10:54 +02:00
e263f2fbdc Merge pull request 'added integration test code' (#508) from mueller/example-code-as-test into development
Reviewed-on: fsfw/fsfw#508
2021-10-25 15:30:53 +02:00
8d34561137 Merge branch 'development' into mueller/example-code-as-test 2021-10-25 15:06:36 +02:00
19f9b0280c added jenkins integration 2021-10-25 14:59:16 +02:00
e86319707f Merge branch 'development' into mueller/example-code-as-test 2021-10-25 14:52:43 +02:00
0e653378c3 Merge pull request 'Arrayprinter format improvements' (#514) from KSat/fsfw:mueller/arrayprinter-improvements into development
Reviewed-on: fsfw/fsfw#514
2021-10-25 14:09:25 +02:00
a506b94d7e Merge branch 'development' into mueller/arrayprinter-improvements 2021-10-25 14:09:08 +02:00
7bff632042 Merge pull request 'updated function names' (#509) from eive/fsfw:mueller/constexpr-func-name into development
Reviewed-on: fsfw/fsfw#509
2021-10-25 14:05:14 +02:00
07a0dd5331
this is the correct file 2021-10-22 11:32:28 +02:00
f16dcebf6b Merge branch 'development' into mueller/arrayprinter-improvements 2021-10-22 11:31:57 +02:00
dc6ed40bfb
arrayprinter format improvements 2021-10-22 11:30:00 +02:00
a5a306ff66
arrayprinter format improvements 2021-10-21 22:36:54 +02:00
7122c37511
updated function names 2021-10-18 18:26:03 +02:00
dacec0c1f6 Merge pull request 'Keep Open TCP Implementation' (#496) from eive/fsfw:mueller/tcp-keep-open-pr into development
Reviewed-on: fsfw/fsfw#496
2021-10-18 15:13:08 +02:00
84cd010a25 Merge branch 'mueller/tcp-keep-open-pr' of https://egit.irs.uni-stuttgart.de/eive/fsfw into mueller/tcp-keep-open-pr 2021-10-18 15:07:11 +02:00
a077a1b587
improved constexpr macros 2021-10-18 15:07:00 +02:00
b94baf838d Merge branch 'development' into mueller/tcp-keep-open-pr 2021-10-18 14:58:33 +02:00
084a3daec6 Merge pull request 'more printouts for rejected TC packets' (#505) from eive/fsfw:mueller/packet-check-printout into development
Reviewed-on: fsfw/fsfw#505
2021-10-18 14:44:40 +02:00
b23ed11c7e Merge branch 'development' into mueller/tcp-keep-open-pr 2021-10-18 14:44:26 +02:00
9d7d22510b Merge pull request 'Tests can now be built as part of FSFW and versioning moved to CMake' (#500) from KSat/fsfw:mueller/integrated-unittests into development
Reviewed-on: fsfw/fsfw#500
2021-10-18 14:42:52 +02:00
76d12e3db1 Merge branch 'development' into mueller/integrated-unittests 2021-10-18 14:36:01 +02:00
cee42f9b70 one } was on the wrong side of an #endif 2021-10-18 14:34:11 +02:00
afe8fe6605
assign correct init value 2021-10-18 13:58:18 +02:00
6e97bd4db4
added integration test code 2021-10-17 23:27:31 +02:00
7694decaaa Merge branch 'mueller/packet-check-printout' of https://egit.irs.uni-stuttgart.de/eive/fsfw into mueller/packet-check-printout 2021-10-17 22:56:28 +02:00
113c992f99
use char* instead 2021-10-17 22:56:00 +02:00
0738a0b6a4 Merge branch 'development' into mueller/packet-check-printout 2021-10-15 18:33:44 +02:00
4251ccacf9 Merge branch 'development' into mueller/integrated-unittests 2021-10-15 18:32:35 +02:00
5d31a54fba Merge pull request 'small bugfix for LIS3 handler' (#504) from eive/fsfw:mueller/lis3-small-bugfix into development
Reviewed-on: fsfw/fsfw#504
2021-10-15 17:20:55 +02:00
cadf97de88 Merge pull request 'Add feature to open GPIO by line name' (#506) from eive/fsfw:feature/open-gpio-by-line-name into development
Reviewed-on: fsfw/fsfw#506
2021-10-15 17:19:42 +02:00
01f5dfe6b4 Merge branch 'development' into mueller/integrated-unittests 2021-10-15 15:05:23 +02:00
cae3feb5da
Add feature to open GPIO by line name
This features was provided by Jakob Meier as part of
eive/fsfw#19 .

It adds the feature to open GPIOs supplying their line names.
2021-10-11 19:55:37 +02:00
2180c47f4f
more printouts for rejected packet 2021-10-11 19:47:41 +02:00
c46bde417e
small bugfix for LIS3 handler 2021-10-11 19:37:23 +02:00
4924da1667
Merge remote-tracking branch 'upstream/development' into mueller/tcp-keep-open-pr 2021-10-11 18:52:52 +02:00
f8e9042943 Merge pull request 'Merge v2.0.1 into development' (#503) from master into development
Reviewed-on: fsfw/fsfw#503
2021-10-11 18:19:46 +02:00
e6a7108614 Merge pull request 'Increased TM stack robustness' (#501) from eive/fsfw:mueller/tm-stack-robustness-cherry-picked into master
Reviewed-on: fsfw/fsfw#501
Reviewed-by: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
2021-10-11 18:00:45 +02:00
08926f9b70
Merge remote-tracking branch 'upstream/master' into mueller/tm-stack-robustness-cherry-picked 2021-10-11 17:57:33 +02:00
52f0c29e99 Merge pull request 'Using correct version number now for PUS C' (#502) from eive/fsfw:mueller/fix-for-pus-c-version-number-cherry-picked into master
Reviewed-on: fsfw/fsfw#502
Reviewed-by: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
2021-10-11 17:51:58 +02:00
060b3a3b2c
added missing leading * 2021-10-11 17:51:13 +02:00
348975ba5f additional coverage excludes 2021-10-11 17:31:04 +02:00
e8927d6aa8 moved testtemplate and removed user folder 2021-10-11 17:22:54 +02:00
b2b648c4aa
removed obsolete comment 2021-10-11 17:14:30 +02:00
fc9101cd8f
deleted unrequired files, common include deleted 2021-10-11 17:12:42 +02:00
d2371b3e71 removed unneeded static constexpr 2021-10-11 16:47:57 +02:00
ffa38a81b7 using pus version enum now 2021-10-11 16:47:37 +02:00
ae689408f3 using correct version number now 2021-10-11 16:47:28 +02:00
155432663b moved store failure to separate function 2021-10-11 16:37:14 +02:00
ecdbf98ca4 added printouts for PUS A 2021-10-11 16:37:04 +02:00
54a6c1b0aa bugfix for PUS A 2021-10-11 16:36:49 +02:00
9efe9e78d8 Increased TM stack robustness
1. More nullptr check
2. returnvalue for inititalize function which can fail
2021-10-11 16:36:28 +02:00
d4bb9397ee
better handling for configure files 2021-10-11 16:32:19 +02:00
bf5590ce26
configure file correction 2021-10-11 16:25:01 +02:00
460941c225
tiny tweak 2021-10-11 16:16:49 +02:00
3d6f28c48d
printouts disable by default 2021-10-11 16:14:30 +02:00
bb9ae86159
indentation fixes 2021-10-11 16:12:32 +02:00
306a4b647f
more review corrections 2021-10-11 16:06:12 +02:00
19061c3d50
removed obsolete files 2021-10-11 16:04:43 +02:00
22dbabba38
removed copy and paste error 2021-10-11 16:01:58 +02:00
ac8df112b1
small correction 2021-10-11 16:01:14 +02:00
ad744fb593
README improvement 2021-10-11 15:56:04 +02:00
6c75b56054
README update 2021-10-11 15:51:27 +02:00
fb67df6d7f
using testsconfig.h now 2021-10-11 15:45:37 +02:00
1b6fa9822b
this should work 2021-10-11 15:40:29 +02:00
5798aa1e3a
create project to suppress warning 2021-10-11 15:09:19 +02:00
b00f61445d
works 2021-10-11 15:07:52 +02:00
ad117e07e0
FSFW_CONFIG_PATH update 2021-10-11 15:03:03 +02:00
c26c2a5a96
hardcoding config path 2021-10-11 14:56:42 +02:00
e02ac05097
fixed a bug for default cfg path 2021-10-11 13:57:00 +02:00
a827ec6a92
removed another include 2021-10-11 13:51:08 +02:00
12321a5d49 Merge branch 'mueller/integrated-unittests' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/integrated-unittests 2021-10-11 13:48:28 +02:00
ad3238aa19
removed problematic includes 2021-10-11 13:48:17 +02:00
f67868516c Merge branch 'development' into mueller/integrated-unittests 2021-10-11 13:40:09 +02:00
1ddf9c0f11 Merge branch 'development' into mueller/tcp-keep-open-pr 2021-10-09 13:32:25 +02:00
Jakob Meier
9bcd701a50 tcp server also parses TCs when client closes connection 2021-10-09 13:31:51 +02:00
Jakob Meier
6ad7f51297 added bind call error string 2021-10-09 13:31:40 +02:00
12983a7143 Merge pull request 'minor updates for PUS services' (#498) from KSat/fsfw:mueller/pus-tweaks into development
Reviewed-on: fsfw/fsfw#498
2021-10-08 12:59:04 +02:00
27a3598526 Merge pull request 'better naming for parameter' (#499) from KSat/fsfw:mueller/retval-better-naming into development
Reviewed-on: fsfw/fsfw#499
2021-10-08 12:58:43 +02:00
dd1631a456
updated CMakeLists.txt
- More information about FSFW build
2021-10-07 14:20:34 +02:00
cd6d616806
using .h.in version fle now 2021-10-07 13:26:31 +02:00
ade15ad16d
tests can now be built as part of FSFW
This PR refactores the tests so they are built as part of the FSFW.
This is done by adding Catch2 with the FetchContent directive.

A future implementation might also use a system installation of Catch2
by first checking whether Catch2 can already be found as a package

The custom configuration folder testcfg was moved from the user folder
to the actual unittest folder.

The tests can be built by setting the CMake FSFW_BUILD_UNITTESTS option
to TRUE/ON. They are built with the static library and dropped inside
the build folders fsfw directory.
2021-10-07 13:24:46 +02:00
76416f523d
better naming for parameter 2021-10-07 10:44:44 +02:00
5749e159e4
minor updates for PUS services 2021-10-07 10:39:16 +02:00
85a90a6ec5 Merge pull request 'FSFW.h.in more default values' (#491) from mueller/fsfw-default-value-pus-c-cfg into development
Reviewed-on: fsfw/fsfw#491
2021-10-05 18:27:13 +02:00
80b41e937b Merge branch 'development' into mueller/fsfw-default-value-pus-c-cfg 2021-10-05 18:26:34 +02:00
ab906fa534 Merge pull request 'Merge development into master for v2.0.0' (#493) from development into master
Reviewed-on: fsfw/fsfw#493
2021-10-04 14:49:43 +02:00
146e1e3282 bumped version to 2.0.0 for next release 2021-10-04 14:47:32 +02:00
857a1624c6 Merge branch 'development' into mueller/fsfw-default-value-pus-c-cfg 2021-10-04 14:45:13 +02:00
f11957d827 Merge pull request 'Updated Countdown and removed Timer' (#486) from gaisser_countdown_timer into development
Reviewed-on: fsfw/fsfw#486
2021-10-04 14:44:55 +02:00
a977302a53 Merge pull request 'out of bounds access in DLE encoder' (#492) from mueller/dle-possible-bugfix into development
Reviewed-on: fsfw/fsfw#492
2021-10-04 14:43:54 +02:00
198fdbba62 Merge remote-tracking branch 'upstream/development' into mueller/tcp-keep-open-pr 2021-10-04 14:41:51 +02:00
53400c8bfa Merge branch 'development' into mueller/dle-possible-bugfix 2021-10-04 14:40:47 +02:00
f2d0a0d9ee Merge branch 'mueller/dle-possible-bugfix' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/dle-possible-bugfix 2021-10-04 14:38:51 +02:00
9e12f59707 Merge pull request 'TMTC Bridge: Increase limit of packets stored' (#484) from eive/fsfw:mueller/increase-absolute-packet-stored-limit into development
Reviewed-on: fsfw/fsfw#484
2021-10-04 14:38:46 +02:00
2439613f21 preserve STX char 2021-10-04 14:38:46 +02:00
1c8f86364d Merge branch 'development' into mueller/increase-absolute-packet-stored-limit 2021-10-04 14:37:09 +02:00
4e1c52f465 Merge branch 'development' into gaisser_countdown_timer 2021-10-02 15:50:49 +02:00
c7c6d78f4b Merge branch 'development' into mueller/fsfw-default-value-pus-c-cfg 2021-10-02 15:44:46 +02:00
9f856761e2 Merge branch 'development' into mueller/dle-possible-bugfix 2021-10-02 12:24:38 +02:00
2f119f102d Merge pull request 'return meaningful error code for empty PST' (#485) from eive/fsfw:mueller/check-for-empty-pst into development
Reviewed-on: fsfw/fsfw#485
2021-10-02 12:24:03 +02:00
afb472996c refactoring, code more understandable 2021-09-30 16:51:07 +02:00
f76f462022
test added 2021-09-30 11:27:14 +02:00
0f90d50065 Merge remote-tracking branch 'origin/development' into mueller/dle-possible-bugfix 2021-09-30 11:27:07 +02:00
b0cbd40e64
possible bugfix for DLE encoder 2021-09-30 11:25:42 +02:00
1c1433e797 Merge branch 'development' into mueller/increase-absolute-packet-stored-limit 2021-09-29 16:17:22 +02:00
7671c93095 Merge branch 'development' into mueller/check-for-empty-pst 2021-09-29 16:16:57 +02:00
0df5491193 Merge branch 'development' into mueller/tcp-keep-open-pr 2021-09-29 16:16:26 +02:00
897d8b37ad Merge branch 'development' into mueller/fsfw-default-value-pus-c-cfg 2021-09-29 16:16:11 +02:00
ba4249d658 Merge branch 'development' into gaisser_countdown_timer 2021-09-29 14:27:48 +02:00
de7542c9c1 Merge pull request 'Minor fixes for device handler' (#489) from mueller/dev-handler-fixes into development
Reviewed-on: fsfw/fsfw#489
2021-09-29 14:27:48 +02:00
5a30dd969f Merge branch 'development' into mueller/dev-handler-fixes 2021-09-29 14:27:37 +02:00
05ed25d397 Merge branch 'development' into mueller/fsfw-default-value-pus-c-cfg 2021-09-29 14:27:20 +02:00
0a2c912f29 Merge pull request 'small fix for DLE unittest' (#490) from mueller/dle-encoder-test-fix into development
Reviewed-on: fsfw/fsfw#490
2021-09-29 14:27:10 +02:00
65f4433fad
Merge remote-tracking branch 'origin/development' into mueller/fsfw-default-value-pus-c-cfg 2021-09-29 12:07:06 +02:00
febe3cc4d4
define fix 2021-09-29 12:05:24 +02:00
f388878b99
added more defines 2021-09-29 12:05:15 +02:00
faa7e1e24f
default values for PUS c config 2021-09-29 12:00:59 +02:00
9002c12cf1
update FSFW.h.in 2021-09-29 11:55:20 +02:00
2b15f9e644 Merge branch 'development' into mueller/dle-encoder-test-fix 2021-09-29 11:51:05 +02:00
42b5f8a79d
small fix for DLE unittest 2021-09-29 11:49:45 +02:00
0a6a32a130
printout separation 2021-09-29 11:45:20 +02:00
cffd77ed32
put functions in namespace 2021-09-28 17:42:29 +02:00
b1a9c90087 this should work for both OSes 2021-09-28 17:39:07 +02:00
a619087fef
Merge remote-tracking branch 'upstream/mueller/tcp-windows-fixes' into mueller/tcp-keep-open-pr 2021-09-28 17:35:07 +02:00
32b5060c62 all windows fixes 2021-09-28 17:28:54 +02:00
936bac5abd
class id renamed 2021-09-28 16:33:50 +02:00
bf02f14772 C++11 adaptions 2021-09-28 16:33:20 +02:00
358ee0fbf2 removed C++14 featue 2021-09-28 15:47:12 +02:00
4f08b2d342 removed include 2021-09-28 15:47:01 +02:00
1622e23f1c delay configurable 2021-09-28 15:33:31 +02:00
a4d6421510
documentation and bugfixes 2021-09-28 15:30:01 +02:00
f02852d8d2
cmake lists file update 2021-09-28 15:13:46 +02:00
bbea5e33bc removed obsolete empty ctor 2021-09-28 15:12:55 +02:00
e536918804
wiretapping in runtime config now 2021-09-28 15:09:56 +02:00
09299802f0
TCP refactoring
This refactoring keeps the TCP connection opened until the client closes
it. It also increased the robustness of the TCP reception.

Because TCP is stream based and usually applied to newline separated
data, a special way to handle binary space packets is required.

The new SpacePacketParser class takes care of this by taking TC packet
IDs as as optional start markers to parse for space packets in a given
buffer.

The refactored TCP server uses a ring buffer, a reception buffer and the
new parser to extract space packets from a stream in a safer way.
2021-09-28 15:01:01 +02:00
4b62c8aa81 Added tests 2021-09-27 21:53:27 +02:00
1b38f84edc Merge remote-tracking branch 'origin/development' into gaisser_countdown_timer 2021-09-27 21:06:20 +02:00
5064d44999 Removed Timer.cpp from CMakeLists 2021-09-27 20:45:44 +02:00
322c14d4bb Merge remote-tracking branch 'origin/development' into gaisser_countdown_timer 2021-09-27 20:01:01 +02:00
8ec35f158c Removed Timer and updated Countdown 2021-09-27 19:57:42 +02:00
9a25f08fef
Merge remote-tracking branch 'upstream/development' into mueller/check-for-empty-pst 2021-09-27 15:37:49 +02:00
f3caa122ae Merge branch 'development' into mueller/increase-absolute-packet-stored-limit 2021-09-27 15:32:54 +02:00
6e88f8f400 Merge pull request 'Added missing devicehandlers' (#482) from eive/fsfw:mueller/added-missing-devicehandlers into development
Reviewed-on: fsfw/fsfw#482
2021-09-27 15:27:27 +02:00
01762ad222 Merge pull request 'SPI Updates for Linux' (#480) from eive/fsfw:mueller/spi-fix into development
Reviewed-on: fsfw/fsfw#480
2021-09-27 15:21:15 +02:00
71d66c406f Merge pull request 'GPIO code update' (#479) from eive/fsfw:mueller/gpio-update into development
Reviewed-on: fsfw/fsfw#479
2021-09-27 15:18:58 +02:00
42df77ff32
check for empty PST
and return appropriate returnvalue
2021-09-27 11:16:27 +02:00
85c04dee23
increase limit of packets stored 2021-09-27 11:12:38 +02:00
4c96db847d Merge branch 'development' into mueller/gpio-update 2021-09-27 09:54:10 +02:00
0246dccbe9 Merge remote-tracking branch 'upstream/development' into mueller/spi-fix 2021-09-27 09:52:49 +02:00
423f7c8281
missing include and printer compatbility fixes 2021-09-26 22:45:32 +02:00
59feaa4b5c
moved class id and subsystem ID 2021-09-26 22:38:47 +02:00
a84e60a37a
Added missing devicehandlers
These devicehandlers were missing from the last PR
2021-09-26 22:22:55 +02:00
061d79bb62 Merge pull request 'Devicehandler Package' (#481) from eive/fsfw:mueller/devicehandler-package into development
Reviewed-on: fsfw/fsfw#481
2021-09-25 16:49:53 +02:00
a37b6184fc
fix dataset sizes 2021-09-25 16:40:22 +02:00
Jakob Meier
f6b03dee6a removed unused variable switchId from GyroL3GD20Handler class 2021-09-24 12:11:12 +02:00
a6bd7c0d6e
added missing defines for debug output 2021-09-23 18:13:51 +02:00
f2bc374f0f
Device handler updates 2021-09-23 18:12:59 +02:00
52b3d9473e Merge remote-tracking branch 'upstream/development' into mueller/spi-fix 2021-09-23 18:10:12 +02:00
fc9b85d5db
update FSFW.h.in 2021-09-23 18:06:54 +02:00
bfae25ff2d
Updates for SPI
1. Better names for functions
2. Reply size is set to 0
2021-09-23 18:06:04 +02:00
ea3812fbbd Merge branch 'development' into mueller/gpio-update 2021-09-23 18:00:31 +02:00
f40f783cb4
GPIO code update
Adds capability to define GPIO by label and by chip
for Linux systems
2021-09-23 17:58:44 +02:00
9429f6b868 Merge pull request 'Use better defines in internal unit tester' (#465) from mueller/int-unittest-osal-defines-update into development
Reviewed-on: fsfw/fsfw#465
2021-09-20 15:28:55 +02:00
39c909946b Merge pull request 'Some changes and improvements for DHB' (#474) from eive/fsfw:mueller/dhb-improvements into development
Reviewed-on: fsfw/fsfw#474
2021-09-20 15:23:24 +02:00
01c833f001 Merge pull request 'HAL Linux SPI: set transfer size to 0, better name' (#475) from eive/fsfw:mueller/hal-spi-improvement into development
Reviewed-on: fsfw/fsfw#475
2021-09-20 13:56:47 +02:00
7c21980ece Merge branch 'development' into mueller/hal-spi-improvement 2021-09-16 11:05:14 +02:00
599ff6b45a Merge pull request 'Service 1 packet doc was wrong' (#477) from eive/fsfw:mueller/srv1-packet-doc-fix into development
Reviewed-on: fsfw/fsfw#477
2021-09-16 10:55:05 +02:00
0ddce61175 Merge branch 'development' into mueller/srv1-packet-doc-fix 2021-09-16 10:50:46 +02:00
576a7293cb Merge pull request 'improvements for L3GD20H device handler' (#476) from eive/fsfw:hal/l3gd20h-improvements into development
Reviewed-on: fsfw/fsfw#476
2021-09-16 08:52:51 +02:00
1732359f72 doc was wrong 2021-09-15 17:23:26 +02:00
3e3c38e459 Merge branch 'development' into mueller/int-unittest-osal-defines-update 2021-09-15 17:20:08 +02:00
a6e4eb9ad4 improvements for L3GD20H device handler 2021-09-15 17:18:47 +02:00
e5db64cbb9 set transfer size to 0, better name 2021-09-15 17:15:18 +02:00
21b5eaa891 Some changes and improvements for DHB
1. Renamed getCommanderId to getCommanderQueueId.
2. Some indentation
3. Correct preprocessor define for warning printout used now
2021-09-15 17:09:42 +02:00
23c562bb67 Merge pull request 'DLE Encoder Improvements' (#467) from KSat/fsfw:mueller/dle-improvements into development
Reviewed-on: fsfw/fsfw#467
2021-09-13 15:25:01 +02:00
5193294d25 Merge branch 'development' into mueller/dle-improvements 2021-09-13 15:24:53 +02:00
a986b22345 Merge pull request 'queue nullptr check in action helper' (#458) from meier/ActionHelperQueueCheck into development
Reviewed-on: fsfw/fsfw#458
2021-09-13 15:24:35 +02:00
646b1139a6 Merge branch 'development' into mueller/dle-improvements 2021-09-13 15:18:22 +02:00
d9e2fd92fb Merge branch 'development' into meier/ActionHelperQueueCheck 2021-09-13 15:17:47 +02:00
ca65daab1a Merge branch 'development' into mueller/int-unittest-osal-defines-update 2021-09-13 15:10:11 +02:00
b3e0eeb14e Merge pull request 'printout fixes for UnixFileGuard' (#468) from eive/fsfw:mueller/unix-file-guard-fix into development
Reviewed-on: fsfw/fsfw#468
2021-09-13 15:09:59 +02:00
2837d6e0dd Merge branch 'development' into mueller/unix-file-guard-fix 2021-09-13 15:08:21 +02:00
cd82bebe78 Merge pull request 'cmakedefine for OSAL type' (#464) from mueller/conf-file-update into development
Reviewed-on: fsfw/fsfw#464
2021-09-13 15:06:32 +02:00
1148adb43d Merge branch 'development' into mueller/conf-file-update 2021-09-13 15:03:08 +02:00
ae27a4bb6c Merge pull request 'fsfw version update' (#463) from mueller/version-update into development
Reviewed-on: fsfw/fsfw#463
2021-09-13 15:01:50 +02:00
741d96d7ed Merge branch 'development' into mueller/version-update 2021-09-13 15:01:28 +02:00
596a056622 Merge pull request 'Cleaning up TCP and UDP code' (#459) from eive/fsfw:mueller/tcp-udp-tweaks into development
Reviewed-on: fsfw/fsfw#459
2021-09-13 14:57:07 +02:00
9c9b251322 Merge branch 'development' into mueller/tcp-udp-tweaks 2021-09-13 14:56:30 +02:00
0e0989db95 Merge branch 'development' into mueller/unix-file-guard-fix 2021-09-13 14:54:09 +02:00
ba7acac215 Merge branch 'development' into mueller/dle-improvements 2021-09-13 14:37:32 +02:00
af133a2928 Merge pull request 'Possible bugfix in DHB' (#469) from eive/fsfw:mueller/dhb-periodoc-reply-fix into development
Reviewed-on: fsfw/fsfw#469
2021-09-13 10:58:33 +02:00
abacfbf2d5 added setting of readLen according to review 2021-09-13 10:38:36 +02:00
dae27a8e10
indentation 2021-09-11 19:22:51 +02:00
d36d849e69
removed part which is now not necessary anymore 2021-09-11 19:21:21 +02:00
7c7a8a5df7
added improvements from code review 2021-09-11 19:18:18 +02:00
134deb3f43
renamed function 2021-09-11 17:43:58 +02:00
11a3c8c21f
added option to disable it as well 2021-09-11 17:42:29 +02:00
c9bfc8464a
added function to enable periodic reply 2021-09-11 17:39:42 +02:00
a88e97bc09 Merge branch 'development' into mueller/dhb-periodoc-reply-fix 2021-09-11 17:15:28 +02:00
ea573b0523
a few more tests with faulty source data 2021-09-09 11:12:42 +02:00
3d336c08f2
tests almost complete 2021-09-09 10:47:54 +02:00
d05eb23ea7
debugged and tested non-escaped encoder 2021-09-09 01:28:21 +02:00
35b53e9a17
continuing tests 2021-09-09 01:06:54 +02:00
b5063117f6
added check to avoid seg fault 2021-09-09 00:02:17 +02:00
29abef40a4 Merge remote-tracking branch 'upstream/development' into mueller/dle-improvements 2021-09-08 23:39:31 +02:00
dfc44fce07
added DLE encoder test files 2021-09-08 23:33:10 +02:00
38afa494ce Merge pull request 'UART bugfixes and improvements' (#471) from eive/fsfw:mueller/uart-improvements into development
Reviewed-on: fsfw/fsfw#471
2021-09-08 17:19:29 +02:00
c42eb59d2e
UART bugfixes and improvements 2021-09-08 16:10:18 +02:00
0a56441510 Merge branch 'development' into mueller/dhb-periodoc-reply-fix 2021-09-06 18:51:58 +02:00
879d1f71c5 Merge branch 'development' into mueller/version-update 2021-09-06 18:50:26 +02:00
e226f19ca8 Merge pull request 'Make FSFW tests accessable from outside' (#461) from KSat/fsfw:mueller/tests-accessible-from-outside-squashed into development
Reviewed-on: fsfw/fsfw#461
2021-09-06 18:50:12 +02:00
6ccf4bee49 Merge remote-tracking branch 'origin/development' into meier/ActionHelperQueueCheck 2021-09-06 18:48:13 +02:00
7bf66dc401 Merge remote-tracking branch 'upstream/development' into mueller/dhb-periodoc-reply-fix 2021-09-06 12:10:12 +02:00
a6d744c9c8 Possible bugfix in DHB
The delayCycles variables needs to be initialized differently
for periodic replies.
It is initialized to the maxDelayCycles value now
2021-09-06 12:08:54 +02:00
98e3ed897c
small tweak 2021-08-19 17:17:19 +02:00
b6aebb3061
format adapted 2021-08-19 17:08:35 +02:00
5dcf0e44b6
encoder functions split up 2021-08-18 13:33:31 +02:00
3cec9f5f80
Made two functions private, small tweak 2021-08-18 13:18:42 +02:00
845c00044e
printout fixes for UnixFileGuard 2021-08-18 11:27:39 +02:00
8780c5ddcd
comment typos 2021-08-17 16:02:54 +02:00
654b23869f
several imporovements 2021-08-17 16:00:39 +02:00
28f2db2c11
some fixes 2021-08-17 15:40:51 +02:00
5fcac4d85b
added proper non-escaped variant 2021-08-17 15:39:24 +02:00
ece7dce6f7
ctor and dtor public now 2021-08-17 15:13:58 +02:00
4b72e246c3
improved DLE encoder 2021-08-17 15:05:29 +02:00
92d3f0743b
moved change to another PR 2021-08-16 15:26:28 +02:00
fa14ebbe1f
additional check 2021-08-16 15:19:03 +02:00
db3284c2b8
subversion update 2021-08-16 14:52:11 +02:00
517d52f55d
using better defines 2021-08-16 11:27:46 +02:00
6e9a0ddcf4
cmakedefine for OSAL type 2021-08-16 11:23:44 +02:00
cfb8bc5dfd
fsfw version update 2021-08-16 11:20:15 +02:00
a18706ec53
Make FSFW tests accessible from outside
1. Further reduces the amount of code the user needs to copy and paste
2. Makes FSFW tests more accessible. This can be used to simplify moving mission unit tests
   to the FSFW
3. A lot of include improvements
2021-08-16 10:49:07 +02:00
eecb69d230 getter function for UDP port 2021-08-09 18:22:51 +02:00
14a30f30db More improvements for TCP/UDP port definition 2021-08-09 18:13:02 +02:00
ccaa0aa24f Cleaning up TCP and UDP code
Same port number used as before, but some inconsistencies fixed
2021-08-09 16:59:41 +02:00
d92a796705 Merge pull request 'FSFW Restructuring' (#445) from mueller/restructuring into development
Reviewed-on: fsfw/fsfw#445
2021-08-09 16:00:26 +02:00
1fa59c5cae Merge pull request 'Linux HAL updates' (#456) from mueller/hal-linux-spi-uart-update into mueller/restructuring
Reviewed-on: fsfw/fsfw#456
2021-08-09 15:39:18 +02:00
83b5ade6b7 Merge branch 'mueller/hal-linux-spi-uart-update' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/hal-linux-spi-uart-update 2021-08-09 15:38:07 +02:00
62873c3118
UartComIF check iter validity 2021-08-09 15:37:12 +02:00
1301988892 Merge branch 'mueller/restructuring' into mueller/hal-linux-spi-uart-update 2021-08-09 15:31:56 +02:00
1c3770ce96 Merge pull request 'Printer updates' (#453) from mueller/updated-serviceinterface into mueller/restructuring
Reviewed-on: fsfw/fsfw#453
2021-08-09 15:24:44 +02:00
Jakob.Meier
20adc1c981 queue nullptr check in action helper 2021-08-07 14:28:12 +02:00
90a1571707
Linux HAL updates
1. The type correction was merged as part of
   eive/fsfw#7 in the
   EIVE project. Quotation of PR

definition of getSpiParameters is `void getSpiParameters(spi::SpiModes& spiMode, uint32_t& spiSpeed, UncommonParameters* parameters = nullptr) const;`.

Here, size_t spiSpeed is passed, which implicitely gets converted to a temporary, which can not be bound to uint32_t& and, at least in gcc 9.3.0, leads to a compiler error.

2. Allow flushing the UART buffers
2021-08-06 11:23:31 +02:00
2706b8fa24
Printer updates
1. Only prefix is colored now
2. Minor formatting change
2021-08-06 11:06:33 +02:00
8b39248a33 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-08-03 18:46:59 +02:00
ec00a84b29
update README for moved logo 2021-08-03 18:46:50 +02:00
4d9c07a1ec wrong path for sgp4 include 2021-08-02 21:22:56 +02:00
c3fbe04fc6
all include corrections 2021-08-02 20:58:56 +02:00
466f1e000f Merge branch 'mueller/master' into mueller/restructuring 2021-08-02 20:55:28 +02:00
f1f167c2d1
using _ instead of - now 2021-08-02 20:55:03 +02:00
6f816b2592 Merge branch 'mueller/master' into mueller/restructuring 2021-08-02 20:48:57 +02:00
0e5cfcf28f
minor improvement for printout 2021-08-02 16:19:37 +02:00
dee063e259 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-08-02 15:47:49 +02:00
aabc729e77
include changes 2021-08-02 15:47:12 +02:00
c0591c3d24
renamed some folders 2021-08-02 15:31:13 +02:00
5bbe16081f
added missing CMakeLists.txt 2021-07-30 14:38:20 +02:00
490ab440e5
smaller tweaks in CMakelists files 2021-07-30 14:21:37 +02:00
0b207b2b1a
updated user folder 2021-07-30 14:18:47 +02:00
e1f92b3da4
various fixes and improvements 2021-07-30 13:47:29 +02:00
b75c815361 Merge remote-tracking branch 'origin/development' into mueller/master 2021-07-27 13:12:00 +02:00
a94725c423 Merge remote-tracking branch 'origin/development' into mueller/restructuring 2021-07-27 13:07:58 +02:00
2d667cfb95 Merge pull request 'Colored prefix option only if colored output is enabled' (#449) from meier/ColeredDebugOutput into development
Reviewed-on: fsfw/fsfw#449
2021-07-27 13:07:16 +02:00
Jakob.Meier
3d80d5d036 added proposed changes 2021-07-27 12:59:21 +02:00
Jakob.Meier
ebc9d99022 Merge branch 'meier/ColeredDebugOutput' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into meier/ColeredDebugOutput 2021-07-27 10:10:25 +02:00
Jakob.Meier
2489276350 removed double include 2021-07-27 10:05:56 +02:00
3895806a2b Merge branch 'development' into meier/ColeredDebugOutput 2021-07-27 10:03:35 +02:00
7b500eb0ed Merge pull request 'EventManager printout fixes and tweaks' (#447) from KSat/fsfw:mueller/event-manager-tweaks-printf-fix into development
Reviewed-on: fsfw/fsfw#447
2021-07-26 15:25:54 +02:00
Jakob.Meier
a918c672a5 fixed merge conflicts 2021-07-24 07:15:24 +02:00
1515d59432
EventManager fixes and tweaks
1. Using sif::info consistently now
2. Fix for printf support: Event translation is printed now as well
2021-07-21 09:45:36 +02:00
ab6c616cdb
added binary semaphore header stub 2021-07-19 18:40:35 +02:00
ee4449b74d
override is not a good idea 2021-07-19 18:36:55 +02:00
10e81fdfb8
update changelog 2021-07-19 18:35:16 +02:00
ce93b9220e
command message cleaner include fix 2021-07-19 18:29:57 +02:00
d4f5c31881
optional module handling complete 2021-07-19 18:26:54 +02:00
d47906e833
trying to fuse header / inc 2021-07-19 16:25:51 +02:00
7849b8e391
mutex update 2021-07-19 15:07:56 +02:00
08364e2dca Merge branch 'mueller/restructuring' into mueller/master 2021-07-19 15:06:00 +02:00
4b03db38eb Merge remote-tracking branch 'origin/development' into mueller/restructuring 2021-07-19 15:04:28 +02:00
ac146339a2 Merge pull request 'QueueMapManager bugfix' (#444) from mueller/queuemapmanager-bugfix into development
Reviewed-on: fsfw/fsfw#444
2021-07-19 15:04:10 +02:00
cbdf92a775
update to origin 2021-07-19 15:04:08 +02:00
4c41cb1f71
update to upstream 2021-07-19 15:03:02 +02:00
16ed5e3270
update to bugfix 2021-07-19 15:01:43 +02:00
baf3d4da47
better form 2021-07-19 14:57:10 +02:00
e93230d0ef
update init value 2021-07-19 14:47:33 +02:00
0b45e5c89a
fix 2021-07-19 14:40:32 +02:00
6d2bfaeb3b Merge branch 'mueller/restructuring' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/restructuring 2021-07-19 14:35:21 +02:00
68498f6b74 Merge remote-tracking branch 'origin/development' into mueller/restructuring 2021-07-19 14:35:15 +02:00
291a8d4ea3
added semaphore factory 2021-07-16 12:33:19 +02:00
a65a184083
not an ideal solution but works for now 2021-07-16 12:22:14 +02:00
21ac5afd35 Merge branch 'mueller/master' into mueller/restructuring 2021-07-15 19:28:25 +02:00
aafccd191e
correction in dma.cpp 2021-07-15 19:27:13 +02:00
1db5c950b8
stm32h7 include corrections 2021-07-15 19:23:12 +02:00
d11e54dc0a
some more fixes 2021-07-15 19:06:40 +02:00
3c364604ac
target name replaced 2021-07-15 18:59:47 +02:00
8db0ca861a Merge branch 'mueller/master' into mueller/restructuring 2021-07-15 18:55:52 +02:00
e2da68795b
hal integration done 2021-07-15 18:53:59 +02:00
243cf42dc4
added hal subfolder 2021-07-15 18:43:16 +02:00
0b0e2e5f75 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/eive/fsfw into mueller/master 2021-07-15 18:25:21 +02:00
516e3c0f9f Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-07-15 17:54:41 +02:00
62e0465b3d Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/eive/fsfw into mueller/master 2021-07-15 01:24:30 +02:00
f19f3681ca Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-07-15 01:24:25 +02:00
a3e6b1018b
deleted .mk file 2021-07-14 18:05:53 +02:00
fbdff5d0b4
updated change log 2021-07-14 11:14:25 +02:00
22693eee50
minor fixes for contrib 2021-07-14 11:05:14 +02:00
e5807c396c
adding spg4 code option 2021-07-14 11:03:42 +02:00
704193eeaf
include replacements host/windows/rtems 2021-07-14 10:50:44 +02:00
3c4289335e
integrated queue map manager bugfixes 2021-07-14 10:39:02 +02:00
df1d5e5005
this is the correct implementation 2021-07-14 10:35:37 +02:00
5f0a3f3baa
using current ID 2021-07-14 10:34:38 +02:00
f6d1b8981c
additional safety by check against NO_QUEUE 2021-07-14 10:33:55 +02:00
8f1a54aa19
clarification 2021-07-14 10:27:33 +02:00
376617f9f9
missing interface includes 2021-07-14 10:24:38 +02:00
82299c7e3e
new test folder 2021-07-14 10:22:58 +02:00
4803fb2cbd
important bugfix for queue map manager 2021-07-14 01:27:15 +02:00
d5dfffda2d
corrections for freertos osal 2021-07-14 00:54:39 +02:00
66a79cb86c
done 2021-07-13 21:02:53 +02:00
a6de52e212
more include replacements 2021-07-13 20:58:45 +02:00
936d0e9f0c
a lot of internal include replacements 2021-07-13 20:22:54 +02:00
ca297a7dcd
added hal folder 2021-07-13 19:19:25 +02:00
3a9add82fe
additonal warning 2021-07-13 18:58:31 +02:00
eee84f9318
some more corrections 2021-07-13 18:53:07 +02:00
f14d5edf42
added more cmakelists files 2021-07-13 18:52:19 +02:00
f15352bb2f
moved memory helper to core 2021-07-13 18:46:09 +02:00
bdb8b0a757
restructure repository 2021-07-13 18:40:52 +02:00
5adb5cce95
restructuring fsfw 2021-07-13 16:35:57 +02:00
f427c87270 Merge pull request 'FreeRTOS OSAL update and minor tweaks' (#442) from mueller/freertos-updates-minor-tweaks into development
Reviewed-on: fsfw/fsfw#442
2021-07-13 14:18:02 +02:00
8189435b94 Merge branch 'master' into mueller/master 2021-07-13 08:59:40 +02:00
ff63a34384
include improvements 2021-07-12 23:32:24 +02:00
afebe15dc2
last replacement 2021-07-12 23:01:17 +02:00
8035af28b9
using include structure as used in kernel 2021-07-12 22:42:07 +02:00
c9156e1219
some cmake fixes for FreeRTOS 2021-07-12 22:34:59 +02:00
da8a447073
delete directory: recursive option 2021-07-12 17:39:15 +02:00
323577cdc6
file system API update
Added functions to create and remove folders
2021-07-12 17:23:03 +02:00
eef2fd3b7a
minor tweaks 2021-07-08 12:22:25 +02:00
Jakob.Meier
5e960f118f renamed freertos includes 2021-07-06 18:17:24 +02:00
c2b8507d29
small tweak 2021-07-05 12:09:14 +02:00
b00bfe4bda Merge pull request 'ASTP 1.1.0 Merge Development in Master' (#441) from development into master
Reviewed-on: fsfw/fsfw#441
2021-06-29 14:11:46 +02:00
38f2f69c78 Merge branch 'mueller/master' into eive/develop 2021-06-24 11:17:04 +02:00
2b2899e100 Merge pull request 'Missing function for TC Constructor' (#440) from KSat/fsfw:mueller/master into development
Reviewed-on: fsfw/fsfw#440
2021-06-22 14:36:05 +02:00
b52644dd2a
tiny form fix 2021-06-21 14:50:19 +02:00
c0c4a3190f
cleaned up some event descriptions 2021-06-21 12:46:32 +02:00
1015cdbe88 Merge remote-tracking branch 'upstream/development' into mueller/master 2021-06-20 17:16:35 +02:00
cae69d5400 Merge pull request 'added missing include' (#439) from mueller/missing-include into development
Reviewed-on: fsfw/fsfw#439
2021-06-17 12:35:20 +02:00
47af5260a2
added missing include 2021-06-17 12:04:39 +02:00
1e380fe562 Merge pull request 'NO_COMMANDER was not using NO_QUEUE in DHB' (#438) from gaisser/fsfw:gaisser_small_dhb_fix into development
Reviewed-on: fsfw/fsfw#438
2021-06-15 16:49:53 +02:00
bd7c13ff7e
NO_COMMANDER was not using NO_QUEUE in DHB 2021-06-15 16:47:24 +02:00
2684e82c7f Merge pull request 'PUS C support for Telecommands and first FSFW.h file' (#432) from KSat/fsfw:mueller/update-package into development
Reviewed-on: fsfw/fsfw#432
2021-06-15 16:37:40 +02:00
66d1d14ae3 Merge branch 'development' into mueller/update-package 2021-06-15 16:33:26 +02:00
5f9a6bb155 Merge pull request 'Removed wrong static' (#437) from gaisser/fsfw:gaisser_clock_leap_seconds_move into development
Reviewed-on: fsfw/fsfw#437
2021-06-15 16:13:55 +02:00
8a5a3c0243 Merge branch 'development' into gaisser_clock_leap_seconds_move 2021-06-15 16:13:35 +02:00
2ccc0dbb00
Removed wrong static 2021-06-15 16:12:25 +02:00
cfbdb10a55 Merge pull request 'Moved leap second handling from OSALs to clock.h' (#436) from gaisser/fsfw:gaisser_clock_leap_seconds_move into development
Reviewed-on: fsfw/fsfw#436
2021-06-15 16:09:53 +02:00
ee89a2f00d
Removed author tag 2021-06-15 16:05:12 +02:00
dbfcf8b271 Removed old check 2021-06-15 16:03:11 +02:00
717971f69c
Fixed wrong namespace qualifier 2021-06-15 16:01:28 +02:00
b0a69d4c9d Merge remote-tracking branch 'my_fork/gaisser_clock_leap_seconds_move' into gaisser_clock_leap_seconds_move 2021-06-15 16:00:23 +02:00
ecb03b8a6d
Moved Code to own cpp 2021-06-15 15:59:20 +02:00
b1f6252e30 Merge branch 'development' into gaisser_clock_leap_seconds_move 2021-06-15 15:53:16 +02:00
05edb7a00c Merge pull request 'Added some precautions in DHB::replyToReply' (#435) from gaisser/fsfw:gaisser_overflow_avoid_dhb into development
Reviewed-on: fsfw/fsfw#435
2021-06-15 15:53:05 +02:00
0cde65f5a1
Added some precautions in DHB::replyToReply 2021-06-15 15:33:52 +02:00
fbbc640f4d Merge pull request 'DHB tweak and class ID for GPIO HAL' (#434) from eive/fsfw:mueller/dhb-tweak into development
Reviewed-on: fsfw/fsfw#434
2021-06-15 15:23:23 +02:00
03e1a3e945
const correctness 2021-06-15 15:08:18 +02:00
cc5c8ca698
type 2021-06-15 15:04:40 +02:00
996fbf134e Merge branch 'mueller/dhb-tweak' of https://egit.irs.uni-stuttgart.de/eive/fsfw into mueller/dhb-tweak 2021-06-15 15:01:09 +02:00
1c7c532ef6
DHB update 2021-06-15 15:01:02 +02:00
41e3a6b54b Merge branch 'development' into mueller/dhb-tweak 2021-06-15 14:56:19 +02:00
aa1bfcbb96
DHB update 2021-06-15 14:52:56 +02:00
0f484abcaa Merge branch 'mueller/update-package' into mueller/master 2021-06-15 14:22:03 +02:00
c371cf4851
changelog update 2021-06-15 14:21:46 +02:00
ad191409f4
Merge remote-tracking branch 'upstream/development' into mueller/update-package 2021-06-15 14:20:03 +02:00
398250c959 Merge pull request 'added generic file system message' (#428) from KSat/fsfw:mueller/generic-filesyste-message into development
Reviewed-on: fsfw/fsfw#428
2021-06-15 14:08:24 +02:00
4b248740f3
added HAL gpio class ID 2021-06-15 13:32:11 +02:00
21d213f35f Merge branch 'development' into gaisser_clock_leap_seconds_move 2021-06-14 15:27:37 +02:00
105a498b93
added way to set source ID 2021-06-14 15:24:26 +02:00
0a0c5592f3 Merge branch 'mueller/update-package' into mueller/master 2021-06-14 15:15:23 +02:00
aa33ff2f48
max tm packet size now configurable 2021-06-14 15:14:57 +02:00
3076c423c0 Merge branch 'development' into mueller/generic-filesyste-message 2021-06-14 15:14:37 +02:00
5f27fe6392
indentation 2021-06-14 15:06:26 +02:00
af99303eac
indentation 2021-06-14 15:05:40 +02:00
1d2dabb4b4 Merge remote-tracking branch 'upstream/development' into mueller/update-package 2021-06-14 14:52:52 +02:00
eead2a8a49
Moved leap second management 2021-06-14 14:40:40 +02:00
a7068acca7
updated generic file system message 2021-06-14 14:38:09 +02:00
99b007f37e
added deletions 2021-06-14 14:37:38 +02:00
7cf4aa0d5a
fixes for pus tc c 2021-06-14 11:44:39 +02:00
b1e3a1b2b5
const correctness 2021-06-14 11:16:56 +02:00
56d2af9d25
cleaned up a bit 2021-06-14 10:19:01 +02:00
dadba69272
Merge branch 'mueller/fsfw-pus-c-tc' into mueller/master 2021-06-13 18:00:13 +02:00
40a8c9a495
srv 20 fixes 2021-06-13 17:58:44 +02:00
8dc66784a8
tiny changes 2021-06-13 16:59:28 +02:00
d0f37b851b
added pus c support for tc 2021-06-13 16:29:13 +02:00
1b6759020a
added getter function 2021-06-13 12:38:24 +02:00
537a30a4de
added pus a tc 2021-06-13 12:34:06 +02:00
a993872884 Merge pull request 'EIVE FSFW Update' (#430) from eive/fsfw:eive/develop into development
Reviewed-on: fsfw/fsfw#430
2021-06-12 15:44:31 +02:00
d700fb551c Merge remote-tracking branch 'upstream/development' into eive/develop 2021-06-12 15:24:08 +02:00
73bae057bd
default color is magneta now for wanring 2021-06-12 15:03:18 +02:00
589e64fc46
void function now 2021-06-11 15:05:43 +02:00
1630682548
added function to set color 2021-06-11 14:52:09 +02:00
4b095eea89 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-06-08 15:37:13 +02:00
fb7b059137
added clear message 2021-06-08 15:13:49 +02:00
bc151983b5 Merge branch 'development' into mueller/generic-filesyste-message 2021-06-08 15:05:41 +02:00
40b2979ce8
added generic file system message 2021-06-08 15:03:17 +02:00
7030d3e108 Merge pull request 'Make Object Manager a Singleton and Refactored Linux Error Printing' (#424) from KSat/fsfw:mueller/master into development
Reviewed-on: fsfw/fsfw#424
2021-06-08 15:01:00 +02:00
41cb8cb8ae
Merge remote-tracking branch 'upstream/development' into mueller/master 2021-06-08 14:43:31 +02:00
75adf52d28
small update 2021-06-08 14:30:35 +02:00
0157681471
removed obsolete code 2021-06-08 14:27:21 +02:00
b6b144bcdb Merge pull request 'FreeRTOS Queue Map Manager' (#423) from KSat/fsfw:mueller/freertos-queue-map-manager into development
Reviewed-on: fsfw/fsfw#423
2021-06-08 14:03:45 +02:00
145dd33fb1
fixed merge conflict 2021-06-05 20:30:36 +02:00
50fac22f54 Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-06-05 20:10:17 +02:00
8b83541264
Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2021-06-05 19:59:51 +02:00
57699cccb7
object manager is now a singleton 2021-06-05 19:52:38 +02:00
33e7c635c5
added hal class ids 2021-06-05 00:05:03 +02:00
070c3f3bbf
added example usage 2021-06-04 14:39:21 +02:00
3891014340
linux error print handling improved 2021-06-03 12:29:06 +02:00
26d6b32ef6 Modification to fsfw for ESBO TMTC interface: removal of subcounter from data field header in tmPacketBase and TmPacketMinimal,
changes to the maximum tm packet size in the tmPacketBase. Changed Time Stamp size to 6 bytes.
2021-06-01 16:58:14 +02:00
c3be4cdee6 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-05-31 17:06:07 +02:00
6b9747ee0b Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-05-31 17:03:55 +02:00
ad820fbe99
important bugfix 2021-05-31 17:00:51 +02:00
722a7b3240
renamed variable 2021-05-31 16:46:32 +02:00
442b9370ae Merge remote-tracking branch 'upstream/mueller/master' into source/develop 2021-05-31 12:31:46 +02:00
54e60f4ddc
cleaned up a bit 2021-05-31 12:30:54 +02:00
e961f3f038
better error handling for mq_receive() 2021-05-31 12:22:33 +02:00
c9836abf03
minor tweak 2021-05-31 11:36:32 +02:00
404c3821e6
corrected include 2021-05-31 11:12:52 +02:00
567699954c
added missing event translation 2021-05-28 18:30:43 +02:00
43d4953e4a Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-05-27 14:10:12 +02:00
e6059812b5 Merge remote-tracking branch 'upstream/development' into mueller/master 2021-05-27 14:00:03 +02:00
f0a7b1cad2
indentation 2021-05-27 13:47:22 +02:00
e46615e830 Merge branch 'mueller/freertos-queue-map-manager' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/freertos-queue-map-manager 2021-05-27 13:46:14 +02:00
e7ac2c7009
maybe this works 2021-05-27 13:46:04 +02:00
95c6a24437 Merge branch 'development' into mueller/freertos-queue-map-manager 2021-05-27 13:44:35 +02:00
237ba8112b
more unrelated changes removed 2021-05-27 13:43:48 +02:00
aab3fd828b
removed unrelated changes 2021-05-27 13:43:13 +02:00
46cfe7452a
for for ISR variant 2021-05-27 13:40:01 +02:00
e6868464bf
queue map manager working 2021-05-27 13:38:40 +02:00
e15f03fb0a
added FreeRTOS queue map manager 2021-05-27 13:12:34 +02:00
59e7f0caae
added more messages 2021-05-27 12:50:48 +02:00
a2deac3441 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2021-05-27 12:47:14 +02:00
5eadcaf10d
file system message update 2021-05-27 12:46:45 +02:00
2bf5a972e1
introduced std check 2021-05-27 11:56:52 +02:00
5d2c62e75d
abstract function defined again 2021-05-26 14:15:48 +02:00
5ac68f731e Merge pull request 'Doc Update + PUS IDs' (#422) from mueller/another-update-package into development
Reviewed-on: fsfw/fsfw#422
2021-05-25 14:49:10 +02:00
7fa0443725 Merge branch 'development' into mueller/another-update-package 2021-05-25 14:48:58 +02:00
f4cb63c53c Merge pull request 'TCP Server Update' (#421) from KSat/fsfw:mueller/tcp-server into development
Reviewed-on: fsfw/fsfw#421
2021-05-25 14:13:49 +02:00
0cde6f317d Merge branch 'development' into mueller/tcp-server 2021-05-25 14:10:46 +02:00
2737bc390c Merge pull request 'Update Package' (#420) from KSat/fsfw:mueller/update-package into development
Reviewed-on: fsfw/fsfw#420
2021-05-25 14:10:33 +02:00
07ba05b209 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-05-25 14:06:18 +02:00
f3d9fb645e Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-05-25 14:05:59 +02:00
e9adaf672f Merge branch 'mueller/master' into eive/develop 2021-05-18 16:18:47 +02:00
fc4e65b2fc Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-05-18 15:55:31 +02:00
36030ef87c
typo 2021-05-18 15:37:05 +02:00
b7060a9c78
update README 2021-05-18 15:35:47 +02:00
e147d5a4f5
some more information 2021-05-18 15:34:31 +02:00
a8c0d96c39
some fixes 2021-05-18 15:32:52 +02:00
ed27d388d5
added tmtc chapter in doc 2021-05-18 15:31:04 +02:00
e2ae9756f3
updated documentation 2021-05-18 15:12:48 +02:00
c07672f9b4
changed class id file for refactored modgen 2021-05-18 14:57:54 +02:00
6db2efc20d
copmment block for fw class ids 2021-05-18 11:36:36 +02:00
94062c67d3
added more pus services 2021-05-18 11:28:37 +02:00
9e0146f579
comment added 2021-05-18 11:16:54 +02:00
d3423b30b0
minot changes 2021-05-18 11:14:26 +02:00
58a532fc4d
added health service to fsfw objects 2021-05-18 11:13:28 +02:00
ac027e3ff2 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-05-17 16:00:41 +02:00
ff6b4134a5
Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-05-17 14:13:53 +02:00
5847081a24 tweaks and fixes for TCP 2021-05-13 22:17:21 +02:00
0bc124fd21 renamed tcpip tasks 2021-05-13 21:46:46 +02:00
1e9c789287 Merge remote-tracking branch 'upstream/mueller/tcp-server' into mueller/master 2021-05-13 21:11:59 +02:00
b06113993c Merge remote-tracking branch 'origin/development' into mueller/master 2021-05-12 18:38:10 +02:00
4fa56a2f1d
moved string port argument 2021-05-12 18:37:52 +02:00
a320e3e1ef Merge branch 'mueller/update-package' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/update-package 2021-05-12 17:32:53 +02:00
4095be449a
some more preprocessor replacements 2021-05-12 17:32:40 +02:00
d20f0c5da1 Merge branch 'development' into mueller/update-package 2021-05-12 17:25:37 +02:00
9496ed42e2 Merge pull request 'Implements Network Endianness' (#419) from gaisser/fsfw:gaisser_network_serialize into development
Reviewed-on: fsfw/fsfw#419
2021-05-12 17:25:13 +02:00
14027e449c Merge remote-tracking branch 'gaisser/gaisser_network_serialize' into mueller/merge-test 2021-05-12 17:18:12 +02:00
1626b266d7
platform header file 2021-05-12 16:47:53 +02:00
d27f49c968
added platform header file 2021-05-12 16:38:02 +02:00
a6dd2d5dcb
event manager update 2021-05-12 16:37:12 +02:00
8293e6b0c7
more include fixes 2021-05-12 14:48:39 +02:00
d81c6f40fb
define fixes 2021-05-12 14:43:08 +02:00
5b23b928cf
added missing include 2021-05-12 14:28:37 +02:00
cd016c8281
event manager printout refactoring 2021-05-12 13:40:26 +02:00
e1c91f82b7
some fixes and tweaks 2021-05-12 10:54:10 +02:00
9d0155d9ae
Added a returnvalue 2021-05-11 15:30:49 +02:00
d807998f4d Added Missing includes in Host Osal
Updated correct defaults for Host MessageQueues
2021-05-11 15:25:38 +02:00
8b17c40aa6 Added Network Byte Order 2021-05-11 15:02:04 +02:00
d7d24bd9aa Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-05-05 22:48:29 +02:00
c1d30aad13 TCP server implementation finished
A lot of smaller tweaks and smaller refactoring done
in UDP TMTC bridge as well
2021-05-05 15:59:41 +02:00
126def219b continued tmtc server and bridge 2021-05-05 12:59:42 +02:00
08b9e92d25 Merge pull request 'PUS C Telemetry implementation' (#414) from mueller/pus-c-support into development
Reviewed-on: fsfw/fsfw#414
2021-05-04 14:43:39 +02:00
86431c854b Merge remote-tracking branch 'origin/development' into mueller/pus-c-support 2021-05-04 14:07:56 +02:00
f3530d3c7e small format change for event to test 2021-04-30 23:59:45 +02:00
0a76c5b0b5 Merge pull request 'use timestamp size from FSFWConfig.h' (#418) from mueller/use-config-timestamp-size into development
Reviewed-on: fsfw/fsfw#418
2021-04-29 20:54:45 +02:00
6ede3f9ba2 Merge remote-tracking branch 'origin/development' into mueller/pus-c-support 2021-04-29 20:24:37 +02:00
097244bf8b use timestamp size from FSFWConfig.h 2021-04-29 19:51:38 +02:00
5c9b1769c1 Merge remote-tracking branch 'origin/development' into mueller/master 2021-04-28 22:18:08 +02:00
2f511523cb Merge pull request 'Apollo Sojus Test Project Version 1.0.0' (#408) from development into master
Reviewed-on: fsfw/fsfw#408
2021-04-27 14:20:06 +02:00
9f83739771 Merge pull request 'dhb multiple replies support' (#416) from eive/fsfw:meier/multipleRepliesDhb into development
Reviewed-on: fsfw/fsfw#416
2021-04-27 14:18:15 +02:00
054de9781b
avoid duplicate printout 2021-04-27 14:17:27 +02:00
20e7fe6cb1 Merge branch 'development' into meier/multipleRepliesDhb 2021-04-26 16:19:57 +02:00
f8cd8e1e7d Merge pull request 'ParameterHelper: Returnvalue not checked' (#417) from KSat/fsfw:mueller/parameter-bugfix into development
Reviewed-on: fsfw/fsfw#417
2021-04-26 16:19:31 +02:00
818634755d checking returnvalue now 2021-04-26 15:47:49 +02:00
413ff0d1b9 parameter wrapper bugfix 2021-04-26 14:17:57 +02:00
87fee9bd0e dhb multiple replies support 2021-04-25 11:40:04 +02:00
5273ffa721 Merge remote-tracking branch 'origin/meier/dhbMultipleReplies' into mueller/master 2021-04-25 11:08:54 +02:00
e7c00b5633 Merge branch 'mueller/master' into meier/dhbMultipleReplies 2021-04-25 10:49:56 +02:00
f2ab07c782 Merge branch 'meier/dhbMultipleReplies' into mueller/master 2021-04-24 23:55:37 +02:00
ff33a1274d deleted old bridge 2021-04-24 23:54:13 +02:00
e7cfd324ae Merge branch 'mueller/master' into meier/dhbMultipleReplies 2021-04-24 23:43:53 +02:00
52b549b97c adapted object factory to fsfw changes 2021-04-24 22:54:18 +02:00
cac9a0eecd Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-04-24 22:48:43 +02:00
56d43f5b49 better output 2021-04-24 22:46:12 +02:00
10e7e42388 Merge branch 'development' into meier/dhbMultipleReplies 2021-04-24 18:05:00 +02:00
fc34e7fd75 Merge branch 'development' of https://egit.irs.uni-stuttgart.de/eive/fsfw into development 2021-04-24 18:04:43 +02:00
18a9729c75 added multiple reply support 2021-04-24 13:52:06 +02:00
763347f203
Merge remote-tracking branch 'upstream/development' into mueller/master 2021-04-22 19:55:02 +02:00
1ff52e43a0 Merge remote-tracking branch 'origin/development' into mueller/master 2021-04-22 19:52:44 +02:00
6a40b8244d Merge pull request 'Subsystems replaced Magic Numbers' (#415) from gaisser_fixes_subsystem into development
Reviewed-on: fsfw/fsfw#415
2021-04-22 19:52:08 +02:00
7f1cbaef23
updated default cmakelists 2021-04-22 18:09:23 +02:00
3356ccc9d4
tested new comment export string for retvals 2021-04-22 17:45:46 +02:00
4fd443f70b Merge remote-tracking branch 'origin/gaisser_fixes_subsystem' into gaisser_fixes_subsystem 2021-04-20 22:03:52 +02:00
06631d06a5
Added comments in AssemblyBase and SubsystemBase 2021-04-20 22:01:56 +02:00
9244a96e7b Merge branch 'development' into gaisser_fixes_subsystem 2021-04-20 21:07:31 +02:00
03ef63302b
Replaced Magic Numbers 2021-04-20 20:45:15 +02:00
3f91803422
fixes from code review 2021-04-20 18:35:11 +02:00
5759c2cbe6
Merge remote-tracking branch 'origin/development' into mueller/pus-c-support 2021-04-20 18:03:49 +02:00
c50796b785 Merge pull request 'calling empty ctor now for SerializeElement (coverity)' (#413) from mueller/serialiize-element-coverity into development
Reviewed-on: fsfw/fsfw#413
2021-04-20 17:57:00 +02:00
a0caa92a8a Merge branch 'development' into mueller/serialiize-element-coverity 2021-04-20 17:52:01 +02:00
a91139be76 Merge pull request 'small fix for linux printf printout in TCP/IP code' (#411) from mueller/linuxtcpip-printout-fix into development
Reviewed-on: fsfw/fsfw#411
2021-04-20 17:51:48 +02:00
fee2ac0eb9 Merge branch 'development' into mueller/linuxtcpip-printout-fix 2021-04-20 17:50:10 +02:00
2878f21c93 Merge pull request 'Possible bugfix found by coverity in TimeMessage' (#412) from mueller/timemessage-override-fix into development
Reviewed-on: fsfw/fsfw#412
2021-04-20 17:49:44 +02:00
4caf906d96 Merge branch 'development' into mueller/timemessage-override-fix 2021-04-20 17:44:07 +02:00
b38e9ede0c Merge branch 'development' into mueller/linuxtcpip-printout-fix 2021-04-20 17:43:44 +02:00
17b3672330 Merge pull request 'heater tweaks + coverity fix' (#410) from mueller/heater-coverity into development
Reviewed-on: fsfw/fsfw#410
2021-04-20 17:43:19 +02:00
629814bc9b
Just comments 2021-04-20 17:35:28 +02:00
4fb792447e
Small rearragenment in Heater.cpp 2021-04-20 17:29:56 +02:00
40dae8c961 Merge branch 'development' into mueller/heater-coverity 2021-04-20 16:38:52 +02:00
9e1f3ee585 Merge pull request 'small coverity tweak for Health Device' (#409) from mueller/health-coverity-fix into development
Reviewed-on: fsfw/fsfw#409
2021-04-20 16:38:37 +02:00
e851d8a46c Merge branch 'development' into mueller/heater-coverity 2021-04-20 16:38:33 +02:00
0038c1dc53 Merge branch 'development' into mueller/health-coverity-fix 2021-04-20 16:38:16 +02:00
1a3bb5bada Merge branch 'development' into mueller/serialiize-element-coverity 2021-04-20 16:38:08 +02:00
e45b8bc739 Merge remote-tracking branch 'origin/development' into mueller/pus-c-support 2021-04-20 16:31:35 +02:00
dcd72d421e Merge branch 'mueller/master' into mueller/pus-c-support 2021-04-20 16:19:04 +02:00
cc8c3aef3d
removed unused interface 2021-04-20 16:18:39 +02:00
0055d34d9a
bugfix found by coverity 2021-04-20 16:17:37 +02:00
a2ba3181b9
small coverity tweak 2021-04-20 16:16:35 +02:00
864621ee37
small fix for linux printout 2021-04-20 16:15:30 +02:00
54ff8f9341
heater tweaks + coverity fix 2021-04-20 16:12:50 +02:00
e4efc01e34 Merge pull request 'thermal sensor update' (#402) from mueller/thermal-handler into development
Reviewed-on: fsfw/fsfw#402
2021-04-20 16:10:20 +02:00
c455fc1417 Merge branch 'development' into mueller/thermal-handler 2021-04-20 16:10:14 +02:00
d792679d49
calling empty ctor now (coverity) 2021-04-20 16:09:50 +02:00
9352e15405 Merge remote-tracking branch 'origin/development' into mueller/pus-c-support 2021-04-20 16:07:21 +02:00
38a5e7e618
ctor variable better name 2021-04-20 16:00:01 +02:00
1cceda8e63
Merge branch 'mueller/thermal-handler' into mueller/master 2021-04-20 15:59:44 +02:00
0c342ad7fc
minor changes 2021-04-20 15:57:11 +02:00
524e50a6dd
comment block corrected 2021-04-20 15:54:44 +02:00
8c4381eca6 Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-04-20 15:49:55 +02:00
29a05eb113 Merge remote-tracking branch 'ksat/mueller/master' into mueller/pus-c-support 2021-04-20 15:49:32 +02:00
17adb2cc3e Merge pull request 'small improvements for Linux' (#407) from mueller/linux-small-improvements into development
Reviewed-on: fsfw/fsfw#407
2021-04-20 15:46:34 +02:00
534b4850df Merge remote-tracking branch 'upstream/development' into mueller/master 2021-04-20 15:36:18 +02:00
7b29583f8f small improvements 2021-04-20 15:32:12 +02:00
a66fc53396 config define moved, better warning 2021-04-20 15:31:03 +02:00
5471030c32 Merge remote-tracking branch 'origin/development' into mueller/master 2021-04-20 15:13:28 +02:00
1af7870b15 Merge branch 'development' into mueller/thermal-handler 2021-04-20 15:11:19 +02:00
1cbeb54b8d Merge pull request 'Makes linux realtime optional' (#406) from gaisser/fsfw:gaisser_make_linux_realtime_optional into development
Reviewed-on: fsfw/fsfw#406
2021-04-20 15:10:44 +02:00
0ec83afa13 Merge remote-tracking branch 'my_fork/gaisser_make_linux_realtime_optional' into gaisser_make_linux_realtime_optional 2021-04-20 15:06:40 +02:00
153c44601b
refixed spelling 2021-04-20 15:04:42 +02:00
e6a8371d4a temperature sensor update 2021-04-20 15:00:59 +02:00
64efb8ec7f temperature sensor update 2021-04-20 14:58:35 +02:00
c8b2b3a038 Merge branch 'mueller/thermal-handler' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/thermal-handler 2021-04-20 14:47:18 +02:00
6873d2b847 temp sensor update 2021-04-20 14:46:59 +02:00
91c3692f6d Merge branch 'development' into gaisser_make_linux_realtime_optional 2021-04-20 14:39:56 +02:00
69788e1279 Merge pull request 'Updating TC Distributor modules' (#403) from mueller/tmtcservices-update into development
Reviewed-on: fsfw/fsfw#403
2021-04-20 14:39:07 +02:00
ec69076652 Merge branch 'development' into mueller/tmtcservices-update 2021-04-20 14:38:59 +02:00
a62bda97a0 Merge pull request 'UDP and TCPIP smaller tweaks' (#400) from mueller/udp-ai-passive-opt into development
Reviewed-on: fsfw/fsfw#400
2021-04-20 14:38:16 +02:00
32f0131973 Merge branch 'development' into mueller/udp-ai-passive-opt 2021-04-20 14:38:01 +02:00
9784d5123b Merge branch 'development' into mueller/thermal-handler 2021-04-20 14:37:04 +02:00
ea8d887a6b Merge pull request 'proper MQ implementation' (#401) from mueller/host-osal-vector-mq into development
Reviewed-on: fsfw/fsfw#401
2021-04-20 14:36:47 +02:00
29cebab790 Merge remote-tracking branch 'origin/development' into mueller/udp-ai-passive-opt 2021-04-20 14:18:06 +02:00
03095776f1
Added a comment and corrected a mistake 2021-04-20 13:31:15 +02:00
bad9f67c39 Merge remote-tracking branch 'origin/development' into gaisser_make_linux_realtime_optional 2021-04-20 13:06:11 +02:00
98add88d14 Makes linux realtime optional
Adds new config variable FSFW_USE_REALTIME_FOR_LINUX
2021-04-20 13:01:24 +02:00
e1b595d620 Merge branch 'development' into mueller/tmtcservices-update 2021-04-20 11:38:42 +02:00
770356f8b6 fix for warning print 2021-04-19 14:38:56 +02:00
62e409a9f2 doc fix 2021-04-15 10:07:39 +02:00
39940823d1 Merge branch 'development' into mueller/thermal-handler 2021-04-13 14:44:43 +02:00
4479a2628d Merge branch 'development' into mueller/host-osal-vector-mq 2021-04-13 14:32:18 +02:00
b09119cd8d Merge pull request 'Small patch for CMakeLists file' (#397) from KSat/fsfw:mueller/cmake-lists-add-inc-paths into development
Reviewed-on: fsfw/fsfw#397
2021-04-13 14:31:20 +02:00
10bc568560 Merge branch 'development' into mueller/cmake-lists-add-inc-paths 2021-04-13 14:23:04 +02:00
6e09e29ec2 Merge pull request 'added all coverity fixes' (#398) from KSat/fsfw:mueller/coverity-fixes into development
Reviewed-on: fsfw/fsfw#398
2021-04-13 14:22:53 +02:00
43fb05ac5d Merge branch 'development' into mueller/thermal-handler 2021-04-13 14:02:24 +02:00
e832487081 Merge branch 'development' into mueller/coverity-fixes 2021-04-13 14:02:03 +02:00
01acbaa270 Merge branch 'development' into mueller/cmake-lists-add-inc-paths 2021-04-13 14:01:45 +02:00
cf8a9996a7 added new test stub 2021-04-13 10:42:49 +02:00
a8b5fec725 Merge branch 'development' into mueller/udp-ai-passive-opt 2021-04-13 10:01:14 +02:00
fc7e401ddc pus c working 2021-04-13 01:24:26 +02:00
ed186b04df finalized PUS C TM support 2021-04-13 00:19:09 +02:00
f906605097 addes pus packet c implementation 2021-04-12 23:55:33 +02:00
9a2fbefc9f refactoring continued 2021-04-12 22:24:11 +02:00
07f1216316 error found 2021-04-12 22:12:18 +02:00
4faa5b0685 fixes 2021-04-12 22:02:16 +02:00
ae1dab1fce sth broke 2021-04-12 21:53:08 +02:00
9a5f717169 refactoring to allow PUS c implementation 2021-04-12 21:17:53 +02:00
d7d52439d7 added new option 2021-04-12 20:40:41 +02:00
321de4e46b Merge pull request 'bumped version to 1.0.0' (#399) from KSat/fsfw:mueller/version-bump into development
Reviewed-on: fsfw/fsfw#399
2021-04-12 17:04:14 +02:00
2635ec3d56 Merge branch 'development' into mueller/cmake-lists-add-inc-paths 2021-04-12 16:10:03 +02:00
3f7915fe49 Merge branch 'development' into mueller/tmtcservices-update 2021-04-12 16:09:56 +02:00
f87a10891a Merge branch 'development' into mueller/udp-ai-passive-opt 2021-04-12 16:09:42 +02:00
f4ac5c3844 Merge branch 'development' into mueller/version-bump 2021-04-12 16:09:30 +02:00
922f145ffa Merge branch 'development' into mueller/coverity-fixes 2021-04-12 15:28:51 +02:00
9731127eaf Merge pull request 'typo fix' (#396) from KSat/fsfw:mueller/destination-invalid-typo into development
Reviewed-on: fsfw/fsfw#396
2021-04-12 15:28:38 +02:00
5124f314f4 updated distributor modules 2021-04-12 12:50:23 +02:00
4bb078c451 thermal sensor update 2021-04-12 12:40:59 +02:00
547538fbc5 proper MQ implementation 2021-04-12 12:38:56 +02:00
06d34efa74 UDP and TCPIP smaller tweaks
Using AI_PASSIVE now so the UDP server listens to all
addresses (0.0.0.0) instead of just localhost.
Also implemented address print function properly
2021-04-12 12:33:45 +02:00
b786b53c35 added all coverity fixes 2021-04-11 21:54:48 +02:00
e50d0738ab bumped version to 1.0.0 2021-04-11 21:22:58 +02:00
01d0bd6c64 Small patch for CMakeLists file
This adds the additional includes to the interface as well
so libraries linking again fsfw get the additional includes
as well.
2021-04-11 21:20:45 +02:00
5676969fe3 typo fix 2021-04-11 21:13:43 +02:00
5d93cf12f7 another coverity fix 2021-04-11 18:55:10 +02:00
438049bb80 another coverity fix 2021-04-11 18:50:48 +02:00
6e6fb62b3c last coverity fixes 2021-04-11 18:36:24 +02:00
7b8928ef47 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-04-11 15:02:26 +02:00
924ea420a9 missing include for windows 2021-04-11 14:58:53 +02:00
fbe860c6a5 refactored addr print, using AI_PASSIVE now 2021-04-11 14:54:02 +02:00
8b266aa542 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-04-11 11:52:09 +02:00
5144cbd789 additional inc path now in IF 2021-04-11 02:26:11 +02:00
720ce59680 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-04-10 21:58:27 +02:00
f1ffa88e07 small bugfix 2021-04-10 14:29:00 +02:00
d4b26825af Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-04-10 14:13:09 +02:00
7e249db15e Merge remote-tracking branch 'origin/mueller/host-osal-vector-mq' into mueller/master 2021-04-09 18:50:32 +02:00
83e7dbb1f0 Coveritx fixes 2021-04-09 16:17:21 +02:00
2e417c787d coverity 2021-04-09 16:14:14 +02:00
316310e993 coverity 2021-04-09 15:49:33 +02:00
6db0725aa4 coverity fix 2021-04-09 15:39:48 +02:00
e0d39b1feb coverity 2021-04-09 09:17:11 +02:00
d9a0a4f2ea coverity 2021-04-09 09:14:42 +02:00
b8c7a65709 coverity fix 2021-04-09 08:59:32 +02:00
d3c3a9147a bumped version number 2021-04-09 08:29:56 +02:00
40cc3c383b this should work 2021-04-09 00:45:04 +02:00
d92a20a669 coverity 2021-04-08 22:49:36 +02:00
c1f4ae08fb typo fix 2021-04-08 22:28:44 +02:00
2b84ab018c implemented mq properly 2021-04-08 20:53:54 +02:00
9e881b6a16 Merge remote-tracking branch 'origin/development' into mueller/master 2021-04-08 20:41:07 +02:00
905d525aa2 small fix DHB 2021-04-08 19:12:21 +02:00
e6a1a7cc2d coverity fix for event message 2021-04-08 19:10:49 +02:00
dd367bf083 coverity: initialize entry 2021-04-08 19:09:00 +02:00
8f4ab6d7ed coverity: initialize member 2021-04-08 19:07:51 +02:00
b30a3aaa38 coverity fix 2021-04-08 19:07:03 +02:00
efb7c8760a coverity action helper fix 2021-04-08 19:01:06 +02:00
bddd8720b2 another coverity fix 2021-04-08 18:59:48 +02:00
00d9a4f3ed more coverity fixes 2021-04-08 18:57:24 +02:00
f988271be4 coverity fixes 2021-04-08 18:53:22 +02:00
38d929c2a8 coverity fixes 2021-04-08 18:48:44 +02:00
b4594e6f43 Merge pull request 'bugfix for RTEMS' (#395) from rtems/hotfix-mq into development
Reviewed-on: fsfw/fsfw#395
2021-04-08 16:31:21 +02:00
6e12f08965 Merge branch 'development' into rtems/hotfix-mq 2021-04-08 16:31:13 +02:00
2dd2d8f133 Merge pull request 'Important bugfix for Linux MQ' (#394) from KSat/fsfw:linux/hotfix-mq into development
Reviewed-on: fsfw/fsfw#394
2021-04-08 16:31:02 +02:00
10c3483fe5 bugfix for RTEMS 2021-04-08 16:20:59 +02:00
e799e45198 bugfix for RTEMS 2021-04-08 16:20:24 +02:00
23e3f2f34f now fixed properly 2021-04-08 15:39:23 +02:00
9ee1bd15c4 now fixed properly 2021-04-08 15:38:36 +02:00
cbeb78f089 Merge branch 'development' into mueller/master 2021-04-08 15:32:38 +02:00
6983ddc3e0 super evil bugfix 2021-04-08 15:27:03 +02:00
80aab5f461 super evil bug 2021-04-08 15:25:22 +02:00
43ddb44573 fixed temperature sensor object 2021-04-07 22:12:01 +02:00
9f8a345e35 Merge remote-tracking branch 'upstream/development' into mueller/master 2021-04-07 21:53:11 +02:00
3ff5484415 disabled debugging mode 2021-04-07 13:44:03 +02:00
7322a7d0f5 improvements for ccsds distributor 2021-04-07 12:09:06 +02:00
0e76333d33 minor improvements for PUS distributor 2021-04-07 12:03:28 +02:00
c234da6f07 Merge pull request 'Linux Fix' (#393) from KSat/fsfw:mueller/linux-fix into development
Reviewed-on: fsfw/fsfw#393
2021-04-06 14:09:59 +02:00
8930be9f32 Merge branch 'development' into mueller/linux-fix 2021-04-06 14:09:24 +02:00
32996338a0 Merge pull request 'CMake update' (#392) from mueller/cmake-update into development
Reviewed-on: fsfw/fsfw#392
2021-04-06 14:09:14 +02:00
2736ebbd19 Merge branch 'development' into mueller/cmake-update 2021-04-06 14:08:06 +02:00
dea2205908 improved output 2021-04-01 15:20:53 +02:00
d1a256cbf6 added missing include 2021-03-31 19:53:58 +02:00
509945c323 Merge remote-tracking branch 'upstream/development' into mueller/master 2021-03-30 01:14:06 +02:00
435c6e6410 bugfix for linux/host 2021-03-30 00:37:10 +02:00
3429918f5e fixed cmakelists for linux 2021-03-30 00:25:22 +02:00
f2da31239c Merge remote-tracking branch 'upstream/mueller/master' into development 2021-03-29 14:36:53 +02:00
3a75be2683 this version is working 2021-03-27 21:51:04 +01:00
aa9d7b2226 Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-03-27 21:33:22 +01:00
eea482b438 added specific compile definitions 2021-03-27 21:27:46 +01:00
3a90578780 minor bridge improveements 2021-03-27 10:40:38 +01:00
42720e6f7d Merge branch 'development' of https://egit.irs.uni-stuttgart.de/eive/fsfw into development 2021-03-26 12:25:20 +01:00
1d818294e4 added option to remove unused code 2021-03-25 18:48:00 +01:00
581832e4f4 added unittest folder 2021-03-25 18:05:18 +01:00
9e559658a7 added way to add additional include paths and libraries 2021-03-25 15:35:05 +01:00
b1c532078e Merge pull request 'OSAL update' (#391) from mueller/update-osal-package into development
Reviewed-on: fsfw/fsfw#391
2021-03-23 15:01:39 +01:00
37ac579f51 Merge branch 'development' into mueller/update-osal-package 2021-03-23 15:01:11 +01:00
aaceac81af updated fixed timeslot task 2021-03-23 14:45:33 +01:00
d781c6fcec name storage abstraction available for linux as well 2021-03-23 14:40:30 +01:00
bdd9889718 pool read guard in scope 2021-03-23 14:28:01 +01:00
a5f44b8580 doc updatedoc updatedd 2021-03-23 14:25:50 +01:00
d1265a55b4 Merge pull request 'UDP Hotfix' (#390) from mueller/udp-hotfix into development
Reviewed-on: fsfw/fsfw#390
2021-03-23 14:21:43 +01:00
b542ed5c03 Merge branch 'development' into mueller/udp-hotfix 2021-03-23 14:20:14 +01:00
8b42132cbe Merge pull request 'Bugfix validity buffer' (#389) from mueller/unit-test-bugfixes into development
Reviewed-on: fsfw/fsfw#389
2021-03-23 14:20:03 +01:00
b1670decf7 Using C++ way of zero initializing struct 2021-03-23 11:35:23 +01:00
1d3d2be853 more doc 2021-03-23 11:33:40 +01:00
d4ab2c6cdb corrected doc 2021-03-23 11:32:35 +01:00
1c021651d7 missing include added 2021-03-23 11:26:44 +01:00
3175883346 oopsie 2021-03-22 15:28:36 +01:00
4d403b40c9 Merge remote-tracking branch 'upstream/mueller/master' into source/develop 2021-03-22 15:24:56 +01:00
f6afa36b1c small tweak 2021-03-22 15:24:25 +01:00
0c77ce4dcf important bugfix 2021-03-22 15:23:47 +01:00
4c11b2f660 Merge remote-tracking branch 'upstream/mueller/master' into source/develop 2021-03-22 15:19:44 +01:00
614d1ccb7c resorted functions 2021-03-21 16:29:04 +01:00
e3c44fd27f implemented deadlien missed print for host 2021-03-21 16:20:13 +01:00
078116c7be generic windows udp bridge working as well 2021-03-21 14:38:28 +01:00
b5a14bb9df deleted old linux code 2021-03-21 13:02:14 +01:00
86577f4b80 fixed for linux 2021-03-21 12:51:28 +01:00
d625642abc created common OSAL stuff to unify UDP code 2021-03-21 00:30:33 +01:00
83d0db8242 fixed udp bridge 2021-03-20 15:53:43 +01:00
533d164cac Merge remote-tracking branch 'upstream/mueller/udp-hotfix' into mueller/master 2021-03-20 14:59:43 +01:00
951eb40e96 relativ include 2021-03-20 13:14:30 +01:00
538dec7062 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-03-20 12:59:27 +01:00
8f17d6623a removed duplicate include 2021-03-20 12:54:05 +01:00
0585ef9051 Merge remote-tracking branch 'upstream/development' into mueller/hosted-osal-fixes 2021-03-20 12:51:43 +01:00
0da95b75a2 fixed for hosted OSAL 2021-03-20 12:49:15 +01:00
e44f8bfea3 important bugfixes 2021-03-20 12:40:25 +01:00
fe2b3a01cf important bugfix 2021-03-20 12:38:51 +01:00
0e92fa4046 Merge remote-tracking branch 'upstream/development' into mueller/master 2021-03-19 15:41:58 +01:00
32b289cbec Merge pull request 'FSFW Update' (#4) from mueller/master into eive/develop
Reviewed-on: eive/fsfw#4
2021-03-19 15:40:15 +01:00
fa108f0a3b Merge branch 'development' of https://egit.irs.uni-stuttgart.de/eive/fsfw into development 2021-03-19 15:38:06 +01:00
aa849894c6 tiny form improvement 2021-03-18 20:09:19 +01:00
a4ca61d834 bugfix and printout improvement 2021-03-18 00:01:29 +01:00
b41eb518e7 improved internal error reporter 2021-03-17 23:28:01 +01:00
1b8878a81f more explicit 2021-03-17 15:46:17 +01:00
95096d83de fixed bug 2021-03-17 15:43:01 +01:00
2331188536 Merge pull request 'MSVC update' (#388) from mueller/msvc-update into development
Reviewed-on: fsfw/fsfw#388
2021-03-16 15:47:04 +01:00
b2937ae510 Merge remote-tracking branch 'origin/development' into mueller/msvc-update 2021-03-16 15:35:56 +01:00
3f8fae24dd smaller tweak 2021-03-16 15:34:13 +01:00
12f47fdd0d removed commented code 2021-03-16 15:32:58 +01:00
b757c5523c Merge pull request 'TCP/IP module updates for Linux and Windows' (#387) from mueller/tcpip-updates into development
Reviewed-on: fsfw/fsfw#387
2021-03-16 15:19:40 +01:00
5271375063 Merge branch 'development' into mueller/tcpip-updates 2021-03-16 15:19:30 +01:00
4955015f3f Merge pull request 'Local Pool Test Updates' (#386) from mueller/lpool-test-updates into development
Reviewed-on: fsfw/fsfw#386
2021-03-16 15:15:52 +01:00
898e06591b Merge remote-tracking branch 'origin/development' into mueller/lpool-test-updates 2021-03-16 15:10:04 +01:00
d62dea442d Merge pull request 'Hotfixes for Renaming Update' (#384) from mueller/mutex-fixes into development
Reviewed-on: fsfw/fsfw#384
2021-03-16 15:08:50 +01:00
66a09b94ac Merge remote-tracking branch 'origin/development' into mueller/mutex-fixes 2021-03-16 15:05:57 +01:00
125dffcf28 Merge pull request 'ExtendedController Base and MSVC updates' (#382) from mueller/fsfw-update-3 into development
Reviewed-on: fsfw/fsfw#382
2021-03-16 15:04:10 +01:00
8dec4c9311 updated pool data set base 2021-03-16 14:53:17 +01:00
26ce8d7185 msc stuff 2021-03-16 14:49:51 +01:00
1996f5949f separate windows handling 2021-03-16 14:46:05 +01:00
ca4a0b1bb8 wiretapping disabled again 2021-03-15 21:33:45 +01:00
588f9471d8 some stuff is buggy 2021-03-15 13:06:13 +01:00
703dfe9854 cleaned up a bit, removed unused fields 2021-03-12 18:30:36 +01:00
7bc04014e8 removed more unused fields 2021-03-12 18:21:50 +01:00
5eb6b277ba removed unused fields 2021-03-12 18:20:54 +01:00
2684b0c68e small doc improvement 2021-03-12 18:15:16 +01:00
76c571b969 made mutex properties changeable 2021-03-12 18:12:38 +01:00
c08e2f0bf7 removed commented code 2021-03-12 18:07:18 +01:00
bceca86da6 finsihed tcpip refactoring for linux udp 2021-03-12 18:06:24 +01:00
8ab2044c30 refactoring unix udp bridge 2021-03-12 17:15:53 +01:00
7173d2ecfc revaming linux UDP stuff 2021-03-12 16:47:55 +01:00
cf120e2d86 smaller improvementst 2021-03-12 14:08:58 +01:00
e92d3901f7 improved error handling 2021-03-12 02:15:21 +01:00
b071c850af commit with old way 2021-03-12 01:40:58 +01:00
df7434dae5 somethings wrong 2021-03-12 00:45:32 +01:00
6e5b032dbb trying new udp stuff 2021-03-12 00:34:30 +01:00
67b05fee2e newline removed 2021-03-11 15:04:20 +01:00
286a3649cf renamed tests 2021-03-11 14:51:29 +01:00
9eefd5b95d added back tcp stuff 2021-03-11 14:47:47 +01:00
36e524abe3 more tests 2021-03-11 14:46:22 +01:00
c527391b10 removed unfisnihed stuff from PR 2021-03-11 13:14:49 +01:00
9602a3ed6a bugfix and a few more tests 2021-03-11 13:02:10 +01:00
33823b445c some more tests added 2021-03-11 12:44:35 +01:00
e55f74a00e default auto clearance 2021-03-11 12:34:25 +01:00
8b83de6ca9 added way to automatically clear unhandled messages 2021-03-11 12:33:26 +01:00
3bacc8ec53 more tests and bugfixes 2021-03-11 12:04:54 +01:00
6f78c13dcf added addtional nullptr check 2021-03-11 11:06:23 +01:00
824f272432 no virtual inhertience for now 2021-03-11 01:04:39 +01:00
78b6a83285 issues with virtual inheritanc3 2021-03-11 00:18:17 +01:00
620b2ae79e weird bug 2021-03-10 23:16:47 +01:00
8d28bc4b6a added source file 2021-03-10 22:19:55 +01:00
dcde177fe3 added additional tests for more than 8 variables 2021-03-10 22:08:05 +01:00
4f89fc62ab continued tests 2021-03-10 21:38:13 +01:00
c59fa578c7 format improvements 2021-03-10 21:18:47 +01:00
6c0972b2d5 several bugfixes 2021-03-10 21:17:08 +01:00
7ad8763b14 added more nullptr checks 2021-03-10 19:18:52 +01:00
03936fc5c1 snapshot test added, bugfix 2021-03-10 19:15:05 +01:00
3789663db7 added some tests 2021-03-10 18:26:07 +01:00
b2e4438811 added some test, initial tick counter higher now 2021-03-10 18:03:39 +01:00
6501c16fd7 fixed preproc block 2021-03-10 17:51:53 +01:00
943495117b moved preproc block 2021-03-10 17:50:10 +01:00
30910034f0 tiny improvementst 2021-03-10 17:46:36 +01:00
596d3bc68a Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-03-10 17:45:30 +01:00
1e73302ba2 corrected include 2021-03-10 17:45:22 +01:00
9ba7fabdea removed commented out code 2021-03-10 16:38:54 +01:00
676c9ffcf3 added header amalagation 2021-03-10 16:32:24 +01:00
5095fd206f Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-03-10 13:31:43 +01:00
bb5b7bed40 made getter public 2021-03-09 23:18:53 +01:00
e5b3b6d75e fixed unit test 2021-03-09 22:21:27 +01:00
61affafecd and now some test broke.. 2021-03-09 21:58:29 +01:00
7525c88392 renamed mutex helper 2021-03-09 21:28:29 +01:00
3e9c19ee11 important replacements 2021-03-09 21:28:15 +01:00
a7bf9a6734 important replacements 2021-03-09 21:25:22 +01:00
82d7b7ed6f renamed mutex helper 2021-03-09 21:21:01 +01:00
7598eb6b56 Merge branch 'development' into mueller/master 2021-03-09 21:15:55 +01:00
7b3616c41f corrections 2021-03-09 21:09:01 +01:00
9737d4cf2a Merge remote-tracking branch 'upstream/development' into mueller/fsfw-update-3 2021-03-09 21:06:57 +01:00
c815905b5a Merge pull request 'Mutex Helper renamed' (#383) from KSat/fsfw:mueller/update-package-4 into development
Reviewed-on: fsfw/fsfw#383
2021-03-09 15:35:58 +01:00
59028ccc3f updated power component 2021-03-09 14:48:41 +01:00
372e8c66a8 Merge remote-tracking branch 'upstream/development' into mueller/update-package-4 2021-03-09 14:40:45 +01:00
f5ac4368d8 Merge branch 'development' into mueller/fsfw-update-3 2021-03-09 14:19:01 +01:00
6d0bc26624 Merge pull request 'Update package 2' (#380) from KSat/fsfw:mueller/update-package-2 into development
Reviewed-on: fsfw/fsfw#380
2021-03-09 14:18:53 +01:00
baafeadcf4 Merge branch 'development' into mueller/update-package-2 2021-03-09 14:16:28 +01:00
dbda6fee82 Merge pull request 'Update Package' (#378) from KSat/fsfw:mueller/update-pack into development
Reviewed-on: fsfw/fsfw#378
2021-03-09 14:16:13 +01:00
cad302730e mutex guard instead of helpe 2021-03-09 11:30:00 +01:00
da2f594a00 renamed mutex helper to mutex guard 2021-03-09 11:25:13 +01:00
d5a065eaa8 continued tcp server 2021-03-09 00:42:50 +01:00
b695242420 contiued tcp and improved udp task 2021-03-09 00:37:42 +01:00
494dd0db32 continued tcp server 2021-03-08 23:55:58 +01:00
8be4f45969 added generic error handler 2021-03-08 23:14:10 +01:00
4e5e6e145e added win sock 2021-03-08 23:02:06 +01:00
e67ff6a937 cleaner wiretapping handling 2021-03-08 23:00:53 +01:00
bdd66072d1 removed obsolete comment 2021-03-08 14:21:20 +01:00
1966b33613 typo 2021-03-08 14:08:31 +01:00
331bbd14e7 implemented explicit virt abstract propagation 2021-03-08 12:57:21 +01:00
9efc5dbd61 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-03-08 12:08:53 +01:00
f82cc1bca4 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-03-08 11:47:54 +01:00
e7cd7c8dc3 MSVC FSFW almost compiling 2021-03-07 01:35:55 +01:00
778ef4ef23 cleaned up a bit, no functional change 2021-03-06 20:36:54 +01:00
17b8d3fed0 printout for trans timeout 2021-03-06 18:12:41 +01:00
d57955ade7 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/eive/fsfw into mueller/master 2021-03-05 21:12:21 +01:00
18e40d6248 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-03-05 19:22:46 +01:00
caa3cf538b formatting correction 2021-03-05 13:34:06 +01:00
b3ca7b8667 setCompletionReply ActionMessage
success flag is now third parameter
2021-03-05 09:51:08 +01:00
2d069896a5 properly implemented getDataAndTime 2021-03-04 23:24:57 +01:00
cb514e7493 small tweak to avoid warning 2021-03-04 20:43:08 +01:00
bc7d956899 tiny form stuff 2021-03-04 19:45:13 +01:00
41e30dcb6c Merge branch 'development' of https://egit.irs.uni-stuttgart.de/eive/fsfw into development 2021-03-04 19:14:12 +01:00
227074fd4d increaed exception safety 2021-03-04 18:45:32 +01:00
a56cf43897 another rwadme update 2021-03-04 18:22:32 +01:00
e501390d7b readme typo 2021-03-04 18:20:58 +01:00
e0d7363eed better entry text 2021-03-04 18:14:29 +01:00
69b428222a updated readme 2021-03-04 18:12:34 +01:00
6df1abf570 added graph 2021-03-04 18:11:10 +01:00
d84003d62a updated READMe 2021-03-04 18:07:10 +01:00
a7878aaf04 readme update 2021-03-04 18:06:11 +01:00
23873f6bc6 improved readme 2021-03-04 17:58:07 +01:00
8de33f1301 added local pool doc 2021-03-04 17:46:42 +01:00
35825a6561 new functions to set all vars read only 2021-03-04 17:27:03 +01:00
043d47e5e4 removing whitespaces 2021-03-04 16:48:21 +01:00
bd903b8447 changelog update 2021-03-04 16:46:39 +01:00
4250c7e022 updated changelog 2021-03-04 16:45:35 +01:00
d66e486f16 whitespaces instead of tabs 2021-03-04 16:44:17 +01:00
21a7fd621d renamed guard class 2021-03-04 16:38:35 +01:00
dae4a5fa74 small form stuff 2021-03-04 16:36:34 +01:00
d8d18c9333 fixed order 2021-03-03 23:49:27 +01:00
041461a066 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2021-03-03 22:45:57 +01:00
bff8d103ba form stuff and cleaning up 2021-03-03 22:45:44 +01:00
6580aa73bf updated clock module 2021-03-03 17:13:37 +01:00
9a3cd1d7fc success flag not explicitely expected for actions 2021-03-03 15:13:03 +01:00
e64de87af7 Merge pull request 'FollowUp request' (#375) from KSat/fsfw:mueller/followup-pullrequest into development
Reviewed-on: fsfw/fsfw#375
2021-03-02 15:03:34 +01:00
7ea4fedcea Merge branch 'mueller/followup-pullrequest' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/followup-pullrequest 2021-03-02 14:59:03 +01:00
1caa45118b makecommandid is constexpr now 2021-03-02 14:58:49 +01:00
6e43a70af5 Merge branch 'development' into mueller/followup-pullrequest 2021-03-02 14:50:42 +01:00
559c8d0637 Merge pull request 'Localpool Updates' (#374) from KSat/fsfw:mueller/localpool-updates into development
Reviewed-on: fsfw/fsfw#374
2021-03-02 14:48:24 +01:00
ef5c0d50f3 Merge branch 'development' into mueller/localpool-updates 2021-03-02 14:48:06 +01:00
3f47db9c18 reordered returnvalues 2021-03-02 12:36:13 +01:00
91db9c362e added additional returnvalues 2021-03-02 12:35:19 +01:00
1d3438bb7d updated HasFileSystemIF 2021-03-02 01:04:51 +01:00
cc84d542c8 added static function to create command id 2021-03-01 16:46:45 +01:00
9e9113912b minor formatting stuff 2021-03-01 12:36:18 +01:00
9f09c190bb formatting change 2021-03-01 12:32:54 +01:00
2b6ccbc17f renamed receivers list, functions protected 2021-03-01 12:26:16 +01:00
458d783211 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-02-28 17:34:16 +01:00
5cf2197c06 minor formatting stuff 2021-02-28 17:33:54 +01:00
940bbf47e4 set deser test complete
new bitutility file
2021-02-28 16:34:11 +01:00
714f11f117 more tests and validity buffer bugfix 2021-02-28 16:17:07 +01:00
ffce336801 set tests continued 2021-02-28 15:44:05 +01:00
50ba377380 more set tests and new function to suppress commits 2021-02-28 15:34:04 +01:00
304773f7a7 added some failure test cases 2021-02-28 14:54:03 +01:00
16566a5690 nullptr check added 2021-02-28 14:45:09 +01:00
68415853b5 read commit IF functions protected again 2021-02-28 14:41:43 +01:00
fb5a1b93fc unneeded variable removed 2021-02-28 14:38:01 +01:00
828115a566 test bugfixes and new reset function 2021-02-28 14:35:10 +01:00
d79f0e1172 some more bugfixes for tests 2021-02-28 14:04:31 +01:00
35d8453b48 fixes for unit tests 2021-02-28 13:56:16 +01:00
36039266ee some small formatting stuff 2021-02-28 13:52:07 +01:00
a65211be51 new attorney for ReadCommitIF 2021-02-28 13:48:53 +01:00
fcff06c83f some more details 2021-02-27 14:09:44 +01:00
ea6ee7e79c added instructions on how to retrieve the interface 2021-02-27 14:08:30 +01:00
110159eea1 formatting 2021-02-27 13:57:58 +01:00
788dbe4eca removed plural 2021-02-27 13:56:48 +01:00
f45d19a961 better documentation 2021-02-27 13:06:55 +01:00
c5ee2260d1 renamed abstract function, removed plural 2021-02-27 12:59:37 +01:00
92f249dc62 zero size handling 2021-02-24 00:23:48 +01:00
f3cc664d4f small printout tweak 2021-02-23 22:07:32 +01:00
91f69aa34f Merge branch 'eive/develop' into mueller/master 2021-02-23 14:47:30 +01:00
8b561d073c Merge remote-tracking branch 'upstream/development' into eive/develop 2021-02-23 14:47:15 +01:00
242a146f61 Merge pull request 'Unterminated preprocessor define' (#373) from eive/fsfw:mueller/hotfix into development
Reviewed-on: fsfw/fsfw#373
2021-02-23 14:44:16 +01:00
c55cf8f279 Merge branch 'mueller/hotfix' into mueller/master 2021-02-23 14:41:50 +01:00
8eb25c02aa Merge remote-tracking branch 'upstream/development' into mueller/hotfix 2021-02-23 14:40:30 +01:00
94f9d1ee16 mutex helper update 2021-02-23 14:40:08 +01:00
6cded300ae Merge pull request 'mutex helper printf support and nullptr check' (#372) from eive/fsfw:mueller/mutex-update into development
Reviewed-on: fsfw/fsfw#372
2021-02-23 14:22:24 +01:00
1bec19bdd7 Merge branch 'development' into mueller/mutex-update 2021-02-23 14:19:15 +01:00
2fba1a6cfe Merge pull request 'No printout for missed deadline' (#371) from eive/fsfw:mueller/linux-no-deadline-missed-printout into development
Reviewed-on: fsfw/fsfw#371
2021-02-23 14:18:57 +01:00
c5b2c47af4 Merge branch 'mueller/mutex-update' into mueller/master 2021-02-23 14:14:40 +01:00
ce770a67b2 preprocessor define improved 2021-02-23 14:14:23 +01:00
f0178a8f73 preprocessor optimization 2021-02-23 14:13:55 +01:00
e1b57424f8 Merge branch 'mueller/mutex-update' into mueller/master 2021-02-23 14:12:04 +01:00
06eadb55ab small stuff 2021-02-23 14:11:53 +01:00
8d7d4c639a Merge branch 'mueller/mutex-update' into mueller/master 2021-02-23 14:11:16 +01:00
58e219981f updated mutex helper 2021-02-23 14:09:55 +01:00
671bab012e mutex helper printf support and nullptr check 2021-02-23 11:30:11 +01:00
a3d245f5a0 mutex helper print support and nullptr check 2021-02-23 11:28:12 +01:00
1ccfb74709 Merge branch 'mueller/linux-no-deadline-missed-printout' into eive/develop 2021-02-22 18:45:39 +01:00
1443758274 added new static function to print missed deadline 2021-02-22 18:43:09 +01:00
e013ae954f removed missed deadline printout 2021-02-22 18:00:23 +01:00
c28398257b Merge remote-tracking branch 'upstream/development' into mueller/master 2021-02-13 18:56:11 +01:00
4154c06825 Merge branch 'source/develop' into mueller/master 2021-02-09 15:48:55 +01:00
8a1f043b39 Merge pull request 'Additional Update for Local Data Pools' (#367) from mueller/fsfw-update-2 into development
Reviewed-on: fsfw/fsfw#367
2021-02-09 15:20:25 +01:00
2a1aea7c73 Merge branch 'mueller/master' into mueller/fsfw-update-2 2021-02-09 15:07:40 +01:00
8d748a4bbf Merge remote-tracking branch 'origin/development' into mueller/master 2021-02-09 15:07:14 +01:00
dc88424910 deleted commented code 2021-02-09 15:00:10 +01:00
03b2e1be3e Merge remote-tracking branch 'origin/development' into mueller/fsfw-update-2 2021-02-09 14:58:21 +01:00
10390de63b changelog update 2021-02-09 14:57:14 +01:00
0416aaf3fe Merge pull request 'FSFW Update - Parameter Service (PUS 20)' (#365) from mueller/fsfw-update into development
Reviewed-on: fsfw/fsfw#365
2021-02-09 14:55:54 +01:00
ee67e46a9f Merge remote-tracking branch 'origin/development' into mueller/fsfw-update-2 2021-02-09 14:44:19 +01:00
eb37a0ad2f Merge remote-tracking branch 'origin/development' into mueller/fsfw-update 2021-02-09 14:27:49 +01:00
b9cb0495a9 Merge pull request 'RTEMS and DHB update' (#362) from mueller/rtems-update into development
Reviewed-on: fsfw/fsfw#362
2021-02-09 14:25:49 +01:00
ac5d0cf58f Merge remote-tracking branch 'upstream/development' into mueller/rtems-update 2021-02-09 14:17:31 +01:00
48375a5221 Merge pull request 'RTEMS Updates and Bugfixes' (#363) from mueller/rtems-only into development
Reviewed-on: fsfw/fsfw#363
2021-02-09 14:14:36 +01:00
46e4816faf Merge branch 'development' into mueller/rtems-only 2021-02-09 14:13:38 +01:00
85b92af777 Merge pull request 'ActionHelper: Better diagnostic output' (#370) from KSat/fsfw:mueller/action-diag-output into development
Reviewed-on: fsfw/fsfw#370
2021-02-09 14:13:25 +01:00
5136d90659 Merge remote-tracking branch 'upstream/development' into mueller/rtems-update 2021-02-09 14:13:16 +01:00
cb2c66e256 Merge branch 'development' into mueller/action-diag-output 2021-02-09 14:10:45 +01:00
72ce47358e Merge remote-tracking branch 'upstream/development' into mueller/action-diag-output 2021-02-09 14:10:20 +01:00
36d1a36a74 Merge pull request 'CSB: Better diagnostic printout in case there are issues' (#369) from eive/fsfw:mueller/csb-diag-printout-request into development
Reviewed-on: fsfw/fsfw#369
2021-02-09 14:10:16 +01:00
ae5d880406 Merge branch 'development' into mueller/csb-diag-printout-request 2021-02-09 14:06:59 +01:00
bcd51c0725 Merge pull request 'replaced tabs by spaces for some folders with sed script' (#364) from mueller/first-tabs-to-spaces into development
Reviewed-on: fsfw/fsfw#364
2021-02-09 14:06:46 +01:00
5209a9bb89 Merge branch 'mueller/csb-diag-printout-request' into mueller/master 2021-02-09 12:42:52 +01:00
712ba5124c Merge remote-tracking branch 'upstream/development' into mueller/action-diag-output 2021-02-08 14:29:07 +01:00
16763202c1 taken over action folder 2021-02-08 14:22:34 +01:00
9998de086f added printouts for action helper 2021-02-08 14:20:36 +01:00
d4d3da60a9 format improvements 2021-02-08 13:47:20 +01:00
9b2772c126 better diagnostic printout if case there are issues 2021-02-08 13:42:44 +01:00
939fa16d1a Merge remote-tracking branch 'upstream/mueller/master' into development 2021-02-06 16:14:29 +01:00
d736e9c874 deleted ctors 2021-02-06 14:15:56 +01:00
257e79f8fc Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-02-05 11:17:26 +01:00
3bd7ba961e just form stuff 2021-02-04 15:04:52 +01:00
6be6d593a3 minor tweaks 2021-02-04 13:46:27 +01:00
1829d9cf0a lpid replaced by gpid 2021-02-04 01:31:46 +01:00
255d4a90a9 extended controller base 2021-02-03 22:23:31 +01:00
f7c1aae464 small tweak 2021-02-03 22:18:00 +01:00
cdb012fe5a important bugfix 2021-02-03 22:09:22 +01:00
2bca40c527 printout improvements 2021-02-03 18:04:55 +01:00
1446ce94bf small tweaks 2021-02-03 16:31:03 +01:00
8c5e261a0d Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-02-03 13:39:09 +01:00
5f197be2ff Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-02-03 13:36:45 +01:00
6e5252b69e some more small stuff 2021-02-03 13:35:10 +01:00
093eb05269 small formatting changes 2021-02-03 13:33:50 +01:00
c1cb93baa9 whitespace stuff 2021-02-03 13:32:25 +01:00
c0b490df65 indentation 2021-02-03 13:32:14 +01:00
e27d4fd060 small bugfix 2021-02-03 13:30:04 +01:00
a404bc881e removed hk switcher for now 2021-02-03 13:28:31 +01:00
5ac3762dc5 srv20 improvements and bugfixes 2021-01-31 20:53:25 +01:00
4522668066 some form stuff 2021-01-31 19:13:40 +01:00
8b90360b45 changed order 2021-01-31 18:27:21 +01:00
f067695353 printout, doc, bugfixes.. 2021-01-31 17:40:20 +01:00
503de9ba89 IMPORTant bugfix 2021-01-31 00:27:47 +01:00
cf945d4d34 added srv20 written by J. Gerhards 2021-01-30 20:29:23 +01:00
7f0db5b47c type and name change for HasParametersIF 2021-01-29 22:45:53 +01:00
e65990feff getParameters: uint16_t -> uint8_t for unique identfiier 2021-01-29 22:28:38 +01:00
484f9b6b37 some tweaks 2021-01-29 17:16:34 +01:00
bc722b5583 clock and dhb update 2021-01-29 02:35:08 +01:00
6b4bed8ca9 imrpoved windows includes 2021-01-29 00:12:40 +01:00
7f47a10cbd applied to cmakelists file 2021-01-28 11:58:18 +01:00
9266c874c1 applied on cmakelists as well 2021-01-28 11:57:38 +01:00
ac6e34fc65 replaced tabs by spaces with sed script 2021-01-28 11:50:33 +01:00
6127bb5ea4 tab replacements 2021-01-28 11:47:28 +01:00
98f89302c4 tabs replaced by spaces 2021-01-28 11:44:49 +01:00
76d81b5b49 replaced tab by spaces 2021-01-28 11:38:45 +01:00
17a1ae9d0e rtems bugfixes and updates only 2021-01-28 11:28:28 +01:00
dcb569a7c8 indentation 2021-01-28 00:15:13 +01:00
5b0758638b added missing function is fixed timeslot task 2021-01-28 00:00:26 +01:00
f85ab2b300 emitting warning now 2021-01-27 23:52:09 +01:00
3b7bebeb6f added init after task creation 2021-01-27 23:49:50 +01:00
2fce82db10 bugfix for clock 2021-01-27 22:51:50 +01:00
73dcb78a65 additional nullptr checks 2021-01-27 20:04:16 +01:00
a0e7b45d94 printf support 2021-01-27 18:15:54 +01:00
8b5abd1fd5 corrected cmakelists.txt file 2021-01-27 18:12:48 +01:00
8a0431c578 renaming and cleaning up stuff 2021-01-27 18:12:12 +01:00
942ecc89bd include updates 2021-01-27 18:03:56 +01:00
3036793814 fsfw update 2021-01-27 14:18:51 +01:00
f40cdcf472 DHB adaptiosn and improvements, Srv8 update
service 8 does not finish immediately for data replies now
2021-01-27 13:36:18 +01:00
686ae101ee added enum type specification 2021-01-27 11:51:39 +01:00
4136420685 additional common includes 2021-01-27 11:42:24 +01:00
de45e9b8a9 rtems multi object is now periodicTask 2021-01-27 00:59:34 +01:00
47698418fc some more warning fixes 2021-01-26 23:12:14 +01:00
d1cd180534 fixed warning for RTEMS 2021-01-26 23:09:08 +01:00
a93984869c added start and end marker for framework objects 2021-01-26 21:38:38 +01:00
a0dea39670 Merge branch 'deve' into mueller/master 2021-01-26 14:33:34 +01:00
35d75bae56 Merge pull request 'FSFW Update' (#361) from KSat/fsfw:mueller/fsfw-update into development
Reviewed-on: fsfw/fsfw#361
2021-01-26 14:29:20 +01:00
578664ad06 Merge remote-tracking branch 'upstream/development' into mueller/fsfw-update 2021-01-26 14:27:18 +01:00
86d0d5c4ee Merge pull request 'Arrayprinter, Event Manager update' (#355) from KSat/fsfw:mueller/comp_branch into development
Reviewed-on: fsfw/fsfw#355
2021-01-26 14:24:56 +01:00
7e0cc471c9 Merge branch 'mueller/master' into mueller/fsfw-update 2021-01-25 15:17:50 +01:00
194a9eef64 formatting 2021-01-25 15:11:19 +01:00
18fddf2755 tested subscription interface 2021-01-25 15:06:41 +01:00
31517604c9 indentation 2021-01-25 15:03:39 +01:00
38c7e050ab Merge branch 'development' into mueller/comp_branch 2021-01-25 14:44:06 +01:00
7310d2b5fe Merge pull request 'improved options' (#359) from eive/fsfw:eive/shadow-local-warning into development
Reviewed-on: fsfw/fsfw#359
2021-01-25 14:40:21 +01:00
d39c729a16 Merge branch 'development' into eive/shadow-local-warning 2021-01-25 14:40:06 +01:00
f11e7407d6 Merge pull request 'important bugfix' (#360) from KSat/fsfw:mueller/hk-bugfix into development
Reviewed-on: fsfw/fsfw#360
2021-01-25 14:39:48 +01:00
52c177479f some fixes, indentation with spaces now 2021-01-25 13:44:21 +01:00
0bb19c5ee5 Merge remote-tracking branch 'ksat/mueller/master' into mueller/master 2021-01-25 13:10:58 +01:00
4dbd5a58e3 local pool updates 2021-01-25 13:09:39 +01:00
df9f534d12 doxyfile update 2021-01-25 11:37:19 +01:00
ef93c70665 updated doxyfiles 2021-01-25 11:16:30 +01:00
47402055f9 added doxy folder 2021-01-25 11:07:02 +01:00
0495f390ef small stuff 2021-01-25 00:58:19 +01:00
d1c83159e5 added more unittests 2021-01-25 00:55:27 +01:00
5289c274f3 cmake lists update 2021-01-24 21:40:44 +01:00
094d237814 added more tests 2021-01-24 21:34:38 +01:00
e245f56a4f updated indentation 2021-01-24 21:18:22 +01:00
a85c94ea80 Merge branch 'development' into mueller/hk-bugfix 2021-01-24 17:06:48 +01:00
8850b770ee important bugfix 2021-01-24 17:03:03 +01:00
bdd1bdb080 bugfix 2021-01-24 16:53:58 +01:00
7b82a7c1a7 added stopwatch printf support 2021-01-22 12:21:45 +01:00
cc2e26443d Merge branch 'development' into mueller/master 2021-01-19 16:55:58 +01:00
50733e223a small fix 2021-01-19 16:42:18 +01:00
6a5f5af233 Merge branch 'eive/develop' into eive/shadow-local-warning 2021-01-19 16:39:23 +01:00
e0f8113eac added missing endif 2021-01-19 16:39:12 +01:00
8f83f7becd Merge remote-tracking branch 'upstream/development' into eive/develop 2021-01-19 16:34:45 +01:00
94d1b5acae Merge branch 'eive/shadow-local-warning' of https://egit.irs.uni-stuttgart.de/eive/fsfw into eive/shadow-local-warning 2021-01-19 16:33:20 +01:00
2e9a855181 updating cmakelists 2021-01-19 16:33:01 +01:00
fd5252bb57 Merge branch 'development' into eive/shadow-local-warning 2021-01-19 16:32:36 +01:00
55263fe4d8 Merge branch 'eive/shadow-local-warning' into eive/develop 2021-01-19 16:31:04 +01:00
b23309a5f4 improved options 2021-01-19 16:30:17 +01:00
2f64c16a8a Merge pull request 'Warning on local shadowing can be disabled optionally for GCC' (#357) from eive/fsfw:eive/shadow-local-warning into development
Reviewed-on: fsfw/fsfw#357
2021-01-19 16:28:56 +01:00
0d9bb5b35e Merge branch 'eive/shadow-local-warning' of https://egit.irs.uni-stuttgart.de/eive/fsfw into eive/shadow-local-warning 2021-01-19 16:18:18 +01:00
387bb0c434 Merge remote-tracking branch 'upstream/development' into eive/shadow-local-warning 2021-01-19 16:17:59 +01:00
97e86b19f0 Merge branch 'development' into eive/shadow-local-warning 2021-01-19 16:14:52 +01:00
ffb6208b24 cmake lists update 2021-01-19 16:13:10 +01:00
65f493b230 Merge remote-tracking branch 'upstream/development' into eive/develop 2021-01-19 16:03:50 +01:00
583d354fb5 removed include 2021-01-19 15:48:50 +01:00
d4ca1ddb20 Merge remote-tracking branch 'upstream/development' into mueller/comp_branch 2021-01-19 15:43:11 +01:00
543e0d4649 Merge pull request 'Local Pool Update' (#349) from KSat/fsfw:mueller/local-pool-update into development
Reviewed-on: fsfw/fsfw#349
2021-01-19 15:38:07 +01:00
8a7483fae4 Merge remote-tracking branch 'upstream/development' into mueller/local-pool-update 2021-01-19 15:09:21 +01:00
ca22ff5d8e more renaming 2021-01-19 15:06:21 +01:00
b6888a8185 better naming 2021-01-19 15:04:47 +01:00
aea258cf5a Merge pull request 'important bugfix HasActionIF' (#353) from KSat/fsfw:mueller/action-bugfix into development
Reviewed-on: fsfw/fsfw#353
2021-01-19 14:56:09 +01:00
2469da757e Merge branch 'development' into mueller/action-bugfix 2021-01-19 14:52:58 +01:00
d77e356ce5 Merge pull request 'Added Service 3 to CMake sources' (#352) from mueller/added-hkservie3-cmake into development
Reviewed-on: fsfw/fsfw#352
2021-01-19 14:52:42 +01:00
6f3e90c2f0 Merge branch 'development' into mueller/added-hkservie3-cmake 2021-01-19 14:52:35 +01:00
867fa577b6 Merge pull request 'updated defaultcfg' (#351) from KSat/fsfw:mueller/defaultcfg-update into development
Reviewed-on: fsfw/fsfw#351
2021-01-19 14:52:22 +01:00
ff2c05012e Merge branch 'development' into mueller/defaultcfg-update 2021-01-19 14:52:05 +01:00
6ef11678d0 Merge pull request 'pool entry update' (#350) from KSat/fsfw:mueller/pool-entry-update into development
Reviewed-on: fsfw/fsfw#350
2021-01-19 14:51:55 +01:00
8bb67cd919 Merge branch 'development' into mueller/pool-entry-update 2021-01-19 14:51:46 +01:00
fe09add0fe Merge pull request 'updated cmakelists' (#348) from KSat/fsfw:mueller/cmake-update into development
Reviewed-on: fsfw/fsfw#348
2021-01-19 14:51:12 +01:00
d7220b7350 Merge branch 'development' into mueller/cmake-update 2021-01-19 14:50:25 +01:00
9d179f90ad Merge pull request 'doc update' (#347) from KSat/fsfw:mueller/doc-update into development
Reviewed-on: fsfw/fsfw#347
2021-01-19 14:50:14 +01:00
f4a60a0323 less confusing code 2021-01-19 14:37:52 +01:00
f7b70984c1 updated doc 2021-01-18 20:20:01 +01:00
74def820c6 improved naming convention 2021-01-18 20:03:03 +01:00
6e6e1304bb Merge branch 'mueller/action-bugfix' into mueller/master 2021-01-18 19:50:17 +01:00
87fbb5ce75 imrpoved doc 2021-01-18 19:49:59 +01:00
d4b08459f4 smaller changes and documentation 2021-01-18 19:49:15 +01:00
113b4b5ffa important bugfix 2021-01-18 19:44:25 +01:00
2c21400aed important bugfix 2021-01-18 19:43:44 +01:00
aa7ea35b80 cyan instead of magenta for debug now 2021-01-16 14:24:59 +01:00
0514ab4d05 doc 2021-01-15 18:15:52 +01:00
a9135696a5 array printer tests complete 2021-01-15 18:07:32 +01:00
38dd230887 fixed syntax error 2021-01-15 17:28:31 +01:00
eae3175976 repaired internal unit test 2021-01-15 17:25:27 +01:00
79cf009049 updated internal unit tester 2021-01-15 17:06:05 +01:00
73b9d058e5 updated internal unit test 2021-01-15 16:56:36 +01:00
baba8fa5d7 added array printer test stubs 2021-01-15 16:34:05 +01:00
05508418a7 printf support for array printer 2021-01-15 16:32:25 +01:00
f69d6d49c7 replaced zu with lu 2021-01-15 15:21:13 +01:00
eb5548333e added missing include guards 2021-01-14 20:00:48 +01:00
fd11cae7be printer: helper macros 2021-01-14 19:32:18 +01:00
4cf15e9ec6 Merge remote-tracking branch 'upstream/mueller/master' into development 2021-01-14 12:22:38 +01:00
d6b0af3be7 moved read helper into correct folder 2021-01-14 12:21:40 +01:00
16f2468e60 Merge branch 'mueller/master' into mueller/local-pool-update 2021-01-14 12:18:24 +01:00
f6c88886b8 Merge remote-tracking branch 'upstream/mueller/master' into development 2021-01-14 12:16:51 +01:00
026621bb96 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-01-14 12:15:51 +01:00
1996215bc7 small bugfix 2021-01-14 12:15:43 +01:00
d8423be98c Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-14 12:02:54 +01:00
549afaee1d initialized member 2021-01-14 12:02:20 +01:00
2c4cd756c6 updated to new internal interface 2021-01-14 11:58:50 +01:00
67ce8d2e24 improved internal interface 2021-01-14 11:50:33 +01:00
58c5b02113 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-14 11:31:36 +01:00
a5e20657c6 resolved merge conflicts 2021-01-14 11:31:26 +01:00
5ea6769149 Merge branch 'mueller/added-hkservie3-cmake' into mueller/local-pool-update 2021-01-14 11:30:58 +01:00
6b1c7084ac added srv3 2021-01-14 11:29:38 +01:00
7bb570540b added hk service 2021-01-14 11:27:35 +01:00
f05af8f54a Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-14 11:25:14 +01:00
0cd457725e trying to suppress certain warnings 2021-01-13 21:35:17 +01:00
5710f3824a indentation consistent now 2021-01-13 13:06:57 +01:00
2e456cebb7 include fix 2021-01-13 13:06:30 +01:00
7ac59c6d18 include fix 2021-01-13 13:01:41 +01:00
cd3f19d0e4 updated defaultcfg 2021-01-13 12:56:55 +01:00
fa49def1cf indentation 2021-01-13 12:53:05 +01:00
3a4b89cc28 more changes 2021-01-13 12:43:53 +01:00
a4e0f15dac consistency changes 2021-01-13 12:41:24 +01:00
fdef8bc22b read commit if 2021-01-13 12:18:05 +01:00
8c00d4a4be Merge branch 'mueller/master' into mueller/local-pool-update 2021-01-13 12:14:40 +01:00
c3bca518e7 bugfixes and auto indentation 2021-01-13 12:12:08 +01:00
eb6a851935 pool entry update 2021-01-13 12:02:23 +01:00
e8cadd069e Squashed commit of the following:
commit 27e5254ecdb34ee197353230e88da718c5e9049e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 13 11:45:47 2021 +0100

    include fixes

commit eb5c56664fd3bc41fb6ea006987096150b95dec1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 21:03:09 2021 +0100

    relative include

commit af7e9194e5f2acdd5be08f3959511d93befa1477
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 21:01:55 2021 +0100

    more consistency renamings

commit 634a8f3469154c009698ccea120520b4d6d2c3a1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:59:15 2021 +0100

    renamed to pool manager for consistency

commit 0b08ac10041cd6803cf3058ddd0ef030422157ca
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:56:53 2021 +0100

    updated template config files

commit b637f033899f3b68d5d8e339811059696721504e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:54:52 2021 +0100

    updated defaultconfig

commit 59b4f50c1ca40a7485598aef2bd9b4a8313998e2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:53:30 2021 +0100

    added FSFW verbose level

commit f9a8c3d35a625c5bfde4edb1705f5a477a19444e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:46:54 2021 +0100

    updated .mk support

commit b3e2e93f52fe2ee5743f8f3beb6467067235d556
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:46:34 2021 +0100

    cleaned up a bit

commit 20bf7b6fc4653b74431f00e4b2cc31ecf4189289
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:33:53 2021 +0100

    fixed annoying bug

commit fa636fded5f0bd1e631e276b2a75940f47994d68
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 20:15:15 2021 +0100

    source files for attorney

commit 0643faf0e509f3cc968305afffb6b6bef8064841
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 19:59:43 2021 +0100

    forward declaration correctness

commit 40ae81c4ff264e01911392f650297a32975ecec5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 19:58:29 2021 +0100

    unfortunate api change

    should improve include robustness

commit 71a12792a94ac3008876eade5c9c8515713483e3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 19:41:47 2021 +0100

    hopefully this fixes circular includes

commit 3242264a7714ae50ab52d6fe030de3884377edac
Merge: cafc8e4c 25a86e91
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 15:04:00 2021 +0100

    Merge remote-tracking branch 'upstream/mueller/master' into mueller/master

commit cafc8e4ccbdd8ee5df48b7b7a247898b16d1cc20
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 14:08:51 2021 +0100

    updated attorneys

commit 25a86e91de099405992b9666fecf0605216907c0
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 13:23:24 2021 +0100

    fixed warning of static var

commit 7e394ea15fd199d9adcef11b779e12bb747cdcaa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 13:18:18 2021 +0100

    replaced all fsfw:: by sif:: for printouts

commit 071ce21f09a0afd7abf10e34e003d76a6e24e02a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 13:12:44 2021 +0100

    renamed namepsace for printers

commit bb10c259096d9837c1dfe35b4d6a55c846eca0f6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 00:13:49 2021 +0100

    introduced new accessor IF

commit 0109428d470193820d5cd66bdee83db216ea9f73
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:46:40 2021 +0100

    indentation

commit fa5580cb7fb12cccaff1feac60f2eb21544e2bfa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:45:04 2021 +0100

    indentation

commit 58d813c249842e3c627123d0584607e5f3f338a6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:33:58 2021 +0100

    minor formatting stuff

commit 0be4c35b737d08d4ba6b78d664be8bba915b5e2d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:32:36 2021 +0100

    using 100 line width now

commit 44955db341c4b732437e75bd00e134fa0c5da333
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:27:24 2021 +0100

    tab replacement

commit a8873e608c7f86ca544221b02b583e664584c803
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:25:39 2021 +0100

    cleaning up

commit 065f79615ad97b96bad42e1e588f172179c70281
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:21:21 2021 +0100

    compiling again

commit 5bc46bae02eb34a352df97ebafe9b594d799c604
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 22:18:42 2021 +0100

    reverted some stuff

commit 037bd83af9cd7f05680323e1ae856b73b31eb007
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 21:31:03 2021 +0100

    trying new interface

commit 0bf0d8e743de5978910726d3e73358ebe42b81f8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 20:20:39 2021 +0100

    stuff

commit 54e97f7bdc120b1aaa1c0dfc27894ebaa0c0b73e
Merge: ef9ad60b 217866c0
Author: NguSa1 <sa.nguyen@gmx.de>
Date:   Mon Jan 11 20:18:11 2021 +0100

    Merge branch 'sa/new-if' into mueller/master

commit 217866c042d92bdfe7ea8bccab4338fd22b2bfda
Author: NguSa1 <sa.nguyen@gmx.de>
Date:   Mon Jan 11 19:44:07 2021 +0100

    SubscriptIF implementation started

commit ef9ad60ba8a79be6e32f24aee9f6d2c3cb0c1d0d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 16:38:25 2021 +0100

    doc update

commit 5e251705f682642b683b1b91bae7c7a5cce9bce8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 16:33:02 2021 +0100

    getter function for object iD

commit af7def3368a7e1ed7cec29242bc265c5c17bffd3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 16:26:46 2021 +0100

    some bugfixes

commit 60102465927399d7c66d4bd1e8a379770325212b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 16:21:41 2021 +0100

    rearchitectured a little bit

commit 2d28f71eca6e57e2db9129b64f14a5df9e4fc54f
Merge: f083e83f e497c4ab
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 11 00:49:33 2021 +0100

    Merge remote-tracking branch 'upstream/mueller/master' into mueller/master

commit e497c4ab1505f7438c96283a391f3b71de81fd8e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:34:21 2021 +0100

    added new reamde file stubs

commit c956feafd6fc5932570181cde9e51b525f20980c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:30:31 2021 +0100

    added new readme which will be filled later

commit 1f901a14ffcb8af674dfc7703b79eefb78bb5cf9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:28:13 2021 +0100

    updated osal readme

commit 368b42c7b031cbc9c4689ed41576249b51c396f2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:26:48 2021 +0100

    formatting improvements

commit 6dde0ab8f66dc144b0323437f93e3e8d689eb41f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:25:51 2021 +0100

    readme update

commit 952438f2528aa792638348fb5cce90a36e116837
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:25:19 2021 +0100

    README

commit 7a053b6f72b50a3868019bcbc9af4f80c5f03d55
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:24:19 2021 +0100

    updated README

commit 4bfbeead0024898b1e2139ec6ed4a877e60980c3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 15:04:47 2021 +0100

    additional doc

commit 63ce87acab188be447f820c421661487fda7b5a9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 14:59:03 2021 +0100

    more indentation corrections

commit 15b65b78e730d73a840d9708658a7d0d2817a19e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 14:57:56 2021 +0100

    ndentiation

commit 6993415873b88b68e987ef7796e5f371a21fbef4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 14:54:05 2021 +0100

    more tests

commit 4fa9a1fe1934694999a031fc802119721f05bd93
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 14:33:02 2021 +0100

    added more tests

commit 69e931c07b8a6dbb7c3c0f665b33d8722cce8223
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 14:27:57 2021 +0100

    important logic fix

commit 1af28dd45737440a43cf4f8560e9d28ed3b9cd69
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 13:59:40 2021 +0100

    updated user folder for unittests

commit b570da6467fb11497e14d3d05abd20d386f68e4b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 13:58:33 2021 +0100

    more tests added

commit 918200e88c542a985e9751c1a053dfa37bc4c66e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 12:53:01 2021 +0100

    added first unit tests for hk manager

commit f8abf3527dead67938a7c03f39cf63f46ca73ff5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 11:51:33 2021 +0100

    fixed indentation

commit 13ffcfe801c61a5d4cca3ccb55d2d9300e100ffd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 9 16:20:35 2021 +0100

    prints added

commit 7129ea67bdf4c85d496a22c692a84f0f7a6ede97
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 9 16:06:54 2021 +0100

    linux fixes

commit 36bc7609c5ff94c6ab8c6cba7a30a263bed9530d
Merge: dbe326e7 57829faa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 9 13:52:57 2021 +0100

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master

commit dbe326e78743ca64888cea4506acefdbb1bf566b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 9 13:52:47 2021 +0100

    minor tweak

commit f083e83f63c89ff505262144d45a1e29edaa6635
Merge: ffb7b41f 57829faa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 21:09:29 2021 +0100

    Merge remote-tracking branch 'upstream/mueller/master' into mueller/master

commit 57829faa64f004a48510e057742c4a9fb03a3726
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 21:03:47 2021 +0100

    added cast

commit ffb7b41f0aa48a627dd5594d344841a03107dc14
Merge: b59d6d32 12091ca6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 20:56:23 2021 +0100

    Merge remote-tracking branch 'upstream/mueller/master' into mueller/master

commit 12091ca6ab48df043708b2a63e0b695679f5315d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 20:55:36 2021 +0100

    enum members renamed, global vars static now

commit b59d6d3244fb584c5796dd09a4a0e164a5950be0
Merge: f64e356d 7c47b1ce
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 20:46:49 2021 +0100

    Merge remote-tracking branch 'upstream/mueller/master' into mueller/master

commit 7c47b1ce345182c6a69ff2fcaf6e89d81ef8c867
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 20:44:05 2021 +0100

    100 percent test coverage for pool vector

commit 9f15cd697d154d0d464560ce2c26cedee9c87388
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 16:23:57 2021 +0100

    improved includes

commit a1c394143a1b6ba4c80abcb54302ca1020053f69
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 16:18:08 2021 +0100

    small formatting stuff

commit a9dba82661f6a88eeaa3fd1aab0948bf1919158c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 16:16:17 2021 +0100

    bugfix

commit c0fd981360dbb7d16018e9803a2a9a0f97de32f9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 16:14:11 2021 +0100

    improved DHB error handling

commit 541478e4d5f4ad029dd4fd968e10ccc6cc72068d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 15:15:02 2021 +0100

    another small improvement

commit f2ecd6d740763e55e682c5892b8ad3b0df74e627
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 15:10:33 2021 +0100

    revamed and imroved error handling

commit 5a8647d36701b9eda4d6b6a29f2d83dd9b5eeeab
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 13:40:13 2021 +0100

    better returnvalues etc.

commit 3b39c6b6e26fd523b732b14bf00c4c5933cf0ea3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 02:07:37 2021 +0100

    defaultcfg update

commit 2ef3e0aa7b502b5ac1d40057a4fdc9b324af9fcb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 02:06:27 2021 +0100

    added option to add CR for printf support

commit 4255176b5c499d3be11947f8b77d9bbcc21bb12c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 01:49:00 2021 +0100

    more tests, minor bugfix

commit 41d8cbda5597c61aac6c965cc14f4fe571fe3263
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 00:22:04 2021 +0100

    small form changes

commit 8e3f4c81a5d0db9709052012e71824ca019938b9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 00:20:39 2021 +0100

    pool entry doc correction

commit c1c331e29ef4501d923830cc38a3179d7d7b6332
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 00:10:10 2021 +0100

    fixed vector test

commit d3405ee34063eca17a529dcf521ff860d91e5b50
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 7 20:30:52 2021 +0100

    whitespace

commit d3fbe4a3b96184b1f1620041fd7f433cf902b56e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 7 20:29:38 2021 +0100

    local pool variable error handling improved

commit 44a5430555766db0d6bae8a1dca7221c122c80a9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 7 20:28:03 2021 +0100

    pool vector improvements

commit 3be51762cccb8964ab3d19e379f1d427a99710b7
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 7 20:23:23 2021 +0100

    improved error handling significantly

commit 007526c0502d7db92d37dcdc080bf4c08c5f9030
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 7 19:10:07 2021 +0100

    new f unctions for read error reporting, bugfix

commit 8aaf45049faa4677208d3486ce4e6c2946416ee2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 21:49:40 2021 +0100

    major bugfix in rtems osal

commit fcb33201a4c40ae868d82fcff1060fc6fdf2c342
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 21:45:35 2021 +0100

    fixed linux osal

commit 2b287dfc3ac227af78f68a003948b92656cd4005
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 21:33:54 2021 +0100

    freertos and pool read helper fix

commit dacdfc62d3841a89be5aa4988e35784737027dd1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 21:14:23 2021 +0100

    a lot of bugfixes and important api change

commit 91cf5f176400a12c18e66ef53bf7efe1fab9265f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 19:49:58 2021 +0100

    added way to completely disable printouts

commit db7d28f8526c7a6998f712b5ed4f904f757f011a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 19:32:33 2021 +0100

    test update

commit 8807772d134c04dc495627ebeef7d4f45cb31057
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 19:16:41 2021 +0100

    100 % line coverage reached

commit dc8dd770e7e9500da1ce5813a954ea5c8111ca8f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 19:07:35 2021 +0100

    added more tests

commit 16458f6a1e42fa75c4ca0155f22117bd0acf2b0b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 18:20:38 2021 +0100

    continued tests

commit bd93392b59b3904ef450a61d0005196d896af948
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 16:26:08 2021 +0100

    local pool variabel tweaks and fixes

commit b241ef6aad5861dc570548fd17bdf856e3332984
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 5 22:51:49 2021 +0100

    continued tests

commit a05cf8d4ab54066f6cc9f6450f80f98577fad1af
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 5 22:46:17 2021 +0100

    updated tests

commit 85764ba94c3f4edf1cbabc260cb94dd916b2d72f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 5 17:30:15 2021 +0100

    added include

commit fbb063cedad666c48947f014b70e6a9ffb393a63
Merge: 8e3aef5d 3c041388
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 5 16:44:52 2021 +0100

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master

commit 3c041388d6705bccda5790ceeb5545ed9e48613d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 4 15:31:06 2021 +0100

    bugfix

commit cca5689a18425627559308e87dfde34f22cc28d0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 4 15:17:11 2021 +0100

    clock improvements for rtems

commit 8e3aef5df05669d686d1ec0a6a899e3c6a369d7a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 4 00:21:44 2021 +0100

    adding new tests for local pool variable

commit 49c6cd947300bef7db1622a547af7ce5fdf7980b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 3 23:27:49 2021 +0100

    added local pool owner base

commit e9a8313df7e5f4ae8f5afb732ef461bd348fcbb5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 3 23:18:10 2021 +0100

    repaired unit tests

commit e9da8e79f32fc2dfc34b779aa069c0c1faae339a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 3 22:00:40 2021 +0100

    updated testcfg

commit f64e356de398cf20d467110f9d1078efcaefbec5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 3 16:42:29 2021 +0100

    small include fix

commit fd44fb4781a291c284f82cb879d1b35aac1ad4cb
Merge: 3486a047 c94a396f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 3 16:00:09 2021 +0100

    Merge remote-tracking branch 'upstream/mueller/master' into mueller/master

commit 3486a04741a1705d67f450c312e099935973552d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Dec 25 00:37:24 2020 +0100

    renaming for name shadowing

commit ccbbef777808757c8f74d1070b663adfbbd0b21b
Merge: 208ad7d4 52d9a55d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 17:54:10 2020 +0100

    Merge branch 'development' into mueller/master

commit 208ad7d479d983f77629ee6b86ca19c24d2ed95b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:24:52 2020 +0100

    fixed timeslot task doc

commit e55df691ff1d121e5b72dbefd0493aee737ef55e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:24:15 2020 +0100

    upstream subsystem taken over

commit 27d03dc17f6bb14a03f85f5c69f21eed485b52ed
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:21:17 2020 +0100

    upstream cmakelists f iles taken over

commit f905a753e2b7517bdeff19fc9bbaf9435df9f807
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:20:24 2020 +0100

    upstream unittest folder adapted

commit 41dc9ce6c6942ef92722d9a6c82dde8efa954a88
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:19:30 2020 +0100

    cmake lists form upstream taken over

commit 707bb9dd5d3fe500d511c30f95f7bed596dd9e66
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:18:50 2020 +0100

    serviceinterface taken over

commit 2e1ad41da76ea50847a9fa9756e1751d503ae85c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:18:12 2020 +0100

    power and pus upstream taken over

commit f6e7e232f58ce9119265ac9be8c6cf596b3af76d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:17:15 2020 +0100

    parameter upstream taken over

commit c174c9ecb82fd18a796cdaf41706b44982e3ba79
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:15:18 2020 +0100

    osal taken over

commit e052a9694ffa14cda100ce39a3c106b23dbc79f3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:10:13 2020 +0100

    upstream stuff

commit c603bcc91c528f1d2c76c2af8132e26873c9f7c1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:08:24 2020 +0100

    some upstream stuff taken over

commit f21f43754bd02535d4f3e31fd70779617e701178
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:06:46 2020 +0100

    taken over upstream defaultcfg

commit 7b98b0d5dd01806048753f6f6992402d84632654
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:04:39 2020 +0100

    txt is md now

commit df7a2322bfa34504049238a0c299cc1aa2eccac4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:03:56 2020 +0100

    timemanager update

commit 8f88032110f8be06e7eb653fa39e95335f7a7104
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:00:30 2020 +0100

    taken over upstream .mk file

commit a73cd37e52119057da75030643b41389c16c4ce2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 15:59:46 2020 +0100

    taken over changelog

commit 75a0df4cd97fd14bd5bb99475dcbaf14fbc4dda8
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 15:59:28 2020 +0100

    tm storage update

commit 7ba660a222a3c0cdb1276942557ba27891783138
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 14:18:48 2020 +0100

    removed comment

commit 947dfd69e97f894287d758eb929cdf9caa1b1f23
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 14:16:33 2020 +0100

    service types.h delted

commit 362578e982e5754911ae93e3edc90420f207d813
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 14:12:35 2020 +0100

    transition delay abstract

commit 88967529277732fca91a74696a06d63dd43cd3fa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:22:10 2020 +0100

    updated readme

commit 632f319a2f181207ad3309c109ff790e919e4abd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:19:00 2020 +0100

    updated readme

commit 95a8dd418c487c3b0ab2a76d1e85ff3221a23a22
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:29:58 2020 +0100

    added cmake lists

commit ee05a34c9ead0bd79b0209afcf8ba9f070db758a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:27:47 2020 +0100

    added gitmodules

commit 5e8aff0603c6507b6f417ecb882446b25b9b54f7
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:25:00 2020 +0100

    unittest update

commit e41aba719c93fe25cf97d8cccee5cb2a01a3530f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:20:17 2020 +0100

    updated testcfg

commit b97b67d56e362ef1a329cb0f118653b9f5cc5ea0
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:19:07 2020 +0100

    updating unittest folder

commit 770336fff3de55194b4b0e6fc3f9f582f2ed3ef9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 13:06:35 2020 +0100

    added ipc cmakelists

commit 81201d6fb73393ce83b725b6a86c09bdc3586c2a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 00:39:51 2020 +0100

    typo

commit 38983407fd8973c48f4c23c02f3e8d7c34eb20da
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 00:22:35 2020 +0100

    added default implementation for setNormalDatapool

    entries invalid

commit 6abc56009405b64e7536f919f025f4f443df8b6a
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 00:55:47 2020 +0100

    feed back include improvements

commit 8dd9d6ad9195b7adbf54cb69a78bbee15fd3ed78
Merge: c2619bf0 17a12b78
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 23:39:34 2020 +0100

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit c2619bf07052faa2d36ec9e09468b2843aa1dac4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 23:39:24 2020 +0100

    transition delay not 0 anymore

commit 17a12b78073c98eb0abdce9f7c46df9c18e46fac
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 14:05:44 2020 +0100

    clock update

commit a6e38afb98317abb7d0c592fe7be9edee1cbb356
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 14:04:04 2020 +0100

    buffer more explicit eof()

commit 30c9209c7488ac4bc69c1ee0bcd6424009d39c07
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 14:03:19 2020 +0100

    better win udp polling task error handling

commit e511dc61b48b12d944302a781326ad79811dfd8b
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 14:02:41 2020 +0100

    upstream osal endiness adapted

commit de61d0c3ac331e179d0839284f1b537acf56f825
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 14:02:13 2020 +0100

    upstream timeval op

commit ca2571464680d6fbef9e011c61fbcabe9b178e84
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 14:01:48 2020 +0100

    upstream coordinates taken over

commit 60d69c95c497945fbb7650dca21655fbfd9649f5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 17 17:10:27 2020 +0100

    address in use handling for socket

commit f8b34bcb5305b946380d2e401c8c57976ad07aae
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 16 13:53:36 2020 +0100

    some readme improvements

commit 8706d663d5121b56277a1f17ca40384087e20189
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 22:57:14 2020 +0100

    upstream changes taken over

commit f99bf6d75c51d84d49f8bbc3ca6d2c736cac06fd
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 22:51:30 2020 +0100

    taken over cmake list for storagemanager

commit 1f7938f610ca08e35add7264036104d2ecc0280f
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 22:46:55 2020 +0100

    deleted archive folder

commit 910e6817ef94b6692cde80be3bb3c759a22ff93c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 15:48:06 2020 +0100

    default cfg update

commit 48aef068379cfd9cbb43f2a23481c7853b219b0a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 15:24:46 2020 +0100

    fsfwconfig update

commit ca52255d300047093bf1939dfafec621b47eec7b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 15:20:32 2020 +0100

    update

commit 3e41b202a105603c7f4eb2a9bf3dc7fbb96b72ac
Merge: 052e2ed1 0c3e87f1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 14:41:07 2020 +0100

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit 052e2ed1e82128356c3cf8260d4d874d47ea53b6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 15 14:40:49 2020 +0100

    type update, assert that type is not boolean

commit 0c3e87f1deee38f1ee30acf8090c86377ebcb840
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 23:55:54 2020 +0100

    using new xTaskDelayUntil

commit b8f4d8690bec206be73a4e819ae71685177ae3e9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 23:38:06 2020 +0100

    determination of freeRTOS features from version

commit 9170f466e8ccaf74da9bd97d260fd846fcb6551a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 23:21:07 2020 +0100

    freeRTOS version checks

commit 95b2191824f8ca051021801cf84aa9b440a45d37
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 22:55:12 2020 +0100

    long name

commit 3ee25785a2cefa7eca6d33bba49e046df75a18e1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:54:03 2020 +0100

    linux changes adapted

commit f2ba653833924f073a44974fd6e902ce6f5d1815
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:47:42 2020 +0100

    ipc changes taken over

commit db42e79fd4eb299c960a3da50ef629098f9bb409
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:38:45 2020 +0100

    taken over cmakelists file

commit 1c79da0e75309662bdfe5b94c4a71c93c1825492
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:34:29 2020 +0100

    tc distrib changed  taken over

commit 796f0e2e17152a40d6f58c9c592b9c74fc573148
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:33:19 2020 +0100

    important changes adapted

commit 8c88255873283ea51cbe02f6bf9c3c36900e567c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:31:50 2020 +0100

    taken over some tweaks

commit d2f631a955bfd439ac04fcf3d75327e5171a3ca0
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:20:21 2020 +0100

    cast added

commit f604d621e8958ebe906f0cc0bf3c77fad775cd41
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:19:12 2020 +0100

    removed interrupt class

commit 6911f91744ff1b1022adca763bf8b42c208cff97
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:15:41 2020 +0100

    rtems fixes taken over

commit c1a156dde3956be55c96469c98e204d27bb3a0c9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:08:35 2020 +0100

    catch factory in objects folder again

commit 050770c184a8a965a856df53aea37ad75f0962ff
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 21:07:58 2020 +0100

    catch factory fixes

commit 14a0573f3d99025347a40bea9df2633b188d80ea
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 20:58:20 2020 +0100

    one define now

commit b14c1c43ccbd97fe774a2a2b9f812487b14afcd3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 20:50:56 2020 +0100

    small fix

commit 2100ae34f2c69d9a982e1d52d2f8068558daff9b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 20:49:17 2020 +0100

    event folder taken over

commit a0e7584e841f3d9a2469ef091fae79fc55560c7c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 20:19:23 2020 +0100

    tiny tweak

commit a547fafa33576ce33423536f28d1fa1333a6423a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:49:01 2020 +0100

    minor tweaks

commit 3dd86039bb01448c57425f1b9d6f9c4135de3622
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:43:32 2020 +0100

    changes taken over

commit d3239b90644126af99b12dd029d2c19690d2e775
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:41:40 2020 +0100

    tiny format stuff

commit 89de4cc321e32ce94d458d72d76c14999cfd6437
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:40:26 2020 +0100

    changes and tweaks taken over

commit 5c6916a07848a8aed3c7ec2fbc8fded1f37f2a08
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:23:23 2020 +0100

    small tweaks

commit 620c9c6ae15008631d506aa57181a11ff5130e52
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:19:05 2020 +0100

    taken over freeRTOS changes

commit 073cd4f5e1ebbf1bcc09a3c71ae8da16b6e4ddad
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:09:53 2020 +0100

    small tweaks

commit 7ace117c42832ad65d657b2d203f5371fb3ad2a7
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 11:06:09 2020 +0100

    added cmakelistst

commit 0ccd266f51f8238f3489b192ec36496c90fc24fe
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 10:49:00 2020 +0100

    internal unittests fixed

commit f161a94113c6c95ce7014a2cf9597817d8f4c0b1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 10:44:48 2020 +0100

    taken over upstream fixes

commit 692aa087d8d4dfb3c02cb7bf61b93ea47e1ba8df
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 22:13:22 2020 +0100

    taken over cleaned up branch

commit 3f77fab2d9ada5b029cf823674adaa5e5ea7d403
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 22:01:38 2020 +0100

    taken over cmake lists

commit 7c390c07eed79ee02fa23266ece8d0218672923e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:58:54 2020 +0100

    taken over unnittest folder from upstream

commit 0b056720bae878adf65bcb1fa6cf01f98ccdd6a4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:57:06 2020 +0100

    taken over master

commit d944e25d4a3b037f82981fad278de5fb9e367086
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:54:46 2020 +0100

    taken over upstream changes

commit f69113b4d516b12a2a9fc7624f17ab311e6f91fb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:53:37 2020 +0100

    taken over upstream change in ipc

commit 0e42ba062dd9b217e1f89eb62f30295d4e31beb4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:51:46 2020 +0100

    notice taken over

commit 62e16b13d343ad134fb308f56b185243515fa215
Merge: b7dbdb07 b2d01a31
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:51:09 2020 +0100

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit b7dbdb072d46d72e8b8730c9edad97c710f4d3ad
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:50:33 2020 +0100

    taken over upstream changes

commit b2d01a31c224cf609ed2cc83e5e482604881a64d
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Thu Dec 10 16:58:18 2020 +0100

    removed some commented stuff

commit 5bad1142059af8a946fe57c0cad31284fd8496ea
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Thu Dec 10 16:39:31 2020 +0100

    thermal module set heating repaired

commit 9a540e97c557e58a8b7b933c6f41fde21e8fa315
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Thu Dec 10 16:36:44 2020 +0100

    taken over thermal module from thermal-update

commit df333e0cc828afaacc7b591527ea724b342025b5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 8 16:01:23 2020 +0100

    tab replacement

commit e9a740f110c61cff3c836afecfdb1f635ba533f5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 8 16:00:02 2020 +0100

    small tweak

commit beab942f07458c709cb39d8b4976fd1462438fd6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 8 15:57:30 2020 +0100

    fixes taken over from master

commit 322dd1253e222ecfc81f40c671864d75d2e0334a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 8 15:15:22 2020 +0100

    map packet extract update

commit d9cccdedf30b8ad95b87799dba5b426b66494f56
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 8 14:34:56 2020 +0100

    event update

commit 89e80beb62f8f52625a92b397cb2d4b16429c12b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Dec 5 17:10:36 2020 +0100

    task if set now

commit 248ceebf81e824f337edbb15fa774fb3596289b5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Dec 5 17:09:49 2020 +0100

    taken over host osal from upstream branch

commit c5c776e676a6b7c39e9bc8d4535ab9cba836d977
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 3 18:57:50 2020 +0100

    rtems changes taken over from upstream

commit b7a29235f876fa60d783654ebfb449799451948d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 3 13:28:56 2020 +0100

    deleted memory proxy file

commit 6d915b7dcf76c76672b07483936b9c9fcbbbb047
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 2 23:26:40 2020 +0100

    doc formatting

commit 21c3db4ffc7c95b31f323bbdd825a869389dafde
Merge: 586e8b03 4d76bf24
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 2 23:22:40 2020 +0100

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit 586e8b034780fcd107cdd8ae06cd0fbffe5947b3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 2 23:22:28 2020 +0100

    function more robust now

commit f4ed0ce502b696cc6acf9eac3d20f0d9db6975d3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 2 23:18:48 2020 +0100

    doc format improvements

commit 5e77058add5f51504b4bfab4afe18debf8d8a9df
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 2 23:15:30 2020 +0100

    added getter function for pending command

commit 4d76bf24b581aaeba5c2e276f4d09c90c806215e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 19:16:19 2020 +0100

    fsfw compiles without datapoolglob folder

commit e3de5ce7774b8571865ff6755056527912f0e7c2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 19:12:40 2020 +0100

    device handler changes complete

commit 74b2830d9b2c612bff9467f063617028cbf309a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 18:55:53 2020 +0100

    using new device handler thermal set

commit fff928a191eced806e6f8aa9fa2e58d2c26b3565
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 18:29:00 2020 +0100

    bugfixes and improvements

commit 3fb3039be530acdc21f41ca09dc7fc9d276827dc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 18:16:26 2020 +0100

    minus 1 replacement

commit 0116bb86635d9480f74b87e83a267d66e6f904e0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 18:15:09 2020 +0100

    replacing global pool with local pool DHB

commit 84ab5f83189481909f23dc7016082f51010fdfa0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 17:19:26 2020 +0100

    readme and logo update

commit 314dc577b547f734ef32b0552d109a9b5f88e7b4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 17:19:00 2020 +0100

    added changelog from upstream

commit e0f063f232f92931f17d874de122d9c30c795d73
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 17:14:44 2020 +0100

    comment added

commit e323c69f20da5b2321fbecd5ef2ab84dc1b2060d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 13:36:30 2020 +0100

    better name for preproc define

commit f357de21c9b37a5ca384590be0d511c0c503aa16
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 13:23:51 2020 +0100

    updated testcfg

commit ef2e07b3891a3c2a2429d973d5db68208db7e526
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 17:03:14 2020 +0100

    added explicit type conversion operator

commit d1beb96c6030c82bf20d65eea0196cb4d904c8a2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 16:30:20 2020 +0100

    some more replacements

commit f108ae883c1a19eaa74f1c67cd4278815c98538a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 16:28:16 2020 +0100

    local pool replacement

commit f581b37fcf51415fe9f24ff22bb61aaf367739f8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 16:25:09 2020 +0100

    thermal module replacements

commit 4bb9dd816ec910870cd8183951efbdae9cb74d0d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 16:06:59 2020 +0100

    compiling again

commit f70ee7696a82f96268d5cc06b6182a6c30780515
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 15:30:56 2020 +0100

    it compiles again

commit e7a96d5ad8dd7169818e624943bcf15b651c0af1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 14:13:52 2020 +0100

    it doesnt work? comment it !

commit 25f08b8c1f8143bbcabfab7f40541351eb2adc50
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 13:59:54 2020 +0100

    started replacing local pool vars

commit b7945dfe606e2b2edd1a618aa089f893876ed75c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 13:45:08 2020 +0100

    added gp_id_t

commit fa4597782ec20090f45d390c9cee6542561de7f6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 13:09:56 2020 +0100

    some improvements taken over from master

commit f0ca4be71eec5e3883d270e98b5b53ceab4fe1e2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 30 13:09:03 2020 +0100

    fsfw version include removed

commit 952978f999936c515de731e796f95076373c5528
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Nov 29 13:04:38 2020 +0100

    moved perform hk op call

commit 279df93cdf84eb99b3d1609b97c422be6e07d512
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Nov 29 13:01:37 2020 +0100

    form and doc comments

commit b7fb1b42e660795325c66f7fcf5e1a9d2388bb12
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Nov 29 12:43:19 2020 +0100

    added new cfg option

commit 03fad1cfcd91fad4456188ff18b2bee0d1e0de03
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Nov 19 00:10:59 2020 +0100

    better naming.. hopefully..

commit 0d79d4ab030c3b40cf53203a74ff7d7425b24ade
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Nov 18 21:15:48 2020 +0100

    replaced spaces with tab

commit cb5fa4a2175bc684e21fb885c94a420b97e680a8
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Nov 18 21:15:14 2020 +0100

    monitoring changes

commit 434709ca9693a68a27b1595d9a86c9472f52a610
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 10 11:16:56 2020 +0100

    parameter small stuff

commit 72f7a1b1b786d97624632d8291a7fb2eaeb26882
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 9 21:24:23 2020 +0100

    translation files removed

commit 225e65628db70873cc6267cef55e915f65088ad8
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 9 00:12:39 2020 +0100

    include corrections

commit 319ae724785807329a8bf9304e3228604a64fbe9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Nov 8 15:29:06 2020 +0100

    folder config renamed to fsfwconfig

commit aa45d34b4a682c1240f5c4ad8d86bff99f858bae
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Nov 8 15:20:51 2020 +0100

    include improvements /factory improvement

commit 1b2af5285d6269b482f8717902fc811d5781f99e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Nov 5 13:12:42 2020 +0100

    message queue depth configurable

commit 8d109b7cd0a4955a1289a54cd7d6e9e148ae6650
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Nov 5 11:57:05 2020 +0100

    preproc define correction

commit 5efbc7496a57ff5549ca381dad521b277c0798ed
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 23:39:56 2020 +0100

    doc improved, some functions virtual now

commit cf7385d64ec3f541d69b7fe23ad38ec8b6b0e9bf
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 23:32:34 2020 +0100

    include fixes

commit e99cf32bddf33f7c44c14a355ae2c167f2a8a78e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 23:29:03 2020 +0100

    amazing size checks

commit f72ee0b7acb70dc0e91f7a50884a491ece57a334
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 23:26:28 2020 +0100

    small bugfix

commit 65aecc356590778da5f66939d8bfe0c10226f8bb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 23:23:05 2020 +0100

    IT IS DONE

commit e9aecdac26b83e8548ca03b04ff4d1660e33de78
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 22:58:09 2020 +0100

    sth with eclipse indentiation

commit d87f78f5c3576d4d3f27f206690047c1783da1b5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 22:25:14 2020 +0100

    timer stamper in fsfw now

commit c69681b402ea3523cc16cb45799715045d14b13a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 22:22:26 2020 +0100

    time stamper

commit 5908f99f0b352ef41db992708888c6c2e64bcde8
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 17:09:33 2020 +0100

    size t changes

commit 30947d3901ef412f860b4758e66e9c77cd79afdb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 17:08:40 2020 +0100

    size_t changes

commit d424d85f6d0699a7f9da63f28e973a2855873243
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 17:07:48 2020 +0100

    sizet changes and indentation

commit 695b161934052c7d18f1db7dbb04c71e66e6f3de
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 16:54:56 2020 +0100

    some bugfixes

commit 9e97357b8caa13883e59ed16d5fd60362697a55b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 16:46:43 2020 +0100

    taken over changes from master

commit f69f9bb31e505537a1093ed2c5af26d672e03b19
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 16:31:25 2020 +0100

    comments removed

commit 81f5783d371bdf3b3521d8c37a59592bf7d45b79
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 16:06:30 2020 +0100

    clock update, definitions file

commit dcf36d4ceebc8c70f4d17f14fd1cdf78fa4969ea
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 15:54:27 2020 +0100

    cstdint include added

commit 83f0b4bffc25dd4f8619220401a0f5ed2f1c1e15
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 15:51:56 2020 +0100

    defaultcfg changes taken over

commit 633203eb5406adbf3d4f48e1cbcc6397352fe19d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 15:50:55 2020 +0100

    upstream time stamper taken over

commit 38b5695a1008af28ecd783b437770b08775bd2ab
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 15:45:04 2020 +0100

    size check + include guard

commit b71ccf8dd8274b6dc00dcec74e412bad25c812cd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 3 15:28:55 2020 +0100

    some refactoring

commit cd71a9cc12fc799905f781a0e2453e28590bffe7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 2 15:53:08 2020 +0100

    fsfw container taken over

commit 41bf5622f313c205a931d5bc439b4302ccdc0af9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 2 15:50:14 2020 +0100

    master taken over

commit aed7f31f24cfd2a0b83117de8925a250c16e2917
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 2 15:47:09 2020 +0100

    health changes taken over

commit e0a11f3a6edb5a3493e9bc5214a655caf2eea208
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 17:46:44 2020 +0100

    include guard update

commit 6edc2ef1d67f074b57d252ca67650646ae50b202
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 17:42:05 2020 +0100

    class IDs moved

commit 641da2aa2184edeab2b3f282615c8ac27b6eae4b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 17:33:22 2020 +0100

    config make update

commit 777457482b8ea3bb5c78e9b86c5c4e06ed1d08ee
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 17:21:51 2020 +0100

    fixes for internal unittest

commit 3fc206801153370773adbabd7b9260b8b13d1c23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 17:09:16 2020 +0100

    fsfwconfig update

commit 0919d2c53231934748bcb581915993ed670f2e87
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 16:52:06 2020 +0100

    updates taken over

commit 3d2778fdf79eeb315ace8944fd8b555b35d550d3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 16:45:47 2020 +0100

    doc update

commit 42e611899befd5992d639ab3a46b08f7c5785069
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 16:43:03 2020 +0100

    added timestamp size

commit fb12045f23151e60c30359ee00c09bcef2b0b700
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 15:25:03 2020 +0100

    changes from master taken over

commit 4b2af9eaa6ce2c418cfb280d633772d870f0dc86
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 15:15:08 2020 +0100

    static keyword removed

commit 172fbd7e4840bcc2001fcf425684a552f2488ad1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 15:13:03 2020 +0100

    some changes taken over

commit 7970043cb5a138afe4259b9442034c501b327380
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 15:12:36 2020 +0100

    deleted some sutff

commit 176ca56e355405d4e9d81e503187e2f87d87f84f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 15:12:05 2020 +0100

    core changes taken over

commit 565fd63d0855e10fc29e46a7ab0f31a45e253ba8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 12:07:48 2020 +0100

    makefile moved

commit 29187fbc4badd33e7533c53b2aaa8032b73353e0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 11:59:50 2020 +0100

    some config adaptions

commit a38c3e5005eb96ea7dd3be1e50896f9e1fd5329f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 29 11:47:03 2020 +0100

    config folder renamed

commit a9b48749048c128e128ee77c4fc59e0deb68d871
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 22:49:19 2020 +0100

    new defines added

commit b860d8bce788c3f530282721d63fea3995e7a376
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 22:34:41 2020 +0100

    include fixes

commit 6325eb764717af8470715cb34934c2e7e0953f0d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 22:11:13 2020 +0100

    include fixes

commit 24cb83498ae4c8a50db33ce6f235913fbe2695bc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 21:28:59 2020 +0100

    include fix

commit 82ccd146927f80e154e430ab5ce13b966a596263
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 21:25:11 2020 +0100

    added new tests

commit ea04e7d4d644c7c50faf862902fceafb8490d994
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 21:13:00 2020 +0100

    removed catch2

commit 3244487eaec76a8cf014d35df062daacc24edf41
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 20:18:58 2020 +0100

    slight improvements

commit dcb24360d85b94a8124e697c3b5640c8dc220dd1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 20:17:50 2020 +0100

    form improvements taken over

commit d1a399a1a8c55a83a932cd326fea87141ddf9d44
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 19:46:27 2020 +0100

    tm packet store update

commit 90bdb844e703951ef783f0a025799efefcf6fc98
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 28 19:27:00 2020 +0100

    taken over some changes

commit e7210a34f95cfa2ef4a980c18e37629f54aa0bd6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 22 14:34:52 2020 +0200

    output tweaked

commit 742cc6eb7660adbff54e498b29afe73bfca4bbdd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 21 18:19:51 2020 +0200

    no command added

commit b9f3c1ee84e331e0c5d52f88c313643d43dbf3c4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 20 17:53:47 2020 +0200

    takne over defaultcfg

commit 057f3b859e9857d7139be783c9fb89987fc8fa15
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 20 17:39:48 2020 +0200

    added readme and efaultcfg

commit 9309562716da79a49e9d04a4f9081eb730216581
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 20 17:24:53 2020 +0200

    defaultcfg folder added

commit bb53c71f70132beae2dcf7f39201df769be697d8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 20 17:21:20 2020 +0200

    fsfs config update

commit 7033328962e8997e1757b5ca0999a89a9d04c7fc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 20 17:12:56 2020 +0200

    unittest folder added

commit 95924dd55bf9d6f1f8231fd16b8b3a54871caf32
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 19 15:38:22 2020 +0200

    some more bugfixes

commit 22e4e464c79fe2924c3a2a88948b0b17c31dab9a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 19 00:43:10 2020 +0200

    doc improved, new returnvalue

commit 75e67ce5f8e1383796de2c0c9f7754456d011625
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 19 00:37:26 2020 +0200

    small form improvements

commit ad9ac7537e150150679a4104b915836f8cc0f248
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 19 00:25:03 2020 +0200

    bool is mapped to uint8 now for pod type conversion

commit 8b8324f21c1b0d30ba1c5ef7919846bfeb283e62
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 23:50:02 2020 +0200

    some stuff renamed

commit 1bddfeb86bf42a9dfd5fdf9ecdddc7522058469a
Merge: 88a89d67 6baa8596
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 22:41:37 2020 +0200

    Merge branch 'mueller/LocalPoolTests' into mueller/master

commit 88a89d6797a22c108d2841a1f7c835edf55afcec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 17:32:10 2020 +0200

    added basic documentation

commit 8e498060571c89c06574f1a9aec381fb3290f886
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 17:23:47 2020 +0200

    some adaptions

commit 3b0b474ab6e5586cd81c4950d9af1b61f7c07518
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 17:01:49 2020 +0200

    better naming

commit 02b7c51318f096447703d6845365aa568d280e03
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 16:54:55 2020 +0200

    HasParametersIF less confusing

commit 9a70f75a4bf043292f213b4791364a8183267fef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Oct 16 01:45:07 2020 +0200

    returnvalues added

commit 6f955ed8bad01074039de13e54b7534b248706c0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Oct 16 00:42:49 2020 +0200

    another bugfix

commit 91cf33127a1a869a7a0b959f609dea09ec735e57
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Oct 16 00:41:50 2020 +0200

    bugfix

commit 6baa859628857c5ac0acbb115095eeac667c652f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 13:42:35 2020 +0200

    fsfw config removed for now

commit ba02becfc9fa228ab156efeb1c39e7a15cae73ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 13:38:41 2020 +0200

    deleted old files

commit b6ae82ec2ceb33936f25a2f4c5b5a9ec483fe810
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 13:21:46 2020 +0200

    bugfixes

commit 6e5f029a641ba7c77f85ea9e1d1f1a58d1a58b9a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 12:47:21 2020 +0200

    type usage improved, getFillCoutn implemented

commit 48ff5dea0831610897c9aec52bea2734c68f0720
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 01:57:30 2020 +0200

    line break added

commit 56dc06e0ed1a0c0956793409aec24e5821385c42
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 01:51:12 2020 +0200

    some little formatting stuff

commit e5000abbb786f01a8664012fe52059ade71c0e61
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 01:31:11 2020 +0200

    custom cmp operator

commit 364bce90ddc44aa7e71852c458c6eff5c7aefc93
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 01:07:20 2020 +0200

    small fixes

commit 1ee01ffcdb3a8e65a6f6e227aada9a109ec8680b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 00:54:00 2020 +0200

    important bugfixes

commit 64bed475fe8976c7d84a82540b2b7e0dfa915561
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 00:43:23 2020 +0200

    important bugfix

commit d1498366122e861703ee808fdf10eae4560d802b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 15 00:34:20 2020 +0200

    better  form

commit bdfea9ea38331a5c36f72100834d0fb524100b4b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 23:53:50 2020 +0200

    includes reordered

commit b3e5946291a7c6a5365c79b68e3ea52aa3aca497
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 23:42:49 2020 +0200

    implementation added

commit 57c9775d7d9863072aa9d06e782c10184185bce3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 23:41:16 2020 +0200

    add fill count func added

commit 7bd536e76395a38a3a0cdecba436b7efccdc596e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 23:20:53 2020 +0200

    new templateless pool prototype

commit ab603abada422d906a6cedb9d204ca2fe5e200ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 20:05:39 2020 +0200

    subscription mechanism almost complete

commit a9a31308ae40618e49db5c6e98f131bfdebddcb7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 19:52:06 2020 +0200

    update notifications working

commit 5b96161331519c43d9ea8903d0ad7d7029d8f410
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 16:46:00 2020 +0200

    optimization and printout improvements

commit 088bc35301dc87ebb7b4d30e789deda7264b973e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 12:42:30 2020 +0200

    update handler continued

commit 45c0acec5f4744862a411c3b1852d6a7785f6b3c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 01:38:27 2020 +0200

    its all falling into places

commit 9ca086e0269c5a09bea5dc992c9050fcd24e0dad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 01:25:15 2020 +0200

    base class extraction complete

commit 72ca2bfa43e56a98a7462f9a372fe290c7e67e5e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 14 00:50:24 2020 +0200

    added new messages

commit 9917f7126d53f6e6387c1c46a779560b34735699
Merge: 3af79e57 d22c6a5f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 18:19:28 2020 +0200

    Merge branch 'mueller/DHB_separating_steps' into mueller/master

commit 3af79e572ef34c8508b9d6f6315893952cfacda5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 18:19:11 2020 +0200

    default msg size for health device

commit afe5a627895f40bb05d314aaa98eb9ee898424ca
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 18:12:26 2020 +0200

    imrpoved form, removed comm msg for now

commit d22c6a5fe929d9c0c7dcfb584bcb7cf1879b3ec2
Merge: dbb394f7 736ce2d5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 17:44:58 2020 +0200

    Merge branch 'mueller/master' into mueller/DHB_separating_steps

commit 736ce2d5fd199ed5c18eb2d59718ce4faa3b5cff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 17:42:30 2020 +0200

    some more form improvements

commit 06c7919daa1f30e93452d2fe284d7ff0ccae4a41
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 17:39:13 2020 +0200

    monitoring form improvements

commit e4c74ec060df2beb86eb34f1b2a9a8b1193adbd8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 16:57:37 2020 +0200

    added todos

commit 8c689751b4238589902b796a36e4aa484c46feee
Merge: b9ebd153 18671a0d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 16:55:57 2020 +0200

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit b9ebd153a2d6e897b76c41d09f2f2f8d40c1d517
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 16:55:40 2020 +0200

    added action helper function

commit 18671a0db7357a0e209cc547d64271f84f8893af
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 13:40:24 2020 +0200

    doc wrong

commit ed71a3700435aa8532abd2764ddfa9d5be882235
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 20:11:20 2020 +0200

    get command queue override

commit 3e79d2e73ad239b5f1c4838178f35348ac5ca6b8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 20:04:01 2020 +0200

    added extended controller base

commit 670e9bfa0f4fa55fddfd3cbcd7669987e65aa3f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 18:12:22 2020 +0200

    CMD/REPLY prefixes added

commit b9c7d1bd3f77f8d2da1e7376ef55df99ea26ec92
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 18:09:04 2020 +0200

    added health subservices

commit 01e7a98425f8fd09b08d8f0e8edbbe9bed695de6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 17:55:38 2020 +0200

    added announce all subservice

commit bc0402faf7c819d5b63630bc209444b3c2df89bb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 17:49:50 2020 +0200

    health update

commit 837a18135e2d643f52213ff1c1995af3d1cd9f2d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 17:41:51 2020 +0200

    subsystem folder update

commit 3aa666633e4d561847e2cf12972c2fb916d41ee8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 17:14:52 2020 +0200

    include guard replacements

commit 94884c2402e3c5077bfe5b88c3255cd554a4ad5b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 10 17:11:11 2020 +0200

    service 1 small improvements

commit e338b4662d8682f391cdf950ed4a47e80eaf37da
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Oct 9 02:49:18 2020 +0200

    fix for c++11 comformity

commit 2364c4f9a4d1aa551557e0d2a4b616652da8d2db
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 7 20:47:46 2020 +0200

    form improvements

commit 6e9db0d67533b8b3fa25def2b185691749c2b6f6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 7 18:43:56 2020 +0200

    retval added

commit 9fb38e9b7c168e514706b3b757e70b2d1b163c3f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 6 19:58:29 2020 +0200

    better error output

commit df1a730cdff36835424057e64f89f3817fda24bb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 6 16:01:35 2020 +0200

    some form stuff

commit 6a077c583dd2063ad9b71d9298967c78e59d967b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 6 14:00:18 2020 +0200

    action helper some formatting stuff

commit 8c43c6993eca053fdf8dc633ea049ceed6564a43
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 5 22:47:32 2020 +0200

    CSB fifo depth configurable

commit c17d50bd1e16031be3861723d68b9269c4623cbf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 5 19:46:25 2020 +0200

    file syste mmessage moved to mission code for now

commit 1431116417672389bfef1ea1a77bf832cbbe309e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 5 12:11:11 2020 +0200

    NULL exception somewhere

commit a7fe23c3004d8c933b36d3c5a23f0b8322eaa022
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 5 00:12:52 2020 +0200

    small stuff

commit f955cd9eee41ad52eb854f8fb8cca4b040dba181
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 4 23:37:22 2020 +0200

    made interface more generic

commit a8a6d448ecc601fc74cefbc7b80736985b8ca06b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 4 23:24:36 2020 +0200

    added subservices

commit 2b1029916bab936cd7553d8c93f5300abeefe495
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 4 15:55:39 2020 +0200

    using deletei nstead

commit 20c261514b672d3919c036c85702d71fe107723e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 4 14:31:06 2020 +0200

    made message interface more readable (dec instead hex)

commit 0c1c61558ba2d2c831260d4a6be51cc9b90a1ee4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 3 03:45:29 2020 +0200

    very important bugfix

commit 55a4c0423db264b8a1d16bd7bc8abb527d9a9597
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:45:28 2020 +0200

    typo

commit af038d0a2f04c30cd4bfbe6ff3811afdc2740ddc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:44:27 2020 +0200

    master taken over

commit f9e6b9facac4e9f8c4c7a261f4bccf04337c1f07
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:42:28 2020 +0200

    taken over master

commit 0b1b159582b7b3234fdb926f4a1cb4fb875ad69d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:40:45 2020 +0200

    taken over master

commit bf3276cbb2545c1773b1478569703dda9bb402d1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:40:02 2020 +0200

    taken over master

commit 148bbb4be4ef309ac023631782064140fa8d5966
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:36:43 2020 +0200

    master taken over

commit f2c07ee9c6268f255eca9f8cbb374f393cf1ef72
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:35:56 2020 +0200

    removed tests

commit 5fbb8f8ef02747e8c95c74f4301b369982a7b2f7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:35:13 2020 +0200

    taken over fixed array list from master

commit 1ecca4b3d882fcbc704f21a0ed9f32c0e2d2524e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:33:50 2020 +0200

    taken over array list

commit 0714dc6e06d7bbd30b12775d1f7f39bac189b216
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:31:30 2020 +0200

    taken over container

commit 26454356f8958bf077e8756471869dc0bb8e0af8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 13:57:34 2020 +0200

    tpp extraction

commit 315777d265a57b50aff944bc795a15a24e64ac72
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 13:21:23 2020 +0200

    tc distribution equalization

commit 32ebca48b864039cd5ee334b6f69ff6010d1d700
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 11:07:46 2020 +0200

    FIFO updates

commit 43b44c57b6754c82e3813444568b8fc275469f92
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 11:07:20 2020 +0200

    placement fact update

commit aed2d7fc9369e006cc7aa672a1cfeb7fb46e9f25
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 30 23:42:18 2020 +0200

    slight formatting

commit d44428f49c8d99de93632b20307d9ddbe4b77584
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 30 23:38:54 2020 +0200

    DH IF and DH message improved

commit d8392de058b1ecde643dabb5903f3534b68acefb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 30 20:28:33 2020 +0200

    made define more generic

commit b59a4c5de62863afd9fa3a45912a4f4e7f862b4b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 18:02:41 2020 +0200

    equalization complete

commit 3c814a5e6105390bbbee8ae7df825af45fa53df1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 18:01:55 2020 +0200

    include fixes

commit 4f3cfdcaaf57a790ae7b8cf874c76252f20ceb6d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 16:41:14 2020 +0200

    fixed map and array list implemented as non - members

commit 9013ac240ff9a9ef2f488c1e6bee22ec314b6a37
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 16:12:01 2020 +0200

    array list taken over

commit d85096d98b951890bf93d373c4a928bea822676f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 16:03:01 2020 +0200

    service 200 take over

commit e1eb1a3be17fa8b417859ff5d3231dc32cf1535f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 15:48:42 2020 +0200

    small tweaks

commit 1ea1c8c02fca9cc46536831280e3160b0c73b3f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 15:16:20 2020 +0200

    srv9 fix

commit 207d2cab9c6345c02b93f754344e0e34fc446a5f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 15:15:29 2020 +0200

    service 1 changes taken over

commit bc23fd65a678fef98a3a7e701d6e40fdac8cf387
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 15:13:51 2020 +0200

    master taken over

commit fd87a16661290a771e18287bd88ef9df42d60cb2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 14:51:25 2020 +0200

    changes taken over

commit 485e96f12f74dc6dd891aed548b8915872dd540c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 14:49:57 2020 +0200

    merged changes

commit 224248dfa1e3ca25eaa4cd94910b8e1293679406
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 14:27:31 2020 +0200

    removed debug outpuzt for missed deadline

commit 1691d63169c7bec77954873c476f1fa530f981ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 13:54:08 2020 +0200

    include fix

commit 3663d7269ca37b8ac2a5af62e1f86557d9766462
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 13:37:21 2020 +0200

    changes taken over

commit 7b1f72254f866666d251f097b6587fc1c92f67e2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 13:30:30 2020 +0200

    object id names improved

commit 53a62257906df8ca44d3a447dd4434e3d7b889ea
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 12:50:36 2020 +0200

    doc & tweaks

commit 260fac43f73d638823c4dd1d887e2e8409c9a480
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 23:38:37 2020 +0200

    bugfix

commit 1f70b1159d39527d58cbcd2a0e85ca46c2d66695
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 23:21:21 2020 +0200

    another small bugfix

commit 7ff9c29b62cbd3738377bcb6883ac42362db4731
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 22:51:02 2020 +0200

    added another command

commit 62ee1391bf195337af99bddb151cd65fcc95504e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 22:48:10 2020 +0200

    added two new commands

commit 1d972fcbef9e935121ad5a168ec1f5f6f2c8619d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 22:46:18 2020 +0200

    hk messages are cleared properly now

commit 7e9d095ed16264786480e648465efa7d44abe8d8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 22:38:36 2020 +0200

    important bugfixes

commit e48dbb87973ccbce0fb5679b7bd0ad726c34161b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 22:17:18 2020 +0200

    small improvements

commit 786dcdf88d915c701a0266768b06e6158cdd59e9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 22:13:17 2020 +0200

    removed clock include

commit ad2ca814b2e100c7da2b3371244f28c70baa1e32
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 21:28:03 2020 +0200

    improved doc

commit bf574c12e4ea8397062d17a3e047e7de7d223437
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 21:09:56 2020 +0200

    bugfixes, owner ptr not const anymore

commit 88c4b2a5390a927d1eda33e9ac410ddc757cfc45
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 28 16:56:42 2020 +0200

    bugfixes for srv3

commit c12110cbf16c71394aa939e67629fc3c11370472
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 22:23:17 2020 +0200

    has file system IF retvals

commit 6eaade239579ca814bb3aaded0f858b8f7bf47d7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 17:28:03 2020 +0200

    added new mode for local datapool manager

commit c3830da3d0a1f871bfca904b240f7cedfbb2a366
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 17:24:06 2020 +0200

    bugfixes

commit 4a97596030f2dbebcdebdd00c2c524e74df00d36
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 17:21:32 2020 +0200

    internal error reporter uses new local datapool now

commit e67b1fce9a1f23d30a73d41142472adb7fb42b57
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 16:38:07 2020 +0200

    added additional include

commit 52d8c4f3a84c870e67f251be025ec27f657d2e17
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:35:10 2020 +0200

    include guard fix

commit de08bd6c8a9b8ec3f0627a028c319446d0a09bc7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:33:24 2020 +0200

    small include fix

commit 50621704073764a4673288442e54346af7bf4af2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:32:16 2020 +0200

    correct function used now

commit 55bdd2c2f5e8d656375912dc24a4d40515bca925
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:28:28 2020 +0200

    include fix

commit 6fd39dfac38da3c825f14b8171e05ef961dcb96c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:27:06 2020 +0200

    set struct reporting continued

commit 08d0e0949342c3620fb119c9d2e6dabde243e2aa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:16:13 2020 +0200

    power equalization

commit fab7eb8a5d40386237ee243cc98af78e22f5fffe
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 15:03:04 2020 +0200

    controller base update

commit 9aca5cb6f246d3db825bb447fa18d28468a59ec4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 14:59:40 2020 +0200

    taken over convergence changes

commit cf28c9ff9d861b7ecd30a45b172635ed1766b882
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 25 19:01:59 2020 +0200

    make event func changed

commit a65745d037a2ef26e51302d5c585620681a0f56a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 25 18:40:04 2020 +0200

    added explicit function to refresh task handle

commit 5ca1c7bca2d7a5c431488afde034dbe6625807cb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 19:58:51 2020 +0200

    coutndown update

commit 43ab0ba2702f482f1f5e7d39493a90e66bb91336
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 19:55:48 2020 +0200

    updated subsystemId ranged

commit 2f0b36de46938bf6dd58539f75f91f183e567d25
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 19:54:22 2020 +0200

    updated framework object list

commit 9ff3a8537cb711b11be97321d02d45bb50264df8
Merge: 320a5ac3 c7a6711e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 17:44:41 2020 +0200

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit 320a5ac355728fd8b357d8bb3e0bca889e2e280e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 17:44:22 2020 +0200

    has health IF improvements

commit c7a6711eecddf89a5bad9ab193f166dfd8e93452
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 22 16:25:10 2020 +0200

    include fix

commit 4074ca1b8970e3c3c115f77df15dc87e60f64f59
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 22 14:22:14 2020 +0200

    error code improved

commit 5072c09bc030e381df054b5b28ff979804030cff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 22 13:59:25 2020 +0200

    csb hotfix

commit e3cbc4dfd5a854204130df4e0dd3434438b8d795
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 22 02:12:02 2020 +0200

    shared ring buffer extended

commit f5d793a1cf63b9ebe87bef2e0d49e55947c11cf1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 20 13:38:53 2020 +0200

    file system message getter func

commit 763c52cfca0c173cf54924cb736ebb4262171489
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 21:57:23 2020 +0200

    CSB FIFO first steps to make configurable

commit 40db85e73f54d77cd813afe7f57667ca7e3f56cc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 21:36:12 2020 +0200

    separate messages for success/failure

commit cad08e1ea9d722801b1e6675b88a8513bdc6078a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 20:54:27 2020 +0200

    error output for failed deletion

commit e140d39944ba02407aa281cc6397bc75e69017ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 20:08:25 2020 +0200

    some  fixes for sd card handler

commit 9e9bde03951b143fec0e16078bcb0a02f0cd442e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 19:50:02 2020 +0200

    srv23 taken over

commit 44989ada64c2fa5919e2ae6245d964eed009976f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 19:41:41 2020 +0200

    file system message taken over

commit 718502c04b35f2677c39d68da4c00f5052e01d33
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 17:15:33 2020 +0200

    added additional flag which casn be used to disable

    periodic handling

commit 02f778ea1d4bbe07df38a7e58ca50ebf6ea81232
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 17:14:09 2020 +0200

    new error code added

commit 4ab7a0838702698e23590c636b93f375103688f8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 17:08:08 2020 +0200

    srv3 continued

commit 32c0140cc24c2aee082abf777f9bcda65b6ba43c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 15:58:34 2020 +0200

    hk stuff continued

commit 9ecbc8199e458e6c56a91c4de91b6217d30d9ea3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 02:46:29 2020 +0200

    added periodic helper

commit ba56f48e8e87f0087b9c5e29846723505abe71cf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 01:17:43 2020 +0200

    huge progress on hk + testing

commit 757d2275ea9f1f19e134e896459fa8a02c9bedcb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 15:06:14 2020 +0200

    internal bugfix

commit 33e7cca23c3175b7349654e790fadb9a2938546c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 15:01:35 2020 +0200

    several bugfixes amd improvements

commit 5e3f40a2c1c163eaa36705de597db37b36ec8635
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:40:48 2020 +0200

    changes taken over from pull request

commit 3a043b5773de78516ac6efd0c3b483e79ebd729e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:31:51 2020 +0200

    object manager tweaks complete

commit f50a80fc3c61066d69117d033b59a85722212c09
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:29:42 2020 +0200

    minor tweaks

commit 4d4166071ca864ce4e60d0aa92ddcc6b74fa1644
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:28:20 2020 +0200

    added pus services to framework objects

commit 1b5c3786b61ceecdb4e7cf1b7b664e81399dbcf6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:24:06 2020 +0200

    taken over serviceinterface folder

commit b429359864f3a25eb33af17f52958fa102ffb8b9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:14:01 2020 +0200

    renormalize files

commit 57c88059e5be68191b25dac2f179df237b125df2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:12:07 2020 +0200

    DHB small improvements

commit 7b0ddb3941729647276cdfe0218d0727d2f6e343
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 13:09:23 2020 +0200

    quick fix DHB

commit e70e9e3f1f67e007245ab457c1e2f685d5450697
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 12:57:30 2020 +0200

    added uptime seconds functions

commit 19632b8fb1cf4cdedf13795ee5ecaa6158f91f10
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 12:36:36 2020 +0200

    linux fixes

commit e0b2e0b00a578f59ac692c57d1d3b2bc1ea4528c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 12:31:11 2020 +0200

    fxed linux message queues

commit 37f4cc46447906295f11e9e368e32e010eedecad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 18 12:28:29 2020 +0200

    taken over stopwatch changes

commit 0c6514a682a03e4dc74e5b7878960b0af8bf34f3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 17 22:31:28 2020 +0200

    clock uses getUptime again

commit 6ef5e3e5501e5d925160306f25e39c3e1cfbb312
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 16 21:22:53 2020 +0200

    queue factory host OS fix

commit e5dac30e98f694ad92ea82cc8c15ff7bfc7bd8b2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 17:37:43 2020 +0200

    new include used now

commit 0d5724e3d416f837348b764cde3f7f732c2c5af6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 17:34:07 2020 +0200

    include improvements taken over

commit 347d591deff649540ff9dbeee1115c2803c060c3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 17:33:21 2020 +0200

    uses new define and config file now

commit 7643af8607ad9b1ccb27f9bd120a324869807134
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 17:15:22 2020 +0200

    include guard fix

commit b8ad17639ceb8b773175749608477d8ff970521c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 17:02:31 2020 +0200

    include guard fix

commit 850a4a3e3deddf8a13a9ee52e53262a8e0c7fe41
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 16:44:48 2020 +0200

    header file renamed

commit 15891b3cf08b585a9e177447d0d15a5ba7490705
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 16:42:17 2020 +0200

    fixed some message queue includes

commit ad98a63e87602790de874b7fa336a2d04d012a1a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 16:02:58 2020 +0200

    changes taken over from upstream master

commit e707c5e05117b9734f50f4a144987ec51b4dfb65
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 15:58:12 2020 +0200

    fixes taken over

commit e8de2fc47a1f1c6451ec5a7a6ec3767377289de7
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 14 18:29:19 2020 +0200

    added srv3

commit 2d2316a0c7824defdd1f079f7fd5d23c29f5d27c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 14 18:01:48 2020 +0200

    hk message continued

commit f9612afe06248d38db5b8b4bb875bd7c66a12598
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 11 14:06:08 2020 +0200

    added report status toggler

commit 71125c075a267e5f0b8cc6229095827b1e9285da
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 21:05:50 2020 +0200

    added new setter function

commit 2d2d0de35cefdc627e556d33e9537cee4dca36a5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 20:24:49 2020 +0200

    local data pool manager bugfixes

commit d7bbd4b652ff2e2e4fe63485fe57e5622ec3d82a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 19:51:17 2020 +0200

    severla bugfixes, new periodic op divider added

commit e4d95a4e0991e766725ddcb4158f26341c7d213e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 16:07:09 2020 +0200

    subsystem changes taken over

commit e57d4a11ae1db3b965a24e3de5efcae1ffc29781
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 16:01:05 2020 +0200

    fixed ordered multi map changes integrated

commit d9dcee3692aa548a94fc614529c954ffcd36b9fe
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:55:56 2020 +0200

    array list changes taken over

commit f35efa3cbe3926b1e47e8a62faeb81a6dae9a1ef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:52:00 2020 +0200

    taken over CSB changes

commit 96e471add600b1829d08958e87b505d37e45a8e3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:51:11 2020 +0200

    merged fixed map changes

commit bbc73a6aaf5d607aca25c04b2bc59a1f7d4b031c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:25:29 2020 +0200

    taken over serialize adapter changes

commit fd09774fc3577eb3993759d2473112796c87a0cb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:18:45 2020 +0200

    serialize if update

commit f663de2418ae1be1064ab4acbf132651c0e5b509
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:17:38 2020 +0200

    taken over changes from master

commit 224ea3914a08710227f057703b64c8a0aaf4d240
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:15:13 2020 +0200

    deleted file not needed anymore

commit db3e32655d70fc4b56c69325faee75449190bf01
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:05:26 2020 +0200

    changes taken over from master

commit 18e6de7d6ba75326262918d4bd0dde93e5c6fa0a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:04:43 2020 +0200

    added compile time check

commit cefac2db0b9f2672039e83bce27d38a92cdb7933
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:03:28 2020 +0200

    assignment operator added

commit d43ef479b6191923a60b308fa9a3efa7fd1bd249
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:02:58 2020 +0200

    assignment operator added

commit 26bb2de0504114bff116277fbd264fa2f39b3ff2
Merge: d99b100a e085deb2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 15:01:49 2020 +0200

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit e085deb2355e68e4456143988964a152ff96134b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 7 15:23:27 2020 +0200

    fifo fix

commit d99b100ace281a6a371e42ba15c8d260a27159ff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 18:46:56 2020 +0200

    debug output removed

commit 26cbcdbff058a542a30055ba4104b18cb16353a7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 15:21:02 2020 +0200

    removed comment

commit 673af264724261873f78079e72e5fc109fbf2f63
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 14:57:05 2020 +0200

    rework/restructuring

commit 50ae50d28679e620d0a60392f5b557ae4875995d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 14:01:41 2020 +0200

    removed pool raw access helper

commit ac2f6c5ed4dff00bf3ce3228896e393813998bf7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 12:59:59 2020 +0200

    minor improvements

commit efa41b29aa2fb45180d7bd6c2805a8ced32378fd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 12:16:43 2020 +0200

    added informative comment

commit 8db9a4a1911862a359d6c9a27569fb4e640670a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 12:00:57 2020 +0200

    some minor tweaks

commit 7774434d7a211f212ec376bb8296d6aa9f63aab7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 11:58:12 2020 +0200

    windows sockets working

commit 3e0819f954d3eb6b6fb090f7b0d157d867f4ed6c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 11:48:32 2020 +0200

    some bugfixes

commit b7c4f5ce05ec1c235cbea3b825d21ce4497dd095
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 10:36:39 2020 +0200

    continued win sockets

commit 0c85b05aca4d7a1adc8f5bf1a85133c845ecc63f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 09:54:22 2020 +0200

    continued win bridge

commit 08ffbfefae6ea75186a6b405afacc1b9e73e0f55
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Sep 6 09:33:02 2020 +0200

    added windows udp bridge

commit f698275a0bafc6494780f9b65858ca7d920e8e5a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:59:17 2020 +0200

    removed seconds typedef, confusing

commit c7606b7b1e870b510488da7d72c0dbe9b47e6ddb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:51:17 2020 +0200

    updating and cleaning pool files

commit cb970b1883b35412b64145ddff4f1c5eb1604529
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:24:59 2020 +0200

    task IF is set now

commit 7a24f899158ad8b6a3a74ff2da8a0ba530dc8539
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:19:15 2020 +0200

    removed comment

commit c43ae66205f6fc4c594075660d34b0f6317569fa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:18:30 2020 +0200

    some tweaks

commit 883103af2b4de3e099180e1fb999af974675e7ff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:13:07 2020 +0200

    queue map manager update

commit 80e60566d82c5a6ed35c91af6f3d6cc21866dd7f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 21:11:27 2020 +0200

    compiling and working again

commit 39b675cf9984a1b22c215979821073a81202b273
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 20:39:10 2020 +0200

    repairing host osal

commit 05814dc805e3901aecdfd353c6e63712e9ed2c27
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 5 15:58:53 2020 +0200

    added way to start DH immediately, bugfix in event manager

commit faeeca8707857dc75451f06fb78e1c5bffd22b63
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 16:07:54 2020 +0200

    seiralize folder converged

commit 1803030640f2201a006a3e3e30e8029cf001464b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 16:04:11 2020 +0200

    taken over serialize element changes

commit 721b981df2df5ea852d0ad8a0381b488099f2d32
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 16:01:18 2020 +0200

    changes taken over

commit 305d8ef84079a9e0e0861b4708147e3b562d2e10
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:56:52 2020 +0200

    taken over changes

commit f2f7a5de87b728868e13d96765846e50349a789f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:47:33 2020 +0200

    taken over convergence changes

commit 0d69e9beca4b0f35b2c0aea86d5c6df983e9ccaa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:42:15 2020 +0200

    taken over serial uffer adapter from upstream

commit 37764f7ca710f3ae0ab3b41b7e6b72ea6ba3a14b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:39:17 2020 +0200

    include guard fixed

commit be89e7ebb73f273077c4211eb01078e01d8f537a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:36:53 2020 +0200

    taken over from upstream with little tweak

commit cfa952d9829b4b686ab615b5383c5fa59de285d1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:33:36 2020 +0200

    hybrid iterator same to FSFW

commit fff0131c9b27b25d8705ce42837f432035b51741
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:20:07 2020 +0200

    taken over changes

commit 147ab94149e2dff309ea628b5d77e74ed9a58208
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:13:32 2020 +0200

    include guard improvements

commit f4a50677751b01417a476dc1f309b5074e337601
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 14:53:27 2020 +0200

    update fw class Ids

commit 94b45d7407bd6413926184e8ec8f746fda648cfe
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 14:49:27 2020 +0200

    changed taken over

commit 9d1f292af0f2973f595b0db09957a45a94782662
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 14:32:32 2020 +0200

    changed taken over

commit 6980245c984c69f052c8d1ba2ad1c5c240f50c56
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 14:30:04 2020 +0200

    added line break

commit 31c16382fc5d40cccc9ca3a58a8a60cef5d7a04f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 14:28:43 2020 +0200

    took over changed for fixed slot sequence

commit 403d83f32cedcd6c655e95e25e4f421df9e94971
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 3 13:01:14 2020 +0200

    removed commented out code

commit dbb394f761a147aae4a2fb722cb7ffc264452079
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 3 00:22:16 2020 +0200

    new member to store last step

commit 822a908353608f053590fecd9e0a3115c37cb6f9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 3 00:17:01 2020 +0200

    separated steps, everything seems to work

commit e8fa9816ceea383d1e15e55b6bbf84d1e6327702
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 2 23:45:14 2020 +0200

    doc improved

commit 6069c64048b2850f7cb080cac2d0f836c4543be0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 2 23:36:54 2020 +0200

    doc improved

commit 631b2ca70536b0f05465dfbc790a01cbf509aac5
Merge: ae9bc39b 33039f8c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 2 17:59:45 2020 +0200

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit ae9bc39bdaadb7323dfe009b5e93276e620e6d76
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 2 17:59:26 2020 +0200

    some bugfixes and improvements

commit 33039f8c6055b45cb75b39a4e86a8a38430222a9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 1 12:57:56 2020 +0200

    include  guard correction

commit bec562ece0ae8cc5f7c81d7e998f47ebfaaa083b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 1 12:54:33 2020 +0200

    FIFO updates

commit a634875b4b08cde12d2c2ea14d50303ab13d573d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 1 12:50:17 2020 +0200

    dynamic fifo update

commit 7cf79c17a9e54de41fd9a10e630ad07fd967829f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 1 12:48:51 2020 +0200

    fifo update

commit f7f134ac20ca6bb76fedd14804290fc06455c44a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 1 12:48:11 2020 +0200

    corrections

commit edde2ee58b54270aa832193312ecd289940fe0d2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 1 12:43:50 2020 +0200

    offsetr update

commit 15bb0aee985cc5b558cea21e635b1600db5905f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 29 19:08:10 2020 +0200

    handler ID cached, debug output improved

commit 6c02776975fbebb9a49302825943c0244c3ebc55
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 29 00:16:40 2020 +0200

    added srv9

commit b0673c7fa6e7f66d9c76a5f66c3d209579a759f1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 18:47:11 2020 +0200

    typo fixes

commit b6a19f911d177e4129dfc0a5a10e0e499aa1ba88
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 18:45:19 2020 +0200

    include guards improved

commit 1b9c8446b7bb7fa005eaf7ce390c12800a3a2177
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 18:33:29 2020 +0200

    renormalized line endings

commit 9abd796e6fd1ad0d8fa91e78bf7b68e8d61ca61b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:58:36 2020 +0200

    updated map packet extraction

commit 8596810fe24836ab9be154aaa47f584447ddef37
Merge: 9f522466 b71cab39
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:58:31 2020 +0200

    Merge branch 'event/git-update' into mueller/master

commit b71cab399330f3ae631bb51fd2cfdbb43dd32cf7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:55:13 2020 +0200

    integrated all changes

commit 9f522466f0529e4fc56abc0ebf2d952e82d39e89
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:52:13 2020 +0200

    wrapped info output in additonal ifdef

commit e800aad97993d36f6800a35cc6ccd805a6e269d1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:44:10 2020 +0200

    event git update

commit d2ef2b2be46e6ac29a6b75a5b44e32f56a7f16b3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:40:53 2020 +0200

    taken over datalinklayer form upstream

commit 5ce954672b023ea804d7915ac3031b284ad10091
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:40:21 2020 +0200

    taken over coordinates  from upstream

commit 2e23fc1201dbd6177527563ed74652961e53018b
Merge: 468ebfb8 8862f35a
Author: Robin Müller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:37:29 2020 +0200

    Merge pull request 'git is weird' (#15) from mueller/action-git-update into mueller/master

    Reviewed-on: KSat/fsfw#15

commit 8862f35ad136991e4f4a04d5551a507aba3ed31b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:35:27 2020 +0200

    git is weird

commit 468ebfb809f4ec6140492e3146f134f54b4f1d7d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:18:11 2020 +0200

    include improvement

commit 5ca26a72ea2101786cdfbd6a812a2d9913809224
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:00:16 2020 +0200

    fixed some shadowing issues

commit 42dd665e2649b8e37a27862640f1f73c1147c627
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 20:06:19 2020 +0200

    include improvement

commit ed70f3861272b064fae00a6fab155ccfe67b1e93
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 20:04:17 2020 +0200

    some renaming

commit a6e99e443aaa483b705d8b5570d30ef2a524ec9e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 20:00:36 2020 +0200

    took over dHB failure isolation base fixes

commit 4d1b1ba50662984bd90af489dfa811d8165be6fb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 17:24:40 2020 +0200

    additonal doc for freeRTOS semaphores

commit b9314cffb955b95234a7c82e1a847c9533fee57a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 17:13:52 2020 +0200

    small improvements

commit 5aa664648e8e0d102e29a68c42fac9b16c5ecbb9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 17:03:54 2020 +0200

    linux semaph update

commit fd42d8cd46bdefece3002e15e585fa18578f1372
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 16:14:42 2020 +0200

    periodic task taken over from master

commit 6d3fdab9446d0129823b16aba8cc9e71e2067006
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 15:52:55 2020 +0200

    adapted semaphore IF to mutex IF

commit 1dfdd65662583271a202ee759c2fb48cc0ad6386
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 14:42:10 2020 +0200

    new initializeSequence func

commit 790e0399b7ce5cbb431cf8736cda0ca23b9a216f
Merge: 67ab1f62 3aa6858c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 14:23:14 2020 +0200

    Merge branch 'mueller/project/distribDatapool' into mueller/master

commit 67ab1f6240772ba1c85c6c826f8e9ee097418127
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 14:17:13 2020 +0200

    initialize after task crteation moved

commit 0f9930524b4b7ff8e3e4d5b13ea926ce4b3676f3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Aug 26 15:54:13 2020 +0200

    some minor improvements

commit 83c9d4fc1cb22228f1d58a0f6ba5a1f0f36b6fb0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Aug 26 14:55:27 2020 +0200

    improved tmtc bridge

commit 51b62fd9b189ea149b64a2015c0497240041129c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Aug 26 03:21:26 2020 +0200

    debug output fix

commit c314792e86042a2d60a7ce3a6af265fea4da61a7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Aug 26 02:52:59 2020 +0200

    linebreak changed

commit da3b2b2500592047335c689d8f7d9b9b15f60a86
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 25 18:09:05 2020 +0200

    form improvements

commit 6afbeb8423cdb3d5a0cf2d2c41623d1310ed2e73
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 25 13:42:11 2020 +0200

    removed linker forward decl

commit 92e18b91a3a9d4dac069281971009b4dba5a1dd7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 25 13:38:53 2020 +0200

    seriasl buffer update

commit b97128c12eed9d6b3e5d74f861ab99c6c7cea7ba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 25 13:29:10 2020 +0200

    deserialize improved

commit c8ba486538fe6086ab8835a70c5656dd5a4ce1af
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 25 13:17:57 2020 +0200

    serial buffer adapter

commit 3aa6858c93594a08a670479fda9354bd9940816e
Merge: 11ce3d02 6afbeb84
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 25 13:04:20 2020 +0200

    Merge branch 'mueller/master' into mueller/project/distribDatapool

commit 11ce3d025fc58fd4205ddc3ef4302ab5262f8c2b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Aug 24 22:08:27 2020 +0200

    srv3 received reply now

commit 8e7f167a6628c0b219b0cbe18e991a2b203a2170
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Aug 24 14:48:22 2020 +0200

    small fix taken over

commit a5227115e5b0361ec33242453ae3435589033200
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 23 23:24:48 2020 +0200

    first subscriptio nfunction written

commit a95bc6b293683e63c3070b5f2ce33a5e2b3f942f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 23 22:33:22 2020 +0200

    sid cached now

commit 687e124929f367f8009b517450e8f61322bb0613
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 23 21:52:44 2020 +0200

    doc added

commit 2b63f1b3f3557ae05bdb55791d90e2febf8a17c8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 23 21:00:25 2020 +0200

    New reporting mode

commit 2f53a3fb1b283cdb26fa4323af2c071107397b57
Merge: f39b8bdb cdaed452
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 23 20:27:00 2020 +0200

    Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master

commit cdaed4523bdbe6f27820de605344340fec6698b2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 21 16:15:40 2020 +0200

    tmtc bridge todo added

commit 0d476062299a1c5f305146327be3920480fd940a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 21 15:49:06 2020 +0200

    tm/tc packet stored improvements

commit 15fd30b23f313a2f8678fb0946a7ec9c84c52266
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 20 22:31:58 2020 +0200

    assigned read len for decoding error

commit 9385f9024132a5f5edb23284ee70911e7a302110
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 20 20:36:49 2020 +0200

    some bugfixes and improvements

commit adbf39166f1cd7d9b86033148f02b9c18c21f438
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 20 18:13:17 2020 +0200

    removed pus parser

commit f90bd012825b29ef0d4ec1d7b58f1b48da424103
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Aug 19 17:00:50 2020 +0200

    added srv17 and srv201

commit 7b998268cb782f90e8daab6d3bbe94c08cb37047
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Aug 19 13:17:40 2020 +0200

    error message improvement

commit a1d94ec556b6fbb35b6dbcc76499ba9620d663ef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 18 20:51:13 2020 +0200

    added aditional comment

commit 5af50cfbf74fdf025b30030f0f2edfa29ed080b6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 18 20:50:24 2020 +0200

    renamed .mk file

commit fbecda75492905c8c8301b774d66ee777e791037
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 18 13:09:15 2020 +0200

    include replacements

commit f39b8bdb419bd2832d8b1e6b44b13ece12ceb0b8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Aug 10 18:33:28 2020 +0200

    several simplifications

commit 87eb31b65aa7c68c4b3ad40cfac7353349b7b968
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 9 20:06:29 2020 +0200

    local data pool manager uses new packet now

commit 9e7d92b387249a6156a889e277cefc80fd53d667
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 9 19:46:37 2020 +0200

    some renaming , hk packets finished

commit a181f19c02a0abe25966be3b9c18026f7e1d824f
Merge: b092850d 5d09ae32
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 9 17:13:58 2020 +0200

    Merge branch 'mueller/master' into mueller/project/distribDatapool

commit 5d09ae322176247536667994806ca8aa6bb3b1e5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 23:47:44 2020 +0200

    additional comment

commit f9ce1d9eb9f5fcf85a339fc28b3b5806cb1c644c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 23:46:21 2020 +0200

    more simplifications for shared ring buffer

commit 6484c1a27697f1b3a8326dbae0d3fa5eb4be7b4f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 23:45:18 2020 +0200

    shared ring buffer simplified

commit b092850dfcb0a37f3d9fd8b67933b8201d8d622b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 21:32:15 2020 +0200

    internal housekeeping packet finished

commit b828d7c6d7b8267e9867369a557d6e0b9c4d8452
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 19:56:42 2020 +0200

    continued with local datapool manager

commit e7d28d630cfe41ed859f516084b661df3b37a565
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 19:43:28 2020 +0200

    continued with implementation

commit 03cd5780f9b6f915566c07b07482a1b86b103eed
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 13:29:38 2020 +0200

    null initializations in header

commit 121e94a3854049c4a4075327034f8d492b1b3bb8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 13:20:02 2020 +0200

    local pool var update

commit 5c85d03c39af4e9ec31a03e238dd1994b02ea68a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 13:04:31 2020 +0200

    additional check for freeRTOS

commit fba8775f49347da75646b0c70e4adbea94cbd1b3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 12:51:31 2020 +0200

    some renaming

commit f766398b20a1c148f63d10eaea70aad46bf2f3a2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 12:49:20 2020 +0200

    some bugfixes

commit af11c8fcf96c242447baeffbbb9731c9807a6f8e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 12:38:39 2020 +0200

    freeRTOS corrections

commit a6a1e656071342e70d2408a51289ccfe42de78e4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 12:17:27 2020 +0200

    local data set fix

commit 4afb19be51b4fee35d8140f08072df043ec7fd21
Merge: b7411591 03cd5780
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 12:04:52 2020 +0200

    Merge branch 'mueller/master' into mueller/project/distribDatapool

commit 979fea3400668661d817621766c64af1a62ed379
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 22:15:03 2020 +0200

    mutex helper api change

commit 458e849f7d86ca95b0a3ae675d4d00895e26ede8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 22:11:13 2020 +0200

    adapting mutex helper to new interface

commit 44b70b45e216600bf5cfdca4899166f6bad0fd41
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 22:06:20 2020 +0200

    little doc correction

commit e3d094b2dec8ddc838a0f70218b0200b8c1b1ce4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 22:02:23 2020 +0200

    linux: removed old static timeout values

commit 37f2539d894b8f1e9b85fd29005032c9bd4ba12a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 20:44:40 2020 +0200

    empty line removed

commit bfecbfbd80a9f64f84b55246b742c07bf1beccf9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 20:36:37 2020 +0200

    implemented new mutex interface

commit 1a118fe215350eb321184bae30777278095cb1c7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 19:21:47 2020 +0200

    added documentation to assembly base

commit 66039bd3feb553e913fe8440a48e09c1b8843166
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 18:14:39 2020 +0200

    move group def down

commit c4ffb1acd5bff2a8214ddb9f4336d081b3f84636
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 18:12:15 2020 +0200

    subservice number correction

commit 3f87537c6106feb54ab0151247be0ad300a88580
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 15:25:24 2020 +0200

    minor corrections

commit 4d3f0875c18a69147c18f99d401175e5b64c361f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 15:23:37 2020 +0200

    periodic task if adapted

commit 2177877625aa1543c585504505b55b49fd1c2904
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 15:16:09 2020 +0200

    updated framework subsystem ID ranges

commit 4dcfa5125edf80f2bc6bde7861e1da394b4d7a4e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 11:47:47 2020 +0200

    added additional calls

commit 6b475792a4a7c57a5006a010c554dda8b31d41b7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 02:25:10 2020 +0200

    shared ring buffer continued

commit 4e9e465360b2b4757699e79b265c12358ac5e8db
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 02:00:00 2020 +0200

    shared ring buffer continued

commit 0ead44bea976bba70676fc40ed9716f2ae6b84d8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 01:07:59 2020 +0200

    getFreeElement implemented

commit f240827bbdd9ad7542e21ca5810235e6acb20c96
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Aug 4 00:59:19 2020 +0200

    added getFreeElement

commit ebf5d41a7880f4c866fa1eb29113ecc960bd0efc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 1 19:03:03 2020 +0200

    parameters IF doc and improvement

commit 7475e6a9b85278512a1f4c922e564519cbe63a8f
Merge: 76cc3e96 66eac57e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 1 17:06:12 2020 +0200

    Merge branch 'mueller/master' into source/master

commit 66eac57e3bb77c73a4030d1320a64b42e5841641
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 1 16:54:54 2020 +0200

    csb update

commit 58a4f4f8a1d9608b671cd6fab087afea5d086dc1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 1 16:39:17 2020 +0200

    command message bugfix, CSB improvement

    parameter helper diagnostic message

commit 76cc3e96e8680127fd16c30d83bb4b4c32f6f31f
Merge: ffba6641 18899a4c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 1 12:34:46 2020 +0200

    Merge branch 'mueller/master' into source/master

commit 18899a4c828262258699d9c80beab12cd251b506
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 29 20:07:24 2020 +0200

    hotfix for deadline checking

commit 276c3b172e18df8b7f457e23fb43c22e9c332553
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 29 15:32:36 2020 +0200

    better diagnostic warning for DHB

commit c64aa9f7f55e4afbc5f21cf149bfc71a889a06e5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 28 21:00:11 2020 +0200

    another important bugfix

commit 9fa9421ba58d4c6793aa19886ce6ee17e7f85d71
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 28 20:57:05 2020 +0200

    important bugfix

commit 9acf82cf510be6dfd0f7e94601cdf4795213e5f4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 28 18:12:10 2020 +0200

    doc improved

commit 69f9ff02f047917c2c6a622bcb6fc6244d60564f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 28 17:00:51 2020 +0200

    better returnvalue for failed  comIF init

commit afc16ef2d72dd6662ecb19c4a08a9aedc2119aab
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 28 12:49:18 2020 +0200

    new servicei nterface buffer /stream

commit 6425c0dd4c43ba0fa0711d5d894ae76a1858782f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 26 03:12:04 2020 +0200

    better init error output

commit e179288c00ffedf8e160b399db15a0ec26395ea2
Author: Steffen Gaisser <gaisser@irs.uni-stuttgart.de>
Date:   Thu Jun 25 18:09:32 2020 +0200

    Fixed spelling mistake in HealthHelper

commit b7411591a151419687d1c55054543ec065e7345f
Merge: a0b8f885 b4d6d970
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 12:42:02 2020 +0200

    Merge branch 'mueller/master' into mueller/project/distribDatapool

commit b4d6d970bc9890c24b4abb3c671dad2104aac383
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 12:41:05 2020 +0200

    removed HK manager virtual functions

commit aaafed7b28bc7110321f0a092a81beb8002990bb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 12:38:21 2020 +0200

    health table init now mandatory, better

    diagnostic output for uninit health table or invalid health helper owner

commit 47b3a428c68ff74a6019eb2c36c9fb253cc427fd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 12:33:03 2020 +0200

    removed device switch, not necessary anymore

commit a0b8f8855ced699701290f643c1fab8658bd323b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 11:45:23 2020 +0200

    cotinued distir datapool

commit e5ab7ada682fb80db4daa3ba7b4f5f20b364fedd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 14 15:45:03 2020 +0200

    added new interfaces for datasets

commit e204bd77c6cf4ac9a4229ed434674a43d72a94c3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 14 02:21:11 2020 +0200

    created tpp file for fixed ordered multimap

commit e7b6999c5ea11e776848cb63a11f1e9673af0efa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 13 22:13:19 2020 +0200

    added back inttypes.h for cleaner code

commit 15052cb33304f18d3e5ce95a4b547a2ff0826c99
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 13 19:54:38 2020 +0200

    singly linked list update

commit 6d99ab3df3e105901cf6af955a034968b7f8364d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 13 19:37:33 2020 +0200

    ncreased readability of DHB function

commit b4f292f3d7fc4f606bf1b6d48618bd0cf1878e26
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 12 18:01:09 2020 +0200

    new generic freertos task interface

commit 99aef0cf287fcdf23f9336927c171762e8bf4f7c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 12 01:16:32 2020 +0200

    C++ linkage for yield from ISR function

commit 7d794c76235c8247602b6327034f604d962b71c5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 18:24:09 2020 +0200

    task management functions have freertos syntax now

commit 799846d89fecc4c17dc6305d17b903217b0687ba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 14:29:30 2020 +0200

    little formatting changes

commit e4f795d209f36bbfaa39a1d03e46c759d4a86acd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 13:38:14 2020 +0200

    stack high watermark in bytes now

commit ffba6641448c921f74ec7e4ff48e774d8d037b2a
Merge: 69946d52 35d4267b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 11:57:46 2020 +0200

    Merge branch 'mueller_framework' into front_branch

    changes for new freertos task monitor

commit 69946d5276549dce7624540df1de75c94ffc5004
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 11:52:01 2020 +0200

    FIFO hotfix

commit 35d4267b400a950847447d2adc24e53096e4ef86
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 02:36:04 2020 +0200

    dynamic fifo bug fixed

commit 6a6395313f8dce6ec9693acddb6b93d3cda9549a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 01:06:01 2020 +0200

    added copy ctor and assignment for FIFObase

commit 444ee80f356a8e6b8e639c1cb847da320a21713b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 20:31:10 2020 +0200

    removed unnecessary case and added more size checks

commit 31450362106ebec643d99dd60d963e822516b0a5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 19:34:18 2020 +0200

    getter functions for task handle

commit 36a7f2f9ee86b00370bee48721f470d9392bf93c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 14:32:25 2020 +0200

    removed file header comment

commit e29226c9bba6587460d5db87e3ad3b3d7eab2357
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 14:28:36 2020 +0200

    srv8 improved

commit 9716bcdd749cca8ea2e569448a7a1b8ab7cd2298
Merge: c8821ae7 a7d68f8c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 13:55:14 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit a7d68f8c52886f39d116a9ad0553f26463c753b8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 13:31:45 2020 +0200

    deleted copy ctor

commit be8913efeaada850906e19f2d40b6e503b7ec270
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 03:30:52 2020 +0200

    srv8 improvements

commit 9cbc1a18b8c305c095f1c70ada691541e1df6bd1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 03:16:08 2020 +0200

    csrv200 improvements

commit bdc6e881986e9048eac100561ac0e0159b1b0eca
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 03:09:32 2020 +0200

    reordered includes

commit 3551a767a71635c47af18df4b5afbc393416838e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 03:06:18 2020 +0200

    removed old code

commit f3739fd213acd0849399fa4b755ffa7a126da6ab
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 02:44:58 2020 +0200

    bugfix failure isolation base

commit 7a4cc1a6b692b39c596bb88e67051af69b97f928
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 01:22:23 2020 +0200

    hk manager initialized now

commit 1fde3c2c992f3fd96cd0098bfb23c5ab6fa51589
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 00:19:25 2020 +0200

    added srv200, CSB doc

commit cdd877032fe211cd6e9e56940352f608b7e90efb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 23:20:48 2020 +0200

    doc for system object IF improved

commit 57418eb877888bed655eb8f3fee2d58b6f4cbe82
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 20:04:49 2020 +0200

    distrinction between default settings

    and individual settings for service

commit ad049cc634b1c0aa9b0505bc4de42cb6a89a6679
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 19:41:52 2020 +0200

    tmtc bridge formatting improvements

commit ceb61979048feb501a31530ac363aaf53c6b5e43
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 17:01:12 2020 +0200

    some minor improvements

commit da30680d04bffca3ebd17a446fc7cad765a6770f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 16:54:18 2020 +0200

    readability improvement

commit 0cdce6e3272b72044a6d2acf1248d821b62d7002
Merge: a5d3d9ea ac9e6e13
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 16:47:39 2020 +0200

    Merge branch 'mueller_devel_distribDatapool' into mueller_framework

commit a5d3d9ea8030d5f14a7c584641b68a5bf4f21d58
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 16:46:57 2020 +0200

    improved init function

commit 5a351474d2de7e2b38c2ccf232f1a9ba6241bf10
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 16:31:33 2020 +0200

    DHB ctor simplified

commit 32ef807341f2b868af94a11507db532990a4c771
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 15:49:52 2020 +0200

    newline

commit ecd740a1015f47d60ec73b48d54f632dc6aa38bd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 15:47:50 2020 +0200

    ring buffer base calls made protected

commit 6f50356964da86b311b9e96b08d33de6c2b76233
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 14:26:15 2020 +0200

    new shared ring buffer

commit ac9e6e1337acc8a5f68811be1f5da30c69a3e52e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 00:59:10 2020 +0200

    continued with local data pool manager

commit c8821ae74f90cbbbcf4d2d89d29b981b74219ad0
Merge: e48de981 64c290ff
Author: Robin Müller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 18:49:09 2020 +0200

    Merge pull request 'A lot of new features and tweaks' (#12) from mueller_framework into front_branch

commit 64c290ffe44ce6a4352152bcb1a04ff643bfd395
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 18:38:58 2020 +0200

    include guard fix

commit dc27cc9aff73e6c17eb36281d056bd7c217ba6b6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 18:37:26 2020 +0200

    srv8 added to framework

commit 8046d005a46e734aa2112cbd6f617920da2ec753
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 18:18:54 2020 +0200

    CSB static framework id setting

commit 236ad1b85b600acecc741127faa19c72925542fc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 15:06:46 2020 +0200

    a lot of debug output added

commit 5ec78b065c4ca0ba486b9837c0e4c0eba40d5b15
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 13:29:57 2020 +0200

    error handling for invalid dest queues improved

commit b56aa94f99730cee982eebc09dd8fa88a3fbc077
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 12:54:40 2020 +0200

    additional doc

commit 01b10803766e61833eaa9762327a48e0fff76c29
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 12:53:46 2020 +0200

    readability increase

commit 94f9b1e1ef0ecdbd0f92751284f74dc02310b7c2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 12:41:15 2020 +0200

    dle encoder doc finished and hopefully correct

commit 264914e86a1b9a2854dbc8d83ed96445a1255482
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 03:18:09 2020 +0200

    tmtcbridge tweaks.

    UDP bridge now working :-D

commit 2efcda735f84166665c2c1b42dc604048a7bbb34
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 02:20:38 2020 +0200

    message arriving.

    big clean up in tcdistribution folder

commit 399fc0e287048b1fb8e1343185d637c78a791a80
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:42:37 2020 +0200

    fifo replacements

commit dd48f7ccadc824b275ea3bf2af0da1c9820ad61b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:28:00 2020 +0200

    some form improvements

commit 06d389ed1e6157f1fe736c5dacf121eec247ea14
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:25:52 2020 +0200

    increased srv2 readability

commit 684b56ac883b0ee0528edc55b492977518611430
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:21:47 2020 +0200

    srv2 tweak: CSB params now configurable

commit 7698f3f13e4ff5886c6c56145e56111a49a6ff4f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:18:33 2020 +0200

    moved srv2 to framework

commit 359163886ba2d926cefe8f57b6691818a1e70b8e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:06:30 2020 +0200

    pus srv5 and 1 moved to framework

commit 4f1f610ae03bd4f0fecc9e19ecafa5803ee8a231
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 16:36:41 2020 +0200

    doc and improvements for DLE encoder

commit e48de981f54e611d67bba1b2b7907ba2425051a8
Merge: 062ebabb cb691db8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 23:31:38 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit cb691db807d562c8f84178d48650464c4cb58ecc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 23:07:38 2020 +0200

    fifo tweaks, pus parser fixes

commit fd1e612ea5d931d20177405a827c34bf52ee7c54
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 20:17:05 2020 +0200

    pus parser fixes

commit 8ba75fc3c2fad46fc0e37fe17a627a99cfa3f09a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 19:36:21 2020 +0200

    pus parser implemented

commit f442a5889ec4bb213f35668a9320dd4cfedeee94
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 16:34:11 2020 +0200

    pus parser continued

commit 78283ddbeecefb733fe68408befb3337ad869173
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 14:09:33 2020 +0200

    queue map manager: not using std::atomic anymore

commit b61e1df8bcd2177f06cbdb28e7c4352cee75422c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 13:43:41 2020 +0200

    fifo in namespace now

commit bb5de8f11041014ad9f6c33c98fc6d6e0822afc3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 13:41:07 2020 +0200

    merged new changes

commit 2158208a2fbbd98c1fa5ced154866803f80d04f1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 00:33:55 2020 +0200

    new pus parser

commit ebec074655d40dd60c4553c8b94ce3018d6f7358
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 23:53:13 2020 +0200

    Split up FIFO into StaticFIFO and normale FIFO

commit 2395e487aee6c5cc6701a4e0a50de2ea676e4f0c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 20:42:05 2020 +0200

    udp polling taks init

commit 327b1e9d2f242c49c331533a6d8c34407bf0060f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 19:11:21 2020 +0200

    file renamed

commit 724fee09ff30d8c1e435870a93cd4800e6ac0c86
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 18:58:16 2020 +0200

    new task for tc unix polling

commit 26ab1983dcad5ae88addd3aa9b947db9ee6edfc6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 18:22:39 2020 +0200

    new ports

commit 9e2fa165506192b18ca2ea4fa2540c7918c9e480
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 15:31:02 2020 +0200

    mq stack error improved

commit fcf3f04377910154f4a8302481b5f0cbec5273fe
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 01:25:49 2020 +0200

    diag output for inits improved

commit 9dcf0c711854aff22789f0bdcb5375bde51e74bd
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Fri Jul 3 15:50:29 2020 +0200

    size_t for DataPoolAdmin

commit b86e5664c470bf1b1c9615abb8557d51d3f86eb8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 00:33:03 2020 +0200

    include which was missing, pool raw access size_t replacements

commit 1a177d2efa05f62c86fe33352cf3608d1b96340b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 00:28:06 2020 +0200

    integrated pool raw access serialize changes

commit 24240b6c7d73d124af1caae18ead919ccde203c8
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Fri Jul 3 15:46:00 2020 +0200

    Documented EndianConverter and changed length to size_t

commit c160000027bbe6311fd9c0d318c62a51179129ac
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Fri Jul 3 12:44:08 2020 +0200

    Corrected filename of EndianConverter.h

commit 5cee12684142153d01f31627b0bd9b17bcee31d2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 00:06:30 2020 +0200

    formatting

commit 571da391087a8c03220989ed61b1333543aef4ee
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 4 23:52:44 2020 +0200

    continued new bridge

commit e0a3257f8b945da09aba28e784ebc2756e72f984
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 4 23:20:29 2020 +0200

    even better output for unset max msg size

commit 72768a68152b3fb6778e7c90aead2b6f46d596ab
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 4 00:51:49 2020 +0200

    started unix udp bridge

commit 18173772affc0a39866e74465f443328625a4ead
Merge: 47b8ed23 099e6281
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 2 16:56:27 2020 +0200

    Merge branch 'mueller_framework' into mueller_merge_mohr_serialize

commit 099e6281ecdaccf39127da33e7b86b6eaa3f2335
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 2 16:54:53 2020 +0200

    DataSetBase not bound to max size anymore

commit 3e069c34aa6a076f0394ab6bdf3c66f14294ba53
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 2 16:29:29 2020 +0200

    datasetbase stays same f or now

commit 8011d49ebc3c935cb2aba3ccc267f33ed342a60e
Merge: 837fecf8 68c41e23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 2 16:07:16 2020 +0200

    Merge remote-tracking branch 'upstream/master' into mueller_framework

commit 47b8ed2321c1a71743cb50fa555cbb3f6b2a3a62
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 1 14:34:16 2020 +0200

    split up long debug message

commit d7bff31a4cfd5e720847a0c9525a4099b97560ac
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 1 14:17:55 2020 +0200

    compiling again

commit 6802ff7d710ddab109d513c2091d683d566b68bc
Merge: 837fecf8 6553450b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 1 13:15:58 2020 +0200

    Merge remote-tracking branch 'upstream/mohr_serialize' into mueller_merge_mohr_serialize

commit 837fecf8599a54102c59ea549ac56a876ff5c32b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 30 21:22:26 2020 +0200

    added hk receiver obj id to dhb ctor

commit 062ebabb9a4d6ff625d3fab05cd385978bf201db
Merge: 2de972bb 1820b5f9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 30 16:41:38 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 1820b5f95c4e3d03c06cd7c0ee9b2fa6639adac9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 30 16:02:07 2020 +0200

    hotfix for copy ctor

commit 2de972bb8a9a35b81824f5c6bc5d00802c32dadd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 30 15:51:19 2020 +0200

    const store accessor copy ctor fixx

commit 3a850018550b319476a4ec8b68bd75b035909df2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 30 00:48:48 2020 +0200

    bit setter correction

commit 85cc936d5da669f8f74ea02c87a8204f4a6235c4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 16:50:45 2020 +0200

    added back clear CommandMessage function

commit e2a36efce3d210c85c1ba924cd627a43b1cac922
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 16:47:58 2020 +0200

    csb changes taken over

commit 48df3cbe8382423b671d7b5d651e3b623f4e2d90
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 16:43:02 2020 +0200

    csb comment improved

commit 691be0dcd4f6c8586b4a29b866bc7d9808d345c5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 16:39:55 2020 +0200

    dhb doc improvements

commit 044aa259e6298bf8accff8c8ab53cd373ed186bc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 16:37:55 2020 +0200

    dhb cached pst interval now

commit ae6314d8cd43a0ad8f0c1a7b9bd567be378203d3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 16:06:53 2020 +0200

    added task handle member

commit 003e70bf4785a8b9e57a8f8ab5f67ae0b0dfade3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 15:55:20 2020 +0200

    new initializeAfterTaskCreation()

commit d5d968a39365b2b0c285d8f283a054050e94be3b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 15:46:16 2020 +0200

    some more correctioons

commit b81b458ba6cc5c6819b9dae6045e25469a1d43cc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 29 15:44:18 2020 +0200

    exec task if new init function, some corrections

commit 71f997888b71a0c3b5fc77cec93537a849f5984b
Merge: 61370d43 ba5b8bd6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 26 13:33:19 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit ba5b8bd682e1e3e36612a9c8974a4b27c8bf1151
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 26 13:28:58 2020 +0200

    hybrid iter update

commit 08f25370f3505ebf39f26166b2bf5a4000c28461
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 12:03:52 2020 +0200

    moved typedefs into namespace

commit 0c32a964529105b611b600938c84df647f8fa0cf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 11:54:41 2020 +0200

    some more singly linked list improvements

commit 8d633bf1278e473a23ab67ee86458771a5c45bc2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 11:40:48 2020 +0200

    took over changed for singly linked list

commit 6f2bb4125d7e4cd9baaf812c3dcd118883f65e71
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 02:02:57 2020 +0200

    bugfix

commit 7f3607c3d998fb4473fd7b35b3ddf9ebff7b1dbb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 02:00:26 2020 +0200

    hk service fixed

commit 61370d43da713b54379251bca1c6a07f1456318e
Merge: 65c775b8 bb9f606f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 01:29:11 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit bb9f606ffde07095531ee2d3fac85812ce5f59cf
Merge: 16cbbb26 b2c352b0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 01:26:23 2020 +0200

    Merge remote-tracking branch 'upstream/master' into mueller_framework

commit 16cbbb2693a18cc588661270c482325d4257e95f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 01:11:48 2020 +0200

    linux fixes

commit af24cc7d047cccf09ff5a002a86aa222b18b19ed
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 00:49:13 2020 +0200

    some bugfixes

commit c7c49b4239fe42f4c4da47eba686c41ff687cf17
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 00:30:32 2020 +0200

    deleted command messge base

commit 3bf29a7315d926dc1447e954494f393061ee2c8a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 00:24:15 2020 +0200

    removed CommandMessageBase, changed interfaces

commit 905c1a92e38865558e25bebb10a8c7ca380d2ab6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 21:03:22 2020 +0200

    reverted some changes

commit 56455a5fa290d69f62ad6a17a2ad66b311401c5e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 14:11:53 2020 +0200

    added static function as alternative to macro

commit 67366c25a0bd0b4e532cb8ee48d3d795215c773b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 13:49:25 2020 +0200

    typo fix

commit 5f16d30d822a26fd42ddd2cdc4bc5211db695f41
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 13:47:38 2020 +0200

    all ones value for return failed now

commit 6f4682e1c8848e8fb578af9329c6f274e84a6f60
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 12:53:30 2020 +0200

    hasactionsIF include guard and doc

commit 2ecd7c44937180ab0aad13a1185ed9cc54c9eaa4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 11:05:40 2020 +0200

    some minor improvements

commit 446e7d2f82d46ce9690d3f2c4c84b166407a8c2d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 11:00:40 2020 +0200

    const storage accessor improvement

commit 45ffb7549aa0654f1423ef5cd8dd0f012ab0537a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 10:58:48 2020 +0200

    storage accessor const in own file now

commit e27310da40a420e78cc894746301d318da632bc9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 10:47:31 2020 +0200

    updates for tmtcbridge

commit c0beef44630f991e7307727bbcca6adc81bb48a0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 10:27:44 2020 +0200

    some include guards, todo comments

commit 64a02c55ba9c0f067e64b460b66750b613a31526
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 01:37:25 2020 +0200

    linux fixed, size checks added

commit f7d55a8a37559bf9717b49e414c19db99c5113e9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 01:15:35 2020 +0200

    equal to pull request now

commit 847292ea30e3c71678b0cf994e6436caad71a463
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 01:10:19 2020 +0200

    added overflow checking for periodic task

commit a82dbcbd501a6c035430f8394d5eaebe06480918
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 23:47:18 2020 +0200

    minor doc correction

commit 6a7f47e06d95c91f8f9885c38f0716894735a10a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 23:46:44 2020 +0200

    doc fix

commit dadc867d9ed44d82782d2f3f66cc0f54b50bfe00
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 20:18:13 2020 +0200

    adapted MessageQueueSenderIF function calls

commit 5734a0a0e948df50c57f9d589a2eddac479bb70b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 19:22:52 2020 +0200

    some fixes necessary to perform size check

commit 3b2fa978e1b86ccf1b9c113ab958dcaf81e63b4a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 19:06:10 2020 +0200

    replaced break with continue

commit 109fdad8b36ca1fe99f0ebad89fb28b04fa7d197
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 15:34:35 2020 +0200

    size check for message queue

commit 65c775b83c4ef3c40e3666a10a90c06847349c8b
Merge: 555b7cc9 45a55044
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:48:35 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 45a55044ddd3ded4cac2522313f1db53ac62c1d4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:47:36 2020 +0200

    using debug stream now

commit 95b646046b162d2c47e0a231ae8fad35cc733f21
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:43:29 2020 +0200

    debug output working again

commit 3936fe93609875c7f49332a8a5f24b09d67b7c1c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:34:19 2020 +0200

    linux fix

commit 2c04b87418f2552f836775e4c3eaa1b14bcd033c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:18:00 2020 +0200

    corrected includes

commit 1b0e7c84c7ac2fff9e8b7129110271681c147620
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:15:58 2020 +0200

    linux periodic task improvements

commit 2de811e0afd0ae6a1dc9e4d700bedc693a888691
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:14:56 2020 +0200

    moved timeslot files to task folder

    implmented setting task IF for regular periodic tasks

commit eb4ce980fe93feaba64f01cf13d43d96aaa7d20a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 14:32:04 2020 +0200

    small fixed

commit 60ae2d45655330a3d81dd897b8dfb0ff6456dcd4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 14:25:03 2020 +0200

    continued with hk data pool

    added deadline missed check for fixed timeslot task,
    improved doc for both periodic task and fixed timeslot task

commit 84b8d733c0065280fbb1e39d81bcb8f20fc1ddb7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 03:03:17 2020 +0200

    hk continued

commit 583efec3f8d93efab38c792a9f264f29b0bc01c2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:45:44 2020 +0200

    nullptr

commit ed26992d7f1decf404e04d39477836381ec5635b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:40:40 2020 +0200

    shoulddo added

commit bb16fd80b8d60813f0605737e2cdd47d729effbf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:37:45 2020 +0200

    singly linked list improvements

commit 259517ac9ba0cc51e61980883467374b3ed849f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:22:09 2020 +0200

    single linked list improvement

commit d5ae74f86073c2f9847f4abbd9ed921cdb5ae094
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:21:49 2020 +0200

    bugfix hk message size

commit b68ad9e4f9182f8e216e69b34d58138e4044494f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 19:50:26 2020 +0200

    new ctor for simple ring buffer which does not

    allocate

commit f8f10a173033b71d0bb4916cf89243327c0c2921
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 19:41:10 2020 +0200

    slight hybrid iter improvements

commit 38676308e332ead072d35238c95953b7e64abaec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 19:37:55 2020 +0200

    improved array list a bit

commit 813e82415affa80420751065d83454ae88d47262
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 16 11:03:24 2020 +0200

    additional doc info

commit 555b7cc9823123443724d3d61281576cca288fc0
Merge: cd424d79 7871ee7c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 17:59:59 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 7871ee7ca810bc49380b3362b3d0c9e1c0e49e0d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 17:39:52 2020 +0200

    mutex helper little formatting correction

commit e39d5689e537be8ae3595383005d62e656ad554d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 16:56:22 2020 +0200

    device com IF formattign

commit c9d8bd59f0120dca352352dab737d39c43896131
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 11:11:42 2020 +0200

    ctor improved

commit 6ecf1cf534b1eaf45be731263a241b629fa3d937
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 14 19:03:28 2020 +0200

    hk message continued

commit 9f69191f234d84e8d73b6ceeeabac3699466aaea
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 14 17:59:14 2020 +0200

    optimized command messages a bit

commit cd424d79e7fe68e3fb14249399bc2beb96eaad10
Merge: 60aed39b 8c03f6a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 14 17:13:52 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 8c03f6a823afca715f51d01cbecdbaa5e6ca185e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 13 21:01:01 2020 +0200

    command message only passed IF now

commit 6b67f46c802aa1b421689097d3faf96668073c71
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 13 17:37:48 2020 +0200

    evil hidden bug found.

    CSB uses CommandMessageIF now

commit 7b538e9750001a7b91a89fbde5a47f9b619674eb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 12 20:23:39 2020 +0200

    introduced command message base and

    command message IF

commit f578c3ea29731f29153741b1ee99ae95c02782c6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 16:46:18 2020 +0200

    set buffer: const buffer is set too

commit 60aed39bc5bd5bcc3bf6abe04ebfed73f1b95eee
Merge: b6427d01 6838a9e7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 16:22:50 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 6838a9e7687a7232f903b5b39c11fe026bf476ff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 16:19:22 2020 +0200

    serial buffer adapter bugfix

commit 206235ed47e0b086acc06015aeb36484bfeeab76
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 16:03:09 2020 +0200

    dataset base bugfixes

commit a9c7ad84c8b93c39021194e99306e023432b4ee0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 02:03:18 2020 +0200

    added new interface to host and linux osal

commit c1fe326f67f7e734b2f2a8b8d2f9bd569fc537b2
Merge: b2ed0edc 3268806f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 23:42:09 2020 +0200

    Merge branch 'mueller_framework' into mueller_newCommandMessageTest

commit 3268806f75a3ea8ceaf7ce933276133d26b05719
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 22:51:54 2020 +0200

    split up huge function to be more readable

commit b2ed0edce0fd0499fab41e900d877ea42d10b6ae
Merge: 47aa9ddc 454524d2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 22:45:04 2020 +0200

    Merge remote-tracking branch 'upstream/master' into mueller_newCommandMessageTest

commit bb9a299e33ce7429314acb58606f964613a31589
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 22:19:40 2020 +0200

    added back removed comments

commit 5007041bc87e39a44284de14f465fa0478cbc2a0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 22:12:29 2020 +0200

    cleaned up includes and improved doc a bit

commit 659594bac71505492c01feff182a2577f79fb1fe
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 21:35:47 2020 +0200

    better include guard and doc form improvement

commit 606957dc243f31d18d80f51885f4684fc134186b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 21:26:45 2020 +0200

    PSB update

commit 8fbd414a86c82e66f21c1a2fa89f2af005fed1e9
Merge: 52c88792 454524d2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 20:57:04 2020 +0200

    Merge remote-tracking branch 'upstream/master' into mueller_framework

commit 52c887925fe68f0729db72925c24e3b703ca600b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 20:53:28 2020 +0200

    iomanip include

commit b6427d017be03a19bd847e8ffe800c1e7b9fb892
Merge: b20ba1f9 20e3b3c0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 01:19:00 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 20e3b3c0e2eeec791f2f7c25e1893808af28c0eb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 01:10:16 2020 +0200

    0 replaced by MQIF::NO_QUEUE

commit 3277d199ac166db242ff1fb7b5edfab6fa2964ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 01:07:50 2020 +0200

    linux mq update

commit 47aa9ddcc382393279c0a769e51e7d732cf25a35
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 9 02:46:19 2020 +0200

    doc for mqm improved

commit 8ff6506ad90965f6a42d2b03a1fa2b2638f436c9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 9 02:18:39 2020 +0200

    MessageQueue refactoring complete

commit b1f91439c6325593c59099cbf93d214c27820fc8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 17:50:09 2020 +0200

    deleted copy ctor taskes const ref now

commit 07302e0d2aa55dc7a0ed77c595e94f3c4ae9899f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 17:44:54 2020 +0200

    removed include

commit b20ba1f938a213c6408d326eb6a591d119b81e61
Merge: 3b4413a6 514ff4f4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 14:06:01 2020 +0200

    Merge remote-tracking branch 'upstream/master' into front_branch

commit 3cb79ebc864d17556c4b0743ec3c57f71001fea7
Merge: 0ea249aa 514ff4f4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 14:05:40 2020 +0200

    Merge remote-tracking branch 'upstream/master' into mueller_framework

commit 0ea249aac46c7416aa5b908b9c5f844ac8e09388
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 12:25:20 2020 +0200

    messagetype namespace im small letters now

commit 4c41456ddffb6800119c0e6a0d90f4ff03bd4618
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 01:22:21 2020 +0200

    thoughts on message queuee message

    new interface. What if there are MQ messages with different sizes?
    -> generic interface

    furthermore, maybe command message should be refactored to operate
    on a mq message instead of implementing it

commit 2649fa150706bc93d88137dc1de595d2d17272b2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 23:38:15 2020 +0200

    small small command message tweaks

commit e8bc2cec9f267079f29e78c94d90d4e107e7eba0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 23:26:52 2020 +0200

    small comment in semaph factory

commit 4a90f41122339e106b7ec52f45fcd982dccc5c39
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 18:53:55 2020 +0200

    generate HK packet function continued

commit 3b4413a6ee268d2759a5ef94c1ce8348c7f4d425
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 16:12:23 2020 +0200

    added queue lock for  receiveMessage

commit 98e6ca5f78b19e679f5f527db1c3612f8e1f214a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 15:22:32 2020 +0200

    removed locks in lockless functions

commit 73932f0349a958aa15b932f23e56dfa4277a02a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 13:58:51 2020 +0200

    object maanager tweaks

commit fe5b50d8857bb07d7c84d2a89e8cf79d65f6d7a6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 02:22:18 2020 +0200

    improved documentation signigicantly

commit d0b218c18e2cdd65405903626566f5c996064876
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 01:40:48 2020 +0200

    renaming for host os

commit 3c80bdfefa8149823ed9fb6273cabaac3d02ccc0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 01:18:19 2020 +0200

    some linebreaks

commit 33cc8591dc2f2ca920dbe86d05e35f8aa40c736c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 01:17:24 2020 +0200

    yaaay, hardcoded values

commit c81613690be10ae70c6e18f373a303d77b80052c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:41:54 2020 +0200

    no_queue value is 0xffffffff now

commit 65999ac6d6c2d8d1cc1b7b30f38366bf67f96054
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:30:16 2020 +0200

    pool var no param is one now

commit 3d8993b0c599636fb7549ade76ca08cb47f0b4f2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:23:20 2020 +0200

    new typedef names

commit 9ed92e5e6f24721446613138f81939c763ae4783
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:21:51 2020 +0200

    clock typedefs renamed

commit 70212d9f4e979b1092e151cc7cb666b085acddad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:15:42 2020 +0200

    slight formatting

commit 8216b26fdee2f5e7dc552b0d037219149abc7edb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:15:05 2020 +0200

    datapoollocal updates

commit ea548dea5bbd969ca17cf9cb48a6b5cfad5e8fda
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 21:16:47 2020 +0200

    map lock init

commit d99be255292e7682bac12dea38258c9cc4eed707
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 20:52:28 2020 +0200

    cookie info iter was uninitialized

    leads to crash

commit 262d34174ea9a7bd46b7ffd12b70e9e1258fe063
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 18:56:54 2020 +0200

    using strncat now

commit b79efa6d6c87cbb9d122b654b706a0279df093a9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 16:25:06 2020 +0200

    variable for name len

commit 096fbec156dc27d269154bebd70b61e9d7ed1c70
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:40:10 2020 +0200

    cleaned includesu p a bit

commit dc9ef41bec99951a0012cfa1a6ae17edfbff5bd5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:31:45 2020 +0200

    added doc for linux

commit b0634ab0a2f53fc7e1e194391f7ef4da80077931
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:26:22 2020 +0200

    fixed bug (critical!)

commit ef01b7814064e6847ce8e90ea00e8ea09bb36111
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:01:57 2020 +0200

    some issue with stack size ..

commit 212cd58f9a7a8c7b1ed86b5a4b4f46c09f645022
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 14:45:45 2020 +0200

    issues with fixed timeslo ttask on linux

commit 788f7a37459dbd445253c4876da62d0a2298c2d6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 13:59:00 2020 +0200

    better name for mq

commit 95bc5a871b6a3e823cc6ed1c7564e3540456fda0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 13:56:35 2020 +0200

    improved diagnostic messages for linux

commit 04236859daecfcde5ed24829623d0a5dbf5da070
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 13:03:37 2020 +0200

    slight improvements to diagnostic ouput

commit 5289497ab5769fc61ba1816322c4f86377cfd36f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 12:59:43 2020 +0200

    health helper optional, diagnostic output improved

commit d35524ecbcbcd49d8f95e37180c787f606fad493
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 12:41:17 2020 +0200

    decoupling from raw reciever, linux mq improvements

commit 8e7593d68a8bf7f909cf87f2daea6625c6ef4010
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 02:10:21 2020 +0200

    removed error handling in separate fnctn

commit b4561465ba273718f03b8f32e73eb4d5ffcb7610
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 01:36:07 2020 +0200

    some little form improvements

commit d600d488167c891407e27b3d3f545d02e319fb2e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 01:31:08 2020 +0200

    added the decoupling of DHB from powerSwitcher

    + some first hk maanger changes, might comment them out

commit 87f64d99cd1b7eae59b601140d13a5b92565f384
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 23:18:00 2020 +0200

    implemented fixed timeslot task

commit d74f2c7560452a9b82ddfa4020335b73d971b8a5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 21:40:06 2020 +0200

    housekeeping folder added to .mk file

commit 579115f904e5287ad0bd8d15038b6d707a72523f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 21:36:50 2020 +0200

    adapting host osal

commit 2b646551e96882aac5c62232b9c88a0271209440
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:40:22 2020 +0200

    mutex helper new output error

commit e9a9a543ce3fbf8a9ff57e337513e050e6004c8e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:38:59 2020 +0200

    fw message count one line further

commit 0d4d4123ab28a10376c8ba6c6cc7bd3be5c54e74
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:37:46 2020 +0200

    added new message  type (hk)

commit 7247a1af7efde551f6e7d619e66917d9d4717562
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:36:25 2020 +0200

    new class ids

commit 9ec2283d1397b5699796517cc47e3f82e327757a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:35:08 2020 +0200

    hk folder update

commit 319fa9ddb6237c58d9fe8b0e5763b0b463ec82a4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:34:34 2020 +0200

    datapoollocal update

commit e04e6a6f1506ca90498803bbce49e854e5ed5d4b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:33:57 2020 +0200

    datapoolglob update

commit 9fd5ef0194ebad3e2fe1bfc90b705fe7438ac29b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:28:06 2020 +0200

    updated datapool files

commit 8d3ac33b0ef0b22e35dc102f9d715878780d50df
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:18:38 2020 +0200

    reordering init list for compiler

commit 872c350a9296999af94ad2c275fd2bf34abec1b0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 18:36:22 2020 +0200

    another small bugfix (this-> was missing)

commit ef3e5c4582df70896758e775bed5383b7c415689
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 18:20:21 2020 +0200

    very important bugfix for serial buffer adapter

commit dbeb04895b2d86731be07c4f6af7b1f7f09316fc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 17:55:03 2020 +0200

    added hosted OSAL

commit 4ebd937fe036e5a9427f2bda8683bfca58d5207b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 16:47:46 2020 +0200

    deleted old printer file

commit abcd818f2f48f6805ca1bfadf9d9694078e6a963
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 16:44:31 2020 +0200

    printer renamed to arrayprinter

commit 2a632ae711565b8dbcfd149e5b82f44b647681b0
Merge: 405e1149 d7036edb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 16:03:58 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit d7036edb94e7d64626e3cacf3d205c2b9db143a9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 15:53:20 2020 +0200

    hotfix

commit dd210e99af8ece3866bc898ec3daa631d90b8d9d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 13:45:18 2020 +0200

    additional include which was missing

commit 904721cc3638ffac5a1c4758e84395726d2a415b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 13:44:11 2020 +0200

    improved pool entry iF

commit dd193fd64d302e5592dfddc8a4395101d921b61b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:27:37 2020 +0200

    obj manager.cpp improvements

commit e4944a067c3624a669c4703bfa0d5dce5f1b4119
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:24:44 2020 +0200

    change made was wrong (pointers in map are not deleted!)

commit d423c001156916fe62b3113c539dee9931f359fb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:14:35 2020 +0200

    additional nullptr check

commit 569724843e7196d5c7ca0b324cd575b6aa9aa9ba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:11:49 2020 +0200

    object manager improvements

commit 849053b830d92ccd463779569cb6c450033b47c1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:04:24 2020 +0200

    small fix for object manager.cpp

commit 71487d60ca524042c95dffdf1582252f028f35e2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:01:09 2020 +0200

    onj managerIF update

commit 3eca16ff785b928f7015444d987a5dbed0ce99dd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 20:59:52 2020 +0200

    removed exit clause

commit 405e1149e56e2a802587b98ff4451ea16268d5c9
Merge: f0be1b1f 4d59ddc3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 20:41:30 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 4d59ddc3db6d9382e61bc4492e51c63283174489
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 19:50:26 2020 +0200

    some fixes, check for preamble size

commit 6ff1cf46c5cda5e6c9ecb85926acc68c8825b1ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 19:40:43 2020 +0200

    new service interface stream

commit f2a9d2969617f8f3ca9ae8b5fce1e156e8dfb36a
Merge: a115bf11 d75e4716
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 14:45:06 2020 +0200

    Merge remote-tracking branch 'upstream/master' into mueller_framework

commit a115bf1186d075ea8c6b98c03ba847f22d41251b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 14:43:33 2020 +0200

    store access improvements

commit 925a54dec965b0c52d312616f9f42902fd5fac2e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 01:06:03 2020 +0200

    more improvements for servicei nterface

commit 17ed9b77967f6a8ba2deb281a730df3b33fdadb3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:38:02 2020 +0200

    OS renamed to OS_FSFW (nameclash with system variable)

commit 5eb3d77bdbb1f4537c95d5c6919a0792b8f274e6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:29:00 2020 +0200

    clarfiying comment

commit 0a512abc3364855116a4756e42aeac33c0aa2fe2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:26:27 2020 +0200

    additional clarification comment

commit 5b93799ea659b0b93bd769657c0d00c390786e26
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:10:04 2020 +0200

    added forward declarations for service interface streams

commit 1c0ca4c329c99caa75f438745b53a53f2978cd30
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:02:23 2020 +0200

    some changes to take care of activity

commit 3483dff2abf171f85f61e498c6ce3c10131783ff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 22:56:03 2020 +0200

    some more interface improvements

commit 5036cdbef3f23cc878c2ce09f66fc648fd34bbe5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 23:54:24 2020 +0200

    queue factory first param uint32_t again

commit 6972e72fbf2a1a5f9dd1adae9c8274ecb1119581
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 23:52:31 2020 +0200

    fixed order

commit f0be1b1fff0c43e0562c577bcc5166e54f5212d6
Merge: c34c6238 54edeacb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 22:27:57 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 54edeacb2d20dcd5a01c0a11e3337b18fb3cf364
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 22:25:28 2020 +0200

    changed names for linux

commit 986dc2047e7ef0f52ebe8bd54fdf7f0fd565a518
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 22:19:48 2020 +0200

    replaced mutexIF and semaphoreIF name for timeouts

commit f0a25b5e2b0e26e549145ff429fc707a5f7c6bb3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 22:10:34 2020 +0200

    new timeout values for MUtexIF and SemaphIF

commit de6ed5c0859e528b798fdb214cf62b7a3143762e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 15:57:04 2020 +0200

    improved include guard and removed old comment

commit 42f0687a6bcf0f1c947ef00dfeea95fa3e060af8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 31 23:28:51 2020 +0200

    self deletion nullptr

commit c8a36a79de45c228e7071cc827423e0b4a383998
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 31 00:23:38 2020 +0200

    corrected doc for task factory interface

commit c34c6238c63b70df5167c0c0856dabbdb65a0890
Merge: 66b75802 7a22d12d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:56:06 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 7a22d12d0f1328ff55e3e2826e58000e191ef643
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:48:24 2020 +0200

    removed extern "C", not needed

commit 914bf8b9fc1afff3cf98675b4a98707099cb4021
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:45:53 2020 +0200

    seconds_t is double now

commit 4d4ca2f3bd87efaca572378e107f92dda2c57eb2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:43:37 2020 +0200

    doc fix for stopwatch

commit f13eff79c90a174011c6d3b6c617ce25b575cc76
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:51:09 2020 +0200

    another little include guard fix

commit 6b0558d6c71a5b23b2f678d5b18e170cde60e706
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:49:11 2020 +0200

    added author tag back

commit 3ef939aca8cff90c0ad51418e859eb69a76a655f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:46:26 2020 +0200

    fixed inclue protection

commit 5cf9e938cccf450c5a4ad5b7fb74f7cc4b3705ff
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:45:03 2020 +0200

    added include protection

commit b90492562ac44f576ab7c7519826ae272d5be68e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:40:57 2020 +0200

    added author tag back at class definition

commit f14bacba32e97c7d74e55405d59b9230ec4e362c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 14:15:45 2020 +0200

    using nullptr now

    added new distinction between blocking (MAX_TIMEOUT) and polling
    (NO_TIMEOUT)

commit 6a3dc94108304d9cf0cdde1cc82ecc6dc62390d8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:18:27 2020 +0200

    removed extern "C" for freertos includes

commit d5352a9b87a604cd8535963d2a7fcc8176b2182b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:15:37 2020 +0200

    actually extern "C" is not needed

    it is included by freeRTOS

commit e7ae35c6592fb101ebe2fd44517a8cfc62b1096d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:09:47 2020 +0200

    improved structure a bit

commit 5169c09fd8d56eb041011da9062bb325578a313e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:07:35 2020 +0200

    improved includes

commit 78ae109a08ec58c17b1b966944992da0b74da011
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:02:13 2020 +0200

    removed context switch request

    (shall be done at end of ISR, so must be performed by caller)

commit da403c01d0178d814896d4c26561e092c1ac2a6e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 03:03:48 2020 +0200

    retval fix, unittest running again

commit 3d2935ac6917b6d8f20c68011cd77cf9d5890686
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 02:23:14 2020 +0200

    linux time lib improvements

    stop watch other function used (more precise for linux)

commit ccf79ab5b63d5870dfd8aabde90895746f9cdc08
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 01:55:20 2020 +0200

    output correction for linux

commit 671f298935a640e33274e1a5fd52339e790068b6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 01:41:16 2020 +0200

    implemented counting semaph for linux

commit 56498e5bc12076330e8f1b74ce7955b16005d0aa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 00:50:44 2020 +0200

    linux bin semaph unlocked

commit 8676fcd9a929b619b65c1598434c75261fdb74b1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 00:47:54 2020 +0200

    yay, linux bin semaph finished

commit 60872f936ce2c2566b388e1e40bdb24194178453
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 23:43:40 2020 +0200

    some output improvements

commit 08ffe89682e72c70876d3dbfd0555161e16608e9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 23:41:59 2020 +0200

    doc and api improvements

commit 7ce505fdf9234630298dc6560b625cc44f41770a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 23:29:06 2020 +0200

    some safety updates and fixes

commit 63dbf995925f181f406173ba380d36b8faadb393
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 22:12:52 2020 +0200

    counting semaph implementation finished

commit 95bf5c1071a84696cc0e15abf9a01102764caaca
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 21:33:34 2020 +0200

    improved const correctness

commit c4e60946d3282c497714cb9345918069afb11047
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 21:30:20 2020 +0200

    improved bin semaph implementation

commit 88e3dc15b2604de0c337f2bf4911ee5e4780588f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 21:27:31 2020 +0200

    replaced old semaph api

commit 7145982b4ade5f3da12e8dd05161b11e45512998
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:59:59 2020 +0200

    improved documentation

commit eabee85ba9f1dd014abc66d13e212427dc328242
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:56:02 2020 +0200

    tweaked factory to have configurability

commit b4065c776437b39613542d9beff87ba06e6242ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:46:56 2020 +0200

    seperation of semaph implementations finished

commit 8a1e0dab0370c5b454fcb9e95de0f1349000b380
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:03:46 2020 +0200

    continued with task notifications

commit 2d33274c2306fd51b4ea512d5d399502755f20fa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 17:42:18 2020 +0200

    implementing new task notifications

commit 968d7fad815877213c154845bc058140e47ee91b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 17:07:35 2020 +0200

    replaced some timeout values

commit 66b75802b24f1498f8baf189d2475ae6c3e7797c
Merge: 9b5095e5 5b521e03
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 12:58:17 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 5b521e039b9cb3973561cc3483ed15794c1d41a3
Merge: badcacad 18d19fbb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 12:40:01 2020 +0200

    Merge branch 'mueller_fw_loc_globpool_distinction' into mueller_framework

commit 9b5095e5b8009a0b4fa11a6824f8b536ad018f2c
Merge: a926312b badcacad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 12:28:43 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit badcacad49e3790df3cda101dc9da973287238de
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 11:48:11 2020 +0200

    added new timeout values

commit f6ae0348cb50dddefa867dc3a0344dac99efef2e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 11:41:36 2020 +0200

    some linux mutex tweaks

commit be4ac0bc8fa03faee1330a9899cb9051485eebba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 00:28:13 2020 +0200

    added semaph factory to linux

commit f7dd91891a644c660ff8ae7d6c183e84faf75d9a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 16:05:03 2020 +0200

    removed comments

commit 1a623a6a527599efc6ee8d4e28e85c405c58cb9a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 11:05:49 2020 +0200

    added override

commit a19fa231f51c6b83c0417afe08e208e2bc8c2563
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 01:21:48 2020 +0200

    comment improvements

commit 9f2d5b64e009349a03be6990f43b8a3fddc5a02b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 01:03:26 2020 +0200

    comment improvements

commit a926312b2506c2c3b324d2856767d1252d76ab16
Merge: 8ddccfe3 242ca355
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 00:08:00 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 242ca355f51008eb9ada619295cf397dbc49ae35
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 00:01:07 2020 +0200

    removed swappers for arraylist for now

commit 8ddccfe3bd017d69b576945f06814f9fd1fd4723
Merge: 219d85d7 3fd30635
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:54:39 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 3fd306356a4b2eefeb78bf6f4cf6d197b7c5c7ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:43:44 2020 +0200

    fix for dh returnvalues

commit 243ea9cd8782a4edd74259351b8fb536fdf95bca
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:38:51 2020 +0200

    improved dhb IF returnvalues

commit eacda67f027dc24a65f60f08b837b2358aa094f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:36:03 2020 +0200

    added some comments for returnvalues

commit 18d19fbb2c7575cf7b880e0caebf5cbcbc447358
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:12:25 2020 +0200

    < removed

commit a37f01cd0ee31c57f8f76f3b299c2f51718e9d85
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:11:56 2020 +0200

    improved readability of mode explanations

commit 96462ba8dc4cc7c6389428dca2e35f1e584fe260
Merge: f6ec65d3 7a0cbfb2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 22:29:33 2020 +0200

    Merge branch 'mueller_framework' into mueller_fw_loc_globpool_distinction

commit 7a0cbfb2f5cb9b17fe05a1db1978837796dea0ad
Merge: d6af9da5 cb14ec15
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 22:21:13 2020 +0200

    Merge remote-tracking branch 'upstram/master' into mueller_framework

commit 219d85d700d3791efb3158544f281b2a97b4e1f5
Merge: 723e7150 5e91363d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 15:59:17 2020 +0200

    Merge remote-tracking branch 'upstram/master' into front_branch

commit d6af9da5661f7ccc4e423ff0422a687a5cfbfc8e
Merge: 723e7150 5e91363d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 15:58:57 2020 +0200

    Merge remote-tracking branch 'upstram/master' into mueller_framework

commit f6ec65d35dac92c7de50eb848fc0a7d3ac11a02e
Merge: 8eb13ec6 5e91363d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 14:49:22 2020 +0200

    Merge remote-tracking branch 'upstram/master' into mueller_fw_loc_globpool_distinction

commit 8eb13ec6279624aaecd5e3b9e95744461a7b79b6
Merge: 2f16b1e7 723e7150
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 14:02:43 2020 +0200

    Merge branch 'mueller_framework' into mueller_fw_loc_globpool_distinction

commit 723e715022e6d5ada2dfdee9da5a6f3d7450faa9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 14:01:35 2020 +0200

    consistency fix

commit 2f16b1e7336a1b174bfc0da4ae5437c925c6ac21
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 13:48:43 2020 +0200

    moved some files

commit d4abfacd27b09c17f898e80c62f969610a5d6367
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 22 01:15:02 2020 +0200

    found solution for circ dependency

    had to put store_address_t in own file though

commit d2d1ef9a854727a0381ccab719d2a8cba8a4acf0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 22 00:58:30 2020 +0200

    better include guards

commit aea18c423e030a65309495152332f32592bcd06a
Merge: 7c48274c f6b17d6e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 21 17:01:29 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit f6b17d6e2ea6156d06214937c70bee305707a836
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 20 12:50:56 2020 +0200

    deleted copyctor and copy assignment

commit 338651af2f7a67422cda787b56b513f020325df4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 23:07:28 2020 +0200

    binary printer added

commit 9b53e2b64fe9327f55eb12b393a91c666b836dde
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 22:45:48 2020 +0200

    added informative comment for counting semaphore

commit 7afaa752f37422254f962982a41038afb0fbe8da
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 20:25:54 2020 +0200

    form improvement

commit 1aef000eff336b97917ac4c178d95749ec9cd5dc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 20:24:58 2020 +0200

    printer improvements and fixes

    tc packet stored getter function

commit e2418d61a6263f67f2db96ac265f0e271766a28c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 19:53:10 2020 +0200

    improved printer

commit f612b095c1c508466098576866827dc065dc9809
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 19:39:19 2020 +0200

    updated tmtc packet base

commit 2790a40d6c35d27bb8e86121e02c6ca9f0ddf4ef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 18:55:13 2020 +0200

    some renamings

commit 3c7e2c7cfff53bffd4e84de778dcf5d71fc13939
Merge: b12bace3 066930b1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 20:46:50 2020 +0200

    Merge branch 'mueller_BinSempahInterface' into mueller_framework

commit 066930b110730c8c781f0b680e1f7b99f1dbe920
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 20:39:48 2020 +0200

    improvements

commit 7227c3a8667a1ead8c4160b8372d350e79617de4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 20:35:13 2020 +0200

    implemented semaph factory

commit 067cd9573100952c1398b956a8b7d2cbeab93a3a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:42:45 2020 +0200

    removed file header

commit b1d9d55f50a0e242ec57604934659c7fff50eb01
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:42:05 2020 +0200

    improved documentation

commit 4dd6594845deb381b80fcb2ba8e0ec27acec27e1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:38:02 2020 +0200

    integrated interface into bin semaphore

commit 9ba21b1e288ba9f8e20fae9c4cc7ea6923b2651f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:30:50 2020 +0200

    semaphore if continued

commit 87bf843beffe92f7f535609cb83fcb4378f952be
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:19:50 2020 +0200

    binary semaphore IF init

commit 45b0193ef38b70a4f1d5be76564258bc6ab5c928
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 18:06:40 2020 +0200

    bin semaph todo

commit b23728731548d900b97a70e3d32565ebcfcc50e7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:48:16 2020 +0200

    bin semaph sif replacements

commit ec8538b442eef934a6cc1dfb8033c069cbed06a6
Merge: 41c0ca6c fc4199c3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:46:04 2020 +0200

    Merge branch 'mueller_binSemaph' into mueller_FreeRTOS_improvements

commit 41c0ca6c52a728ffaf359805efb0df0319b9dcc3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:39:10 2020 +0200

    added doc for switchSystemContext

commit f8614e23a867d21d64922329164920c41ab55c38
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:38:19 2020 +0200

    deleted copy ans assignment ctor

commit d1500a78685d18e05b94419be69f9cb09056c127
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:31:05 2020 +0200

    mq doc improvements

commit 1d4d01d1906d1300eb7fe4e65d259afe64210a81
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:22:10 2020 +0200

    Added ISR calls for MQ and task mgmt

    The task management defines an external function which
    implements a context switch call from an ISR

commit b12bace3857588cfca51e0b0c8df37fec0d6c31a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 16:40:11 2020 +0200

    changed order of input arguments (relevance)

    default argument for ACK

commit 7e04c055b353b1cfe6817a2cc2e0fbbca4db631e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 16:13:46 2020 +0200

    tc packet stored formatting

commit 355bc2b9057da4f79ead6aa0e7882b9220edffd7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 15:42:47 2020 +0200

    improvements

commit 767850e12546ddb7b17d344ee32a1c5bb389a593
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 23:58:57 2020 +0200

    deleted poolvector

commit d1b315c7df5882427c41c77bf732f606c73ab50b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 23:54:56 2020 +0200

    pool raw access adaptions

commit 1d28e1398ea927a74a0fc492e4db468122d41afa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 23:41:28 2020 +0200

    DataSetBase class finished

commit 71f1722b886d002a0b8fe550771ee1ed4cde1cc3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 22:20:54 2020 +0200

    removed old poolVar file

commit 9da0b0b2b299b7abeb9b73dd8fdb624942de996c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 22:16:25 2020 +0200

    glob pool vec implementation in tpp file

commit 8b1fef730dcb4cd4f21c3f90121b1c6a74758f63
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 18:02:58 2020 +0200

    resolved conflict

commit 234fd8e300d37bd5293508542ec0b6e5b16c259b
Merge: e9a4056d 0467b6a1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 18:00:51 2020 +0200

    Merge branch 'mueller_framework' into mueller_fw_loc_globpool_distinction

commit 0467b6a1bf60481b74850096c60fc09304bb7ee6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 17:53:18 2020 +0200

    slight DHB improvements

commit 7c48274c9b5a2ae904accae6cd5f01e9e85a8164
Merge: ebcc4742 9597a012
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 17:27:04 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 9597a0121ba7177b7b18beca9319c37be0f230d7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 15:49:46 2020 +0200

    DHB update

commit da972e1b5823cde5cfdf4611e42736d6e8bf7b11
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 15:41:42 2020 +0200

    DHB improvements

commit e9a4056deb17756f70973d6f383182fbabdf90b2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 15:19:24 2020 +0200

    added DHB cookie init

    (why was that never a problem beofre????) ¯\_(ツ)_/¯

commit 9056ad36ed69575e499376558839d0bc044ca4d3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 14:13:31 2020 +0200

    object manager better output

commit 5b8a6e35dcc3e36715e2eaa39345744e3b2ebaef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 13:37:50 2020 +0200

    renaming complete, pool in namespace

commit cbfa21d45a51bbe97d6d35a6b54ab8f409a8f2d1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 01:17:11 2020 +0200

    merging renaming into main branch

commit b673e13892cf7aac425569709a140dc4b589ec70
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat May 16 20:58:48 2020 +0200

    some refactoring

commit 7d579889792144e9cf45fdcc332bb3636c69f488
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat May 16 13:09:50 2020 +0200

    added deadline check

commit 20900227f8bc119befa7dcc2bd5ca3fea3d74e1b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 22:53:01 2020 +0200

    periodic posix task ctor format

commit ebcc4742a92c6aa2152aa7cc8953a587f05fec5b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 21:14:21 2020 +0200

    removed conflict markers

commit abdf04ce79b58a34c8576f18b466327c398694d2
Merge: d44a06fa 0e243841
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 21:10:56 2020 +0200

    Merge branch 'mueller_framework' into front_branch

commit 0e2438416d0af245d086175868a5496c679b94ef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 20:00:43 2020 +0200

    added comment

commit 5b41f2a6bd4e91956874fff43774865d9887dab5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 19:58:58 2020 +0200

    optimization

commit c77ec9e7fcbe038a4622b3faf3cf311d6d3cc901
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 19:56:54 2020 +0200

    uint16_t correction

commit 3f71babfa995965ef39299f5285ad5990efe6921
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 19:50:51 2020 +0200

    app data len uint16_t, full length size_t

commit 24bfbfbd33e93d35dabd716d72d67eefc9512b11
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:56:06 2020 +0200

    removed StorageAccessoremoved StorageAccessorr

commit 80cee2742964485910faa168cb9a1c96e2c0dec3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:53:54 2020 +0200

    printer fixes

commit d48fe8fb0997c996d6f30ab1b017b7e5f1da9529
Merge: 6e1bb16d 1b093d96
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:51:58 2020 +0200

    Merge branch 'mueller_globalPrinter' into mueller_framework

commit 6e1bb16d4e22f5e4b0b3d9010a5662ffe7f1b16e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:46:58 2020 +0200

    printers continued,

    possible  bugfix in tc packet base

commit 237dd4a256598ed805442a71bef58a4ddc9aabb4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:23:57 2020 +0200

    added additonal functions for tc packet base

commit 5ac32b14f070c926429969a459106559e8cdf08d
Merge: 684da2b8 effac0e9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:23:45 2020 +0200

    Merge branch 'mueller_globalPrinter' into mueller_framework

commit 684da2b8d5400ad68a59a59579bbb9244a1be5c3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 15:30:29 2020 +0200

    set application data function added

commit 69237bc2e87fba9d5b3c8dfc91d11e328e2bdfc8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 14 21:26:04 2020 +0200

    freertos includes adapted

commit 49fa2fe32c6bfc4fba6fc91e8cbf564eb7532658
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 14 16:12:01 2020 +0200

    changed void* cast to QueueHandle_t cast

commit 50a1b5170aa472c143c8a1a349e04316fb399225
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 13 18:03:09 2020 +0200

    formatting

commit 19e51575cf67c8c1eee1ec402e55cc4dfec74611
Merge: 3122f62b 0e56a094
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 13 12:53:25 2020 +0200

    Merge remote-tracking branch 'origin/meier_framework' into mueller_framework

commit 3122f62b0a1e81268ad5f7ac8fa249a5458dc906
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 19:02:59 2020 +0200

    bugfixes for write() call

commit 291710f257745e60e8417b2fa3648dcbfa09ed5d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 17:57:37 2020 +0200

    new ctor and bugfixes

commit d873fcbf8ece518e1da89500ef8195da4384c1a3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 16:47:47 2020 +0200

    added documentation for storage manager IF

commit 6c70abfe1621a83074f21476d680bc808a52576f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 16:32:01 2020 +0200

    moved pool accessor fuctions to local pool

commit 5af0c15dfc6906eb16675e53416c0fe2f95b34b0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 14:12:39 2020 +0200

    simplified storage accessor

commit 1946af64af5afb479bda4604b33d712eef99e43a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 14:11:00 2020 +0200

    storage accessor mutex lock removed

commit e5c46c5ec1be4ed2c6e890b26a33361b9c3cdbdf
Merge: 43d3ca7e 77565c74
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 11 19:25:45 2020 +0200

    Merge branch 'mueller_FixedSequenceImprovements' into mueller_framework

commit 43d3ca7e379cf1dd20cd0372cf4883eb468d030a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 10 21:56:21 2020 +0200

    memory message: no retval

    CSB: retval

commit d44a06fafc1a63ec38354438910b556e0f1c6b81
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 10 12:48:22 2020 +0200

    removed cfg include

commit 2f58c3a3052506e922ba1758e9a7fa4f1c642c9f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 10 00:14:00 2020 +0200

    commented out storage accessor

commit 0f286461d065f25ddda7b63f4f3ae45d2e6b5db3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat May 9 18:10:26 2020 +0200

    added new storage raw accessor

commit d35a6e6c147e381dce6029db1fd857625fff9ec9
Merge: c05b9cbd 6dc05e49
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 8 18:41:07 2020 +0200

    Merge remote-tracking branch 'upstream/master' into front_branch

commit 9489b7abc1bee2a2b164e81f178222706a8c2b8e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 7 19:23:56 2020 +0200

    modifyData override deleted

    is not really thread-safe anyway

commit fe9aa46cf8d33ccb93b570fe77631abb08555829
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 7 12:22:17 2020 +0200

    removed system object list include.

    makes it difficult for multiple configurations, because the wrong header
    might be included

commit b016f2995a00a3a5183794bb576820d17b6f078b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 6 16:34:43 2020 +0200

    added default vlaue for init function

commit e950051b4ab7edcc6919af226f3c7a1eae63602e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 6 14:35:30 2020 +0200

    some object managerIF security measures

    objectmanager get function checks whether global object manager was
    initialized now.
    New returnvalues, which are also used for local pool init

commit 6b205e166ba6eab2addc3289bde1734e9ff3830f
Merge: cc0469fe 77c21fc2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 6 13:54:18 2020 +0200

    Merge branch 'master' into mueller_framework

commit cc0469fef6031ebde23583f958fcf1c0b1e5ef3e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 20:09:42 2020 +0200

    return failed insteead of exiting

commit f09836a9eb4aeb561ae1e6fa13e20c0aa0fc01cf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 19:30:03 2020 +0200

    removed exit for empty psremoved exit for empty pstt

commit 4695e87cdca7d9a87e9021d715dced763e079ae8
Merge: 160a0979 df9e6683
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 19:08:46 2020 +0200

    Merge branch 'mueller_fifo_enhancement' into mueller_framework

commit 160a09790e112fdd6cc40cbb75b502c9ca057fd8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 18:53:25 2020 +0200

    removed c omment for now

commit bc17b5a907ca3fe2ead9829a1a582bedc84389b1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 18:43:28 2020 +0200

    resolved conflict

commit ad31a1b97db9cb78a9e6ddd8c8c95537fa4005a4
Merge: 399e6b3a f1a0bb9d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 18:41:40 2020 +0200

    Merge branch 'luz_FixedTimeslotTask_ExistenceCheck' into mueller_framework

commit 399e6b3a09126fc8f63072428acf99de73e36658
Merge: 6817aa4d c05b9cbd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 15:07:47 2020 +0200

    Merge branch 'front_branch' into mueller_framework

commit c05b9cbd01b490046f6d7881bf4ff62f7e2a63c2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 14:07:27 2020 +0200

    reverted ResultIF. for now, keep using HasReturnvaluesIF

commit 1825924b7bf46d65fc163ac89921d9d70ddbe33b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 10:16:16 2020 +0200

    abbreviation for resultIF

commit 6817aa4d03f542939742ef9ccdadd578faaf428a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 4 16:57:08 2020 +0200

    pool manager refactoring

commit b947253ac3107e05ccb85760bb0413d28c46b5c5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 4 16:49:15 2020 +0200

    local pool neat

commit 4b65d6e84739ea13e82441768917c530154d656f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 4 12:33:57 2020 +0200

    local pool bugfix

commit 3e4263f068aa476a608102acccad93f47b0a6d99
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 3 12:27:18 2020 +0200

    freeRTOS task factory fix

commit 35594d4b717e5296581f0227e6d952aebf506cf4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 3 00:48:18 2020 +0200

    goofed up, delay function back in task factory

commit 281da25bf97f344fd7b7727530208879c9c7a153
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 1 16:47:53 2020 +0200

    extended task management for freeRTOS

commit 15c03863c008fb6d8b455bed15985ed725df3bc9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 1 14:49:52 2020 +0200

    additional docmentation for freeRTOS task factory

commit 03333c2af0cc698646f617812fc183a2627ce974
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 30 21:37:02 2020 +0200

    pool raw acces printout

commit 431709a3ecefb0a358726e7f94e2f45131a7d914
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 30 15:42:33 2020 +0200

    pool raw acces helper bugfix

commit e1aa285b6db9733c3b302a0c3c1c0231a2a5e561
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 29 13:46:30 2020 +0200

    linux osal output in namespace

commit 7ec6d2ceaa74f3823db8fe49cef0ff811cbabdd6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 28 18:58:55 2020 +0200

    remove dspecial character messing with decoding

commit ecf3b4b535f7becb1adbd8f0ca1619545b04f4ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 22:05:12 2020 +0200

    stopwatch warning fix

commit a5d2cbd7db6d6f47e7a3f75cc429ac36070f806e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 21:59:24 2020 +0200

    some more sif replacements

commit 0ea692a5ea8e5230ccb14ae42156ac74f05ac851
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 20:04:48 2020 +0200

    some more sif changes

commit 01195093e3309c6bc9722c3b98c4886883e6d384
Merge: 1415cd23 2c6b4465
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 19:21:12 2020 +0200

    Merge branch 'mueller_sifRenaming_soooMany' into mueller_framework

commit fc4199c3b12dfc6f7996d75c035fb0767c21a004
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 18:13:14 2020 +0200

    architecture dependant call delcared external

commit 328737d0ad5d6efb098963fdf0e5088776f50f64
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 18:12:02 2020 +0200

    newer non-deprecated semaphore call used

commit 1415cd2339931cec2dda229782af069459a02f3d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 17:54:41 2020 +0200

    using newer bin semaph create call.

    architecture dependant function call is external now and shall
    be implemented by developer

commit 44d467808939a803f837d188b006cedd332f3d0a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 14:06:48 2020 +0200

    fifo features and stopwatch enhancement

commit ee2ee745c7329445a408137dd95b7e243a4b5adf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 12:47:59 2020 +0200

    fifo renamed

commit d546317e6aa5070873062a12c04b98cf5504a019
Merge: 40d952a3 3a3960ed
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:33:19 2020 +0200

    Merge branch 'mueller_TmTcBridge_cherryPicked' into mueller_framework

commit 40d952a3491f549989f5bfb15da6000b8f77b3d1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:24:34 2020 +0200

    minor form changes

commit e40c9f42c676ef5fabe55e1392f88e3a8ba11884
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:22:25 2020 +0200

    info output commented out

commit c075e1bf2334e6984da63997589c3652d5d39b74
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:20:19 2020 +0200

    adapting tmtc bridge

commit db535e25f2e3d978c4eab4a83d4f8751816a9b91
Merge: 2c2ccf8a d0ce075e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:03:15 2020 +0200

    Merge branch 'mueller_TmTcBridge_cherryPicked' into mueller_framework

commit 2c2ccf8a8d0b4828b7d63dd34d4dbf0449fc38d9
Merge: 9f7f8073 50265170
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 23:49:10 2020 +0200

    Merge branch 'mueller_TmTcBridge_cherryPicked' into mueller_framework

commit 0e6f8d3f821d3fa6907de2310e9102a33d30afb2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:53:06 2020 +0200

    comment adapted

commit 1b5127dc85f236d7e02cdb22c722bea4976d531b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:50:07 2020 +0200

    added task management implementation

commit 6eda5a08381891907d67e3b23a93e80808585b07
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:46:49 2020 +0200

    task management header added

commit e26f0d54b2828e786c4d91ef38345a7e68d1fbcf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:44:03 2020 +0200

    binary semaphore init

commit 9f7f8073f17df0081406804bf2fc84034420da54
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:42:42 2020 +0200

    freertos includes in extern "C"

commit fb9a5678fc463aba32a4bbcf01a8cf8994638a30
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 10:24:00 2020 +0200

    removed comment belonging in egit

commit 4e76b8133e905446c90b3447abfaad3744da5d87
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 01:08:36 2020 +0200

    uninitialized variable

commit 326e5cf5febda0dd3ad55cd6c5b181969ebdf9ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 01:01:32 2020 +0200

    initialized uninitialized variables

commit 6553450b4b85ea7ec53e88850195af35d76d85b2
Author: Uli <uli@vnks.de>
Date:   Tue Apr 21 22:28:43 2020 +0200

    Actually, not that horrible, thanks to sed

commit a42832ca01d9b5554b3e6b7c274bf16ce5d13f58
Author: Uli <uli@vnks.de>
Date:   Tue Apr 21 21:34:03 2020 +0200

    working on updating SerializeIF, to quote Basti: This is going to be horrible

commit 7e3af7cf839ee07cca12093812f323b7b396be04
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 19 21:36:10 2020 +0200

    replaced slotLengthMs with lengthMs

commit 36715e3f4cf98cb21049eaf2001129fe3acbe625
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 19 12:06:28 2020 +0200

    test folder moved to separate test folder

    for fsfw for now

commit e77ca55b1d383afd0079152a4d6809d3e79a6a93
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 17:12:26 2020 +0200

    serial fixed array list adapter doc fix

commit a7d3b4c4a03a0ec2afee9ab0ec5021750fc80dca
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 15:05:51 2020 +0200

    added std:: before uint32_t typedef

commit 9580f51c30590617084b2ef21b8c4fa4a23e0d92
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 14:16:46 2020 +0200

    removed self-inclusion

commit e34a438e774aee4dfe39ab881519e01e8735cb52
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 13:38:05 2020 +0200

    using size_t

commit 4d8aca8417f722ab6fcf15f3defd73652cc0a18a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 13:32:40 2020 +0200

    message queue adaptation for ISRs

commit a405357578cb683f91bad536b9e0b100670a2c1b
Merge: ea1d55b0 05c1330b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 13:30:22 2020 +0200

    Merge remote-tracking branch 'upstream/master'
    into mueller_framework

commit ea1d55b0336dd860c7c5ab7a2a6b62d408d3244c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 13:16:00 2020 +0200

    null replaced by nullptr.

    storeID initialization added, all nullptr/0 initializations in header

commit 5595b0f3ce76e9d4c169e09b11960c46b7d2531f
Merge: eb362dca f45a8cc1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 17:02:10 2020 +0200

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit eb362dcad2adb126156d19c558794892526a8791
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 17:02:04 2020 +0200

    some comment line break

commit f45a8cc17193fb3176a8410bd8b00e4ca351bad9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 13:17:26 2020 +0200

    fixed slot sequence safety check added

commit 21650b064dbd901aaaae72345ad326aada79137b
Merge: 5582ca27 33b834ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 13:01:17 2020 +0200

    Merge branch 'mueller_framework'

commit 33b834ad910ca269c4131d8b796c2deba94a2eed
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 10:43:50 2020 +0200

    null replaced by nullptr

commit 7c360be1e0fe9eeb6d28f8ac6bd473c6d66ae43b
Merge: bd0b9cb8 9284fe81
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 09:30:26 2020 +0200

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit bd0b9cb877ec6138d6d83727480748d4a676975e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 09:30:02 2020 +0200

    catch example informative comment

commit fc08754b98698708dfd36b0f2d1f121e1755922f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 15 23:28:45 2020 +0200

    some doc unclarities comment added

commit 9284fe81da14628f26001536e22a66c1873517f3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 15 20:53:03 2020 +0200

    added override specifiers, some doc fixes

commit 906f941f32bc949edf899e5e8b9ededf45797793
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 15 15:53:46 2020 +0200

    ssize_t in deSerialize replaced by size_t

commit af27a2441affb1923a4a2ff33c044ce825549094
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 16:19:13 2020 +0200

    added catch framework for basic testing

commit c5e5de1530acb3f3212514c254dea65635ece647
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 12:24:26 2020 +0200

    deleted example values

commit 2cc4386b4c98f92f83c79c0fdfd07dba091d3544
Merge: b48a0a4a 03b0ae7b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 11:18:24 2020 +0200

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit 03b0ae7b68541f8d6268c0dcc8b763e04870d185
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 11:16:51 2020 +0200

    unit test fixes

commit b48a0a4a4ce5ea9b4e85b76223e357fe49ce6907
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 13 22:45:23 2020 +0200

    unit test class continued. serialize adapter

    functions which are internal, extracted to separate class

commit fe45c7eb8b7f66d01d1ca4f3e06dd91b79987f9f
Merge: 0d016e5a a0ee0109
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 13 16:38:29 2020 +0200

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit 0d016e5a2b2e5b566c7c7f2a11e64c1c93dcc4d3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 13 16:37:25 2020 +0200

    slight formatting

commit a0ee010926eb3870c61c8eaa8cd39f9601b1fa86
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 13 16:27:05 2020 +0200

    Added test folder.

commit eb2df3d88cc3bc2c70bda89208bf4e392bbef860
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 12 23:06:57 2020 +0200

    Using C++ to implement preamble. adding optional flag for carriage return

commit 69e9710bf17013f974188ee420279107b472e822
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Apr 10 17:06:06 2020 +0200

    added intial carriage return im preamble

commit 841b28b65d3c46a175d283d01e92729495f218d9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 9 18:02:10 2020 +0200

    stopwatch ms now working

commit 8a8761ea88e361ff610dd18ba22e59f3f5a9140b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 9 17:56:48 2020 +0200

    stopwatch bugfix

commit 5582ca278b7b050550af3948b6b37331e3575841
Merge: 94137896 640cc1dd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:44:21 2020 +0200

    Merge branch 'mueller_framework'

commit 94137896cc171cd5b9e1c461c53dca464c885885
Merge: 35eff6df 2a72e94d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:44:10 2020 +0200

    Merge branch 'mueller_stopwatch'

commit 35eff6dfbaf15f722975ca339f88716f988b8b2f
Merge: 826e2bdb c88c6c2a
Author: Robin Müller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:35:26 2020 +0200

    Merge branch 'ksat_master' of KSat/fsfw into master

commit 640cc1ddec6fa6e53c8dca212b06b61604e5a6da
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:30:39 2020 +0200

    some more bugfixes

commit 5b0f80509f7f8dec258d333c26766dfdf8336ccc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:24:24 2020 +0200

    usec replaced by seconds

commit da9bb97b23f2519137674a8b352e7b93592f4ef4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:05:21 2020 +0200

    added precision for double output

commit 3dbf35338561897c356a1f949ed2a74ec7e9f311
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 18:33:38 2020 +0200

    some more refactoring for stopwatch

commit 3af241b9c48f1c0f5685435f198d27e4333caa99
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 18:27:18 2020 +0200

    stopwatch more lightweight now

commit e0e1e64a092b9a06570149c2c694102230af182c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 18:08:14 2020 +0200

    various changes, stopwatch

    Semaphore: Some bugfixes, some constructors added
    Stopwatch: First implementation, can measure in ms(double) and
    ms(normal)

commit 30ed08005fd07cd894a49dee5123e028d1fbeed6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 7 22:16:43 2020 +0200

    reverted some naming changes

commit c88c6c2a45482d19f51ec0548ffe50e5b1203a82
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 19:51:45 2020 +0200

    binary semaphore info printout added

commit aaabbe8aef2a759d1928b22c6b3acfca2fd9980d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 13:59:57 2020 +0200

    DHB fix

commit 78aad91aab99ff6123d8575300613dd14a79b81e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 12:38:39 2020 +0200

    PSB subservice passed to handleRequest

commit 3654c7bf8162cd176509db6d83241f077bdfb929
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 11:15:44 2020 +0200

    some form stuff

commit e791f44c41525bc742c9027bbeb08a530cd5a424
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 23:03:32 2020 +0200

    copy ctor and assgnment op forbidden

    for serial linked lists

commit 42838272a522b76c9e055f93bdf7af6d00b84b01
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 22:42:48 2020 +0200

    replaced int32_t size by ssize_t (type trait trick)

commit 87852e5f2a3983e21c99a18f8503a511a158cecd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 21:54:11 2020 +0200

    replaced getSerializedSize returnvalue with size_t

commit 7079c9c56dc03bc1eb89311b831ff9f622257f81
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 17:58:39 2020 +0200

    replaced serializeIF serialize sizes with size_t

commit 06ae64d59c7de1bfaa63c63249cc56c53c47d829
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 15:46:10 2020 +0200

    CSB: replaced some uint32 with size_t

commit a65a19f583b4f71b4c13e3d553fc6e990fd49ba9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 15:33:24 2020 +0200

    deletd serial buffer adapter2

commit 4a35035b2890f3491d096afb22ad3421bc4d1e60
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 15:30:31 2020 +0200

    serial buffer adapted improvements

commit 80b1d28bc84ed4d9e86791b6e1c3e74abae3a4d4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 00:23:29 2020 +0200

    new dvice com IF return value

commit bd468a1b7498d217ca681e25c1932a39639f155f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 17:19:03 2020 +0200

    timeslot time 0 definitely leads to error

commit 335df7787ab118078b1a22a26cdd1259d46240ed
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 17:15:27 2020 +0200

    testing timeslot task 0

commit 8f39820ace6ecd146b5ac8e0ce10797c79159801
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 17:05:55 2020 +0200

    doc formatting

commit 996dbc9e4b952fa208b1e4b12d1ee291701ddf57
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 12:41:54 2020 +0200

    DHB/Cookie refactoring

commit 5218a0d84f987272ac2281c6a09ac4ef431dceb6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Mar 28 19:42:24 2020 +0100

    doc fix

commit 93678adc5a8570f444e82259c991f8b5e378cae8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Mar 28 00:09:15 2020 +0100

    replace std::set by std::multiset

    so there can be multiple entries with same pollignTime

commit 5d071a1cf1e4160386566cd1bcd1eeb70e65e5f7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 26 19:53:05 2020 +0100

    new device comIF return value in DHB

    request receive message

commit 0e56a094d305a35b80bdb20cc0c3cdcd533bd888
Author: jakob.meier <jakob.meier@outlook.de>
Date:   Thu Mar 26 19:43:38 2020 +0100

    merged FwMessageTypes

commit e252a5b795147d11371514b9defad39d91a596ed
Author: jakob.meier <jakob.meier@outlook.de>
Date:   Thu Mar 26 19:20:16 2020 +0100

    file system support

commit 093fef5d6f2aea6589abe45077037057bfb879ba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 26 15:20:17 2020 +0100

    moved address_t typedef to cookieImoved address_t typedef to cookieIFF

commit 163779622fd9b7d367a0fe05d236928e2727d06e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Mar 25 02:08:35 2020 +0100

    DHB: replyLen in replyMap now

commit b2b6b8ee23bc1ed05a4b1e1fc583a9c3f1f71cef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 24 15:33:18 2020 +0100

    added initializeInterface for comIF/cookie

commit ea49d88c4be5929208192fd86d9f2ccf99889cb8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 24 14:21:57 2020 +0100

    moved all return values to DH IF

commit 7e8d92f956220734c4d65dc026550595cfbf577f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 24 00:22:17 2020 +0100

    replaced std::list by std::set for fixedSlotSequen

commit f7b7e10d05224dcd6ab5e2c0c4e778ce5585c544
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 19:14:36 2020 +0100

    date format changed

commit b6bf9d71477b3695b1a3dfe7253137c5936c7ebc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 19:09:42 2020 +0100

    to avoid dynamic casting, introuced CookieIF

commit f7bd661e6923713740c77e91c2602caa74e6abe5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 18:08:24 2020 +0100

    small fixes

commit fa058ee6025cfe03e0a60f62ebb744d80b676637
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 18:05:39 2020 +0100

    renamed rmap to com (more generic)

commit d3e2652078913332c407845920b14cd0c5e459a6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 17:58:23 2020 +0100

    replaced DHB sizes by size_t, rework

    Cookie now passed to DHB, rework in progress

commit c50d9d90d61a727ddc90e64d75ee98a4d3679bd0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 13:14:23 2020 +0100

    replaced std::variant by two uint32 parameters

commit af6d18d60b323ea2759e1ca5af5980bd25673015
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Mar 20 22:47:07 2020 +0100

    added additional parameter form open/reopen call

commit 52c05e2f3da8043336f77deba36e1fefa53e61fd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 19 12:44:24 2020 +0100

    minor formatting for pull request

commit b7e3449b04c48ff65e6e21767667c328938701dd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 19 12:38:11 2020 +0100

    some more doc for containers

commit a3903f80fb915a046eb69e1492254ef4e69b5987
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 19 00:49:47 2020 +0100

    typedef address_t moved to deviceComIF

commit b5fe1fa530ed9fd91b5936b0cb617a9774861a6a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 9 22:15:52 2020 +0100

    dhb virtual function moved to top

commit 6579200f5551f93349ce018127b249ab7cdb3739
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Mar 6 19:01:31 2020 +0100

    removed counter, will be implemented in childclass

commit 68cda479d699ef0f5c73b9ee95c352e178171896
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Mar 6 18:48:48 2020 +0100

    DHB: performOperation Hook + polling counter

    polling counter to specify how often communication opertions are
    performed, however this still needs to be changed..

commit 22e4dabd1bf778c1a4c32aa76d8bf72b99936576
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Mar 6 15:39:42 2020 +0100

    BinSemaphore reset function added

commit 43ac0ec04bbaffc1f7a23b478fd747396a3a4ad4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Mar 4 23:07:54 2020 +0100

    Communication Message continued

commit fb6172fdc51a6e76513437ec74ed733da3847e1f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Mar 4 00:37:58 2020 +0100

    communication message continued.

    Some fixed timeslot task improvements

commit dd4a5a45e3a25ce5bbbedfdd37a407273b62ac54
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 3 21:20:08 2020 +0100

    communication message extended

commit 72963f5855bc8a12dd21d4405cfec3a5a603fbc4
Merge: d0e8eb38 238892bd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 3 00:07:48 2020 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit d0e8eb386ce45b3aa99f8d1413b2c05b1db079d7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 2 01:00:17 2020 +0100

    renamed system context to call context

    to avoid conflicts with ISIS library, I don't want to fiddle with
    it if we don't have source code

commit 238892bd6648f090c8356a6eac9e5dfaddae1de9
Merge: 6d6c78b2 fa38a376
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 29 01:22:41 2020 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit 6d6c78b255407dc08979dbfbf927b9e4dd54db44
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 29 01:21:36 2020 +0100

    task management doc

commit fa38a3760448e28109b6a73bb46e3ee50bb583a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Feb 28 22:55:25 2020 +0100

    all context switches calls to TaskManagement.h now

commit c93ee5c6cdc0098dbcf41ff3fe4c5511534e6c69
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Feb 27 19:00:51 2020 +0100

    message queue IF return values

commit abccd81fdfddb1fc065af32bf6c603c4c3722430
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Feb 26 16:55:35 2020 +0100

    new file for freeRTOS task management functions

commit 083cc7c50ac017a12061e66d6d937a82b2908c92
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Feb 25 17:04:21 2020 +0100

    sempahore wrapper extended

commit 685c18dc4ee3f96af909b90904160048fd39489d
Merge: 7a426ace bfc7a768
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Feb 25 12:55:20 2020 +0100

    Merge branch 'ksat_master' into mueller_framework

commit bfc7a768ce73b1db2a535d7919f24cc1b3244736
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Feb 25 12:54:28 2020 +0100

    message queue adaptions for calls from ISR

    functions moved to top
    binary sempahore file init
    mutex return values

commit 7a426acece7e6fb6135f48b62f1431c894c8e711
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Feb 21 16:08:43 2020 +0100

    therm sensor doc correction

commit 54eeb71f02d1c4c4e49f25e25ed0821a7325b093
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Feb 17 21:20:51 2020 +0100

    bugfix: added implementation

commit 6ab07aeb1978d7a630944a698abebca1097b1d71
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 21:04:17 2020 +0100

    valid mask bugfixes

commit 1001c1d48bc7aff5a88bcd58028e6f6d58777265
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 17:21:06 2020 +0100

    added new IF for thermal messages

commit 99b90e625d916dafe30cda283c7d75ec772376a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 16:14:29 2020 +0100

    refactored: limit type specified separately

commit ddae9ee80f2c74383fa4efa91082c3871b60f6d3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 14:59:45 2020 +0100

    adapted temp sensor to use °C limits, doc added

commit d8ed5bb1c15587ef853432a84a3c0334350f9ebd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 15 18:55:22 2020 +0100

    some comments for missing doc

commit e15839b3a6cdccf3f437991262c0c2eddb6b4ba6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 15 18:26:25 2020 +0100

    Thermal: Some formatting stuff, doc to do

    Need to find out how to use the thermal components

commit a7964c7200bee823cdf20063673f9cd905ef720c
Merge: b3faf1e4 413d6593
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 15 15:34:53 2020 +0100

    Merge branch 'luz_FixedTimeslotTask_ExistenceCheck' into mueller_framework

commit b3faf1e4adee4097b9bcc15ad61c299adacc33a2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 31 23:42:11 2020 +0100

    old timestring used

commit 5190e4c16e0f6618cd1c6b3a3b8f8ad7683172f7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 31 00:54:34 2020 +0100

    Serial Buffer dapter changes reverted

    CCSDS time bugfixes in separate section (for C98)
    Serial buffer adapter 2 bugfixes

commit 09144b18c4fad1c9c92510f3c99ad377ddbbac58
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 29 01:03:20 2020 +0100

    ccsds time changes changed

commit 7dd4694d9d9e25114c6b52f7539ced43b8bdca3f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 28 23:19:19 2020 +0100

    CCSDS time extra defined for avr lib

commit 8f17d5147e7b13179c32fa47f2c2bdc7408e4ef5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 27 00:43:01 2020 +0100

    SerialFixedArrayList constructor bugfix

commit 85048cc9ee180ce6ba14485d18d85bf694e1e51f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 26 22:13:56 2020 +0100

    Pool Raw Access change bugfix

commit d9fa13b6ebd597b6c23f5768405dc757b467028e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 26 18:31:17 2020 +0100

    ADDED old pool entry constructor

commit 6eedb3f09748ed698ece38cb9fc5be6ebe1d3c66
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 23 15:45:21 2020 +0100

    New Pool List Initializer.

    Needs testing !!!

commit d330958abb5813261936198700a2fac535aa1884
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 22 14:27:11 2020 +0100

    Array List endian swapper protected now

commit 1977942c4b2a785e503c21f5cd5cc235ee69e9ed
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 22 14:24:48 2020 +0100

    Array List Entry swapper function

    And respective SerialAdapter functions to use it

commit 3d2bdae14df5427251b59bd81dc44a82f7667a34
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 20 23:29:36 2020 +0100

    CSB abstract functions moved to top

    So documentation of functions to implement is closer to the top

commit dba26baee6b4df5c0379f6886c7eaf12a387683d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 20 23:00:23 2020 +0100

    Restructured header file

    Abstract functions are closer to the top
    because they must be implemented and documentation
    should be near the top.
    Important virtual functions moved up too.
    Additional documentation added

commit 424c82ce165e1da122729ce058be19a32ade7dfa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 18 23:07:43 2020 +0100

    Extracted one logic block

    To increase readability

commit 5cb591a063cb9df22954a26e490806b5648d4061
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 18 18:01:37 2020 +0100

    Array List swapper for SerialFixedArrayList

commit 6fe0f45c278e51b4a54a7f3a105edcafaad9f89a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 18 16:48:33 2020 +0100

    SerialBufferAdapter new setBuffer function

    Serial Fixed Array List Adapter documentation adapted
    SinglyLinkedList setEnd() function added

commit c9e4c73bd251b15c05c7d3140413ca39a2617919
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 18 15:03:22 2020 +0100

    Local pool public members/functions moved to top

commit 1f4391f56e5f95a44529bf89661c69c821fbb5c4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 17 21:11:39 2020 +0100

    Endian Swapper buffer swapper changes reverted

commit 1d1bb88a6f173ba3426a176fb6609e27740928cd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 16 19:07:53 2020 +0100

    Merge request check

commit 9bdbc2c380780ae7f523c4367560a13f1c64ca66
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 16 18:46:29 2020 +0100

    Endian swapper changes, Serial buffer adapter

    New Serial Buffer Adapter with complete template class for buffer type.
    Endian Swapper input now standard uint8_t * pointers instead of template
    type. Fixed Array List new ctor, but commented out for now

commit 1437f33027cf60c8561eb3517418df2b16194016
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 15 17:30:23 2020 +0100

    Serial Fixed Array List template type clarifications

commit 9aa57f29b81d066429f77cd163043f661062d7ed
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 15 13:52:18 2020 +0100

    basic documentation thermal

commit 9ec0b80497d7c605f40f2764b3699c424b4987ad
Merge: f16cce8b b0d88129
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 15 13:32:41 2020 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit f16cce8be11be06f704fd0f141cb28dea233d802
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 15 13:32:21 2020 +0100

    Basic doc for thermal modules started

commit b0d88129db48db94d4d8ed4526408c62c962e2f0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 14 01:39:47 2020 +0100

    Pool Raw Access Helper bugfix

    debug output commented

commit c7479523363c83db5e1c3c9a207a5eeee5cf5a65
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 14 00:49:09 2020 +0100

    fixed map full() function added.

    Pool raw access debugging

commit 01551b8fa5bf642bac0ec124eef94f192087188a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 13 01:21:53 2020 +0100

    Getter function in SerialBufferAdapter

    For const uint8_t *

commit 1369e792b4c1f3327923c1e7418641c687bb512e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 13 00:14:14 2020 +0100

    CommandingServiceBase documentation

commit d2325e60b69650b5dde10f28dc88a929decf6527
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 12 15:51:59 2020 +0100

    Import bugfix in MessageQueue.cpp

    lastPartner is only assigned if receiveMessage is successful

commit a8247eb2f0406ea78259f9a5c3f70f7b02cef15a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 12 14:18:12 2020 +0100

    Some more debugging output switched on

commit 0ce67de8c8eb8f4eb532e4445e3a1e3765ff07f2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 10 00:57:09 2020 +0100

    Changes to pool access classes

    1. PoolRawAccessHelper is more robust now and has better error handling
    2. PoolRawAccess: Removed an unneeded constructor value, moved serialize
    further to the top. Added new returnvalues and more precise error
    handling for read() call
    3. DataSet: Made MAX Number of data pool entries public so it can be
    used by pool raw access error handling

commit 59b25bee863987dd8a38517f95ac3dc2b780be1a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 9 19:04:33 2020 +0100

    pool raw helper input buffer type changed to uint32_t

commit 0ddc44062ddc1d29c077f4e04d64e2fb7bc3e313
Merge: a7450144 2ec486a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 9 12:50:00 2020 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit 2ec486a8806f9c0bdf287ef81b04c6b494c592ef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 5 18:20:57 2020 +0100

    max number of stored packets lowered

commit 827f185e20788b0b72eaf4cd5d322e78fb7cadd6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 4 16:37:08 2020 +0100

    Some bugfixes(?) for PusServiceBase.
    Getter Function for Serial Buffer Adapter.

commit a7450144de20cb086ba5a9602bd5a7ad44fb83af
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 3 15:39:32 2020 +0100

    doxygen group definitions moved to framework

commit 0a57103339a45c3a7cb18463c891c04644757c5c
Merge: f6e88e83 e2f07cbc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 2 21:12:42 2020 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit f6e88e83db014f529151126d7ba5fe681604981c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 2 21:12:21 2020 +0100

    debug output change

commit e2f07cbcd1436176c45ad8c846657436b0aed832
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 2 14:01:21 2020 +0100

    connect and disconnect functions public

commit 831a01e79ef7d5c5fd6885486f9a9fc7333d504e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 1 17:31:17 2020 +0100

    recvBuffer and recvSize initialized

commit c73cb90c3645f50794cd2919ef73fc755cc93948
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 1 16:54:05 2020 +0100

    receiveTc function adapted

commit a762c159fe334f1e1be6f448dd9ed6ea2519246b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 30 01:13:33 2019 +0100

    pool raw access helper info output commented out

commit 2425685e446ec9a0dae320ea6f0cf0ca95e0cd33
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 29 01:59:02 2019 +0100

    Pool Raw Access Helper serialization of vectors implemented

commit 666341d03ddbe1394e452b0f15af2a4457a0f148
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Dec 27 22:43:09 2019 +0100

    new bool datatype for possible pool entries

commit 79e7fee8072abbf40d65d2114157f35d856bbb5d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 22:15:19 2019 +0100

    comment deleted

commit a38a2f4b3a4e07b77e4989300871c91705496718
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 22:07:17 2019 +0100

    tmtc bridge bugfix: tm data deleted when overwriting old data

commit 33a7c033a27dd741ebbec31f5d517b6acabd342a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 20:38:15 2019 +0100

    doc extended, instructions for sendTm and receiveTc

commit 19e257a90aa57622732177166a9b1ff547da9456
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 20:35:11 2019 +0100

    tmtc bridge debug output corrected

commit 8397f5b2b1961bc875282829fa687adb6cdb6d97
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 20:17:21 2019 +0100

    tmtc bridge bugfix

commit 0066a6b78819777a62f8f1b0ec8512f56b4a49d4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 19:47:46 2019 +0100

    Generic TMTC Bridge added

commit 29b4480fc4f6d752e1236e6b9172dc622ea640ba
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 18:55:31 2019 +0100

    include adapted

commit e24f9b89e4c1965387de84520c80d2439337a9e3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 16:44:50 2019 +0100

    Pool Raw Access Helper tested, appesrs to work. SerializeAdapter doc
    changes, tm packet stored debug output if not enough
    storage available

commit 1f1831c4a14ddf806a6a360e1f60b1c46e90d968
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 24 22:15:39 2019 +0100

    pool raw access init

commit f6b9b232877d29d6a68640967f131d6091c7f2de
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 24 01:41:04 2019 +0100

    pool raw access init

commit 89f490ac36dd3178616cbdfa712adea389ab15ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Dec 20 23:09:35 2019 +0100

    assembly constructor formatting

commit d17146d847610b403118c7992908a94deb361e1c
Author: Maximilian Luz <luzmaximilian@gmail.com>
Date:   Thu Dec 19 16:09:50 2019 +0100

    Check object existence before adding it to the PST

    Currently, adding new objects/components to the FixedSlotSequence PST is
    not being checked, meaning that it is possible to add NULL objects here
    without any warning. This causes NULL-pointer errors when non-existent
    components are added, which can be hard to debug.

    To solve this, add a check for the object existence before adding it to
    PST and emit an error message.

    Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>

commit fa6cbe7e0c8862f903e7c78bdf938c8caff93863
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 23:18:28 2019 +0100

    pool raw access changed reverted

commit 625f3dc79c33794c041bf91af87bd0a2d271e67b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 23:15:34 2019 +0100

    local pool modify data doc modifided

commit 9382eb03e6cfb0985d78587df3f4696e52ead038
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 22:50:08 2019 +0100

    function to serialize pool ID buffers into dataset created

commit 29a15e8154d5de81d5dff878f6e54f413f5fe12d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 13:03:51 2019 +0100

    commented out functions which will propably not
    be needed and removed

commit 138cac98d100affabc0916e27f8189c42af3f3b9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 01:57:36 2019 +0100

    experimenting with recursive constructor and dataset call

commit f7d8f0c1617295aae5ed652ee99566f98d84111c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 10 23:26:48 2019 +0100

    Reverted changed  pool raw access commit

commit 6abb3cc525fece4f32f905200e7fa00fba4818c7
Merge: f33949ba 356d1d35
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 10 14:54:32 2019 +0100

    Merge remote-tracking branch 'origin/feature_EndianSwapper_UINT32_BUFFER_PoolRawAccess_Modification_For_Vectors' into mueller_framework

commit f33949ba4b2e7ef3784d712af06e94a04c45ebac
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 10 14:54:17 2019 +0100

    doc adapted, merging

commit 356d1d35dc97232e92778a4d0602947db812dc59
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 10 13:29:16 2019 +0100

    experimenting with recursive constructor to enable
    automatic vector registering

commit e765f8c99bbe6827b44a8ea21a9808ca51471cf1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 9 12:27:14 2019 +0100

    pool raw access modified so vectors are properly serialized now
    Endian swapper can swap the entries of a uint16,uint32 buffers now.
    Some documentation for functions added. setter function for serial buffer
    adapter written but does not appear to compile, commented out

commit 8168885dd905992920029c38444b9abf27541d52
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 8 22:57:03 2019 +0100

    Serialization documentation update

commit 3159ccbc4017f7a9662b82054ac3adbce3aa6261
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 8 22:26:42 2019 +0100

    fixed map and local pool doc

commit d99ed4715017fddab2c1f80610c9c72d3b428315
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 8 19:04:53 2019 +0100

    fixed map bugfix (fist instead of first), new access functions for fixed maP
    (first(), second()), some documentation, raw pool access read() call public
    because call is necessary before using public serialize function.
    maybe integrate read() call into serialize function?

commit 950a48078c6464decada0262f5590c75c5d35a6f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 5 12:21:06 2019 +0100

    some documentation, question about HasParametersIF,
    variable in ParameterHelper intialized (compiler warning)

commit 9c3a9323b7ee50685fd23b57c9d1b39445c43a18
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 3 19:30:37 2019 +0100

    some doc change proposals while
    writing hk service.
    Added Type.h in PoolRawAccess.h, compiler error
    when not doing that

commit 37a70df24496dd0924969c4f52c960ed80d5a1d1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 1 17:48:05 2019 +0100

    SerialBufferAdapter can process uint32_t * buffers now

commit 10c24e39a31293ba54ee8bfdbb2f3835b91dad9e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Nov 29 19:56:05 2019 +0100

    new returnvalue for scanForReply to ignore full packet

commit 2039aa56658923cb4127fddb409c251fdb8d55af
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 25 00:14:39 2019 +0100

    Service Interface Stream buffer size higher to print long buffers (like nav data)

commit 2f14fd5d4d67d2b8223b115d2c5d421cccecffb5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 11 22:45:53 2019 +0100

    Cant reach mode reason getter function added

commit 2b44e1c9c4aa5e516114a6adb922e860c5044417
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Nov 10 13:08:02 2019 +0100

    CCSDS sscanf function adapted for atmel stdio.c (see comments)

commit b8af3b5e3df66e67c8fa7e0e99b6d5b2554deef4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 18:15:45 2019 +0100

    debugInterface extended

commit 537e2ceb18ddd360176fddec37331bb952f8c674
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 13:29:12 2019 +0100

    Getter method for logicalAddress

commit ee765eafc766d9a4a1053d3d685d7d63e6f9f95f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 13:17:54 2019 +0100

    ioBoardAddress renamed to logicalAddress

commit 801bd4d7ebce3ce32eab46e561dec5bc95401c4a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 13:07:26 2019 +0100

    debug interface for dhb created.
    This is useful to track states or values
    in child handler. some documentation added.
    New doxygen group for interfaced added.

commit bf7bc342ff2bb816d910bd2c142661fecd25c867
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 5 19:30:02 2019 +0100

    Revert "documentation for DHB init function, ioBoard addres has default value 0 now, order in ctor changed (not used in source)"

    This reverts commit c6e34cada64f59757e420347dec8373401d73c7a.

commit af4e9db9e3be75265cfcb0e48e6c7122fb02591a
Merge: b594bc2a 8a93a873
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 5 19:25:27 2019 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit b594bc2a9719b6ffb99cb3fdaf4813c688576158
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 5 19:25:00 2019 +0100

    removed obsolete comment

commit 8a93a873a8d28afa8b43635a2611b2930cd7e764
Merge: e7f7625a cb919ada
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 4 11:07:02 2019 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit e7f7625adf27263aec16580fa70ca137e412aef6
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 4 11:06:59 2019 +0100

    removed wrong include

commit cb919ada2a99b818624d05a4e4fdfeb85e9b8174
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 4 01:55:40 2019 +0100

    assuming that a default value of 0 for expectedReplies is needed, I introduced a new variable into DeviceCommandInfo, which stores another number of replies expected. this value is assigned in enableReplyInReplyMap. That way, the initial value of 0 remains the same (if it was needed), and is only set to another desired value if a write was sent

commit 12f51575eb42bffc9e2cf5a72a5678975f87db34
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 4 00:53:05 2019 +0100

    removed a flag by accident, fixed now

commit 8eb1a5b13e2fccf21176aed9a6a27287196fd236
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 4 00:47:46 2019 +0100

    proposal 1: expectedReplies parameter is set in insertInCommandAndReplyMap, default value stays one. overriding enableReplyInReplyMap is not necessary anymore.second proposal: the commander id is supplied in the interpretDeviceReply function, so we don't have to look for it in the DeviceCommandMap. was it removed at some point because it is listed in the documentation?

commit 46986f69e4a17923717464c120f4d227df561618
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 2 23:30:12 2019 +0100

    serialize tools more documentation

commit d47496db40de8ef8a9be221b9bd023b229a59cc6
Merge: 16af33a7 3887cb8c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 19:31:20 2019 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit 16af33a7bb52e3d9363e1e6f61e16a67783f74df
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 19:31:18 2019 +0100

    doc for fifo, device com if..

commit 3887cb8ca14f4a12a2fd446e1779b66c76096962
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 18:22:34 2019 +0100

    removed wrong include in dhb

commit 3f1d68542e1787e098f37a98005d984a8d83abaa
Merge: e8a16ac5 1ee445ce
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 18:21:03 2019 +0100

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit e8a16ac59cf87d27d1e79a6571a6ee11f0edc3c2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 18:21:01 2019 +0100

    dummy com if sendMessage data const

commit 1ee445ce245b0383a3d770b44f971693ff37542f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 11:17:07 2019 +0100

    fifo typo

commit b51536c772c9d058b7c7a4449f8cf8ca107773ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 28 12:48:41 2019 +0100

    CSB doc correction

commit d79f072851264ec3f9e369f2b2ccbfa7fddd3145
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 27 13:38:08 2019 +0100

    Additional documentation for DHB and CSB

commit 64f84d9d9ffbf2d4b357ac72ad24956b8540db07
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 27 03:21:38 2019 +0100

    doc for dhb, serializeIF and SerializeAdapter

commit 8f1517d276aac56dc260b8ea4609204ab8e1036a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Oct 25 21:12:11 2019 +0200

    additional comments on endianness (I hope this is correct)

commit 1631e739b8c0b3b7ab0af314309da898df7e2eae
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 23 12:03:32 2019 +0200

    at91sam9g20 uses custom stdio.c, unsigned long cast in sprintf does not seem to work, casting (unsigned int) does, timestamp now visible in debug output

commit 07950b0c2bb9c3822729a225302cb685cb62ea7a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Oct 23 00:31:45 2019 +0200

    documentation for object manager IF get function

commit cd1b26b04cff83ba4d238bf74c5d9bace467ea3b
Merge: c6e34cad 4db655e4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 22 17:15:54 2019 +0200

    Merge branch 'mueller_framework' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_framework

commit c6e34cada64f59757e420347dec8373401d73c7a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 22 17:15:29 2019 +0200

    documentation for DHB init function, ioBoard addres has default value 0 now, order in ctor changed (not used in source)

commit 4db655e4898de934f6388365ec036d9d6e6b1bbe
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 22 14:01:17 2019 +0200

    task priority order comment

commit cbc8012198da6e94870f2b5fe63b799587092bc8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 22 00:06:11 2019 +0200

    ioBoardAddress protected instead of private to allow custom initialize

commit 907664cea9958f1259ed19560839c26533481cf7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 21 11:38:13 2019 +0200

    added do performOperation where the comIF functions are called, some comments added in DeviceHandlerIF

commit 5e3b7c36257314bab40b36c78c13c0525b08eb86
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Oct 18 13:37:09 2019 +0200

    explanation of cookie purpose added, device handler base indentation

commit 743d8abeaffe55cefbddbd2b264be4adcac4d19c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 17 00:23:46 2019 +0200

    first attempt to document and explain serialization tools for application developers
2021-01-13 11:53:34 +01:00
c52183f273 Merge branch 'mueller/cmake-update' into tmpbranch 2021-01-13 11:51:28 +01:00
c9913ea53a updated cmakelists 2021-01-13 11:47:04 +01:00
27e5254ecd include fixes 2021-01-13 11:45:47 +01:00
482f240995 doc update 2021-01-13 11:39:19 +01:00
eb5c56664f relative include 2021-01-12 21:03:09 +01:00
af7e9194e5 more consistency renamings 2021-01-12 21:01:55 +01:00
634a8f3469 renamed to pool manager for consistency 2021-01-12 20:59:15 +01:00
0b08ac1004 updated template config files 2021-01-12 20:56:53 +01:00
b637f03389 updated defaultconfig 2021-01-12 20:54:52 +01:00
59b4f50c1c added FSFW verbose level 2021-01-12 20:53:30 +01:00
f9a8c3d35a updated .mk support 2021-01-12 20:46:54 +01:00
b3e2e93f52 cleaned up a bit 2021-01-12 20:46:34 +01:00
20bf7b6fc4 fixed annoying bug 2021-01-12 20:33:53 +01:00
fa636fded5 source files for attorney 2021-01-12 20:15:15 +01:00
0643faf0e5 forward declaration correctness 2021-01-12 19:59:43 +01:00
40ae81c4ff unfortunate api change
should improve include robustness
2021-01-12 19:58:29 +01:00
71a12792a9 hopefully this fixes circular includes 2021-01-12 19:41:47 +01:00
5639273d9b Merge pull request 'C++ ostream made optional' (#342) from mueller/fsfw-printers into development
Reviewed-on: fsfw/fsfw#342
2021-01-12 15:27:14 +01:00
8332b348ee Merge branch 'development' into mueller/fsfw-printers 2021-01-12 15:25:52 +01:00
7a3ba06b01 Merge remote-tracking branch 'upstream/mueller/datapool-update' into mueller/fsfw-printers 2021-01-12 15:14:16 +01:00
b42535dd2d Merge pull request 'TM storage convergence' (#327) from KSat/fsfw:mueller/tmstorage into development
Reviewed-on: fsfw/fsfw#327
2021-01-12 15:09:14 +01:00
e30d020445 Merge branch 'development' into mueller/tmstorage 2021-01-12 15:09:00 +01:00
a89d9eab36 Merge branch 'development' into mueller/datapool-update 2021-01-12 15:07:06 +01:00
4d6d951ae6 Merge pull request 'rtems stm32 init' (#341) from mueller/rtems-update-stm32 into development
Reviewed-on: fsfw/fsfw#341
2021-01-12 15:06:46 +01:00
165710b43c service interface update 2021-01-12 15:06:25 +01:00
295852a45c Merge remote-tracking branch 'upstream/development' into mueller/fsfw-printers 2021-01-12 15:05:25 +01:00
3242264a77 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-12 15:04:00 +01:00
fa66fafd2c Merge branch 'development' into mueller/rtems-update-stm32 2021-01-12 15:01:33 +01:00
f81d3e81dc Merge pull request 'Bugfix Device Handler Base' (#339) from mueller/devicehandler-bugfix into development
Reviewed-on: fsfw/fsfw#339
2021-01-12 14:45:11 +01:00
cafc8e4ccb updated attorneys 2021-01-12 14:08:51 +01:00
67879bf12f Merge branch 'development' into mueller/devicehandler-bugfix 2021-01-12 13:28:10 +01:00
d281b56ce2 Merge pull request 'moved includes' (#335) from mueller/bugfix/defaultcfg into development
Reviewed-on: fsfw/fsfw#335
2021-01-12 13:27:57 +01:00
ba9a604c93 Merge branch 'development' into mueller/bugfix/defaultcfg 2021-01-12 13:27:19 +01:00
72e9a9516f Merge pull request 'cmake lists updates' (#336) from mueller/cmake-updates into development
Reviewed-on: fsfw/fsfw#336
2021-01-12 13:26:39 +01:00
25a86e91de fixed warning of static var 2021-01-12 13:23:24 +01:00
7e394ea15f replaced all fsfw:: by sif:: for printouts 2021-01-12 13:18:18 +01:00
071ce21f09 renamed namepsace for printers 2021-01-12 13:12:44 +01:00
bb10c25909 introduced new accessor IF 2021-01-12 00:13:49 +01:00
0109428d47 indentation 2021-01-11 22:46:40 +01:00
fa5580cb7f indentation 2021-01-11 22:45:04 +01:00
58d813c249 minor formatting stuff 2021-01-11 22:33:58 +01:00
0be4c35b73 using 100 line width now 2021-01-11 22:32:36 +01:00
44955db341 tab replacement 2021-01-11 22:27:24 +01:00
a8873e608c cleaning up 2021-01-11 22:25:39 +01:00
065f79615a compiling again 2021-01-11 22:21:21 +01:00
5bc46bae02 reverted some stuff 2021-01-11 22:18:42 +01:00
037bd83af9 trying new interface 2021-01-11 21:31:03 +01:00
0bf0d8e743 stuff 2021-01-11 20:20:39 +01:00
NguSa1
54e97f7bdc Merge branch 'sa/new-if' into mueller/master 2021-01-11 20:18:11 +01:00
NguSa1
217866c042 SubscriptIF implementation started 2021-01-11 19:44:07 +01:00
ef9ad60ba8 doc update 2021-01-11 16:38:25 +01:00
5e251705f6 getter function for object iD 2021-01-11 16:33:02 +01:00
af7def3368 some bugfixes 2021-01-11 16:26:46 +01:00
6010246592 rearchitectured a little bit 2021-01-11 16:21:41 +01:00
2d28f71eca Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-11 00:49:33 +01:00
e497c4ab15 added new reamde file stubs 2021-01-10 17:34:21 +01:00
c956feafd6 added new readme which will be filled later 2021-01-10 17:30:31 +01:00
1f901a14ff updated osal readme 2021-01-10 17:28:13 +01:00
368b42c7b0 formatting improvements 2021-01-10 17:26:48 +01:00
6dde0ab8f6 readme update 2021-01-10 17:25:51 +01:00
952438f252 README 2021-01-10 17:25:19 +01:00
7a053b6f72 updated README 2021-01-10 17:24:19 +01:00
4bfbeead00 additional doc 2021-01-10 15:04:47 +01:00
63ce87acab more indentation corrections 2021-01-10 14:59:03 +01:00
15b65b78e7 ndentiation 2021-01-10 14:57:56 +01:00
6993415873 more tests 2021-01-10 14:54:05 +01:00
4fa9a1fe19 added more tests 2021-01-10 14:33:02 +01:00
69e931c07b important logic fix 2021-01-10 14:27:57 +01:00
1af28dd457 updated user folder for unittests 2021-01-10 13:59:40 +01:00
b570da6467 more tests added 2021-01-10 13:58:33 +01:00
918200e88c added first unit tests for hk manager 2021-01-10 12:53:01 +01:00
f8abf3527d fixed indentation 2021-01-10 11:51:33 +01:00
13ffcfe801 prints added 2021-01-09 16:20:35 +01:00
7129ea67bd linux fixes 2021-01-09 16:06:54 +01:00
36bc7609c5 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-01-09 13:52:57 +01:00
dbe326e787 minor tweak 2021-01-09 13:52:47 +01:00
f083e83f63 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-08 21:09:29 +01:00
57829faa64 added cast 2021-01-08 21:03:47 +01:00
ffb7b41f0a Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-08 20:56:23 +01:00
12091ca6ab enum members renamed, global vars static now 2021-01-08 20:55:36 +01:00
b59d6d3244 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-08 20:46:49 +01:00
7c47b1ce34 100 percent test coverage for pool vector 2021-01-08 20:44:05 +01:00
9f15cd697d improved includes 2021-01-08 16:23:57 +01:00
a1c394143a small formatting stuff 2021-01-08 16:18:08 +01:00
a9dba82661 bugfix 2021-01-08 16:16:17 +01:00
c0fd981360 improved DHB error handling 2021-01-08 16:14:11 +01:00
541478e4d5 another small improvement 2021-01-08 15:15:02 +01:00
f2ecd6d740 revamed and imroved error handling 2021-01-08 15:10:33 +01:00
5a8647d367 better returnvalues etc. 2021-01-08 13:40:13 +01:00
3b39c6b6e2 defaultcfg update 2021-01-08 02:07:37 +01:00
2ef3e0aa7b added option to add CR for printf support 2021-01-08 02:06:27 +01:00
4255176b5c more tests, minor bugfix 2021-01-08 01:49:00 +01:00
41d8cbda55 small form changes 2021-01-08 00:22:04 +01:00
8e3f4c81a5 pool entry doc correction 2021-01-08 00:20:39 +01:00
c1c331e29e fixed vector test 2021-01-08 00:10:10 +01:00
bd5cc7ae3e Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-07 20:31:44 +01:00
d3405ee340 whitespace 2021-01-07 20:30:52 +01:00
d3fbe4a3b9 local pool variable error handling improved 2021-01-07 20:29:38 +01:00
44a5430555 pool vector improvements 2021-01-07 20:28:03 +01:00
3be51762cc improved error handling significantly 2021-01-07 20:23:23 +01:00
007526c050 new f unctions for read error reporting, bugfix 2021-01-07 19:10:07 +01:00
8aaf45049f major bugfix in rtems osal 2021-01-06 21:49:40 +01:00
fcb33201a4 fixed linux osal 2021-01-06 21:45:35 +01:00
2b287dfc3a freertos and pool read helper fix 2021-01-06 21:33:54 +01:00
dacdfc62d3 a lot of bugfixes and important api change 2021-01-06 21:14:23 +01:00
91cf5f1764 added way to completely disable printouts 2021-01-06 19:49:58 +01:00
db7d28f852 test update 2021-01-06 19:32:33 +01:00
8807772d13 100 % line coverage reached 2021-01-06 19:16:41 +01:00
dc8dd770e7 added more tests 2021-01-06 19:07:35 +01:00
16458f6a1e continued tests 2021-01-06 18:20:38 +01:00
bd93392b59 local pool variabel tweaks and fixes 2021-01-06 16:26:08 +01:00
b241ef6aad continued tests 2021-01-05 22:51:49 +01:00
a05cf8d4ab updated tests 2021-01-05 22:46:17 +01:00
85764ba94c added include 2021-01-05 17:30:15 +01:00
fbb063ceda Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-01-05 16:44:52 +01:00
e64b2e0616 bugfix 2021-01-04 15:38:46 +01:00
63e80206bc rtems osal update 2021-01-04 15:34:08 +01:00
3c041388d6 bugfix 2021-01-04 15:31:06 +01:00
cca5689a18 clock improvements for rtems 2021-01-04 15:17:11 +01:00
8e3aef5df0 adding new tests for local pool variable 2021-01-04 00:21:44 +01:00
49c6cd9473 added local pool owner base 2021-01-03 23:27:49 +01:00
e9a8313df7 repaired unit tests 2021-01-03 23:18:10 +01:00
e9da8e79f3 updated testcfg 2021-01-03 22:00:40 +01:00
51cdf6cc76 missing include added 2021-01-03 16:48:18 +01:00
f64e356de3 small include fix 2021-01-03 16:42:29 +01:00
fd44fb4781 Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2021-01-03 16:00:09 +01:00
c94a396ffb changelog update 2021-01-03 15:31:44 +01:00
59d327f8b6 console init for printf on windows 2021-01-03 15:15:03 +01:00
8c8965177f new amalgated header 2021-01-03 15:04:37 +01:00
98af84c145 additional tweask 2021-01-03 14:41:54 +01:00
695a767164 some include fixes 2021-01-03 14:33:17 +01:00
2edf158312 correct preprocessor define now used 2021-01-03 14:16:52 +01:00
4515c0d3cd exlcuding ostream headers 2021-01-03 14:08:40 +01:00
afda3b2fa0 small tweak 2021-01-03 14:00:29 +01:00
c19e628d79 all cstdout uses wrapped in preprocessor defines 2021-01-03 13:58:18 +01:00
61fc6cac97 added change for windows 2021-01-03 13:25:42 +01:00
087482300d include order 2021-01-03 01:49:12 +01:00
717027792e minor improvements and docuemntation 2021-01-03 01:47:01 +01:00
e300207f48 removed comment 2021-01-03 01:40:35 +01:00
5c42888f10 whitespace 2021-01-03 01:39:06 +01:00
0e2875b22d added colored output for streams as well 2021-01-03 01:35:17 +01:00
b30405fee7 added stdio pinters 2021-01-03 01:02:07 +01:00
7759b19961 added new files 2021-01-02 23:22:50 +01:00
4c07ca21eb important include fix 2021-01-02 19:40:00 +01:00
e5b3f991ef added important rtems include 2021-01-02 19:39:02 +01:00
4de5fc44b4 rtems init 2021-01-01 21:19:42 +01:00
ced753b513 include guard 2021-01-01 18:06:33 +01:00
f223aa148e updated cmake lists 2021-01-01 18:05:02 +01:00
3ea763bf34 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2021-01-01 18:03:40 +01:00
5be95fada7 bugfixes and RTEMS update for STM32 2021-01-01 17:18:37 +01:00
193881f784 Merge branch 'mueller/defaultcfg-update' into mueller/master 2020-12-30 22:59:20 +01:00
7b15a5a431 moved includes 2020-12-30 22:57:52 +01:00
c4fb1f49d8 updated defaultcfg 2020-12-30 22:56:46 +01:00
8920349ed0 Merge branch 'mueller/devicehandler-bugfix' into mueller/master 2020-12-30 22:37:02 +01:00
0a4d0b5937 bugfix 2020-12-30 22:34:40 +01:00
56eac46472 Revert "device handler base update"
This reverts commit 44dcd3104eae56157adee88e0ecbd8712fe86881.
2020-12-30 22:17:08 +01:00
44dcd3104e device handler base update 2020-12-30 22:01:11 +01:00
1ac2479b28 made warning flag optional 2020-12-29 18:06:25 +01:00
8ef6283bf4 added srv3 2020-12-29 14:10:38 +01:00
219c057fb9 added service 3 cmake support 2020-12-29 14:08:48 +01:00
c8af75f9c7 moved inlcudes 2020-12-28 18:06:34 +01:00
bc1513c649 cmake lists updates 2020-12-28 18:06:00 +01:00
5b9c0e013e Merge branch 'mueller/test-update' into mueller/bundled-update 2020-12-28 18:01:05 +01:00
b2c98f0ae4 Merge branch 'mueller/test-update' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/test-update 2020-12-28 18:00:07 +01:00
c5212226b8 Merge remote-tracking branch 'origin/mueller/test-update' into mueller/bundled-update 2020-12-28 17:58:50 +01:00
91cb061da9 datapool updates, fixes, pool read helper 2020-12-28 17:55:19 +01:00
bc475f0a9a bugfixes 2020-12-28 17:48:26 +01:00
d268c6d96c moved includes to allow c inclusion 2020-12-28 16:59:39 +01:00
b126149215 removed abi flags, are part of cross compile file now 2020-12-28 16:49:43 +01:00
f9bcc835d7 include updated 2020-12-28 01:17:03 +01:00
1538a39d5b Merge branch 'mueller/test-update' into mueller/master 2020-12-27 15:16:08 +01:00
254b1437e9 repaired windows unittests 2020-12-27 15:15:51 +01:00
978cbea341 Merge remote-tracking branch 'origin/mueller/test-update' into mueller/master 2020-12-27 15:04:24 +01:00
f60f02c5b8 updated readme 2020-12-27 14:53:37 +01:00
d8d2f207e1 cleaned up includes 2020-12-27 14:20:26 +01:00
37463b660b restructured test folder and enabled cmake v3 support 2020-12-27 14:14:38 +01:00
39887db8d2 removed newline 2020-12-27 12:59:25 +01:00
e24e50b5ee removed todo 2020-12-27 12:58:05 +01:00
d80ddcccac Merge branch 'mueller/raiiacctest' into mueller/master 2020-12-27 02:04:56 +01:00
ed473d0a1b bugfix 2020-12-27 02:04:45 +01:00
76403ce0ab renaming 2020-12-27 01:53:59 +01:00
f852c774f8 accessor test 2020-12-27 01:52:48 +01:00
535b51ef70 improvements and clarifications 2020-12-27 01:15:52 +01:00
639dbee8a3 form stuff 2020-12-27 00:21:39 +01:00
76696e34be its possible to protect every read/commit now 2020-12-26 23:57:23 +01:00
e35c2cd604 hk manager optional now 2020-12-26 23:16:33 +01:00
b469340ef4 bugfix 2020-12-26 18:06:56 +01:00
4157a4b638 Merge branch 'development' into mueller/master 2020-12-26 14:47:54 +01:00
9eec75df26 linking against thread lib 2020-12-25 01:49:44 +01:00
3486a04741 renaming for name shadowing 2020-12-25 00:37:24 +01:00
68fe923a01 renamed class enums 2020-12-24 02:03:33 +01:00
c5eae8c41b Merge branch 'development' into mueller/tmstorage 2020-12-23 23:51:54 +01:00
426514b9a2 Merge pull request 'Move static constants to DeviceHandlerIF' (#331) from eive/fsfw:mueller/no-raw-command-moved-to-if into development
Reviewed-on: fsfw/fsfw#331
2020-12-23 23:51:40 +01:00
e9b819e21e Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2020-12-23 20:27:22 +01:00
159ad15b73 Merge branch 'development' into mueller/master 2020-12-23 20:27:14 +01:00
d7efa1b4d7 Merge branch 'development' into mueller/master 2020-12-23 20:19:34 +01:00
a00f3b9adc Merge remote-tracking branch 'upstream/development' into mueller/master 2020-12-23 20:19:23 +01:00
dcc111e4fa moved no comamnd and raw command to device handler IF 2020-12-23 20:17:10 +01:00
e94238762f Merge remote-tracking branch 'upstream/development' into development 2020-12-23 20:15:39 +01:00
ccbbef7778 Merge branch 'development' into mueller/master 2020-12-22 17:54:10 +01:00
bda9546f51 Merge branch 'development' into mueller/tmstorage 2020-12-22 17:35:26 +01:00
52d9a55d06 Merge pull request 'better error handling' (#329) from KSat/fsfw:mueller/osal-windows-tweak into development
Reviewed-on: fsfw/fsfw#329
2020-12-22 17:34:41 +01:00
c19b838657 Merge branch 'development' into mueller/osal-windows-tweak 2020-12-22 17:34:33 +01:00
f9e36d7268 Merge pull request 'include guards' (#330) from KSat/fsfw:mueller/tmtcpacket-tiny-tweak into development
Reviewed-on: fsfw/fsfw#330
2020-12-22 17:31:35 +01:00
0eff30e065 Merge branch 'development' into mueller/tmtcpacket-tiny-tweak 2020-12-22 17:31:25 +01:00
27fe235700 Merge branch 'development' into mueller/osal-windows-tweak 2020-12-22 17:30:42 +01:00
bc8c3da1b7 Merge branch 'development' into mueller/tmstorage 2020-12-22 17:30:27 +01:00
2706669011 Merge pull request 'time stamper ID added' (#328) from KSat/fsfw:mueller/fwObject-timestamper into development
Reviewed-on: fsfw/fsfw#328
2020-12-22 17:28:49 +01:00
ba1f8f7171 Merge branch 'development' into mueller/master 2020-12-22 16:38:41 +01:00
208ad7d479 fixed timeslot task doc 2020-12-22 16:24:52 +01:00
e55df691ff upstream subsystem taken over 2020-12-22 16:24:15 +01:00
f017e9c6d4 include guards 2020-12-22 16:22:11 +01:00
27d03dc17f upstream cmakelists f iles taken over 2020-12-22 16:21:17 +01:00
f905a753e2 upstream unittest folder adapted 2020-12-22 16:20:24 +01:00
41dc9ce6c6 cmake lists form upstream taken over 2020-12-22 16:19:30 +01:00
707bb9dd5d serviceinterface taken over 2020-12-22 16:18:50 +01:00
2e1ad41da7 power and pus upstream taken over 2020-12-22 16:18:12 +01:00
f6e7e232f5 parameter upstream taken over 2020-12-22 16:17:15 +01:00
e674b9248a better error handling 2020-12-22 16:15:40 +01:00
c174c9ecb8 osal taken over 2020-12-22 16:15:18 +01:00
571a64c42a time stamper ID added 2020-12-22 16:10:53 +01:00
e052a9694f upstream stuff 2020-12-22 16:10:13 +01:00
c603bcc91c some upstream stuff taken over 2020-12-22 16:08:24 +01:00
f21f43754b taken over upstream defaultcfg 2020-12-22 16:06:46 +01:00
7b98b0d5dd txt is md now 2020-12-22 16:04:39 +01:00
df7a2322bf timemanager update 2020-12-22 16:03:56 +01:00
8f88032110 taken over upstream .mk file 2020-12-22 16:00:30 +01:00
a73cd37e52 taken over changelog 2020-12-22 15:59:46 +01:00
75a0df4cd9 tm storage update 2020-12-22 15:59:28 +01:00
09161f22d0 updated tm storage 2020-12-22 15:58:52 +01:00
021b9b8c50 improvements 2020-12-22 15:57:43 +01:00
83458c851e Merge pull request 'timemanager update' (#315) from KSat/fsfw:mueller/timeman-update into development
Reviewed-on: fsfw/fsfw#315
2020-12-22 15:50:28 +01:00
48a89d59d6 Merge branch 'mueller/timeman-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/timeman-update 2020-12-22 15:49:39 +01:00
958db291e8 now it compiles 2020-12-22 15:49:31 +01:00
c8ca680d5f Merge branch 'development' into mueller/timeman-update 2020-12-22 15:40:14 +01:00
d2a9b769eb Merge pull request 'tmtcservices update' (#309) from KSat/fsfw:mueller/tmtcservices-update into development
Reviewed-on: fsfw/fsfw#309
2020-12-22 15:39:07 +01:00
329cd8862a Merge branch 'development' into mueller/tmtcservices-update 2020-12-22 15:37:22 +01:00
fe26fc4824 Merge branch 'development' into mueller/timeman-update 2020-12-22 15:36:48 +01:00
ddcdfb3403 Merge pull request 'Fixed file ending of devicehanlder remake' (#326) from gaisser/fsfw:development into development
Reviewed-on: fsfw/fsfw#326
2020-12-22 15:36:33 +01:00
822cc0306c Fixed file ending of devicehanlder remake 2020-12-22 15:35:23 +01:00
483cec191b Merge pull request 'updated docs, added new doc folder' (#325) from KSat/fsfw:mueller/doc-update into development
Reviewed-on: fsfw/fsfw#325
2020-12-22 15:31:50 +01:00
5a4f453aaa Merge branch 'mueller/timeman-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/timeman-update 2020-12-22 15:30:03 +01:00
ab9965cb81 clock corrected 2020-12-22 15:29:42 +01:00
afad130918 Merge branch 'development' into mueller/doc-update 2020-12-22 15:29:05 +01:00
7f3bdb6082 Merge pull request 'devicehandler updates' (#320) from KSat/fsfw:mueller/devicehandlers-update into development
Reviewed-on: fsfw/fsfw#320
2020-12-22 15:28:46 +01:00
117b29e413 Merge branch 'development' into mueller/devicehandlers-update 2020-12-22 15:28:38 +01:00
0e1eac4f14 Merge pull request 'HOST CMake Improvements' (#318) from mueller/host-cmake-improvements into development
Reviewed-on: fsfw/fsfw#318
2020-12-22 15:22:57 +01:00
041aaf01db Merge branch 'development' into mueller/host-cmake-improvements 2020-12-22 15:21:34 +01:00
6663c69ee9 Merge pull request 'cmake fixes' (#314) from mueller/cmake-fixes into development
Reviewed-on: fsfw/fsfw#314
2020-12-22 15:18:58 +01:00
cb7a22c370 Merge branch 'development' into mueller/cmake-fixes 2020-12-22 15:18:47 +01:00
5941bd710a Merge pull request 'clearing HK message included now' (#322) from KSat/fsfw:mueller/ipc-update into development
Reviewed-on: fsfw/fsfw#322
2020-12-22 15:13:51 +01:00
631bbf70c2 Merge branch 'development' into mueller/ipc-update 2020-12-22 15:13:20 +01:00
85d6e02291 Merge pull request 'nullptr check added' (#324) from KSat/fsfw:mueller/datapool-update into development
Reviewed-on: fsfw/fsfw#324
2020-12-22 15:12:03 +01:00
3b59a50e9a Merge branch 'development' into mueller/datapool-update 2020-12-22 15:11:37 +01:00
4a154140f3 Merge pull request 'unittest update' (#323) from KSat/fsfw:mueller/unittest-update into development
Reviewed-on: fsfw/fsfw#323
2020-12-22 15:11:27 +01:00
b0fcb404b3 Merge branch 'development' into mueller/unittest-update 2020-12-22 15:11:02 +01:00
422a0f1ee0 Merge pull request 'defaultcfg update' (#319) from KSat/fsfw:mueller/defaultcfg-update into development
Reviewed-on: fsfw/fsfw#319
2020-12-22 15:05:36 +01:00
d396bab455 Merge branch 'development' into mueller/defaultcfg-update 2020-12-22 15:05:16 +01:00
11778c706c Merge pull request 'deleted tpp files, replaced by source files' (#313) from mueller/deleted-storagman-tpp into development
Reviewed-on: fsfw/fsfw#313
2020-12-22 15:05:01 +01:00
cf954ac8d1 Merge branch 'development' into mueller/deleted-storagman-tpp 2020-12-22 14:46:19 +01:00
5e315ce083 Merge pull request 'LocalPoolVar: using long name now' (#312) from KSat/fsfw:mueller/datapoollocal-long-name into development
Reviewed-on: fsfw/fsfw#312
2020-12-22 14:45:56 +01:00
49aa937968 Merge branch 'development' into mueller/datapoollocal-long-name 2020-12-22 14:45:24 +01:00
eb310a72ef Merge pull request 'added hk service 3' (#311) from KSat/fsfw:mueller/hk-service3 into development
Reviewed-on: fsfw/fsfw#311
2020-12-22 14:44:05 +01:00
dca5e1b51c Merge branch 'development' into mueller/hk-service3 2020-12-22 14:43:26 +01:00
d8be07b4db Merge pull request 'Linux convergence' (#310) from KSat/fsfw:mueller/linux-update into development
Reviewed-on: fsfw/fsfw#310
2020-12-22 14:43:15 +01:00
1ad94bae7d Merge remote-tracking branch 'upstream/development' into mueller/timeman-update 2020-12-22 14:27:36 +01:00
8349e12e43 Merge branch 'development' into mueller/timeman-update 2020-12-22 15:14:08 +01:00
332a327777 Merge branch 'development' into mueller/timeman-update 2020-12-22 14:48:11 +01:00
9ac07368da changelog update 2020-12-22 14:26:42 +01:00
7934104cbb Merge branch 'mueller/tmtcservices-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/tmtcservices-update 2020-12-22 14:19:22 +01:00
7075952a8b Merge branch 'development' into mueller/tmtcservices-update 2020-12-22 15:17:12 +01:00
d607332f8d removed comment 2020-12-22 14:19:13 +01:00
7ba660a222 removed comment 2020-12-22 14:18:48 +01:00
947dfd69e9 service types.h delted 2020-12-22 14:16:33 +01:00
3b391d3380 deleted service types header 2020-12-22 14:15:21 +01:00
362578e982 transition delay abstract 2020-12-22 14:12:35 +01:00
9b22a2f3ac Merge branch 'mueller/devicehandlers-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/devicehandlers-update 2020-12-22 14:11:46 +01:00
6135c6b2df Merge branch 'development' into mueller/devicehandlers-update 2020-12-22 15:08:14 +01:00
9937842ded get transiition delay abstract 2020-12-22 14:11:36 +01:00
331d940852 Merge remote-tracking branch 'upstream/development' into mueller/tmtcservices-update 2020-12-22 14:07:33 +01:00
dda7b5ff6c Merge remote-tracking branch 'upstream/development' into mueller/tmtcservices-update 2020-12-22 14:06:13 +01:00
620ab01e38 Merge remote-tracking branch 'upstream/development' into mueller/ipc-update 2020-12-22 13:53:41 +01:00
0fec6172a1 Merge remote-tracking branch 'upstream/development' into mueller/unittest-update 2020-12-22 13:31:03 +01:00
4c41e36044 nullptr check added 2020-12-22 13:29:06 +01:00
6b1a8afe2b unittest update 2 2020-12-22 13:25:50 +01:00
820731de7b updated docs, added new doc folder 2020-12-22 13:23:19 +01:00
8896752927 updated readme 2020-12-22 13:22:10 +01:00
632f319a2f updated readme 2020-12-22 13:19:00 +01:00
95a8dd418c added cmake lists 2020-12-22 13:29:58 +01:00
ee05a34c9e added gitmodules 2020-12-22 13:27:47 +01:00
5e8aff0603 unittest update 2020-12-22 13:25:00 +01:00
e41aba719c updated testcfg 2020-12-22 13:20:17 +01:00
b97b67d56e updating unittest folder 2020-12-22 13:19:07 +01:00
770336fff3 added ipc cmakelists 2020-12-22 13:06:35 +01:00
6f756a721c clearing HK messagei ncluded now 2020-12-22 13:05:59 +01:00
d53645e6ea Merge branch 'mueller/devicehandlers-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/devicehandlers-update 2020-12-22 12:53:21 +01:00
9de2b054ef updated changelog 2020-12-22 12:53:03 +01:00
a53959affa Merge branch 'development' into mueller/devicehandlers-update 2020-12-22 12:49:49 +01:00
0a7aaffe6a Merge remote-tracking branch 'upstream/development' into mueller/defaultcfg-update 2020-12-22 12:47:33 +01:00
ca2d242adb defaultcfg update 2020-12-22 12:45:51 +01:00
b28bf35fc3 devicehandler updates 2020-12-22 12:44:55 +01:00
81201d6fb7 typo 2020-12-22 00:39:51 +01:00
38983407fd added default implementation for setNormalDatapool
entries invalid
2020-12-22 00:22:35 +01:00
6abc560094 feed back include improvements 2020-12-22 00:55:47 +01:00
8dd9d6ad91 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-12-21 23:39:34 +01:00
c2619bf070 transition delay not 0 anymore 2020-12-21 23:39:24 +01:00
31b82975c7 typo fix 2020-12-21 19:51:34 +01:00
04c92bcdfc Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into mueller/master 2020-12-21 17:27:17 +01:00
5317391f8a reverted change 2020-12-21 17:19:43 +01:00
71ee86a688 reverted sif buffer changes 2020-12-21 17:18:31 +01:00
59eab8866d using traits again 2020-12-21 17:16:44 +01:00
4100bb19ce Merge branch 'mueller/host-cmake-improvements' into mueller/master 2020-12-21 14:07:25 +01:00
1d080ba6cb clock update 2020-12-21 14:07:06 +01:00
17a12b7807 clock update 2020-12-21 14:05:44 +01:00
a6e38afb98 buffer more explicit eof() 2020-12-21 14:04:04 +01:00
30c9209c74 better win udp polling task error handling 2020-12-21 14:03:19 +01:00
e511dc61b4 upstream osal endiness adapted 2020-12-21 14:02:41 +01:00
de61d0c3ac upstream timeval op 2020-12-21 14:02:13 +01:00
ca25714646 upstream coordinates taken over 2020-12-21 14:01:48 +01:00
5c45b823ad include fix 2020-12-21 13:52:41 +01:00
fc4da433d5 using winsock2 now 2020-12-21 13:49:42 +01:00
de183e6c65 removed comment 2020-12-20 17:01:22 +01:00
d8e5000d47 msvc tests 2020-12-20 15:32:03 +01:00
3540adf022 added warning flags 2020-12-20 13:21:12 +01:00
a0d5b23311 small improvement 2020-12-20 02:09:08 +01:00
ebe7f02fc4 better error handling 2020-12-20 01:56:21 +01:00
c64a9654ea xcompile update 2020-12-19 22:51:10 +01:00
d186b70d2e comment added 2020-12-19 18:41:28 +01:00
8ede00fdf1 small bugfixes 2020-12-19 18:38:02 +01:00
b8e703ca83 linked against OS 2020-12-19 13:04:16 +01:00
be20978998 better path determination 2020-12-19 12:10:29 +01:00
e030d7ed97 correct interface and private includes 2020-12-19 02:29:22 +01:00
c0099481a1 added freertos cmakelists 2020-12-19 00:21:08 +01:00
62b5c19063 small fix 2020-12-17 20:18:16 +01:00
60d69c95c4 address in use handling for socket 2020-12-17 17:10:27 +01:00
ac40b1c966 cmake list formatting 2020-12-17 11:46:50 +01:00
74c49e1481 Merge branch 'development' into mueller/master 2020-12-16 14:05:29 +01:00
07814abf3a Merge branch 'development' into mueller/datapoollocal-long-name 2020-12-16 14:03:23 +01:00
f8b34bcb53 some readme improvements 2020-12-16 13:53:36 +01:00
086cbe1e39 Merge remote-tracking branch 'upstream/development' into development 2020-12-16 12:00:59 +01:00
f128a1dc3d made datalinklayer optional 2020-12-15 23:44:43 +01:00
c48f1c8ee6 Merge branch 'development' into mueller/cmake-fixes 2020-12-15 23:05:32 +01:00
ea289be29e Merge branch 'development' into mueller/timeman-update 2020-12-15 23:03:03 +01:00
c8ddfe598b timemanager update 2020-12-15 23:00:30 +01:00
8706d663d5 upstream changes taken over 2020-12-15 22:57:14 +01:00
a411df18db deleted tpp files, replaced by source files 2020-12-15 22:52:29 +01:00
f99bf6d75c taken over cmake list for storagemanager 2020-12-15 22:51:30 +01:00
cd1fb88313 Merge remote-tracking branch 'upstream/development' into mueller/linux-update 2020-12-15 22:49:18 +01:00
1f7938f610 deleted archive folder 2020-12-15 22:46:55 +01:00
4f33a1908a Merge branch 'development' into mueller/hk-service3 2020-12-15 22:44:24 +01:00
e39c4fe2a8 added hk service 3 2020-12-15 22:42:50 +01:00
e7da1e37c3 Merge branch 'development' into mueller/tmtcservices-update 2020-12-15 15:57:09 +01:00
356bd2717e Merge pull request 'event update' (#308) from KSat/fsfw:mueller/event-update into development
Reviewed-on: fsfw/fsfw#308
2020-12-15 15:56:47 +01:00
910e6817ef default cfg update 2020-12-15 15:48:06 +01:00
82a83a50ee change log update 2020-12-15 15:39:33 +01:00
72c54d59fa fsfw config 2020-12-15 15:32:56 +01:00
48aef06837 fsfwconfig update 2020-12-15 15:24:46 +01:00
ca52255d30 update 2020-12-15 15:20:32 +01:00
175db9e6fc Merge branch 'development' into mueller/event-update 2020-12-15 15:20:29 +01:00
5ba1932076 Merge pull request 'task convergence' (#307) from KSat/fsfw:mueller/tasks-update into development
Reviewed-on: fsfw/fsfw#307
2020-12-15 15:20:15 +01:00
703d2590ff update csb 2020-12-15 15:20:08 +01:00
9dabdf4b56 Merge branch 'development' into mueller/tasks-update 2020-12-15 15:19:38 +01:00
a343baa813 Merge pull request 'Subsystem Update' (#306) from KSat/fsfw:mueller/subsyste-update into development
Reviewed-on: fsfw/fsfw#306
2020-12-15 15:16:58 +01:00
eb5ac573a9 Merge branch 'mueller/tmtcservices-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/tmtcservices-update 2020-12-15 15:16:51 +01:00
fcce61aee0 Merge remote-tracking branch 'upstream/development' into mueller/tmtcservices-update 2020-12-15 15:16:45 +01:00
4e4ffeb608 Merge branch 'development' into mueller/tmtcservices-update 2020-12-15 15:16:29 +01:00
103d8b8c6a fixed timeslot task IF 2020-12-15 15:12:31 +01:00
4c152e9fd8 subsystem doc upodate 2020-12-15 15:07:41 +01:00
a57af5852d made check sequence 2020-12-15 15:04:07 +01:00
2c92fa64bc Merge branch 'development' into mueller/subsyste-update 2020-12-15 14:44:19 +01:00
d85686fd8d Merge pull request 'FreeRTOS update' (#305) from KSat/fsfw:mueller/FreeRTOS into development
Reviewed-on: fsfw/fsfw#305
2020-12-15 14:44:08 +01:00
534805957c Merge branch 'development' into mueller/FreeRTOS 2020-12-15 14:42:31 +01:00
4e6aa3128b Merge pull request 'type update' (#304) from KSat/fsfw:mueller/type into development
Reviewed-on: fsfw/fsfw#304
2020-12-15 14:42:16 +01:00
f733a85a9c type update 2020-12-15 14:41:33 +01:00
3e41b202a1 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-12-15 14:41:07 +01:00
052e2ed1e8 type update, assert that type is not boolean 2020-12-15 14:40:49 +01:00
335c75ba5b Merge branch 'development' into mueller/type 2020-12-15 14:31:27 +01:00
c53920f5ac Merge pull request 'RMAP folder convergence' (#302) from KSat/fsfw:mueller/rmap-convergence into development
Reviewed-on: fsfw/fsfw#302
2020-12-15 14:31:13 +01:00
a6a95b7719 Merge branch 'development' into mueller/rmap-convergence 2020-12-15 14:30:01 +01:00
7f7c4aea84 Merge pull request 'removed glob pool' (#300) from KSat/fsfw:mueller/removed-glob-pool into development
Reviewed-on: fsfw/fsfw#300
2020-12-15 14:29:49 +01:00
6deb0b565e Merge branch 'development' into mueller/removed-glob-pool 2020-12-15 14:28:54 +01:00
b9f50e8e42 Merge branch 'development' into mueller/rmap-convergence 2020-12-15 14:08:51 +01:00
9986203eff Merge branch 'mueller/FreeRTOS' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/FreeRTOS 2020-12-14 23:56:57 +01:00
3cc053a581 changes from mueller/master taken over 2020-12-14 23:56:44 +01:00
0c3e87f1de using new xTaskDelayUntil 2020-12-14 23:55:54 +01:00
b8f4d8690b determination of freeRTOS features from version 2020-12-14 23:38:06 +01:00
9170f466e8 freeRTOS version checks 2020-12-14 23:21:07 +01:00
93842bb913 using long name now 2020-12-14 22:56:30 +01:00
95b2191824 long name 2020-12-14 22:55:12 +01:00
b232a8a291 Merge remote-tracking branch 'upstream/development' into development 2020-12-14 21:57:42 +01:00
3ee25785a2 linux changes adapted 2020-12-14 21:54:03 +01:00
7f93c4a6aa Merge branch 'development' into mueller/FreeRTOS 2020-12-14 21:51:19 +01:00
efb4f0efbb Merge branch 'development' into mueller/type 2020-12-14 21:51:05 +01:00
4f2470b93f task factory 2020-12-14 21:48:12 +01:00
f2ba653833 ipc changes taken over 2020-12-14 21:47:42 +01:00
336b43572f linux update 2020-12-14 21:46:33 +01:00
db42e79fd4 taken over cmakelists file 2020-12-14 21:38:45 +01:00
1c79da0e75 tc distrib changed taken over 2020-12-14 21:34:29 +01:00
796f0e2e17 important changes adapted 2020-12-14 21:33:19 +01:00
8c88255873 taken over some tweaks 2020-12-14 21:31:50 +01:00
25db9bc9ed tmtcservices update 2020-12-14 21:30:39 +01:00
d2f631a955 cast added 2020-12-14 21:20:21 +01:00
f604d621e8 removed interrupt class 2020-12-14 21:19:12 +01:00
6911f91744 rtems fixes taken over 2020-12-14 21:15:41 +01:00
55a663beb2 unittest update 2020-12-14 21:14:38 +01:00
c1a156dde3 catch factory in objects folder again 2020-12-14 21:08:35 +01:00
050770c184 catch factory fixes 2020-12-14 21:07:58 +01:00
a3ebad46e7 small fix 2020-12-14 21:00:15 +01:00
d96d3d6c46 one define now 2020-12-14 20:58:47 +01:00
14a0573f3d one define now 2020-12-14 20:58:20 +01:00
b14c1c43cc small fix 2020-12-14 20:50:56 +01:00
2100ae34f2 event folder taken over 2020-12-14 20:49:17 +01:00
0f6d878d86 update 2020-12-14 20:48:41 +01:00
57853ba566 event update 2020-12-14 20:22:59 +01:00
a0e7584e84 tiny tweak 2020-12-14 20:19:23 +01:00
3bae575b5a Merge branch 'development' into mueller/subsyste-update 2020-12-14 13:16:44 +01:00
4d5186b6cd Merge branch 'development' into mueller/tasks-update 2020-12-14 13:16:36 +01:00
e06b15cb9c Merge pull request 'fixed includes' (#303) from KSat/fsfw:mueller/int-unittest-fixes into development
Reviewed-on: fsfw/fsfw#303
2020-12-14 13:16:27 +01:00
3f3c2481ad Merge branch 'development' into mueller/int-unittest-fixes 2020-12-14 13:16:09 +01:00
bd4ca743f5 Merge pull request 'Hotfixes for development branch' (#301) from hotfix/deviceHandlerThermalSet into development
Reviewed-on: fsfw/fsfw#301
2020-12-14 13:15:49 +01:00
81c00cd3dc Merge remote-tracking branch 'upstream/development' into development 2020-12-14 13:02:10 +01:00
d62e092be6 task convergence 2020-12-14 11:49:30 +01:00
a547fafa33 minor tweaks 2020-12-14 11:49:01 +01:00
3dd86039bb changes taken over 2020-12-14 11:43:32 +01:00
9d5ac16398 some more improvements 2020-12-14 11:43:08 +01:00
5eafd4f353 tiny format stuff 2020-12-14 11:42:02 +01:00
d3239b9064 tiny format stuff 2020-12-14 11:41:40 +01:00
89de4cc321 changes and tweaks taken over 2020-12-14 11:40:26 +01:00
e97787cceb some more tweaks 2020-12-14 11:39:19 +01:00
252bfa5c39 subsystem convergence 2020-12-14 11:35:45 +01:00
7eeba71619 subsystem update 2020-12-14 11:34:54 +01:00
5c6916a078 small tweaks 2020-12-14 11:23:23 +01:00
313d898aef small update 2020-12-14 11:22:44 +01:00
620c9c6ae1 taken over freeRTOS changes 2020-12-14 11:19:05 +01:00
94fa917202 some tweaks 2020-12-14 11:17:22 +01:00
dc72fa938d type update 2020-12-14 11:10:22 +01:00
073cd4f5e1 small tweaks 2020-12-14 11:09:53 +01:00
7ace117c42 added cmakelistst 2020-12-14 11:06:09 +01:00
0ccd266f51 internal unittests fixed 2020-12-14 10:49:00 +01:00
720e3baa90 fixed includes 2020-12-14 10:48:39 +01:00
f161a94113 taken over upstream fixes 2020-12-14 10:44:48 +01:00
692aa087d8 taken over cleaned up branch 2020-12-13 22:13:22 +01:00
715386e366 clened up a bit 2020-12-13 22:12:57 +01:00
3f77fab2d9 taken over cmake lists 2020-12-13 22:01:38 +01:00
7c390c07ee taken over unnittest folder from upstream 2020-12-13 21:58:54 +01:00
0b056720ba taken over master 2020-12-13 21:57:06 +01:00
d944e25d4a taken over upstream changes 2020-12-13 21:54:46 +01:00
f69113b4d5 taken over upstream change in ipc 2020-12-13 21:53:37 +01:00
0e42ba062d notice taken over 2020-12-13 21:51:46 +01:00
62e16b13d3 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-12-13 21:51:09 +01:00
b7dbdb072d taken over upstream changes 2020-12-13 21:50:33 +01:00
bc6936dddd indentation corrected (again) 2020-12-12 18:35:58 +01:00
5927d944de cmake fixes 2020-12-12 18:32:24 +01:00
d0d6247753 and now it compiles 2020-12-12 00:01:36 +01:00
101babd863 indentation consistent now 2020-12-11 23:53:29 +01:00
f9d5403204 added device handler thermalset 2020-12-11 23:50:00 +01:00
bb7ebf4b27 removed glob pool 2020-12-10 17:29:23 +01:00
3c316218f7 Merge pull request 'Enhanced Controller Base' (#276) from KSat/fsfw:mueller/enhanced-controller into development
Reviewed-on: fsfw/fsfw#276
2020-12-10 17:25:25 +01:00
d61c25f2d2 Merge branch 'development' into mueller/enhanced-controller 2020-12-10 17:25:10 +01:00
60ee66ec36 Merge pull request 'CMake Init' (#298) from mueller/cmake-init into development
Reviewed-on: fsfw/fsfw#298
2020-12-10 17:23:21 +01:00
03cc343527 Merge branch 'development' into mueller/cmake-init 2020-12-10 17:23:09 +01:00
0489c7a42d Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-10 17:23:07 +01:00
000129172a Merge pull request 'device handler uses local pools now' (#299) from KSat/fsfw:mueller/DeviceHandler-LocalPools into development
Reviewed-on: fsfw/fsfw#299
2020-12-10 17:22:55 +01:00
45b02083c9 Merge branch 'development' into mueller/DeviceHandler-LocalPools 2020-12-10 17:22:44 +01:00
5577eb893f Merge pull request 'Local Pool Refactoring' (#275) from KSat/fsfw:mueller/LocalPoolRefactoring into development
Reviewed-on: fsfw/fsfw#275
2020-12-10 17:21:26 +01:00
0cf9f334cc Merge branch 'mueller/DeviceHandler-LocalPools' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/DeviceHandler-LocalPools 2020-12-10 17:18:58 +01:00
7986584d17 updated comment 2020-12-10 17:18:46 +01:00
5cf4f4e839 Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-10 17:14:15 +01:00
9c59079e94 Merge remote-tracking branch 'upstream/development' into mueller/LocalPoolRefactoring 2020-12-10 17:12:01 +01:00
8ae13a189d Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-10 17:11:01 +01:00
b8f4cfe953 Merge branch 'development' into mueller/DeviceHandler-LocalPools 2020-12-10 17:10:45 +01:00
2c7936cecd Merge pull request 'Parameter Improvements' (#250) from KSat/fsfw:mueller/parameter-convergence into development
Reviewed-on: fsfw/fsfw#250
2020-12-10 17:09:55 +01:00
804155e951 Merge remote-tracking branch 'upstream/development' into mueller/LocalPoolRefactoring 2020-12-10 17:09:41 +01:00
a2823835dd explicit cast added 2020-12-10 17:05:41 +01:00
4964ba0246 Merge remote-tracking branch 'upstream/development' into mueller/parameter-convergence 2020-12-10 17:02:07 +01:00
2569080425 Merge remote-tracking branch 'upstream/development' into mueller/parameter-convergence 2020-12-10 17:01:07 +01:00
3fd18f9c58 Merge branch 'development' into mueller/DeviceHandler-LocalPools 2020-12-10 17:00:51 +01:00
c99ef61c77 Merge pull request 'added new interface for file systems' (#287) from KSat/fsfw:feature/has-file-system-if-init into development
Reviewed-on: fsfw/fsfw#287
2020-12-10 17:00:37 +01:00
616a073bb0 Merge branch 'development' into feature/has-file-system-if-init 2020-12-10 17:00:08 +01:00
18f90ef2fc Merge pull request 'power update' (#295) from KSat/fsfw:mueller/power-update into development
Reviewed-on: fsfw/fsfw#295
2020-12-10 16:59:52 +01:00
413e008d35 Merge remote-tracking branch 'upstream/development' into feature/has-file-system-if-init 2020-12-10 16:59:44 +01:00
9813e65dda Merge branch 'development' into mueller/power-update 2020-12-10 16:59:43 +01:00
b2d01a31c2 removed some commented stuff 2020-12-10 16:58:18 +01:00
50ad2c0380 resolved merge conflicts 2020-12-10 16:57:43 +01:00
f0380e4acc Merge branch 'development' into mueller/DeviceHandler-LocalPools 2020-12-10 16:57:24 +01:00
9fe2fc4cae Merge pull request 'new internal error reporter using local pools' (#292) from KSat/fsfw:mueller/internal-error-rprtr-update into development
Reviewed-on: fsfw/fsfw#292
2020-12-10 16:55:06 +01:00
67a8b031d0 Merge remote-tracking branch 'upstream/development' into mueller/LocalPoolRefactoring 2020-12-10 16:54:22 +01:00
0120ec29fd Merge branch 'development' into mueller/internal-error-rprtr-update 2020-12-10 16:53:45 +01:00
7d3641d42e Merge pull request 'thermal update' (#296) from KSat/fsfw:mueller/thermal-update into development
Reviewed-on: fsfw/fsfw#296
2020-12-10 16:53:30 +01:00
65f411ace2 Merge branch 'development' into mueller/thermal-update 2020-12-10 16:53:16 +01:00
cbdf56e62b Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-10 16:52:44 +01:00
5628d16197 Merge remote-tracking branch 'upstream/development' into feature/has-file-system-if-init 2020-12-10 16:51:42 +01:00
d7ca1df85b Merge remote-tracking branch 'upstream/development' into mueller/internal-error-rprtr-update 2020-12-10 16:50:14 +01:00
b1012b7cef Merge remote-tracking branch 'upstream/development' into mueller/power-update 2020-12-10 16:46:39 +01:00
03e4504815 Merge pull request 'some minor changes' (#291) from KSat/fsfw:mueller/datalinklayer-convergence into development
Reviewed-on: fsfw/fsfw#291
2020-12-10 16:45:21 +01:00
80531e73c9 Merge branch 'development' into mueller/datalinklayer-convergence 2020-12-10 16:45:14 +01:00
3dafdc9071 Merge pull request 'controller base update' (#290) from KSat/fsfw:mueller/controller-update into development
Reviewed-on: fsfw/fsfw#290
2020-12-10 16:42:45 +01:00
d412e4ff5d Merge branch 'development' into mueller/controller-update 2020-12-10 16:42:30 +01:00
be9913f262 themral module update 2020-12-10 16:40:22 +01:00
5bad114205 thermal module set heating repaired 2020-12-10 16:39:31 +01:00
9a540e97c5 taken over thermal module from thermal-update 2020-12-10 16:36:44 +01:00
f81c9d7ecc resolved merge conflicts 2020-12-10 16:36:09 +01:00
0a5099e293 deleted file which was renamed 2020-12-10 16:34:25 +01:00
ff62ab8427 removed core component 2020-12-10 16:32:52 +01:00
14e254141c Merge remote-tracking branch 'upstream/development' into mueller/thermal-update 2020-12-10 16:30:21 +01:00
14ecce084e Merge branch 'development' into mueller/parameter-convergence 2020-12-10 16:24:19 +01:00
4fbebcb019 Merge pull request 'monitoring update' (#294) from KSat/fsfw:mueller/monitoring-update into development
Reviewed-on: fsfw/fsfw#294
2020-12-10 16:24:00 +01:00
96a9ee9fc4 Merge branch 'development' into mueller/monitoring-update 2020-12-10 16:18:34 +01:00
a0a2752fd0 Merge branch 'development' into mueller/cmake-init 2020-12-09 10:07:22 +01:00
46596f9397 tab changed 2020-12-08 16:01:48 +01:00
df333e0cc8 tab replacement 2020-12-08 16:01:23 +01:00
e9a740f110 small tweak 2020-12-08 16:00:02 +01:00
5e2e18ac07 device handler uses local pools now 2020-12-08 15:59:30 +01:00
beab942f07 fixes taken over from master 2020-12-08 15:57:30 +01:00
1d6402a0c0 Merge remote-tracking branch 'upstream/development' into mueller/parameter-convergence 2020-12-08 15:55:49 +01:00
faedd40665 Merge pull request 'DHB additional step for performOperation' (#281) from KSat/fsfw:mueller/DHB-update into development
Reviewed-on: fsfw/fsfw#281
2020-12-08 15:53:05 +01:00
c126833dcf Merge remote-tracking branch 'upstream/development' into mueller/parameter-convergence 2020-12-08 15:51:31 +01:00
7f40566031 include removed 2020-12-08 15:50:21 +01:00
a612e19e94 ndentation 2020-12-08 15:49:46 +01:00
81988e77d9 Merge remote-tracking branch 'upstream/development' into mueller/internal-error-rprtr-update 2020-12-08 15:48:41 +01:00
9891086e65 Merge branch 'development' into mueller/datalinklayer-convergence 2020-12-08 15:46:49 +01:00
2514082af7 Merge remote-tracking branch 'upstream/development' into mueller/monitoring-update 2020-12-08 15:46:25 +01:00
012fb6f314 Merge remote-tracking branch 'upstream/development' into feature/has-file-system-if-init 2020-12-08 15:45:09 +01:00
ac5446b2b1 removed hk switcher helper member 2020-12-08 15:43:58 +01:00
b0053c3b77 Merge remote-tracking branch 'upstream/development' into mueller/controller-update 2020-12-08 15:42:51 +01:00
38819d796c Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-08 15:40:43 +01:00
eb781ecc7a Merge remote-tracking branch 'upstream/development' into mueller/DHB-update 2020-12-08 15:36:16 +01:00
42dd641924 Merge remote-tracking branch 'upstream/development' into mueller/DHB-update 2020-12-08 15:34:51 +01:00
7ff772d9d6 Merge pull request 'Local Data Pool Init' (#280) from KSat/fsfw:mueller/newLocalDataPools into development
Reviewed-on: fsfw/fsfw#280
2020-12-08 15:34:30 +01:00
bd1137d089 replaced hardcoded value with NO_COMMAND 2020-12-08 15:33:32 +01:00
2b8a2c4f29 Merge branch 'development' into mueller/newLocalDataPools 2020-12-08 15:18:48 +01:00
ba52d54244 Merge remote-tracking branch 'upstream/development' into mueller/internal-error-rprtr-update 2020-12-08 15:17:25 +01:00
6064984671 Merge remote-tracking branch 'upstream/development' into mueller/internal-error-rprtr-update 2020-12-08 15:16:29 +01:00
3b0e5daeed Merge branch 'mueller/datalinklayer-convergence' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/datalinklayer-convergence 2020-12-08 15:15:50 +01:00
8504bf3f42 Merge remote-tracking branch 'upstream/development' into mueller/datalinklayer-convergence 2020-12-08 15:15:42 +01:00
322dd1253e map packet extract update 2020-12-08 15:15:22 +01:00
4a46349286 minor imrpovements 2020-12-08 15:14:39 +01:00
34dac6f312 Merge branch 'development' into mueller/datalinklayer-convergence 2020-12-08 15:11:32 +01:00
5e132de712 Merge pull request 'makeEvent API improved' (#288) from KSat/fsfw:mueller/make-event-update into development
Reviewed-on: fsfw/fsfw#288
2020-12-08 15:10:55 +01:00
913914ce93 Merge branch 'mueller/make-event-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/make-event-update 2020-12-08 14:58:34 +01:00
6ee4ceeb65 deleted event.cpp source file 2020-12-08 14:58:24 +01:00
d7839b46a5 Merge branch 'development' into mueller/make-event-update 2020-12-08 14:53:09 +01:00
4084df6214 Merge branch 'development' into mueller/parameter-convergence 2020-12-08 14:52:22 +01:00
6bda443181 Merge branch 'development' into mueller/DHB-update 2020-12-08 14:51:38 +01:00
f0b13427e6 changelog update 2020-12-08 14:51:36 +01:00
de0fd94b7f Merge branch 'development' into mueller/enhanced-controller 2020-12-08 14:51:27 +01:00
31373e9605 Merge pull request 'Includes for unittest folder relative' (#285) from KSat/fsfw:mueller/unittest-fixes into development
Reviewed-on: fsfw/fsfw#285
2020-12-08 14:49:47 +01:00
1ecdf34df4 Merge branch 'development' into mueller/unittest-fixes 2020-12-08 14:49:20 +01:00
6f474daae0 Merge branch 'development' into mueller/controller-update 2020-12-08 14:46:18 +01:00
7d70cce4de namepsace fix 2020-12-08 14:45:43 +01:00
fdbe5408b7 renamed namespaces 2020-12-08 14:43:44 +01:00
0c5050ceac Merge branch 'development' into feature/has-file-system-if-init 2020-12-08 14:40:02 +01:00
d9cccdedf3 event update 2020-12-08 14:34:56 +01:00
7e9702c140 Merge branch 'mueller/make-event-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/make-event-update 2020-12-08 14:20:08 +01:00
2a025de321 changelog update 2020-12-08 14:19:53 +01:00
66e902d75d Merge branch 'development' into mueller/make-event-update 2020-12-08 14:17:56 +01:00
2e9e8331ea Merge pull request 'op divider additional features' (#286) from KSat/fsfw:mueller/op-divider-update into development
Reviewed-on: fsfw/fsfw#286
2020-12-08 14:15:34 +01:00
2df41cad88 Merge branch 'development' into mueller/op-divider-update 2020-12-08 14:13:44 +01:00
6e852c6c05 Merge pull request 'Fix for ActionHelper unittests' (#293) from mueller/action-unittest-fix into development
Reviewed-on: fsfw/fsfw#293
2020-12-08 14:13:23 +01:00
db5c54fcfe Merge branch 'development' into mueller/action-unittest-fix 2020-12-08 14:12:49 +01:00
aa3fe1e7f0 Merge pull request 'Host OSAL bugfixes' (#289) from mueller/host-osal-atomic into development
Reviewed-on: fsfw/fsfw#289
2020-12-08 14:10:31 +01:00
d93a8692e0 cmakelists update 2020-12-07 12:59:09 +01:00
489a2097b8 fix for host osal linux 2020-12-07 12:25:30 +01:00
c4ba243885 small bugfixes 2020-12-07 12:17:02 +01:00
33d4b57400 additional build option 2020-12-07 02:03:42 +01:00
5e234f1e23 cmake init, printChar tests 2020-12-07 01:40:10 +01:00
bb11bc5685 task if is set now 2020-12-05 17:11:34 +01:00
89e80beb62 task if set now 2020-12-05 17:10:36 +01:00
248ceebf81 taken over host osal from upstream branch 2020-12-05 17:09:49 +01:00
8b74fcff38 Merge branch 'development' into mueller/unittest-fixes 2020-12-05 11:51:54 +01:00
334815463b Merge branch 'development' into mueller/power-update 2020-12-05 11:51:14 +01:00
e6143eb0d8 Merge branch 'development' into mueller/monitoring-update 2020-12-05 11:51:04 +01:00
90f851f9b3 Merge branch 'development' into mueller/parameter-convergence 2020-12-05 11:49:47 +01:00
b6f0049535 Merge branch 'development' into feature/has-file-system-if-init 2020-12-05 11:47:01 +01:00
cb73e507b5 Merge branch 'development' into mueller/make-event-update 2020-12-05 11:46:39 +01:00
50a1ee5691 Merge branch 'development' into mueller/thermal-update 2020-12-05 11:46:06 +01:00
32eec9dfda Merge pull request 'OSAL MessageQueue Hotfix' (#297) from mueller/osal-mq-hotfix into development
Reviewed-on: fsfw/fsfw#297
2020-12-05 11:43:13 +01:00
c8f4bdd09a Merge branch 'development' into mueller/host-osal-atomic 2020-12-05 10:48:59 +01:00
6766abc0fa changelog update 2020-12-05 10:41:37 +01:00
c0e9c22f34 hotfix for message queue 2020-12-05 10:40:53 +01:00
983556b3b3 evil bug fixed 2020-12-05 01:21:04 +01:00
c5c776e676 rtems changes taken over from upstream 2020-12-03 18:57:50 +01:00
bd972ae356 Merge branch 'development' into mueller/thermal-update 2020-12-03 18:33:50 +01:00
64cf0d0a70 thermal update 2020-12-03 18:32:32 +01:00
c70ed5004e Merge branch 'development' into mueller/power-update 2020-12-03 18:30:27 +01:00
9ba8ef1ae2 power update 2020-12-03 18:29:28 +01:00
778f524714 Merge branch 'development' into mueller/monitoring-update 2020-12-03 18:26:23 +01:00
ec3c83bcc1 monitoring update 2020-12-03 18:24:51 +01:00
9781105ad0 moved catch factory again 2020-12-03 14:50:28 +01:00
03aacea4dd fixed unittest 2020-12-03 14:44:11 +01:00
b7a29235f8 deleted memory proxy file 2020-12-03 13:28:56 +01:00
ddcaee4aae Merge branch 'mueller/internal-error-rprtr-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/internal-error-rprtr-update 2020-12-03 13:27:00 +01:00
c6db9944fd changelog update 2020-12-03 13:26:50 +01:00
c94f8a8ddb Merge branch 'development' into mueller/internal-error-rprtr-update 2020-12-03 13:24:01 +01:00
f7f062570e new internal error reporter using local pools 2020-12-03 13:21:44 +01:00
98f9896911 Merge branch 'development' into mueller/datalinklayer-convergence 2020-12-03 13:19:43 +01:00
5e092778ed some minor changes 2020-12-03 13:17:28 +01:00
ffcbc11351 Merge branch 'development' into mueller/controller-update 2020-12-03 13:16:25 +01:00
795ff585f8 controller base update 2020-12-03 13:14:30 +01:00
3f9f062435 changelog update 2020-12-03 13:11:52 +01:00
74ba8b7664 changel og updated 2020-12-03 13:10:33 +01:00
0a80bf29b1 Merge branch 'development' into mueller/parameter-convergence 2020-12-03 13:05:12 +01:00
464988ca61 update 2020-12-03 13:00:04 +01:00
0cf65af506 Merge branch 'development' into mueller/newLocalDataPools 2020-12-03 12:58:30 +01:00
6d915b7dcf doc formatting 2020-12-02 23:26:40 +01:00
21c3db4ffc Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-12-02 23:22:40 +01:00
586e8b0347 function more robust now 2020-12-02 23:22:28 +01:00
f4ed0ce502 doc format improvements 2020-12-02 23:18:48 +01:00
5e77058add added getter function for pending command 2020-12-02 23:15:30 +01:00
2deb7037b0 todo added 2020-12-02 01:07:40 +01:00
558220643e small form improvements 2020-12-02 01:01:31 +01:00
7b742a2e67 warning removed from osal 2020-12-02 01:00:07 +01:00
8ad30d489a important bugfix for host osal 2020-12-02 00:58:13 +01:00
73d3defe9f error output improved 2020-12-02 00:32:07 +01:00
f5c384de14 some bugfixes 2020-12-02 00:27:53 +01:00
206d4b58b2 removed boolean var 2020-12-02 00:17:12 +01:00
a92f6c5d8e mutex bugfix for host 2020-12-02 00:05:54 +01:00
37196c8e3b atomic fix 2020-12-01 23:47:11 +01:00
4d76bf24b5 fsfw compiles without datapoolglob folder 2020-12-01 19:16:19 +01:00
e3de5ce777 device handler changes complete 2020-12-01 19:12:40 +01:00
74b2830d9b using new device handler thermal set 2020-12-01 18:55:53 +01:00
fff928a191 bugfixes and improvements 2020-12-01 18:29:00 +01:00
3fb3039be5 minus 1 replacement 2020-12-01 18:16:26 +01:00
0116bb8663 replacing global pool with local pool DHB 2020-12-01 18:15:09 +01:00
d3711e2dc2 Merge branch 'development' into mueller/make-event-update 2020-12-01 17:46:30 +01:00
94b108e03d changelog update 2020-12-01 17:45:23 +01:00
606aac687b make event api change 2020-12-01 17:44:36 +01:00
84ab5f8318 readme and logo update 2020-12-01 17:19:26 +01:00
314dc577b5 added changelog from upstream 2020-12-01 17:19:00 +01:00
114c1d9061 Merge branch 'feature/has-file-system-if-init' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into feature/has-file-system-if-init 2020-12-01 17:18:01 +01:00
f1c5f19213 changelog update 2020-12-01 17:17:53 +01:00
c41d5b44d4 Merge branch 'development' into feature/has-file-system-if-init 2020-12-01 17:16:54 +01:00
09caeffbc7 added new interface for file systems 2020-12-01 17:15:25 +01:00
e0f063f232 comment added 2020-12-01 17:14:44 +01:00
ede099bdc9 Merge branch 'development' into mueller/op-divider-update 2020-12-01 17:10:02 +01:00
29e701d14d op divider additional features 2020-12-01 17:08:46 +01:00
5eb2cbde0e some additional ionclude fixes 2020-12-01 17:08:03 +01:00
51b9e0074b Revert "testcfg update"
This reverts commit 36b76fa07ca7aac38815a315d04cb6c0aa14ef10.
2020-12-01 17:06:05 +01:00
36b76fa07c testcfg update 2020-12-01 17:04:33 +01:00
a0689320d1 more include fixes 2020-12-01 16:55:24 +01:00
c741ef3945 using relative includes now 2020-12-01 16:50:02 +01:00
8cddf8f509 more relative includes 2020-12-01 16:24:38 +01:00
29eb720071 introducing relative includes 2020-12-01 16:22:59 +01:00
f0f7388c0d Merge pull request 'added 201 packet' (#284) from KSat/fsfw:mueller/service201-packets into development
Reviewed-on: fsfw/fsfw#284
2020-12-01 16:06:08 +01:00
b198a6c13c added packet 2020-12-01 16:04:40 +01:00
07246b8974 Merge remote-tracking branch 'upstream/development' into mueller/DHB-update 2020-12-01 15:39:20 +01:00
2f3ed2d587 Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-01 15:36:12 +01:00
8c14cdfbd8 changelog update 2020-12-01 15:34:56 +01:00
3149006603 Merge remote-tracking branch 'upstream/development' into mueller/LocalPoolRefactoring 2020-12-01 15:34:13 +01:00
9c64ebcaec Merge remote-tracking branch 'upstream/development' into mueller/LocalPoolRefactoring 2020-12-01 15:33:23 +01:00
a5134769ed Merge branch 'development' into mueller/newLocalDataPools 2020-12-01 15:27:41 +01:00
409f2d1779 Merge pull request 'PUS Improvements' (#283) from KSat/fsfw:mueller/pus-improvements into development
Reviewed-on: fsfw/fsfw#283
2020-12-01 15:27:05 +01:00
ea83261881 Merge branch 'mueller/pus-improvements' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/pus-improvements 2020-12-01 15:26:14 +01:00
0a016f391a changelog update 2020-12-01 15:26:06 +01:00
0b94ed9612 Merge branch 'development' into mueller/pus-improvements 2020-12-01 15:23:50 +01:00
6024c40334 Merge remote-tracking branch 'upstream/development' into mueller/DHB-update 2020-12-01 15:23:36 +01:00
c9bfc0bbfd change log update 2020-12-01 15:22:18 +01:00
052e6e86db Merge pull request 'Small tweaks' (#263) from fsfwexample/small-tweaks into development
Reviewed-on: fsfw/fsfw#263
2020-12-01 15:21:22 +01:00
c9adcc742b Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-01 15:17:33 +01:00
e097f1b5d6 Merge branch 'development' into fsfwexample/small-tweaks 2020-12-01 15:12:35 +01:00
70b4ca8753 Merge branch 'development' into fsfwexample/small-tweaks 2020-12-01 15:12:18 +01:00
221bf7e228 Merge remote-tracking branch 'upstream/development' into mueller/pus-improvements 2020-12-01 15:10:55 +01:00
0b32d3dac8 change log update 2020-12-01 15:10:23 +01:00
0217dda67b Merge pull request 'Added health service' (#282) from KSat/fsfw:mueller/healthservice into development
Reviewed-on: fsfw/fsfw#282
2020-12-01 15:09:56 +01:00
506f5ff48b Merge branch 'mueller/pus-improvements' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/pus-improvements 2020-12-01 15:07:19 +01:00
a5b1fb0803 Merge remote-tracking branch 'upstream/development' into mueller/pus-improvements 2020-12-01 15:07:13 +01:00
e80d799865 Merge branch 'master' into mueller/pus-improvements 2020-12-01 15:06:36 +01:00
c72ba92247 health service update 2020-12-01 15:05:54 +01:00
257e3e2db9 change log update 2020-12-01 15:03:49 +01:00
1cb8532687 Merge branch 'development' into mueller/healthservice 2020-12-01 15:00:51 +01:00
3e74c18d88 health servicd 2020-12-01 14:59:35 +01:00
fb217c266b Merge branch 'development' into mueller/DHB-update 2020-12-01 14:53:36 +01:00
406ad40da1 Merge branch 'development' into mueller/newLocalDataPools 2020-12-01 14:48:30 +01:00
708a47840b Merge pull request 'Defaultcfg folder update' (#274) from KSat/fsfw:mueller/defaultcfg-update into development
Reviewed-on: fsfw/fsfw#274
2020-12-01 14:46:36 +01:00
72fc313817 Merge branch 'master' into mueller/newLocalDataPools 2020-12-01 14:46:29 +01:00
45df446ab8 change log update 2020-12-01 14:44:03 +01:00
802e24e293 change log update 2020-12-01 14:43:36 +01:00
2f8bc046ad Merge branch 'development' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw into development 2020-12-01 14:36:09 +01:00
ea8f73120d Merge pull request 'Merge current release of FSFW development' (#278) from master into development
Reviewed-on: fsfw/fsfw#278
2020-12-01 14:20:15 +01:00
da9658e2a1 Merge branch 'development' into master 2020-12-01 14:19:30 +01:00
30f4348bff Merge branch 'master' into mueller/DHB-update 2020-12-01 14:11:35 +01:00
a763893716 Merge branch 'master' into mueller/newLocalDataPools 2020-12-01 14:06:07 +01:00
84010db691 Merge branch 'development' into mueller/parameter-convergence 2020-12-01 14:01:32 +01:00
1f78496cd3 changelog update 2020-12-01 14:01:04 +01:00
4b83738241 Merge branch 'mueller/enhanced-controller' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/enhanced-controller 2020-12-01 14:00:10 +01:00
5757f9d7a2 Merge remote-tracking branch 'upstream/development' into mueller/enhanced-controller 2020-12-01 13:59:41 +01:00
74029a8483 Merge branch 'development' into mueller/enhanced-controller 2020-12-01 13:58:40 +01:00
244e2b5f13 Merge branch 'master' into mueller/enhanced-controller 2020-12-01 13:55:18 +01:00
24ba716ab2 Merge branch 'development' into mueller/LocalPoolRefactoring 2020-12-01 13:54:56 +01:00
2930b2dd5a changelog update 2020-12-01 13:52:40 +01:00
9ebf259a9e added back config 2020-12-01 13:50:33 +01:00
b8cc1ccf7e Merge remote-tracking branch 'ksat/mueller/defaultcfg-update' into development 2020-12-01 13:49:30 +01:00
98dae18430 update defaultcfg folder 2020-12-01 13:46:29 +01:00
e323c69f20 better name for preproc define 2020-12-01 13:36:30 +01:00
64b6edab6f Update 'README.md' 2020-12-01 13:32:50 +01:00
3bd144e6f4 Merge pull request 'Added the new logos, colors are WIP at the moment' (#270) from gaisser/fsfw:gaisser_logo into master
Reviewed-on: fsfw/fsfw#270
2020-12-01 13:32:13 +01:00
4764f6ba54 Merge branch 'master' into gaisser_logo 2020-12-01 13:31:48 +01:00
378cbab64d removed config includes 2020-12-01 13:25:00 +01:00
9086ee2ffe added new tests 2020-12-01 13:24:29 +01:00
f357de21c9 updated testcfg 2020-12-01 13:23:51 +01:00
2e51b90161 Merge remote-tracking branch 'upstream/development' into mueller/LocalPoolRefactoring 2020-12-01 13:22:39 +01:00
59619825ac Merge pull request 'Merge master into devel' (#271) from master into development
Reviewed-on: fsfw/fsfw#271
2020-12-01 13:21:04 +01:00
a2c28198ed Merge branch 'development' into master 2020-12-01 13:20:33 +01:00
4241c00448 Added the new logos, colors are WIP at the moment 2020-11-30 18:30:58 +01:00
ef2e07b389 added explicit type conversion operator 2020-11-30 17:03:14 +01:00
d1beb96c60 some more replacements 2020-11-30 16:30:20 +01:00
f108ae883c local pool replacement 2020-11-30 16:28:16 +01:00
4406c6eb86 Merge pull request 'meier/gaisser_readme_update' (#267) from gaisser/fsfw:meier/gaisser_readme_update into master
Reviewed-on: fsfw/fsfw#267
2020-11-30 16:28:09 +01:00
ce629dfd83 Merge branch 'master' into meier/gaisser_readme_update 2020-11-30 16:27:53 +01:00
293d34147e Merge pull request 'Readme Update' (#260) from gaisser/fsfw:gaisser_readme_update into master
Reviewed-on: fsfw/fsfw#260
2020-11-30 16:27:24 +01:00
f581b37fcf thermal module replacements 2020-11-30 16:25:09 +01:00
4bb9dd816e compiling again 2020-11-30 16:06:59 +01:00
f70ee7696a it compiles again 2020-11-30 15:30:56 +01:00
e7a96d5ad8 it doesnt work? comment it ! 2020-11-30 14:13:52 +01:00
25f08b8c1f started replacing local pool vars 2020-11-30 13:59:54 +01:00
b7945dfe60 added gp_id_t 2020-11-30 13:45:08 +01:00
fa4597782e some improvements taken over from master 2020-11-30 13:09:56 +01:00
f0ca4be71e fsfw version include removed 2020-11-30 13:09:03 +01:00
e34ff44913 Merge branch 'master' into mueller/enhanced-controller 2020-11-30 12:39:25 +01:00
49479faa1a better solution 2020-11-30 12:37:22 +01:00
c182171b09 updated make file 2020-11-30 12:32:38 +01:00
9cec8e4c0d Merge branch 'development' into fsfwexample/small-tweaks 2020-11-30 12:29:31 +01:00
9bfba41875 Merge pull request 'Update devel' (#264) from master into development
Reviewed-on: fsfw/fsfw#264
2020-11-30 12:27:10 +01:00
952978f999 moved perform hk op call 2020-11-29 13:04:38 +01:00
279df93cdf form and doc comments 2020-11-29 13:01:37 +01:00
b7fb1b42e6 added new cfg option 2020-11-29 12:43:19 +01:00
5a20ec583b Merge branch 'master' into gaisser_readme_update 2020-11-27 20:21:23 +01:00
d3a7f86ea2 Merge pull request 'Fixes for RTEMS #173' (#262) from gaisser_rtems_fixes into master
Reviewed-on: fsfw/fsfw#262
2020-11-27 20:21:08 +01:00
227ec25e89 some minor corrections in readme 2020-11-27 11:44:11 +01:00
7fadb0d8c6 Merge branch 'master' into mueller/enhanced-controller 2020-11-26 16:28:25 +01:00
25e3d25b28 Merge branch 'master' into mueller/pus-improvements 2020-11-26 16:11:45 +01:00
eb08ef1c1f Merge remote-tracking branch 'upstream/development' into development 2020-11-24 13:46:56 +01:00
767f105762 added changelog 2020-11-24 13:45:34 +01:00
8c294729d0 extern c definition added 2020-11-22 12:34:16 +01:00
1cc0847bb5 small bugfix 2020-11-21 00:15:31 +01:00
ca34250e8d Merge branch 'development' of https://egit.irs.uni-stuttgart.de/eive/fsfw into development 2020-11-20 17:25:43 +01:00
03fad1cfcd better naming.. hopefully.. 2020-11-19 00:10:59 +01:00
0d79d4ab03 replaced spaces with tab 2020-11-18 21:15:48 +01:00
cb5fa4a217 monitoring changes 2020-11-18 21:15:14 +01:00
6489246c4b Updated include guards 2020-11-17 19:35:37 +01:00
273ddf9061 Rtems compiles again fixes #176 2020-11-17 19:25:57 +01:00
5b5f2f3e1d Added hardware recommendations 2020-11-17 09:42:38 +01:00
51443d7a68 Version number 2020-11-13 15:09:00 +01:00
8aef4b9b99 Updated formatting 2020-11-13 14:36:32 +01:00
752601e85f WIP readme 2020-11-13 14:31:30 +01:00
0075ae53b3 Merge pull request 'meier/udp_bridge_embedded_linux' (#259) from eive/fsfw:meier/udp_bridge_embedded_linux into master
Reviewed-on: fsfw/fsfw#259
2020-11-10 15:10:47 +01:00
520409822e now all debug output removed 2020-11-10 15:06:51 +01:00
030f1beb93 Merge branch 'master' into meier/udp_bridge_embedded_linux 2020-11-10 14:53:15 +01:00
2a4b4f2114 Merge pull request 'config folder renamed and improved' (#255) from KSat/fsfw:mueller/fsfwconfig-better into master
Reviewed-on: fsfw/fsfw#255
2020-11-10 14:46:55 +01:00
bb7709fea1 Merge branch 'master' into mueller/fsfwconfig-better 2020-11-10 14:46:04 +01:00
bc58213482 Merge pull request 'Action folder: some minor form stuff' (#256) from KSat/fsfw:mueller/action-yet-another-update into master
Reviewed-on: fsfw/fsfw#256
2020-11-10 14:45:55 +01:00
4fc29adab4 Merge branch 'development' into mueller/parameter-convergence 2020-11-10 11:20:13 +01:00
434709ca96 parameter small stuff 2020-11-10 11:16:56 +01:00
5865e56c54 indentation fixed 2020-11-10 11:15:42 +01:00
7c75c6e8cc parameter helper update 2020-11-10 11:14:07 +01:00
0304f61bde has parametersIF doc improved 2020-11-10 11:00:13 +01:00
6c22fab208 pus service improvements 2020-11-09 21:33:09 +01:00
72f7a1b1b7 translation files removed 2020-11-09 21:24:23 +01:00
136f04a5c6 trnaslation files removed 2020-11-09 21:23:51 +01:00
37fc22a117 config folder renamed and improved 2020-11-09 21:21:56 +01:00
bc81b5893c removed debug output 2020-11-09 17:34:53 +01:00
225e65628d include corrections 2020-11-09 00:12:39 +01:00
319ae72478 folder config renamed to fsfwconfig 2020-11-08 15:29:06 +01:00
aa45d34b4a include improvements /factory improvement 2020-11-08 15:20:51 +01:00
3eefcd3a2d fsfw.mk adjusted to upstream master 2020-11-07 20:45:00 +01:00
210d2de11e fetched fsfw.mk from upstream master 2020-11-07 20:40:01 +01:00
83568e11d1 removed unwanted changes 2020-11-07 20:37:48 +01:00
113397c6c6 udp bridge for embedded linux 2020-11-07 20:30:42 +01:00
7ffce219d5 hosted build fix 2020-11-07 14:32:28 +01:00
1b2af5285d message queue depth configurable 2020-11-05 13:12:42 +01:00
8d109b7cd0 preproc define correction 2020-11-05 11:57:05 +01:00
5efbc7496a doc improved, some functions virtual now 2020-11-03 23:39:56 +01:00
cf7385d64e include fixes 2020-11-03 23:32:34 +01:00
e99cf32bdd amazing size checks 2020-11-03 23:29:03 +01:00
f72ee0b7ac small bugfix 2020-11-03 23:26:28 +01:00
65aecc3565 IT IS DONE 2020-11-03 23:23:05 +01:00
e9aecdac26 sth with eclipse indentiation 2020-11-03 22:58:09 +01:00
d87f78f5c3 timer stamper in fsfw now 2020-11-03 22:25:14 +01:00
c69681b402 time stamper 2020-11-03 22:22:26 +01:00
5908f99f0b size t changes 2020-11-03 17:09:33 +01:00
30947d3901 size_t changes 2020-11-03 17:08:40 +01:00
d424d85f6d sizet changes and indentation 2020-11-03 17:07:48 +01:00
695b161934 some bugfixes 2020-11-03 16:54:56 +01:00
9e97357b8c taken over changes from master 2020-11-03 16:46:43 +01:00
f69f9bb31e comments removed 2020-11-03 16:31:25 +01:00
81f5783d37 clock update, definitions file 2020-11-03 16:06:30 +01:00
dcf36d4cee cstdint include added 2020-11-03 15:54:27 +01:00
83f0b4bffc defaultcfg changes taken over 2020-11-03 15:51:56 +01:00
633203eb54 upstream time stamper taken over 2020-11-03 15:50:55 +01:00
38b5695a10 size check + include guard 2020-11-03 15:45:04 +01:00
b71ccf8dd8 some refactoring 2020-11-03 15:28:55 +01:00
3920fd89bd Merge branch 'master' into mueller/enhanced-controller 2020-11-03 12:06:56 +01:00
3cd0f8f5f0 Merge remote-tracking branch 'upstream/development' into development 2020-11-02 17:29:26 +01:00
edecb7882b Merge branch 'eive/include-fsfw' into development 2020-11-02 17:21:43 +01:00
cc51d9ace9 small fix so that it compiles 2020-11-02 17:21:25 +01:00
3067259a9b include added 2020-11-02 17:19:24 +01:00
7d83767c2b include added 2020-11-02 16:45:19 +01:00
59c200254d Merge branch 'master' into development 2020-11-02 16:03:10 +01:00
71382032a1 Merge remote-tracking branch 'upstream/master' into mueller/parameter-convergence 2020-11-02 15:55:07 +01:00
cd71a9cc12 fsfw container taken over 2020-11-02 15:53:08 +01:00
2f993cf39a some minor form stuff 2020-11-02 15:51:52 +01:00
41bf5622f3 master taken over 2020-11-02 15:50:14 +01:00
aed7f31f24 health changes taken over 2020-11-02 15:47:09 +01:00
319765ad1d Merge remote-tracking branch 'upstream/master' into mueller/newLocalDataPools 2020-11-02 15:41:48 +01:00
9180c76ca7 Merge remote-tracking branch 'upstream/master' into mueller/LocalPoolRefactoring 2020-11-02 15:38:08 +01:00
0ff092e8b9 Merge remote-tracking branch 'upstream/master' into mueller/LocalPoolRefactoring 2020-11-02 15:35:30 +01:00
6bedc9b805 Merge pull request 'added new windows udp bridge' (#188) from KSat/fsfw:mueller/feature/windowsUdpBridge into master
Reviewed-on: fsfw/fsfw#188
2020-11-02 15:29:08 +01:00
652dc00cc9 Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-11-02 15:28:07 +01:00
719aab2a26 Merge pull request 'health update' (#246) from KSat/fsfw:mueller/health-convergence into master
Reviewed-on: fsfw/fsfw#246
2020-11-02 15:26:51 +01:00
470196a044 Merge branch 'master' into mueller/health-convergence 2020-11-02 15:22:58 +01:00
9c9facf4a1 Merge pull request 'host osal fixes' (#247) from eive/fsfw:development into master
Reviewed-on: fsfw/fsfw#247
2020-11-02 15:22:37 +01:00
cf46aebf32 Merge branch 'master' into development 2020-11-02 15:16:10 +01:00
449a08c92c Merge pull request 'testcfg fix' (#248) from fsfwtest/testcfg-fix into master
Reviewed-on: fsfw/fsfw#248
2020-11-02 15:15:59 +01:00
a7e06c11fd Merge branch 'master' into fsfwtest/testcfg-fix 2020-11-02 15:12:44 +01:00
0c15a90399 Merge pull request 'Default Configuration' (#243) from KSat/fsfw:mueller/defaultcfg into master
Reviewed-on: fsfw/fsfw#243
2020-11-02 15:09:55 +01:00
bcbc61ccba Merge branch 'master' into fsfwtest/testcfg-fix 2020-11-02 15:06:10 +01:00
9221d0ca7c Merge branch 'master' into development 2020-11-02 15:04:25 +01:00
a7bc69b0ac health table update 2020-11-02 15:00:01 +01:00
77fd2cb871 mission timestmap size is uint8 now 2020-11-02 14:53:44 +01:00
093d3562b6 Merge branch 'master' into mueller/health-convergence 2020-11-02 14:53:20 +01:00
2761ee8109 Merge branch 'master' into mueller/defaultcfg 2020-11-02 14:48:23 +01:00
52d3dbfd20 Merge pull request 'HasReturnvaluesIF small improvements' (#245) from KSat/fsfw:mueller/returnvalue-convergence into master
Reviewed-on: fsfw/fsfw#245
2020-11-02 14:48:10 +01:00
d42a1e2abc Merge remote-tracking branch 'upstream/master' into mueller/newLocalDataPools 2020-11-02 14:46:16 +01:00
963c333365 cast added 2020-11-02 14:45:10 +01:00
1f632b9331 Merge remote-tracking branch 'upstream/master' into mueller/newLocalDataPools 2020-11-02 14:41:47 +01:00
b441f5242f Merge remote-tracking branch 'upstream/master' into development 2020-11-02 14:23:51 +01:00
508f31a359 adaptions so it compiles 2020-11-02 14:19:56 +01:00
5d0f96c3a1 reamde update 2020-10-30 14:42:42 +01:00
82a2f3ec61 testcfg fix 2020-10-30 14:21:31 +01:00
a5cf510ae9 host osal fixes 2020-10-30 13:31:07 +01:00
a0d4c77d94 Merge remote-tracking branch 'upstream/master' into mueller/returnvalue-convergence 2020-10-30 11:06:09 +01:00
0b855c5b55 Merge branch 'master' into mueller/defaultcfg 2020-10-29 20:09:31 +01:00
38830dfc17 Merge branch 'master' into mueller/health-convergence 2020-10-29 20:06:03 +01:00
11a351a202 Merge pull request 'Unittest integrated in FSFW now' (#242) from KSat/fsfw:mueller/unittest-integration-from-master into master
Reviewed-on: fsfw/fsfw#242
2020-10-29 20:05:30 +01:00
51c5b05f03 Merge branch 'master' into mueller/unittest-integration-from-master 2020-10-29 19:59:23 +01:00
de5e62a9c8 Merge pull request 'Action folder: minor form improvements, include guards' (#235) from KSat/fsfw:mueller/action-update into master
Reviewed-on: fsfw/fsfw#235
2020-10-29 19:59:05 +01:00
6ea9334923 parameter updates 2020-10-29 17:57:27 +01:00
3098f34eb0 health update 2020-10-29 17:52:28 +01:00
e0a11f3a6e include guard update 2020-10-29 17:46:44 +01:00
e35aebcd0a HasREturnvalue update 2020-10-29 17:45:06 +01:00
6edc2ef1d6 class IDs moved 2020-10-29 17:42:05 +01:00
af4c6f1d45 config mk update 2020-10-29 17:33:40 +01:00
641da2aa21 config make update 2020-10-29 17:33:22 +01:00
9b5e940965 config make fix 2020-10-29 17:32:07 +01:00
f5b0589f79 event manager update 2020-10-29 17:28:33 +01:00
567cbd39ef include fixes 2020-10-29 17:22:41 +01:00
777457482b fixes for internal unittest 2020-10-29 17:21:51 +01:00
78896323b6 fsfw config update 2020-10-29 17:09:43 +01:00
3fc2068011 fsfwconfig update 2020-10-29 17:09:16 +01:00
0919d2c532 updates taken over 2020-10-29 16:52:06 +01:00
ba036805de Merge branch 'master' into mueller/action-update 2020-10-29 16:49:07 +01:00
3d2778fdf7 doc update 2020-10-29 16:45:47 +01:00
42e611899b added timestamp size 2020-10-29 16:43:03 +01:00
fb12045f23 changes from master taken over 2020-10-29 15:25:03 +01:00
9af5855ece event stuff added 2020-10-29 15:23:14 +01:00
64c341b5f6 now really five 2020-10-29 15:17:33 +01:00
27e0b9cf38 default FIFO depth is 5 now 2020-10-29 15:17:13 +01:00
4dd79b3495 not static anymore 2020-10-29 15:16:16 +01:00
64ec4835f3 Merge branch 'master' into mueller/defaultcfg 2020-10-29 15:15:52 +01:00
4b2af9eaa6 static keyword removed 2020-10-29 15:15:08 +01:00
172fbd7e48 some changes taken over 2020-10-29 15:13:03 +01:00
7970043cb5 deleted some sutff 2020-10-29 15:12:36 +01:00
176ca56e35 core changes taken over 2020-10-29 15:12:05 +01:00
4229e256d1 include guard fix 2020-10-29 13:55:49 +01:00
352296d200 action helper update 2020-10-29 13:52:52 +01:00
4557a2eb36 better comments 2020-10-29 13:34:53 +01:00
edb2d3848d some improverments for simple helper 2020-10-29 13:27:41 +01:00
096643971b Merge pull request 'TMTC Packet Base improvements' (#80) from KSat/fsfw:mueller_tcPacketBase into master
Reviewed-on: fsfw/fsfw#80
2020-10-29 13:17:35 +01:00
56da648026 config folder update 2020-10-29 13:16:14 +01:00
38135a3d53 reamde update 2020-10-29 13:13:48 +01:00
3c1415a4bd todos removed2 2020-10-29 13:08:09 +01:00
08496c378e Merge branch 'mueller/action-update' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/action-update 2020-10-29 13:07:17 +01:00
af18f6c94c todos removed 2020-10-29 13:07:08 +01:00
5a8431e82b Merge branch 'master' into mueller/action-update 2020-10-29 13:04:48 +01:00
97f6dace26 some fixes for master 2020-10-29 12:42:29 +01:00
c8fd698b3a some changes 2020-10-29 12:23:27 +01:00
50151310dc Merge branch 'master' into mueller/unittest-integration-from-master 2020-10-29 12:20:38 +01:00
565fd63d08 makefile moved 2020-10-29 12:07:48 +01:00
29187fbc4b some config adaptions 2020-10-29 11:59:50 +01:00
a38c3e5005 config folder renamed 2020-10-29 11:47:03 +01:00
a9b4874904 new defines added 2020-10-28 22:49:19 +01:00
b860d8bce7 include fixes 2020-10-28 22:34:41 +01:00
6325eb7647 include fixes 2020-10-28 22:11:13 +01:00
24cb83498a include fix 2020-10-28 21:28:59 +01:00
82ccd14692 added new tests 2020-10-28 21:25:11 +01:00
ea04e7d4d6 removed catch2 2020-10-28 21:13:00 +01:00
3244487eae slight improvements 2020-10-28 20:18:58 +01:00
dcb24360d8 form improvements taken over 2020-10-28 20:17:50 +01:00
d1a399a1a8 tm packet store update 2020-10-28 19:46:27 +01:00
53e98df37d tm packet stored 2020-10-28 19:44:37 +01:00
90bdb844e7 taken over some changes 2020-10-28 19:27:00 +01:00
cb71a18277 ack fields improved 2020-10-28 19:21:33 +01:00
546db47db4 more refactoring 2020-10-28 02:20:12 +01:00
ce322ed121 Merge remote-tracking branch 'upstream/master' into mueller_tcPacketBase 2020-10-27 23:31:23 +01:00
744d3a2346 Merge branch 'master' into mueller/defaultcfg 2020-10-27 15:18:53 +01:00
c89a24a248 Merge pull request 'Fixes #161' (#244) from gaisser/fsfw:gaisser_fix_dhb_stream_reset into master
Reviewed-on: fsfw/fsfw#244
2020-10-27 15:17:18 +01:00
6651622a16 Merge branch 'master' into gaisser_fix_dhb_stream_reset 2020-10-27 15:16:58 +01:00
410094ed28 Fixes #161 2020-10-27 15:16:14 +01:00
2eb1a5c1a0 Merge branch 'master' into mueller/enhanced-controller 2020-10-27 15:11:39 +01:00
b6456c7b69 Merge branch 'master' into mueller/DHB-update 2020-10-27 15:04:35 +01:00
8b21324815 Merge branch 'master' into mueller/action-update 2020-10-27 14:30:12 +01:00
f40b432e43 Merge pull request 'added FIFO to SharedRingBuffer' (#208) from KSat/fsfw:mueller/sharedRingBufferFIFO into master
Reviewed-on: fsfw/fsfw#208
2020-10-27 14:29:48 +01:00
67dd153511 Merge branch 'master' into mueller/sharedRingBufferFIFO 2020-10-27 13:36:59 +01:00
342a70d109 Merge branch 'master' into mueller_tcPacketBase 2020-10-27 12:24:12 +01:00
e7210a34f9 output tweaked 2020-10-22 14:34:52 +02:00
742cc6eb76 no command added 2020-10-21 18:19:51 +02:00
c5da6c9464 Merge branch 'master' into mueller/LocalPoolRefactoring 2020-10-21 14:32:24 +02:00
b9f3c1ee84 takne over defaultcfg 2020-10-20 17:53:47 +02:00
6cce062d62 some more fixes 2020-10-20 17:52:43 +02:00
29a796ebdb include names fixed 2020-10-20 17:51:13 +02:00
ede00dfdcc double files removed, versioning files renamed 2020-10-20 17:50:10 +02:00
e4d323683d readme fix 2020-10-20 17:47:52 +02:00
4d4300cee6 Merge branch 'mueller/defaultcfg' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/defaultcfg 2020-10-20 17:44:35 +02:00
1940a2acf0 some fixes 2020-10-20 17:44:27 +02:00
279682351a Merge branch 'master' into mueller/defaultcfg 2020-10-20 17:41:33 +02:00
057f3b859e added readme and efaultcfg 2020-10-20 17:39:48 +02:00
247c9f2947 added readme 2020-10-20 17:39:11 +02:00
482b77ff05 added defaultcfg config folder 2020-10-20 17:38:41 +02:00
9309562716 defaultcfg folder added 2020-10-20 17:24:53 +02:00
bb53c71f70 fsfs config update 2020-10-20 17:21:20 +02:00
72b9adb684 Merge branch 'master' into mueller/unittest-integration-from-master 2020-10-20 17:15:30 +02:00
7033328962 unittest folder added 2020-10-20 17:12:56 +02:00
865ea3386c unittest now contained directly 2020-10-20 17:11:23 +02:00
c677358343 include adaption 2020-10-20 17:06:09 +02:00
7821cc2870 submodule added 2020-10-20 16:52:34 +02:00
ef0122ab54 Merge branch 'master' into mueller/enhanced-controller 2020-10-20 16:34:36 +02:00
756df4f37f Merge branch 'master' into mueller/action-update 2020-10-20 16:04:29 +02:00
0b1b9c11eb Merge pull request 'TC Distribution convergence' (#229) from KSat/fsfw:mueller/tcDistribution into master
Reviewed-on: fsfw/fsfw#229
2020-10-20 15:11:27 +02:00
ddacc66b1f Merge branch 'mueller/tcDistribution' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/tcDistribution 2020-10-20 15:04:45 +02:00
fa67f82462 structure improved 2020-10-20 15:04:28 +02:00
407df913d3 Merge branch 'master' into mueller/tcDistribution 2020-10-20 14:56:53 +02:00
f7b84c4732 Merge branch 'master' into mueller/DHB-update 2020-10-20 14:56:45 +02:00
b29376bd71 Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-10-20 14:55:04 +02:00
3580ec0e09 Merge pull request 'MQM IF used by FreeRTOS' (#212) from KSat/fsfw:mueller/MQMQ_IF_UpdateFreeRTOS into master
Reviewed-on: fsfw/fsfw#212
2020-10-20 14:52:58 +02:00
12369d8d4b Merge remote-tracking branch 'upstream/master' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-10-20 14:51:38 +02:00
6b2df54204 Merge pull request 'Message QueueMessage IF used in Linux' (#207) from KSat/fsfw:mueller/MQM_IF_UpdateLinux into master
Reviewed-on: fsfw/fsfw#207
2020-10-20 14:50:47 +02:00
8cea7b05db include improvement 2020-10-20 14:42:58 +02:00
17548605ec Merge branch 'master' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-10-20 14:37:22 +02:00
95924dd55b some more bugfixes 2020-10-19 15:38:22 +02:00
22e4e464c7 doc improved, new returnvalue 2020-10-19 00:43:10 +02:00
75e67ce5f8 small form improvements 2020-10-19 00:37:26 +02:00
ad9ac7537e bool is mapped to uint8 now for pod type conversion 2020-10-19 00:25:03 +02:00
8b8324f21c some stuff renamed 2020-10-18 23:50:02 +02:00
1bddfeb86b Merge branch 'mueller/LocalPoolTests' into mueller/master 2020-10-18 22:41:37 +02:00
88a89d6797 added basic documentation 2020-10-18 17:32:10 +02:00
8e49806057 some adaptions 2020-10-18 17:23:47 +02:00
3b0b474ab6 better naming 2020-10-18 17:01:49 +02:00
02b7c51318 HasParametersIF less confusing 2020-10-18 16:54:55 +02:00
9a70f75a4b returnvalues added 2020-10-16 01:45:07 +02:00
6f955ed8ba another bugfix 2020-10-16 00:42:49 +02:00
91cf33127a bugfix 2020-10-16 00:41:50 +02:00
bd2f8b3e8c packet matcher uses refactored pool now 2020-10-15 13:45:47 +02:00
7d358483dd added back config includes 2020-10-15 13:44:59 +02:00
67e33918e0 event manager uses refactored pool now 2020-10-15 13:44:09 +02:00
73215baf11 init commit 2020-10-15 13:43:23 +02:00
6baa859628 fsfw config removed for now 2020-10-15 13:42:35 +02:00
ba02becfc9 deleted old files 2020-10-15 13:38:41 +02:00
b6ae82ec2c bugfixes 2020-10-15 13:21:46 +02:00
6e5f029a64 type usage improved, getFillCoutn implemented 2020-10-15 12:47:21 +02:00
48ff5dea08 line break added 2020-10-15 01:57:30 +02:00
56dc06e0ed some little formatting stuff 2020-10-15 01:51:12 +02:00
e5000abbb7 custom cmp operator 2020-10-15 01:31:11 +02:00
364bce90dd small fixes 2020-10-15 01:07:20 +02:00
1ee01ffcdb important bugfixes 2020-10-15 00:54:00 +02:00
64bed475fe important bugfix 2020-10-15 00:43:23 +02:00
d149836612 better form 2020-10-15 00:34:20 +02:00
bdfea9ea38 includes reordered 2020-10-14 23:53:50 +02:00
b3e5946291 implementation added 2020-10-14 23:42:49 +02:00
57c9775d7d add fill count func added 2020-10-14 23:41:16 +02:00
7bd536e763 new templateless pool prototype 2020-10-14 23:20:53 +02:00
ab603abada subscription mechanism almost complete 2020-10-14 20:05:39 +02:00
a9a31308ae update notifications working 2020-10-14 19:52:06 +02:00
5b96161331 optimization and printout improvements 2020-10-14 16:46:00 +02:00
088bc35301 update handler continued 2020-10-14 12:42:30 +02:00
45c0acec5f its all falling into places 2020-10-14 01:38:27 +02:00
9ca086e026 base class extraction complete 2020-10-14 01:25:15 +02:00
72ca2bfa43 added new messages 2020-10-14 00:50:24 +02:00
dbcd06527e separate step for performOp now 2020-10-12 18:28:07 +02:00
9917f7126d Merge branch 'mueller/DHB_separating_steps' into mueller/master 2020-10-12 18:19:28 +02:00
3af79e572e default msg size for health device 2020-10-12 18:19:11 +02:00
140aa3ab42 form improvements DHB 2020-10-12 18:18:41 +02:00
afe5a62789 imrpoved form, removed comm msg for now 2020-10-12 18:12:26 +02:00
d22c6a5fe9 Merge branch 'mueller/master' into mueller/DHB_separating_steps 2020-10-12 17:44:58 +02:00
736ce2d5fd some more form improvements 2020-10-12 17:42:30 +02:00
06c7919daa monitoring form improvements 2020-10-12 17:39:13 +02:00
829be0f082 doc correction, action helper new helper function 2020-10-12 16:58:04 +02:00
e4c74ec060 added todos 2020-10-12 16:57:37 +02:00
8c689751b4 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-10-12 16:55:57 +02:00
b9ebd153a2 added action helper function 2020-10-12 16:55:40 +02:00
b6a23727f2 added extended controller base 2020-10-12 15:40:27 +02:00
18671a0db7 doc wrong 2020-10-12 13:40:24 +02:00
ed71a37004 get command queue override 2020-10-10 20:11:20 +02:00
3e79d2e73a added extended controller base 2020-10-10 20:04:01 +02:00
670e9bfa0f CMD/REPLY prefixes added 2020-10-10 18:12:22 +02:00
b9c7d1bd3f added health subservices 2020-10-10 18:09:04 +02:00
01e7a98425 added announce all subservice 2020-10-10 17:55:38 +02:00
bc0402faf7 health update 2020-10-10 17:49:50 +02:00
837a18135e subsystem folder update 2020-10-10 17:41:51 +02:00
3aa666633e include guard replacements 2020-10-10 17:14:52 +02:00
94884c2402 service 1 small improvements 2020-10-10 17:11:11 +02:00
17ea3127a7 minor form improvements, include guards 2020-10-10 17:04:43 +02:00
e338b4662d fix for c++11 comformity 2020-10-09 02:49:18 +02:00
2364c4f9a4 form improvements 2020-10-07 20:47:46 +02:00
6e9db0d675 retval added 2020-10-07 18:43:56 +02:00
9fb38e9b7c better error output 2020-10-06 19:58:29 +02:00
df1a730cdf some form stuff 2020-10-06 16:01:35 +02:00
6a077c583d action helper some formatting stuff 2020-10-06 14:00:18 +02:00
8c43c6993e CSB fifo depth configurable 2020-10-05 22:47:32 +02:00
c17d50bd1e file syste mmessage moved to mission code for now 2020-10-05 19:46:25 +02:00
1431116417 NULL exception somewhere 2020-10-05 12:11:11 +02:00
a7fe23c300 small stuff 2020-10-05 00:12:52 +02:00
f955cd9eee made interface more generic 2020-10-04 23:37:22 +02:00
a8a6d448ec added subservices 2020-10-04 23:24:36 +02:00
2b1029916b using deletei nstead 2020-10-04 15:55:39 +02:00
20c261514b made message interface more readable (dec instead hex) 2020-10-04 14:31:06 +02:00
ea8ef8b874 important bugfix 2020-10-03 14:19:42 +02:00
0c1c61558b very important bugfix 2020-10-03 03:45:29 +02:00
55a4c0423d typo 2020-10-01 20:45:28 +02:00
af038d0a2f master taken over 2020-10-01 20:44:27 +02:00
f9e6b9faca taken over master 2020-10-01 20:42:28 +02:00
0b1b159582 taken over master 2020-10-01 20:40:45 +02:00
bf3276cbb2 taken over master 2020-10-01 20:40:02 +02:00
148bbb4be4 master taken over 2020-10-01 20:36:43 +02:00
f2c07ee9c6 removed tests 2020-10-01 20:35:56 +02:00
5fbb8f8ef0 taken over fixed array list from master 2020-10-01 20:35:13 +02:00
1ecca4b3d8 taken over array list 2020-10-01 20:33:50 +02:00
0714dc6e06 taken over container 2020-10-01 20:31:30 +02:00
54af54927b Merge branch 'master' into mueller/tcDistribution 2020-10-01 19:05:09 +02:00
9bf0026b8a Merge branch 'master' into mueller/MQM_IF_UpdateLinux 2020-10-01 19:04:53 +02:00
335e146735 Merge pull request 'Made tpp file less cluttered and added inline qualifier' (#234) from gaisser/fsfw:master into master
Reviewed-on: fsfw/fsfw#234
2020-10-01 17:45:11 +02:00
6776ca86eb Made tpp file less cluttered and added inline qualifier 2020-10-01 17:44:23 +02:00
f172c07876 Merge pull request 'Fixed issue with tpp File' (#233) from gaisser/fsfw:gaisser_fix_multimap3 into master
Reviewed-on: fsfw/fsfw#233
2020-10-01 17:37:52 +02:00
0a9a8cf867 Merge branch 'master' into gaisser_fix_multimap3 2020-10-01 17:37:34 +02:00
f1bc9972f3 Fixed bugs 2020-10-01 17:36:46 +02:00
7c7b3de14f Merge pull request 'Fixes and comments in FixedOrderedMultimap' (#231) from gaisser/fsfw:gaisser_fix_multimap2 into master
Reviewed-on: fsfw/fsfw#231
2020-10-01 17:32:44 +02:00
587f87d270 Feedback from Robin 2020-10-01 17:27:24 +02:00
cd2cb410e4 Merge branch 'master' of https://egit.irs.uni-stuttgart.de/fsfw/fsfw.git
into gaisser_fix_multimap2

Conflicts:
	container/FixedOrderedMultimap.h
2020-10-01 14:59:26 +02:00
b292c5c927 Merge pull request 'FixedOrderedMultimap Implementation moved to TPP file' (#232) from KSat/fsfw:mueller/FixedOrdMultimapTpp into master
Reviewed-on: fsfw/fsfw#232
2020-10-01 14:02:41 +02:00
4f91db2ff8 Merge branch 'master' into mueller/FixedOrdMultimapTpp 2020-10-01 13:59:42 +02:00
c86d654fdf tpp file added 2020-10-01 13:58:20 +02:00
26454356f8 tpp extraction 2020-10-01 13:57:34 +02:00
878796f546 Merge branch 'master' into mueller/newLocalDataPools 2020-10-01 13:31:00 +02:00
1f3a10b375 Fixes and comments in FixedOrderedMultimap 2020-10-01 13:30:28 +02:00
b8261854cb Merge branch 'master' into mueller/tcDistribution 2020-10-01 13:25:16 +02:00
89c4370d91 tc distribution improvements 2020-10-01 13:23:06 +02:00
315777d265 tc distribution equalization 2020-10-01 13:21:23 +02:00
565859a6f4 Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-10-01 12:35:57 +02:00
1f994d9933 Merge pull request 'ArrayList and FixedMap improvements' (#218) from KSat/fsfw:mueller/ArrayList into master
Reviewed-on: fsfw/fsfw#218
2020-10-01 12:31:24 +02:00
196cde4075 DHB update 2020-10-01 12:30:53 +02:00
322ff54f58 added new message types 2020-10-01 12:28:25 +02:00
a43e8ea603 added srv3 object ID 2020-10-01 12:27:28 +02:00
424d75ef1d Merge branch 'mueller/oldPoolRenaming' into mueller/newLocalDataPools 2020-10-01 12:06:55 +02:00
b313043e43 added new local data pool files 2020-10-01 12:05:24 +02:00
f979d603b4 Merge branch 'mueller/oldPoolRenaming' into mueller/newLocalDataPools 2020-10-01 12:04:33 +02:00
1d837a8570 Merge branch 'master' into mueller/oldPoolRenaming 2020-10-01 12:03:48 +02:00
5342dc4bc8 Merge branch 'master' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-10-01 11:46:55 +02:00
a5a850eb41 Merge branch 'master' into mueller/MQM_IF_UpdateLinux 2020-10-01 11:45:44 +02:00
c77bded505 Merge remote-tracking branch 'upstream/master' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-10-01 11:15:42 +02:00
acc03d3e8b Merge branch 'master' into mueller/ArrayList 2020-10-01 11:11:02 +02:00
d647c63da3 Merge pull request 'Added a compile time check in FixedArrayList and fixed copying' (#222) from gaisser/fsfw:gaisser_fixedArrayList_assert into master
Reviewed-on: fsfw/fsfw#222
2020-10-01 11:10:53 +02:00
ea13008aa2 Merge branch 'master' into gaisser_fixedArrayList_assert 2020-10-01 11:08:10 +02:00
32ebca48b8 FIFO updates 2020-10-01 11:07:46 +02:00
43b44c57b6 placement fact update 2020-10-01 11:07:20 +02:00
7c3f99ed2d Revert "DH IF and DH message form improved"
This reverts commit adf528fce91412c43daf349c02cee9710bf54363.
2020-10-01 11:06:46 +02:00
2344efb3ac Merge remote-tracking branch 'upstream/master' 2020-10-01 11:06:21 +02:00
236a833d0b Merge pull request 'Added null pointer checks for FIFO Base' (#224) from gaisser/fsfw:gaisser_fifobase_nullptr_check into master
Reviewed-on: fsfw/fsfw#224
2020-10-01 11:04:55 +02:00
6c4ec713f3 Merge branch 'master' into gaisser_fifobase_nullptr_check 2020-10-01 11:04:22 +02:00
b2a7859549 Merge pull request 'Added Documentation to PlacementFactory' (#223) from gaisser/fsfw:gaisser_documentation_placementFactory into master
Reviewed-on: fsfw/fsfw#223
2020-10-01 11:04:08 +02:00
8178be9dc5 Merge branch 'master' into gaisser_documentation_placementFactory 2020-10-01 11:02:46 +02:00
adf528fce9 DH IF and DH message form improved 2020-10-01 11:01:52 +02:00
aed2d7fc93 slight formatting 2020-09-30 23:42:18 +02:00
d44428f49c DH IF and DH message improved 2020-09-30 23:38:54 +02:00
d8392de058 made define more generic 2020-09-30 20:28:33 +02:00
6efdf170f4 Merge pull request 'Removed old test files' (#226) from gaisser/fsfw:master into master
Reviewed-on: fsfw/fsfw#226
2020-09-30 20:26:08 +02:00
a14558ef1f Removed old test files 2020-09-30 20:25:02 +02:00
77a9a190aa Merge branch 'master' into mueller/ArrayList 2020-09-30 19:09:24 +02:00
a0098e8b17 non member comp operator for iterators 2020-09-30 18:57:30 +02:00
fcabf93af3 Added a few comments 2020-09-30 16:27:18 +02:00
ab9858b0c7 Added comments 2020-09-30 16:15:48 +02:00
823bae1a2a Added null pointer checks for FIFO Base 2020-09-30 16:06:17 +02:00
2f61bd0a0f A few typos and more docu 2020-09-30 14:38:46 +02:00
aeeef53508 Added Documentation to placement factory 2020-09-30 14:34:02 +02:00
8d8e918aeb Fixed copying of FixedArrayList 2020-09-30 13:05:55 +02:00
ecc4bdf11a Added a compile time check for MAX_SIZE
Compiler may warn if MAX_SIZE value overflows by itself but this checks
gives a more verbose warning
2020-09-30 12:50:52 +02:00
5340b9c58e Merge pull request 'Typo in FixedOrderedMultimap' (#220) from gaisser/fsfw:gaisser_another_small_fix into master
Reviewed-on: fsfw/fsfw#220
2020-09-30 10:58:26 +02:00
659671e1df Merge branch 'master' into gaisser_another_small_fix 2020-09-30 10:57:50 +02:00
5fc583117d Typo in FixedOrderedMultimap 2020-09-30 10:55:34 +02:00
86a1ae4a8a Merge remote-tracking branch 'upstream/master' into mueller/MQM_IF_UpdateLinux 2020-09-29 18:05:36 +02:00
195bf6b89f Merge remote-tracking branch 'upstream/master' into mueller/MQM_IF_UpdateLinux 2020-09-29 18:05:10 +02:00
f5ded3fa4b Merge branch 'master' into mueller/ArrayList 2020-09-29 18:03:44 +02:00
b59a4c5de6 equalization complete 2020-09-29 18:02:41 +02:00
3c814a5e61 include fixes 2020-09-29 18:01:55 +02:00
e104cd18e6 Merge pull request 'Hotfix Linux include' (#219) from mueller/hotfix-linuxinclude into master
Reviewed-on: fsfw/fsfw#219
2020-09-29 17:57:58 +02:00
71f2f34aab Merge remote-tracking branch 'upstream/master' into mueller/hotfix-linuxinclude 2020-09-29 17:57:20 +02:00
6c0bb23ed6 non member bool operator 2020-09-29 17:51:16 +02:00
303fcec9f6 Added a missing include 2020-09-29 17:49:04 +02:00
f73f798a4d lines removed 2020-09-29 17:28:37 +02:00
4fce0377a9 missing include for linux 2020-09-29 17:28:02 +02:00
4f3cfdcaaf fixed map and array list implemented as non - members 2020-09-29 16:41:14 +02:00
4eef7bfc01 changes taken over 2020-09-29 16:12:43 +02:00
9013ac240f array list taken over 2020-09-29 16:12:01 +02:00
17d5de15c9 slight changes ,size t replacement 2020-09-29 16:10:35 +02:00
d85096d98b service 200 take over 2020-09-29 16:03:01 +02:00
cdadf48f38 Merge pull request 'Returns failed now in Service 200 when mode answer is negative' (#217) from gaisser/fsfw:gaisser_service200_returns into master
Reviewed-on: fsfw/fsfw#217
2020-09-29 16:02:02 +02:00
e1eb1a3be1 small tweaks 2020-09-29 15:48:42 +02:00
896302c506 Merge branch 'master' into gaisser_service200_returns 2020-09-29 15:43:18 +02:00
1bdccedabe Fixes #86 2020-09-29 15:39:24 +02:00
db5890c15a Merge branch 'mueller/feature/windowsUdpBridge' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/feature/windowsUdpBridge 2020-09-29 15:37:06 +02:00
72f924813d .mk fix 2020-09-29 15:36:54 +02:00
dffda771ac Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-29 15:35:44 +02:00
06f5b816e4 Merge branch 'master' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-09-29 15:29:01 +02:00
3d830a9e20 Merge branch 'master' into mueller/MQM_IF_UpdateLinux 2020-09-29 15:28:37 +02:00
13b30f8de6 Merge pull request 'Removed comments and added include in tmtcservices/PusVerificationReporter' (#216) from gaisser/fsfw:gaisser_removed_unused into master
Reviewed-on: fsfw/fsfw#216
2020-09-29 15:28:16 +02:00
e71020d631 Removed comments and added include 2020-09-29 15:24:29 +02:00
046eec6c18 Merge branch 'mueller/MQM_IF_UpdateLinux' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-09-29 15:24:12 +02:00
47c21cfc6c include fix 2020-09-29 15:22:38 +02:00
00f89bb193 Merge branch 'mueller/MQM_IF_UpdateLinux' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/MQM_IF_UpdateLinux 2020-09-29 15:21:42 +02:00
6879045ef3 include fix 2020-09-29 15:21:33 +02:00
c9005783b2 Merge branch 'master' into mueller/MQM_IF_UpdateLinux 2020-09-29 15:20:48 +02:00
4010d8d960 Merge remote-tracking branch 'upstream/master' into mueller/MQM_IF_UpdateLinux 2020-09-29 15:20:32 +02:00
a3235ced17 Merge pull request 'include added' (#215) from KSat/fsfw:mueller/VerifHotfix into master
Reviewed-on: fsfw/fsfw#215
2020-09-29 15:18:02 +02:00
1ea1c8c02f srv9 fix 2020-09-29 15:16:20 +02:00
207d2cab9c service 1 changes taken over 2020-09-29 15:15:29 +02:00
bc23fd65a6 master taken over 2020-09-29 15:13:51 +02:00
d3ce6d147e Merge branch 'master' into mueller/VerifHotfix 2020-09-29 15:13:43 +02:00
ce983953ff Merge pull request 'Modes and Memory convergence' (#214) from KSat/fsfw:mueller/modes-memory into master
Reviewed-on: fsfw/fsfw#214
2020-09-29 15:13:34 +02:00
a71528551a include added 2020-09-29 15:10:08 +02:00
6a5268f5b0 typo fix 2020-09-29 15:05:18 +02:00
392d0299a9 Merge remote-tracking branch 'upstream/master' into mueller/modes-memory 2020-09-29 15:04:42 +02:00
8ade9e33c1 Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-29 15:00:07 +02:00
37c605c4fb Merge pull request 'Fixes #194 Small Map Issues' (#209) from gaisser/fsfw:gaisser_small_map_issues into master
Reviewed-on: fsfw/fsfw#209
2020-09-29 14:59:55 +02:00
ea29b272bf Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-29 14:59:50 +02:00
e55f8f583d Merge branch 'master' into gaisser_small_map_issues 2020-09-29 14:58:35 +02:00
0c3fd9c95f Merge branch 'master' into mueller/oldPoolRenaming 2020-09-29 14:58:21 +02:00
d6e82f64e7 Merge branch 'master' into mueller_tcPacketBase 2020-09-29 14:58:19 +02:00
a700f6a96d Merge pull request 'New StoreAccessors and separation of implementation for storagemanager classes' (#92) from KSat/fsfw:mueller_StoreAccessor into master
Reviewed-on: fsfw/fsfw#92
2020-09-29 14:57:06 +02:00
6c86cf88f3 Merge branch 'master' into mueller_StoreAccessor 2020-09-29 14:56:20 +02:00
352ce13fb3 removed line break 2020-09-29 14:55:17 +02:00
fd87a16661 changes taken over 2020-09-29 14:51:25 +02:00
1ed1b7ea06 include guard fix 2020-09-29 14:51:08 +02:00
a58e47623f update 2020-09-29 14:50:16 +02:00
485e96f12f merged changes 2020-09-29 14:49:57 +02:00
622c7a5a0d debug output removed 2020-09-29 14:45:23 +02:00
bed4e7affa nullptr replacement 2020-09-29 14:43:23 +02:00
1ff85c88b2 store accessor small changes 2020-09-29 14:42:48 +02:00
cef84b13d9 renormalization 2020-09-29 14:35:05 +02:00
6f965c74ac Merge remote-tracking branch 'upstream/master' into mueller_StoreAccessor 2020-09-29 14:34:49 +02:00
b2677ae040 Merge branch 'master' into mueller_tcPacketBase 2020-09-29 14:34:16 +02:00
40fa8e5405 Merge branch 'master' into mueller/oldPoolRenaming 2020-09-29 14:31:27 +02:00
dae79f30d7 Merge pull request 'timeslot update' (#179) from KSat/fsfw:mueller/FixedTimeslotUpdate into master
Reviewed-on: fsfw/fsfw#179
2020-09-29 14:30:59 +02:00
c01d904552 Merge branch 'mueller/FixedTimeslotUpdate' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/FixedTimeslotUpdate 2020-09-29 14:30:05 +02:00
7dbb73b7d8 removed dbeug printout 2020-09-29 14:29:57 +02:00
224248dfa1 removed debug outpuzt for missed deadline 2020-09-29 14:27:31 +02:00
9f7dad31eb Merge branch 'master' into mueller/FixedTimeslotUpdate 2020-09-29 14:21:02 +02:00
21cbb19410 Merge pull request 'ipc update' (#176) from KSat/fsfw:mueller/ipc-updates into master
Reviewed-on: fsfw/fsfw#176
2020-09-29 14:20:18 +02:00
170217e2e8 Merge branch 'master' into mueller/ipc-updates 2020-09-29 14:15:13 +02:00
bf5e7241b6 Merge branch 'master' into mueller/MQM_IF_UpdateLinux 2020-09-29 14:14:56 +02:00
291a62eeb9 Merge branch 'master' into gaisser_small_map_issues 2020-09-29 14:14:48 +02:00
945f49bbe9 Merge pull request 'Object Id and Verif Reporter Improvements' (#213) from KSat/fsfw:mueller/objectIdImprovement into master
User have to change instantiation to the objectId of the new PUS Services

Reviewed-on: fsfw/fsfw#213
2020-09-29 14:14:27 +02:00
1691d63169 include fix 2020-09-29 13:54:08 +02:00
3663d7269c changes taken over 2020-09-29 13:37:21 +02:00
183b6a4193 small bugfix 2020-09-29 13:34:27 +02:00
7b1f72254f object id names improved 2020-09-29 13:30:30 +02:00
53a6225790 doc & tweaks 2020-09-29 12:50:36 +02:00
260fac43f7 bugfix 2020-09-28 23:38:37 +02:00
1f70b1159d another small bugfix 2020-09-28 23:21:21 +02:00
7ff9c29b62 added another command 2020-09-28 22:51:02 +02:00
62ee1391bf added two new commands 2020-09-28 22:48:10 +02:00
1d972fcbef hk messages are cleared properly now 2020-09-28 22:46:18 +02:00
7e9d095ed1 important bugfixes 2020-09-28 22:38:36 +02:00
e48dbb8797 small improvements 2020-09-28 22:17:18 +02:00
786dcdf88d removed clock include 2020-09-28 22:13:17 +02:00
ad2ca814b2 improved doc 2020-09-28 21:28:03 +02:00
bf574c12e4 bugfixes, owner ptr not const anymore 2020-09-28 21:09:56 +02:00
88c4b2a539 bugfixes for srv3 2020-09-28 16:56:42 +02:00
75bdf96799 Merge branch 'master' into mueller/MQM_IF_UpdateLinux 2020-09-27 19:22:07 +02:00
c12110cbf1 has file system IF retvals 2020-09-26 22:23:17 +02:00
6eaade2395 added new mode for local datapool manager 2020-09-26 17:28:03 +02:00
c3830da3d0 bugfixes 2020-09-26 17:24:06 +02:00
4a97596030 internal error reporter uses new local datapool now 2020-09-26 17:21:32 +02:00
e67b1fce9a added additional include 2020-09-26 16:38:07 +02:00
52d8c4f3a8 include guard fix 2020-09-26 15:35:10 +02:00
de08bd6c8a small include fix 2020-09-26 15:33:24 +02:00
5062170407 correct function used now 2020-09-26 15:32:16 +02:00
55bdd2c2f5 include fix 2020-09-26 15:28:28 +02:00
6fd39dfac3 set struct reporting continued 2020-09-26 15:27:06 +02:00
08d0e09493 power equalization 2020-09-26 15:16:13 +02:00
fab7eb8a5d controller base update 2020-09-26 15:03:04 +02:00
9aca5cb6f2 taken over convergence changes 2020-09-26 14:59:40 +02:00
6d2266f7d0 equalization complete 2020-09-26 14:58:53 +02:00
9d4c2b90f3 removed proxy/ not used&working? 2020-09-26 14:54:23 +02:00
7b57f372bf starting convergence 2020-09-26 14:51:00 +02:00
bf5688c8d8 last fixes 2020-09-26 14:36:56 +02:00
a0bc6b3c1f MQM IF update 2020-09-26 14:34:49 +02:00
eec022f801 Merge remote-tracking branch 'origin/mueller/ipc-updates' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-09-26 14:33:35 +02:00
20279169ed Merge branch 'mueller/ipc-updates' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-09-26 14:27:09 +02:00
2edc7fd096 Merge remote-tracking branch 'upstream/master' into mueller/MQMQ_IF_UpdateFreeRTOS 2020-09-26 14:25:50 +02:00
13b68f10a0 added usage of new interface 2020-09-26 14:24:09 +02:00
496251bd68 Merge branch 'master' into mueller/ipc-updates 2020-09-26 14:21:05 +02:00
22d9b77165 added documentation 2020-09-26 14:19:51 +02:00
40558835c7 Merge branch 'master' into mueller/FixedTimeslotUpdate 2020-09-26 14:14:50 +02:00
4d1492f130 event cfg file loc not explicit anymore 2020-09-26 14:13:20 +02:00
c24c0ea575 Merge branch 'master' into mueller/oldPoolRenaming 2020-09-26 14:04:41 +02:00
cf28c9ff9d make event func changed 2020-09-25 19:01:59 +02:00
a65745d037 added explicit function to refresh task handle 2020-09-25 18:40:04 +02:00
5ca1c7bca2 coutndown update 2020-09-23 19:58:51 +02:00
43ab0ba270 updated subsystemId ranged 2020-09-23 19:55:48 +02:00
2f0b36de46 updated framework object list 2020-09-23 19:54:22 +02:00
9ff3a8537c Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-09-23 17:44:41 +02:00
320a5ac355 has health IF improvements 2020-09-23 17:44:22 +02:00
842c21684a Merge branch 'master' into gaisser_small_map_issues 2020-09-22 18:37:51 +02:00
d1fb512c1f Merge pull request 'Small fix with new pus services' (#210) from gaisser/fsfw:gaisser_small_fix_subsystem_id into master
Reviewed-on: fsfw/fsfw#210
2020-09-22 17:10:09 +02:00
59f72d1031 Small fix with new pus services 2020-09-22 16:59:13 +02:00
978d7514a4 added doc, changed type 2020-09-22 16:32:59 +02:00
c7a6711eec include fix 2020-09-22 16:25:10 +02:00
2f73841580 include fix 2020-09-22 16:24:40 +02:00
74a4c98ca7 Small format stuff 2020-09-22 16:23:35 +02:00
0bc3807c18 added FIFO 2020-09-22 16:22:37 +02:00
d0f912f32b Merge branch 'master' into mueller/FixedTimeslotUpdate 2020-09-22 16:20:07 +02:00
b681a76f29 Merge branch 'master' into gaisser_small_map_issues 2020-09-22 16:18:55 +02:00
ed80768c66 Fixes #194 2020-09-22 16:13:45 +02:00
de840dcf8d last fixes for linux 2020-09-22 16:10:43 +02:00
e0d9a080c5 Merge remote-tracking branch 'upstream/master' into mueller/MQM_IF_UpdateLinux 2020-09-22 16:06:33 +02:00
59e4b95b62 Merge pull request 'srv17 id added, include fix for linux' (#206) from KSat/fsfw:mueller/include_fix_srv17_id into master
Reviewed-on: fsfw/fsfw#206
2020-09-22 16:03:23 +02:00
ab0f4d8c87 service 9 ID added 2020-09-22 16:01:34 +02:00
98333b92ef srv17 id added, include fix for linux 2020-09-22 15:57:26 +02:00
87fb17f39a IF replacements 2020-09-22 15:52:26 +02:00
8652f2f13f message queue IF update 2020-09-22 15:50:10 +02:00
cea748676e linux message queue update 2020-09-22 15:47:29 +02:00
74b9aef36b freeRTOS update 2020-09-22 15:33:28 +02:00
7dc3a7ecbd fix so it compiles 2020-09-22 15:31:15 +02:00
4248e4000c Merge branch 'mueller/ipc-updates' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/ipc-updates 2020-09-22 15:29:38 +02:00
b2777faf66 queueue factory update 2020-09-22 15:29:28 +02:00
9faa8d3896 Merge branch 'master' into mueller/ipc-updates 2020-09-22 15:25:58 +02:00
d57b329630 Merge branch 'master' into mueller/oldPoolRenaming 2020-09-22 15:24:09 +02:00
8f2c8c838e Merge branch 'master' into mueller/FixedTimeslotUpdate 2020-09-22 15:24:07 +02:00
66383f78c6 Merge pull request 'renormalized files' (#201) from KSat/fsfw:mueller/file_renormalization into master
Reviewed-on: fsfw/fsfw#201
2020-09-22 15:22:34 +02:00
522433e1b5 Merge branch 'mueller/file_renormalization' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/file_renormalization 2020-09-22 15:21:17 +02:00
156f44c268 Merge remote-tracking branch 'upstream/master' into mueller/file_renormalization 2020-09-22 15:21:12 +02:00
56c6f971e1 Merge branch 'master' into mueller/file_renormalization 2020-09-22 15:11:02 +02:00
33de6851eb Merge pull request 'SharedRingBuffer' (#167) from KSat/fsfw:mueller/sharedRingBufferPullRequest into master
Reviewed-on: fsfw/fsfw#167
2020-09-22 15:08:31 +02:00
f575c923d7 Merge branch 'master' into mueller/sharedRingBufferPullRequest 2020-09-22 15:08:06 +02:00
40d83fe603 Merge pull request 'SimpleRingBuffer Improvements' (#172) from KSat/fsfw:mueller/SimpleRingBufferUpdate2 into master
Reviewed-on: fsfw/fsfw#172
2020-09-22 15:07:34 +02:00
bb896faeb4 Merge branch 'master' into mueller/SimpleRingBufferUpdate2 2020-09-22 15:07:25 +02:00
3aa9ab2048 Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-22 15:06:14 +02:00
580669d49d Merge pull request 'object manager convergence' (#202) from KSat/fsfw:mueller/objectManager-convergence into master
Reviewed-on: fsfw/fsfw#202
2020-09-22 15:03:56 +02:00
90b3ebd390 Merge branch 'master' into mueller/objectManager-convergence 2020-09-22 15:00:51 +02:00
1791b5af57 Merge pull request 'Default Time Stamper' (#199) from KSat/fsfw:mueller/feature/timeStamper into master
Reviewed-on: fsfw/fsfw#199
2020-09-22 15:00:32 +02:00
108f897102 Merge branch 'master' into mueller/feature/timeStamper 2020-09-22 14:57:56 +02:00
9aaa5721af Merge pull request 'PUS Service 9' (#198) from KSat/fsfw:mueller/pusSrv9 into master
Reviewed-on: fsfw/fsfw#198
2020-09-22 14:56:38 +02:00
ade9c32ff3 Merge branch 'master' into mueller/pusSrv9 2020-09-22 14:56:21 +02:00
da4f6cf447 Merge pull request 'Stopwatch-Update' (#200) from KSat/fsfw:mueller/Stopwatch-Update into master
Reviewed-on: fsfw/fsfw#200
2020-09-22 14:56:06 +02:00
4587fbb76d srv9 func removed 2020-09-22 14:52:24 +02:00
af53bf6643 Merge branch 'master' into mueller/Stopwatch-Update 2020-09-22 14:52:20 +02:00
d8c5c4d85d Merge branch 'master' into mueller/pusSrv9 2020-09-22 14:49:39 +02:00
17583f605d Merge pull request 'PUS Service 17' (#197) from KSat/fsfw:mueller/pusSrv17 into master
Reviewed-on: fsfw/fsfw#197
2020-09-22 14:49:30 +02:00
5e974877fe Merge branch 'master' into mueller/pusSrv17 2020-09-22 14:34:05 +02:00
4074ca1b89 error code improved 2020-09-22 14:22:14 +02:00
447b69bf03 Merge branch 'master' into mueller/SimpleRingBufferUpdate2 2020-09-22 14:20:51 +02:00
37cf7566f9 Merge branch 'master' into mueller/sharedRingBufferPullRequest 2020-09-22 14:20:11 +02:00
0d8200e856 Merge pull request 'commanding service base hotfix' (#204) from KSat/fsfw:mueller/CSB-hotfix into master
Reviewed-on: fsfw/fsfw#204
2020-09-22 14:05:21 +02:00
7851a71a8e commanding service base hotfix 2020-09-22 14:00:18 +02:00
5072c09bc0 csb hotfix 2020-09-22 13:59:25 +02:00
e3cbc4dfd5 shared ring buffer extended 2020-09-22 02:12:02 +02:00
f5d793a1cf file system message getter func 2020-09-20 13:38:53 +02:00
763c52cfca CSB FIFO first steps to make configurable 2020-09-19 21:57:23 +02:00
40db85e73f separate messages for success/failure 2020-09-19 21:36:12 +02:00
cad08e1ea9 error output for failed deletion 2020-09-19 20:54:27 +02:00
e140d39944 some fixes for sd card handler 2020-09-19 20:08:25 +02:00
9e9bde0395 srv23 taken over 2020-09-19 19:50:02 +02:00
44989ada64 file system message taken over 2020-09-19 19:41:41 +02:00
718502c04b added additional flag which casn be used to disable
periodic handling
2020-09-19 17:15:33 +02:00
02f778ea1d new error code added 2020-09-19 17:14:09 +02:00
4ab7a08387 srv3 continued 2020-09-19 17:08:08 +02:00
32c0140cc2 hk stuff continued 2020-09-19 15:58:34 +02:00
9ecbc8199e added periodic helper 2020-09-19 02:46:29 +02:00
ba56f48e8e huge progress on hk + testing 2020-09-19 01:17:43 +02:00
757d2275ea internal bugfix 2020-09-18 15:06:14 +02:00
33e7cca23c several bugfixes amd improvements 2020-09-18 15:01:35 +02:00
5e3f40a2c1 changes taken over from pull request 2020-09-18 13:40:48 +02:00
721793a058 added author tag back 2020-09-18 13:38:53 +02:00
8ea0a38658 shoulddo fix 2020-09-18 13:37:38 +02:00
6062192bf0 dded back retval expalanation 2020-09-18 13:37:06 +02:00
85f21b0516 object manager convergence 2020-09-18 13:32:53 +02:00
3a043b5773 object manager tweaks complete 2020-09-18 13:31:51 +02:00
f50a80fc3c minor tweaks 2020-09-18 13:29:42 +02:00
4d4166071c added pus services to framework objects 2020-09-18 13:28:20 +02:00
1b5c3786b6 taken over serviceinterface folder 2020-09-18 13:24:06 +02:00
386f347574 renormalized files 2020-09-18 13:15:14 +02:00
b429359864 renormalize files 2020-09-18 13:14:01 +02:00
57c88059e5 DHB small improvements 2020-09-18 13:12:07 +02:00
7b0ddb3941 quick fix DHB 2020-09-18 13:09:23 +02:00
56ff2aef26 include replacement 2020-09-18 13:03:48 +02:00
ad8c6f3528 commented out code added back 2020-09-18 12:58:38 +02:00
e70e9e3f1f added uptime seconds functions 2020-09-18 12:57:30 +02:00
19632b8fb1 linux fixes 2020-09-18 12:36:36 +02:00
e0b2e0b00a fxed linux message queues 2020-09-18 12:31:11 +02:00
37f4cc4644 taken over stopwatch changes 2020-09-18 12:28:29 +02:00
0f0ddfc375 stopwatch update 2020-09-18 12:27:40 +02:00
0c6514a682 clock uses getUptime again 2020-09-17 22:31:28 +02:00
6ef5e3e550 queue factory host OS fix 2020-09-16 21:22:53 +02:00
96f2b68a22 Merge remote-tracking branch 'upstream/master' into mueller/SimpleRingBufferUpdate2 2020-09-16 19:56:13 +02:00
53723b0795 include fix 2020-09-16 19:38:43 +02:00
b0a816490e fixed includes 2020-09-16 19:37:17 +02:00
963015513f added time stamper to framework 2020-09-16 19:36:15 +02:00
85d6e81881 added srv9 to class IDs 2020-09-16 19:17:00 +02:00
b31bee4fda added srv9 2020-09-16 19:11:50 +02:00
ae426c50ba space replaced by tab 2020-09-16 19:09:51 +02:00
a5c6be9dd9 added srv17 2020-09-16 19:05:25 +02:00
e5dac30e98 new include used now 2020-09-15 17:37:43 +02:00
0d5724e3d4 include improvements taken over 2020-09-15 17:34:07 +02:00
347d591def uses new define and config file now 2020-09-15 17:33:21 +02:00
7643af8607 include guard fix 2020-09-15 17:15:22 +02:00
b8ad17639c include guard fix 2020-09-15 17:02:31 +02:00
21346e40a5 some improvements 2020-09-15 16:58:38 +02:00
589b95d28b Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-15 16:56:55 +02:00
d38e13f9d3 Merge branch 'master' into mueller/FixedTimeslotUpdate 2020-09-15 16:53:04 +02:00
3fcbb988ae new file for typedef to avoid circular include 2020-09-15 16:47:01 +02:00
850a4a3e3d header file renamed 2020-09-15 16:44:48 +02:00
15891b3cf0 fixed some message queue includes 2020-09-15 16:42:17 +02:00
ad98a63e87 changes taken over from upstream master 2020-09-15 16:02:58 +02:00
e707c5e051 fixes taken over 2020-09-15 15:58:12 +02:00
e96ab12312 comment and calculation fix 2020-09-15 15:55:35 +02:00
f3d42de399 Merge branch 'master' into mueller/ipc-updates 2020-09-15 15:47:14 +02:00
db697f16de Merge branch 'master' into mueller_StoreAccessor 2020-09-15 15:46:11 +02:00
42bfedd36c Merge pull request 'health helper update' (#184) from KSat/fsfw:mueller/HealthHelperIdFix into master
Reviewed-on: fsfw/fsfw#184
2020-09-15 15:45:56 +02:00
9061d6d67e Merge branch 'master' into mueller/HealthHelperIdFix 2020-09-15 15:45:42 +02:00
c375e838b8 Merge pull request 'Some minor serialize file changes' (#185) from KSat/fsfw:mueller/serialize-convergence into master
Reviewed-on: fsfw/fsfw#185
2020-09-15 15:44:40 +02:00
d77d370c8a Merge branch 'master' into mueller/serialize-convergence 2020-09-15 15:42:12 +02:00
21094c4926 Merge pull request 'added host osal' (#165) from KSat/fsfw:mueller/hostosal into master
Reviewed-on: fsfw/fsfw#165
2020-09-15 15:33:51 +02:00
51cf13428b Merge branch 'mueller/hostosal' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/hostosal 2020-09-15 15:28:37 +02:00
b4ca42f1fb ccsds time update 2020-09-15 15:28:05 +02:00
bff08a69fa Merge branch 'master' into mueller/hostosal 2020-09-15 15:08:58 +02:00
4f5b233505 Merge pull request 'init after task creation moved to task functionality' (#178) from KSat/fsfw:mueller/TaskUpdates into master
Reviewed-on: fsfw/fsfw#178
2020-09-15 15:08:18 +02:00
9334a705f8 Merge branch 'master' into mueller/TaskUpdates 2020-09-15 15:05:45 +02:00
2c6a239d5e Merge pull request 'added new periodic op divider' (#195) from KSat/fsfw:mueller/feature/periodicOpDivider into master
Reviewed-on: fsfw/fsfw#195
2020-09-15 15:04:30 +02:00
fbd75f947a Merge branch 'master' into mueller/feature/periodicOpDivider 2020-09-15 15:02:34 +02:00
4c17ef7be5 Merge pull request 'DLE encoder doc added' (#177) from KSat/fsfw:mueller/dledoc into master
Reviewed-on: fsfw/fsfw#177
2020-09-15 15:01:07 +02:00
e8de2fc47a added srv3 2020-09-14 18:29:19 +02:00
2d2316a0c7 hk message continued 2020-09-14 18:01:48 +02:00
f9612afe06 added report status toggler 2020-09-11 14:06:08 +02:00
71125c075a added new setter function 2020-09-10 21:05:50 +02:00
2d2d0de35c local data pool manager bugfixes 2020-09-10 20:24:49 +02:00
4f48ed9756 added new periodic op divider 2020-09-10 19:53:52 +02:00
d7bbd4b652 severla bugfixes, new periodic op divider added 2020-09-10 19:51:17 +02:00
6362de5bc0 Merge branch 'master' into mueller/FixedTimeslotUpdate 2020-09-10 18:20:17 +02:00
058a036bac Merge branch 'master' into mueller/oldPoolRenaming 2020-09-10 16:47:21 +02:00
d83573cefc additional IDs removed 2020-09-10 16:47:01 +02:00
8048195f63 Merge remote-tracking branch 'upstream/master' into mueller/dledoc 2020-09-10 16:46:31 +02:00
853bd75fec Merge branch 'mueller/HealthHelperIdFix' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/HealthHelperIdFix 2020-09-10 16:42:25 +02:00
d807ea3afe using MessageQueueIF::NO_QUEUE now 2020-09-10 16:42:11 +02:00
036a022e66 Merge branch 'master' into mueller/HealthHelperIdFix 2020-09-10 16:40:20 +02:00
489d8f1903 Merge branch 'master' into mueller/serialize-convergence 2020-09-10 16:40:02 +02:00
be0cf56994 Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-10 16:39:46 +02:00
bbd81c2d6a Merge pull request 'FixedMap Fixes #47 and #36' (#182) from gaisser/fsfw:gaisser_fixes_fixedMap into master
Reviewed-on: fsfw/fsfw#182

Performed CSB tests, everything working as before
2020-09-10 16:38:42 +02:00
e4d95a4e09 subsystem changes taken over 2020-09-10 16:07:09 +02:00
e57d4a11ae fixed ordered multi map changes integrated 2020-09-10 16:01:05 +02:00
d9dcee3692 array list changes taken over 2020-09-10 15:55:56 +02:00
f35efa3cbe taken over CSB changes 2020-09-10 15:52:00 +02:00
96e471add6 merged fixed map changes 2020-09-10 15:51:11 +02:00
e7444912d5 corrected include guard 2020-09-10 15:29:19 +02:00
b8d638cb69 Merge branch 'master' into gaisser_fixes_fixedMap 2020-09-10 15:27:15 +02:00
1635f16bc0 removed changes from datapool separation 2020-09-10 15:26:33 +02:00
c63baf70a1 Merge remote-tracking branch 'upstream/master' into mueller/feature/windowsUdpBridge 2020-09-10 15:26:13 +02:00
bbc73a6aaf taken over serialize adapter changes 2020-09-10 15:25:29 +02:00
0da6456bad Merge remote-tracking branch 'upstream/master' into mueller/serialize-convergence 2020-09-10 15:23:22 +02:00
fd09774fc3 serialize if update 2020-09-10 15:18:45 +02:00
f663de2418 taken over changes from master 2020-09-10 15:17:38 +02:00
224ea3914a deleted file not needed anymore 2020-09-10 15:15:13 +02:00
db2a31aef4 Merge pull request 'Implements #192' (#193) from gaisser/fsfw:gaisser_serialize_c11_update into master
Reviewed-on: fsfw/fsfw#193
2020-09-10 15:13:54 +02:00
de46cf5b08 Merge branch 'master' into gaisser_serialize_c11_update 2020-09-10 15:06:05 +02:00
db3e32655d changes taken over from master 2020-09-10 15:05:26 +02:00
18e6de7d6b added compile time check 2020-09-10 15:04:43 +02:00
cefac2db0b assignment operator added 2020-09-10 15:03:28 +02:00
d43ef479b6 assignment operator added 2020-09-10 15:02:58 +02:00
26bb2de050 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-09-10 15:01:49 +02:00
a364f36f38 Merge pull request 'Fixes for #190 and #189' (#191) from gaisser/fsfw:gaisser_bugs_fixedMap_FIFO into master
Reviewed-on: fsfw/fsfw#191
2020-09-10 15:00:34 +02:00
2d76c744c5 Merge branch 'master' into mueller/HealthHelperIdFix 2020-09-08 14:34:33 +02:00
d1f8040599 Merge branch 'master' into mueller/ipc-updates 2020-09-08 14:33:50 +02:00
e24e080f31 Merge branch 'master' into mueller/sharedRingBufferPullRequest 2020-09-08 14:31:40 +02:00
dab10d761a Merge branch 'master' into mueller/serialize-convergence 2020-09-08 14:27:12 +02:00
976fd54f5e Merge branch 'master' into gaisser_fixes_fixedMap 2020-09-08 14:17:53 +02:00
d87cf0a612 Merge branch 'master' into gaisser_bugs_fixedMap_FIFO 2020-09-08 14:14:38 +02:00
b3af2b5fbc Merge branch 'master' into mueller/feature/windowsUdpBridge 2020-09-08 14:14:03 +02:00
fb36c55419 Merge pull request 'new tmtc unix udp bridge' (#141) from KSat/fsfw:mueller/feature/TmTcUnixBridge into master
Reviewed-on: fsfw/fsfw#141
2020-09-08 14:14:00 +02:00
5dd08877a5 Merge pull request 'tmtc bridge update, uses dynamic FIFO now' (#187) from KSat/fsfw:mueller/TmTcBridgeUpdate into master
Reviewed-on: fsfw/fsfw#187
2020-09-08 14:12:43 +02:00
0258ce62f0 Added documentation 2020-09-07 18:35:25 +02:00
b65789824c Removed old hacks and replaced by standard c++
Added overflow check in SerializeAdapter
2020-09-07 18:06:08 +02:00
278053a342 Another fix in DynamicFIFO 2020-09-07 15:49:28 +02:00
2a28114b49 Fixes for #190 and #189 2020-09-07 15:43:48 +02:00
e085deb235 fifo fix 2020-09-07 15:23:27 +02:00
d99b100ace debug output removed 2020-09-06 18:46:56 +02:00
67b11c0535 Merge branch 'master' into mueller/feature/TmTcUnixBridge 2020-09-06 15:51:34 +02:00
6c42189371 some minor improvements 2020-09-06 15:49:32 +02:00
2439ac455b tmtc bridge update, uses dynamic FIFO now 2020-09-06 15:48:30 +02:00
a9975f5aef added new windows udp bridge 2020-09-06 15:46:49 +02:00
ba01b4578c Merge branch 'master' into mueller/TaskUpdates 2020-09-06 15:41:40 +02:00
f61056eeb7 adapted DHB to renaming 2020-09-06 15:30:56 +02:00
790d3f1465 taken over all changes 2020-09-06 15:25:56 +02:00
e9b86e51df init commit 2020-09-06 15:23:38 +02:00
26cbcdbff0 removed comment 2020-09-06 15:21:02 +02:00
673af26472 rework/restructuring 2020-09-06 14:57:05 +02:00
50ae50d286 removed pool raw access helper 2020-09-06 14:01:41 +02:00
ac2f6c5ed4 minor improvements 2020-09-06 12:59:59 +02:00
efa41b29aa added informative comment 2020-09-06 12:16:43 +02:00
8db9a4a191 some minor tweaks 2020-09-06 12:00:57 +02:00
7774434d7a windows sockets working 2020-09-06 11:58:12 +02:00
3e0819f954 some bugfixes 2020-09-06 11:48:32 +02:00
b7c4f5ce05 continued win sockets 2020-09-06 10:36:39 +02:00
0c85b05aca continued win bridge 2020-09-06 09:54:22 +02:00
234fbcbf41 small bugfix in error checking 2020-09-06 09:34:06 +02:00
08ffbfefae added windows udp bridge 2020-09-06 09:33:02 +02:00
f698275a0b removed seconds typedef, confusing 2020-09-05 21:59:17 +02:00
c7606b7b1e updating and cleaning pool files 2020-09-05 21:51:17 +02:00
cb970b1883 task IF is set now 2020-09-05 21:24:59 +02:00
f7223abaa3 added define necessary for minGW 2020-09-05 21:20:10 +02:00
902cd4d210 host osal update 2020-09-05 21:19:53 +02:00
7a24f89915 removed comment 2020-09-05 21:19:15 +02:00
c43ae66205 some tweaks 2020-09-05 21:18:30 +02:00
883103af2b queue map manager update 2020-09-05 21:13:07 +02:00
80e60566d8 compiling and working again 2020-09-05 21:11:27 +02:00
39b675cf99 repairing host osal 2020-09-05 20:39:10 +02:00
a1155686c5 updated host osal 2020-09-05 20:18:52 +02:00
c6dbce7446 Merge remote-tracking branch 'upstream/master' into mueller/hostosal 2020-09-05 20:18:18 +02:00
05814dc805 added way to start DH immediately, bugfix in event manager 2020-09-05 15:58:53 +02:00
faeeca8707 seiralize folder converged 2020-09-04 16:07:54 +02:00
1a62158f33 took over serial array list adapter changes 2020-09-04 16:07:11 +02:00
1803030640 taken over serialize element changes 2020-09-04 16:04:11 +02:00
328c1b7195 takne over serialize element changes 2020-09-04 16:03:36 +02:00
721b981df2 changes taken over 2020-09-04 16:01:18 +02:00
ed21ec6c78 changes taken over for serial linked list adapter 2020-09-04 16:00:45 +02:00
305d8ef840 taken over changes 2020-09-04 15:56:52 +02:00
84308c74d9 taken over some changes 2020-09-04 15:56:08 +02:00
f2f7a5de87 taken over convergence changes 2020-09-04 15:47:33 +02:00
d4d96a128e adapted doc 2020-09-04 15:47:08 +02:00
0d69e9beca taken over serial uffer adapter from upstream 2020-09-04 15:42:15 +02:00
e83de82481 gathering remaining differences.. 2020-09-04 15:40:42 +02:00
37764f7ca7 include guard fixed 2020-09-04 15:39:17 +02:00
be89e7ebb7 taken over from upstream with little tweak 2020-09-04 15:36:53 +02:00
cfa952d982 hybrid iterator same to FSFW 2020-09-04 15:33:36 +02:00
fff0131c9b taken over changes 2020-09-04 15:20:07 +02:00
62eb327df6 health helper update 2020-09-04 15:19:33 +02:00
147ab94149 include guard improvements 2020-09-04 15:13:32 +02:00
dbac6e139b shared ring buffer update 2020-09-04 15:11:53 +02:00
06400fa7bb share dring buffer update 2020-09-04 15:10:44 +02:00
3e67701933 taken over ring buffer base changes 2020-09-04 15:09:24 +02:00
e105be229a include guards fand include improvements 2020-09-04 15:06:48 +02:00
d885dddee8 renormalize files 2020-09-04 15:04:53 +02:00
a53b9dc3db renormalization 2020-09-04 14:59:59 +02:00
a6b2b4dd93 renormalization 2020-09-04 14:58:36 +02:00
a3b80288e1 Merge remote-tracking branch 'upstream/master' into mueller/dledoc 2020-09-04 14:54:49 +02:00
91d5277a94 added new returnvalues 2020-09-04 14:54:08 +02:00
f4a5067775 update fw class Ids 2020-09-04 14:53:27 +02:00
975fb9832b added interface ID 2020-09-04 14:52:17 +02:00
4bdac1e017 changed from mueller/master taken over 2020-09-04 14:49:59 +02:00
94b45d7407 changed taken over 2020-09-04 14:49:27 +02:00
381914886d initAfterTaskCreation added for linux 2020-09-04 14:43:53 +02:00
9d1f292af0 changed taken over 2020-09-04 14:32:32 +02:00
0eb4c3817e added initialize after taks creation for linux 2020-09-04 14:31:39 +02:00
6980245c98 added line break 2020-09-04 14:30:04 +02:00
31c16382fc took over changed for fixed slot sequence 2020-09-04 14:28:43 +02:00
4d7d48e8ca added a generic way to add a custom check 2020-09-04 14:24:34 +02:00
b8754fbc16 made fixed sequence slot doc generic 2020-09-04 14:11:59 +02:00
92c7369276 include guard fix 2020-09-04 13:56:12 +02:00
04532b8f6b renormalizing pull request step2 2020-09-04 13:52:54 +02:00
5eaf6cfd1f renormalizing pull request step1 2020-09-04 13:52:02 +02:00
7ad5274803 Merge remote-tracking branch 'upstream/master' into mueller/FixedTimeslotUpdate 2020-09-04 13:51:09 +02:00
403d83f32c removed commented out code 2020-09-03 13:01:14 +02:00
dbb394f761 new member to store last step 2020-09-03 00:22:16 +02:00
822a908353 separated steps, everything seems to work 2020-09-03 00:17:01 +02:00
e8fa9816ce doc improved 2020-09-02 23:45:14 +02:00
6069c64048 doc improved 2020-09-02 23:36:54 +02:00
631b2ca705 Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-09-02 17:59:45 +02:00
ae9bc39bda some bugfixes and improvements 2020-09-02 17:59:26 +02:00
ab9f58438f Merge branch 'master' into mueller_tcPacketBase 2020-09-01 13:24:41 +02:00
4da21d2c38 Merge branch 'master' into mueller/ipc-updates 2020-09-01 13:12:39 +02:00
b3d08cd40b Merge pull request 'FIFO is StaticFIFO now, new FIFO using vector' (#127) from KSat/fsfw:mueller_FIFO_static_normal into master
Reviewed-on: fsfw/fsfw#127
2020-09-01 13:08:58 +02:00
d5accd16ba Merge branch 'mueller_FIFO_static_normal' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_FIFO_static_normal 2020-09-01 12:58:38 +02:00
03b2ca679d include guard correction 2020-09-01 12:58:29 +02:00
33039f8c60 include guard correction 2020-09-01 12:57:56 +02:00
75f6cacd10 Merge branch 'master' into mueller_FIFO_static_normal 2020-09-01 12:56:41 +02:00
b32ea6e316 Merge pull request 'RingBuffer, static CTOR' (#132) from KSat/fsfw:mueller_ringBufferStatic into master
Reviewed-on: fsfw/fsfw#132
2020-09-01 12:56:23 +02:00
bec562ece0 FIFO updates 2020-09-01 12:54:33 +02:00
5308cb6237 Merge branch 'master' into mueller_ringBufferStatic 2020-09-01 12:54:08 +02:00
4f3869de8d Merge branch 'mueller_FIFO_static_normal' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_FIFO_static_normal 2020-09-01 12:54:02 +02:00
b522b3c29c fifo updates 2020-09-01 12:53:53 +02:00
a634875b4b dynamic fifo update 2020-09-01 12:50:17 +02:00
7cf79c17a9 fifo update 2020-09-01 12:48:51 +02:00
f7f134ac20 corrections 2020-09-01 12:48:11 +02:00
02cfa8bcd5 Merge branch 'master' into mueller_FIFO_static_normal 2020-09-01 12:45:25 +02:00
96c421b72c Merge pull request 'parameter improvements' (#181) from KSat/fsfw:mueller/parameter-updates into master
Reviewed-on: fsfw/fsfw#181
2020-09-01 12:45:20 +02:00
f85e4eb22f Merge branch 'master' into mueller/parameter-updates 2020-09-01 12:44:14 +02:00
edde2ee58b offsetr update 2020-09-01 12:43:50 +02:00
66bc60f176 Merge branch 'mueller/parameter-updates' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/parameter-updates 2020-09-01 12:43:02 +02:00
695a4e7842 offset is size_t now 2020-09-01 12:42:52 +02:00
f068df9028 Merge pull request 'event manager improvements' (#180) from KSat/fsfw:mueller/eventmanager-improvements into master
Reviewed-on: fsfw/fsfw#180
2020-09-01 12:39:33 +02:00
636e5fb888 Merge branch 'master' into gaisser_fixes_fixedMap 2020-09-01 12:35:53 +02:00
77927363ce Merge branch 'master' into mueller/eventmanager-improvements 2020-09-01 12:29:16 +02:00
5d87650833 Merge branch 'master' into mueller/parameter-updates 2020-09-01 12:28:53 +02:00
e949637271 Merge branch 'master' into mueller_FIFO_static_normal 2020-09-01 12:24:41 +02:00
4a80872c3c Merge pull request 'DHB Update' (#144) from KSat/fsfw:mueller/feature/DHBupdate into master
Reviewed-on: fsfw/fsfw#144
2020-09-01 12:24:19 +02:00
a9e5b54238 Merge branch 'master' into mueller/feature/DHBupdate 2020-09-01 12:22:14 +02:00
e77c294360 Merge pull request 'fdir update' (#158) from KSat/fsfw:mueller/devices/FDIR into master
Reviewed-on: fsfw/fsfw#158
2020-09-01 12:21:48 +02:00
7059d5f158 Merge branch 'master' into mueller/devices/FDIR 2020-09-01 12:21:28 +02:00
b07b19327c renormalize CHB 2020-09-01 11:52:18 +02:00
4abdc436fb Revert "renormalize CHB"
This reverts commit a4d9c761a78831a963c06c5969410daedd48e4dd.
2020-09-01 11:51:43 +02:00
d644a40e14 Merge branch 'mueller/feature/DHBupdate' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/feature/DHBupdate 2020-09-01 11:49:53 +02:00
a4d9c761a7 renormalize CHB 2020-09-01 11:49:43 +02:00
cc5c944c84 Merge branch 'master' into gaisser_fixes_fixedMap 2020-09-01 11:41:03 +02:00
f645fe6607 Merge pull request 'Comments in serializeIF' (#174) from gaisser/fsfw:gaisser_comments_serialize into master
Reviewed-on: fsfw/fsfw#174
2020-09-01 11:37:21 +02:00
c0ed474373 Update 'serialize/SerializeIF.h' 2020-09-01 11:34:28 +02:00
f12c56c75f Merge branch 'master' into mueller/feature/DHBupdate 2020-09-01 11:20:21 +02:00
15bb0aee98 handler ID cached, debug output improved 2020-08-29 19:08:10 +02:00
6c02776975 added srv9 2020-08-29 00:16:40 +02:00
b0673c7fa6 typo fixes 2020-08-28 18:47:11 +02:00
7a5c70e753 typo fixes 2020-08-28 18:46:47 +02:00
b6a19f911d include guards improved 2020-08-28 18:45:19 +02:00
1b9c8446b7 renormalized line endings 2020-08-28 18:33:29 +02:00
478b88d7a2 Merge branch 'master' into gaisser_comments_serialize 2020-08-28 18:15:41 +02:00
b54d63edcb event manager improvements 2020-08-28 18:10:02 +02:00
9abd796e6f updated map packet extraction 2020-08-28 17:58:36 +02:00
8596810fe2 Merge branch 'event/git-update' into mueller/master 2020-08-28 17:58:31 +02:00
b71cab3993 integrated all changes 2020-08-28 17:55:13 +02:00
9f522466f0 wrapped info output in additonal ifdef 2020-08-28 17:52:13 +02:00
e800aad979 event git update 2020-08-28 17:44:10 +02:00
d2ef2b2be4 taken over datalinklayer form upstream 2020-08-28 17:40:53 +02:00
5ce954672b taken over coordinates from upstream 2020-08-28 17:40:21 +02:00
2e23fc1201 Merge pull request 'git is weird' (#15) from mueller/action-git-update into mueller/master
Reviewed-on: KSat/fsfw#15
2020-08-28 17:37:29 +02:00
8862f35ad1 git is weird 2020-08-28 17:35:27 +02:00
468ebfb809 include improvement 2020-08-28 17:18:11 +02:00
aec557a8c0 updated unix udp bridge 2020-08-28 17:14:20 +02:00
6c0defed5e Merge remote-tracking branch 'upstream/master' into mueller/feature/TmTcUnixBridge 2020-08-28 17:08:54 +02:00
3ec7162832 Merge branch 'master' into mueller_FIFO_static_normal 2020-08-28 17:08:06 +02:00
b4978e7df3 Merge pull request 'Fixed a shadowing issue with moving a declaration to inner scope' (#163) from gaisser/fsfw:gaisser_small_bugfix_subsystem into master
Reviewed-on: fsfw/fsfw#163
2020-08-28 17:01:16 +02:00
5ca26a72ea fixed some shadowing issues 2020-08-28 17:00:16 +02:00
543e2f7d5d Merge remote-tracking branch 'upstream/master' into mueller/SimpleRingBufferUpdate2 2020-08-28 13:31:23 +02:00
053f75968b Merge remote-tracking branch 'upstream/master' into mueller/SimpleRingBufferUpdate2 2020-08-28 13:30:44 +02:00
b87a8ba086 Merge remote-tracking branch 'upstream/master' into mueller/sharedRingBufferPullRequest 2020-08-28 13:28:13 +02:00
2362b1d165 Merge branch 'master' into gaisser_small_bugfix_subsystem 2020-08-28 13:25:34 +02:00
ce4d010b5c Merge pull request 'Semaphore Initialization - Linux and FreeRTOS' (#89) from KSat/fsfw:mueller_binSemaphoreInit into master
Reviewed-on: fsfw/fsfw#89
2020-08-28 13:25:05 +02:00
eb503ae030 include guard fix 2020-08-27 20:19:27 +02:00
795b1e5245 Merge remote-tracking branch 'upstream/master' into mueller_FIFO_static_normal 2020-08-27 20:18:06 +02:00
54112acf62 chb update 2020-08-27 20:11:36 +02:00
c4c607776c important fix, 0 init removed 2020-08-27 20:07:03 +02:00
42dd665e26 include improvement 2020-08-27 20:06:19 +02:00
ed70f38612 some renaming 2020-08-27 20:04:17 +02:00
a6e99e443a took over dHB failure isolation base fixes 2020-08-27 20:00:36 +02:00
8f2d5a5528 DH fdir improvements 2020-08-27 19:58:35 +02:00
2a74c8d150 Merge remote-tracking branch 'upstream/master' into mueller/devices/FDIR 2020-08-27 19:55:22 +02:00
dfe3658a85 removed hk stuff 2020-08-27 19:52:25 +02:00
386b153ede Merge remote-tracking branch 'upstream/master' into mueller/feature/DHBupdate 2020-08-27 19:50:02 +02:00
df4fb17a45 Merge remote-tracking branch 'upstream/master' into mueller/feature/TmTcUnixBridge 2020-08-27 17:31:16 +02:00
4d1b1ba506 additonal doc for freeRTOS semaphores 2020-08-27 17:24:40 +02:00
0fedad6da0 semaphore factory update 2020-08-27 17:14:49 +02:00
b9314cffb9 small improvements 2020-08-27 17:13:52 +02:00
3be253efd6 include fix 2020-08-27 17:07:42 +02:00
73db79a3fe updated linux implementation 2020-08-27 17:06:10 +02:00
5aa664648e linux semaph update 2020-08-27 17:03:54 +02:00
7723ee13b3 Merge remote-tracking branch 'upstream/master' into mueller_binSemaphoreInit 2020-08-27 16:28:50 +02:00
073f168b95 task management function taken over from master 2020-08-27 16:27:54 +02:00
aacda3afc2 interface adapted 2020-08-27 16:26:00 +02:00
64022212f9 removed is empty flag 2020-08-27 16:20:32 +02:00
fd42d8cd46 periodic task taken over from master 2020-08-27 16:14:42 +02:00
4530b19548 header update 2020-08-27 16:13:36 +02:00
89d3fe5095 integrated change manually 2020-08-27 16:11:40 +02:00
66cf2d3559 timeslot update for FreeRTOS 2020-08-27 16:05:31 +02:00
02be87aa03 init after task creation moved to task functionality 2020-08-27 15:57:47 +02:00
6d3fdab944 adapted semaphore IF to mutex IF 2020-08-27 15:52:55 +02:00
1dfdd65662 new initializeSequence func 2020-08-27 14:42:10 +02:00
790e0399b7 Merge branch 'mueller/project/distribDatapool' into mueller/master 2020-08-27 14:23:14 +02:00
67ab1f6240 initialize after task crteation moved 2020-08-27 14:17:13 +02:00
76f145ddcf Update 'globalfunctions/DleEncoder.cpp'
Just a missing char
2020-08-26 19:59:58 +02:00
281f13e27b Update 'globalfunctions/DleEncoder.h'
Corrected some spelling mistakes
2020-08-26 19:58:18 +02:00
df850116ff dle encoder doc added 2020-08-26 17:43:47 +02:00
a8f2cf910b taken over dle encoder from upstream master 2020-08-26 17:43:20 +02:00
2748a8b93b added doc to dle encoder 2020-08-26 17:42:13 +02:00
0f9930524b some minor improvements 2020-08-26 15:54:13 +02:00
83c9d4fc1c improved tmtc bridge 2020-08-26 14:55:27 +02:00
51b62fd9b1 debug output fix 2020-08-26 03:21:26 +02:00
c314792e86 linebreak changed 2020-08-26 02:52:59 +02:00
561becf6aa Merge remote-tracking branch 'upstream/master' into mueller/hostosal 2020-08-25 18:31:17 +02:00
f13e7b4255 include replacements 2020-08-25 18:30:11 +02:00
3f9d9b8770 ipc update 2020-08-25 18:24:46 +02:00
9465c8f2b2 Merge pull request 'include fix FreeRTOS' (#175) from KSat/fsfw:mueller/hotfix/MutexFreeRTOS into master 2020-08-25 18:16:50 +02:00
d9ee6d0d90 include fix 2020-08-25 18:15:02 +02:00
da3b2b2500 form improvements 2020-08-25 18:09:05 +02:00
1ae79ab99d Improvements of comments 2020-08-25 15:06:53 +02:00
6903a761ff Some corrections 2020-08-25 14:23:59 +02:00
af52d1ffda Added some documentation in SerializeIF 2020-08-25 14:14:58 +02:00
7571bc3728 Merge pull request 'renamed MESSAGE_TYPE to messagetypes' (#110) from KSat/fsfw:mueller_MessageNamespaceRenamed into master 2020-08-25 14:08:32 +02:00
9fbf0d1d94 Merge remote-tracking branch 'upstream/master' into mueller_MessageNamespaceRenamed 2020-08-25 14:02:48 +02:00
3001911d69 taken over interface changes 2020-08-25 14:00:27 +02:00
9a06cb846c Merge remote-tracking branch 'upstream/master' into mueller_StoreAccessor 2020-08-25 13:58:58 +02:00
e0a2d09716 Merge pull request 'getter/setter functions for serial buffer adapter' (#170) from KSat/fsfw:mueller/SerialBufferAdapter into master 2020-08-25 13:51:30 +02:00
9c29253337 removed forward decl 2020-08-25 13:42:36 +02:00
6afbeb8423 removed linker forward decl 2020-08-25 13:42:11 +02:00
92e18b91a3 seriasl buffer update 2020-08-25 13:38:53 +02:00
de98dd0871 optimization 2020-08-25 13:37:42 +02:00
fb0a3d22db linker forward decl added 2020-08-25 13:34:52 +02:00
ba4eac65cc count t replacements 2020-08-25 13:33:31 +02:00
7d2c48fb33 serializhe improved 2020-08-25 13:32:17 +02:00
c8595c3442 deSerialize fixed/improved 2020-08-25 13:29:36 +02:00
b97128c12e deserialize improved 2020-08-25 13:29:10 +02:00
c8ba486538 serial buffer adapter 2020-08-25 13:17:57 +02:00
857d61ea13 member pointer now checked 2020-08-25 13:16:17 +02:00
825bf62d79 fixed deSerialize 2020-08-25 13:14:13 +02:00
3aa6858c93 Merge branch 'mueller/master' into mueller/project/distribDatapool 2020-08-25 13:04:20 +02:00
9245b14569 Merge pull request 'FreeRTOS Stack Size Correction' (#156) from KSat/fsfw:mueller/FreeRTOSstackSizeCorrection into master 2020-08-25 13:00:38 +02:00
6ebe523e50 Merge remote-tracking branch 'upstream/master' into mueller/FreeRTOSstackSizeCorrection 2020-08-25 12:51:57 +02:00
f863849a75 Merge remote-tracking branch 'upstream/master' into mueller_tcPacketBase 2020-08-25 12:45:42 +02:00
b5d6d5a178 Merge pull request 'freeRTOS task management init' (#157) from KSat/fsfw:mueller/FreeRTOS/TaskManagement into master 2020-08-25 12:42:42 +02:00
c0332a80a7 task management update 2020-08-25 12:40:06 +02:00
043710ee56 Merge remote-tracking branch 'upstream/master' into mueller/FreeRTOS/TaskManagement 2020-08-25 12:38:23 +02:00
fddf31121d Merge pull request 'setTaskIF in periodic task' (#154) from KSat/fsfw:mueller/Linux-SetTaskIF-Fix into master 2020-08-25 12:29:02 +02:00
7e0cf49723 author tag 2020-08-25 12:24:37 +02:00
d0419467a7 include guard fix 2020-08-25 12:23:46 +02:00
1235e38556 rtems adaption 2020-08-25 12:20:56 +02:00
8c150fd40d Merge remote-tracking branch 'upstream/master' into mueller/Linux-SetTaskIF-Fix 2020-08-25 12:19:52 +02:00
a1d1d42e88 Merge pull request 'singly linked list improvements' (#108) from KSat/fsfw:mueller_SinglyLinkedListImprovements into master 2020-08-25 12:18:23 +02:00
a414be23bf Merge pull request 'renamed framework.mk to fsfw.mk' (#169) from KSat/fsfw:mueller/submakefile-renamed into master 2020-08-25 12:16:48 +02:00
02de6c41ec Merge pull request 'Mutex improvements' (#90) from KSat/fsfw:mueller_MutexImprovements into master 2020-08-25 12:13:30 +02:00
74dea921e0 made fixes 2020-08-25 12:10:28 +02:00
ab4c65c87a added header file changes 2020-08-25 12:08:12 +02:00
49a36d6fdc removed definitions 2020-08-25 12:06:39 +02:00
a4626aeac0 made rtems adaption 2020-08-25 12:04:59 +02:00
11ce3d025f srv3 received reply now 2020-08-24 22:08:27 +02:00
84d99a6f04 added brackets for boolean expressions 2020-08-24 14:56:50 +02:00
b7612bee37 getFreeELement function added 2020-08-24 14:55:32 +02:00
5210bce64d Merge remote-tracking branch 'upstream/master' into mueller_ringBufferStatic 2020-08-24 14:51:13 +02:00
8e7f167a66 small fix taken over 2020-08-24 14:48:22 +02:00
26b63d63b9 small fix 2020-08-24 14:47:53 +02:00
1b4c4de3fa getter/setter functions for serial buffer adapter 2020-08-24 14:38:59 +02:00
a5227115e5 first subscriptio nfunction written 2020-08-23 23:24:48 +02:00
a95bc6b293 sid cached now 2020-08-23 22:33:22 +02:00
687e124929 doc added 2020-08-23 21:52:44 +02:00
2b63f1b3f3 New reporting mode 2020-08-23 21:00:25 +02:00
2f53a3fb1b Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2020-08-23 20:27:00 +02:00
cdaed4523b tmtc bridge todo added 2020-08-21 16:15:40 +02:00
0d47606229 tm/tc packet stored improvements 2020-08-21 15:49:06 +02:00
15fd30b23f assigned read len for decoding error 2020-08-20 22:31:58 +02:00
9385f90241 some bugfixes and improvements 2020-08-20 20:36:49 +02:00
adbf39166f removed pus parser 2020-08-20 18:13:17 +02:00
1b8f134029 Merge remote-tracking branch 'upstream/master' into mueller_MutexImprovements 2020-08-19 17:30:08 +02:00
5b4e49e966 Merge remote-tracking branch 'upstream/master' into mueller/devices/FDIR 2020-08-19 17:26:50 +02:00
180d997b03 Merge remote-tracking branch 'upstream/master' into mueller/Linux-SetTaskIF-Fix 2020-08-19 17:25:01 +02:00
a2c8b3f75b Merge remote-tracking branch 'upstream/master' into mueller/FreeRTOSstackSizeCorrection 2020-08-19 17:20:44 +02:00
f90bd01282 added srv17 and srv201 2020-08-19 17:00:50 +02:00
7b998268cb error message improvement 2020-08-19 13:17:40 +02:00
31f398cec9 small fix 2020-08-19 13:16:08 +02:00
e59022dd43 old .mk file removed 2020-08-19 13:15:14 +02:00
c63665c257 renamed framework.mk to fsfw.mk 2020-08-19 13:13:57 +02:00
a1d94ec556 added aditional comment 2020-08-18 20:51:13 +02:00
5af50cfbf7 renamed .mk file 2020-08-18 20:50:24 +02:00
fbecda7549 include replacements 2020-08-18 13:09:15 +02:00
49d4b6ebc7 Merge pull request 'All includes are relative now #147' (#164) from gaisser/fsfw:gaisser_relative_paths into master 2020-08-18 12:07:40 +02:00
549ad97bd3 shared ring buffer pull request 2020-08-18 11:25:57 +02:00
111f9dce7d added host osal 2020-08-16 23:06:32 +02:00
9e0a905096 Two paths gone wrong 2020-08-13 20:58:49 +02:00
d5dedce294 Relative Paths 2020-08-13 20:53:35 +02:00
287a83c54c Another shadowing error 2020-08-13 19:11:23 +02:00
3d89bc83e5 Another shadowing, altough again no problem 2020-08-13 18:08:17 +02:00
4a2ef6d97f Fixed a shadowing issue of with moving to inner scope 2020-08-13 17:58:42 +02:00
b484e4d5ad Removed unused function 2020-08-13 10:27:16 +02:00
7dbab61ab7 Merge remote-tracking branch 'origin/master' into gaisser_fixes_fixedMap 2020-08-12 10:10:39 +02:00
e535bc1427 Merge pull request 'PUS: PUS Services' (#139) from KSat/fsfw:mueller_PusServices into master 2020-08-12 10:07:36 +02:00
18105e2d16 Merge pull request 'CSB improvements' (#143) from KSat/fsfw:mueller/feature/CSBupdate into master 2020-08-12 10:05:43 +02:00
ebc11bd777 Merge pull request 'Corrected warning in framework mk to fit name of setting' (#160) from gaisser_framework_mk_small_change into master 2020-08-11 17:21:06 +02:00
3d4daa51d5 Corrected warning to fit name of setting 2020-08-11 17:17:50 +02:00
e963aca02a Fixed an issue with memmove in FixedOrderedMultimap 2020-08-11 17:02:19 +02:00
8c722feafb Fixes #47 and #36 2020-08-11 16:21:59 +02:00
f39b8bdb41 several simplifications 2020-08-10 18:33:28 +02:00
87eb31b65a local data pool manager uses new packet now 2020-08-09 20:06:29 +02:00
9e7d92b387 some renaming , hk packets finished 2020-08-09 19:46:37 +02:00
a181f19c02 Merge branch 'mueller/master' into mueller/project/distribDatapool 2020-08-09 17:13:58 +02:00
5d09ae3221 additional comment 2020-08-08 23:47:44 +02:00
f9ce1d9eb9 more simplifications for shared ring buffer 2020-08-08 23:46:21 +02:00
6484c1a276 shared ring buffer simplified 2020-08-08 23:45:18 +02:00
b092850dfc internal housekeeping packet finished 2020-08-08 21:32:15 +02:00
b828d7c6d7 continued with local datapool manager 2020-08-08 19:56:42 +02:00
e7d28d630c continued with implementation 2020-08-08 19:43:28 +02:00
03cd5780f9 null initializations in header 2020-08-08 13:29:38 +02:00
6b4fa0cc04 fdir update 2020-08-08 13:28:59 +02:00
121e94a385 local pool var update 2020-08-08 13:20:02 +02:00
e61fdd0d5e freeRTOS task management init 2020-08-08 13:15:41 +02:00
5c85d03c39 additional check for freeRTOS 2020-08-08 13:04:31 +02:00
fba8775f49 some renaming 2020-08-08 12:51:31 +02:00
f766398b20 some bugfixes 2020-08-08 12:49:20 +02:00
944226c2ed periodic task if fix 2020-08-08 12:47:14 +02:00
a0f41d3238 stack size is bytes now 2020-08-08 12:46:06 +02:00
af11c8fcf9 freeRTOS corrections 2020-08-08 12:38:39 +02:00
a6a1e65607 local data set fix 2020-08-08 12:17:27 +02:00
4afb19be51 Merge branch 'mueller/master' into mueller/project/distribDatapool 2020-08-08 12:04:52 +02:00
20f7217501 Merge remote-tracking branch 'upstream/master' into mueller_MutexImprovements 2020-08-07 22:32:19 +02:00
11e23420f2 Merge remote-tracking branch 'upstream/master' into mueller/Linux-SetTaskIF-Fix 2020-08-07 22:31:11 +02:00
3905b72b08 Merge pull request 'linux hotfix' (#155) from KSat/fsfw:mueller/LinuxHotfix into master 2020-08-07 22:29:29 +02:00
90a3e2b8c5 linux hotfix 2020-08-07 22:26:01 +02:00
54825dca6b periodic posix task hotfix 2020-08-07 22:19:13 +02:00
caeb2f9dd6 mutex api changes 2020-08-07 22:16:10 +02:00
979fea3400 mutex helper api change 2020-08-07 22:15:03 +02:00
458e849f7d adapting mutex helper to new interface 2020-08-07 22:11:13 +02:00
7b3fddfd42 implemented mutex if changes 2020-08-07 22:10:58 +02:00
9d90348175 Merge remote-tracking branch 'upstream/master' into mueller_MutexImprovements 2020-08-07 22:07:37 +02:00
44b70b45e2 little doc correction 2020-08-07 22:06:20 +02:00
e3d094b2de linux: removed old static timeout values 2020-08-07 22:02:23 +02:00
37f2539d89 empty line removed 2020-08-07 20:44:40 +02:00
bfecbfbd80 implemented new mutex interface 2020-08-07 20:36:37 +02:00
1a118fe215 added documentation to assembly base 2020-08-07 19:21:47 +02:00
66039bd3fe move group def down 2020-08-04 18:14:39 +02:00
c4ffb1acd5 subservice number correction 2020-08-04 18:12:15 +02:00
3f87537c61 minor corrections 2020-08-04 15:25:24 +02:00
4d3f0875c1 periodic task if adapted 2020-08-04 15:23:37 +02:00
9102eec4ab interface change for freeRTOS 2020-08-04 15:20:43 +02:00
c42b5283af periodic task IF: setting task if boolean removed 2020-08-04 15:19:31 +02:00
ea9288d848 updated subsystem ID range 2020-08-04 15:17:40 +02:00
2177877625 updated framework subsystem ID ranges 2020-08-04 15:16:09 +02:00
78442a8b92 Amending PR #145, forgot some documentation 2020-08-04 12:25:29 +02:00
03539a6991 Merge pull request 'HasActionsIF + CommandMessage Typo' (#145) from KSat/fsfw:mueller/feature/HasActionsIF into master 2020-08-04 12:18:29 +02:00
6ac36cec15 removed other include in framework.mk 2020-08-02 15:56:38 +02:00
d58fc5c6f7 removed includes in framework.mk 2020-08-02 15:55:56 +02:00
be6060ec94 Merge remote-tracking branch 'upstream/master' into mueller_PusServices 2020-08-02 15:55:22 +02:00
f36da8a79c Merge remote-tracking branch 'upstream/master' into mueller/feature/DHBupdate 2020-08-02 15:49:11 +02:00
2e08037e75 revertiing pool changes 2020-08-02 15:48:09 +02:00
a0ff1e0019 reverted datapool changes 2020-08-02 15:46:25 +02:00
d8bf1931cc doc correction 2020-08-01 16:55:20 +02:00
2198406714 csb update 2020-08-01 16:53:17 +02:00
4213e2e081 Merge remote-tracking branch 'upstram/master' into mueller/feature/CSBupdate 2020-08-01 16:46:27 +02:00
e188e65897 Merge pull request 'important bugfix' (#152) from KSat/fsfw:hotfix/PeriodicTaskOverflowChecking into master 2020-07-30 11:22:47 +02:00
652c60c362 important bugfix
I checked all 5 cases for overflows when checking
for missed deadlines (there is current time, timeToWake
and lastWakeTime, with various combinations of overflows)

This should be the correct implementation now
2020-07-29 20:02:04 +02:00
0449c63225 bugfixes 2020-07-28 13:13:40 +02:00
c16675f69a Merge pull request 'SerialArrayListAdapter' (#151) from KSat/fsfw:bugfix/SerialArrayListAdapter into master 2020-07-28 13:08:10 +02:00
35fe41361b Merge remote-tracking branch 'upstream/master' into mueller_FIFO_static_normal 2020-07-28 13:08:04 +02:00
802004107b Merge remote-tracking branch 'upstream/master' into mueller_FIFO_static_normal 2020-07-28 13:07:35 +02:00
4bffcf17fb some formatting stuff 2020-07-28 13:04:58 +02:00
036a887ea3 bugfix 2020-07-28 13:02:43 +02:00
a87a8f527f Merge pull request 'ServiceInterfaceBuffer Bugfix #149' (#150) from gaisser_fix_service_interface_149 into master 2020-07-28 12:51:28 +02:00
b74fbbddb9 Merge pull request 'FreeRTOS PeriodicTask improvement' (#116) from KSat/fsfw:mueller_PeriodicTaskImprovements into master 2020-07-28 12:45:27 +02:00
88cec7ddb1 Merge pull request 'framework submakefile improvements' (#114) from KSat/fsfw:mueller_Framework_mk_OS_FSFW into master 2020-07-28 12:37:28 +02:00
0defc6a7d8 removed folders 2020-07-28 12:36:22 +02:00
a9c8bea857 Merge remote-tracking branch 'upstream/master' into mueller_binSemaphoreInit 2020-07-28 12:26:56 +02:00
5df88eb73b singlyl inked list bugfix 2020-07-28 12:20:23 +02:00
32f22dd974 Merge pull request 'CommandingServiceBase improvements' (#105) from KSat/fsfw:mueller_CSB_improvements into master 2020-07-28 12:12:07 +02:00
40d0568062 Merge pull request 'PusServiceBase enhancements' (#103) from KSat/fsfw:mueller_PSB_improvement into master 2020-07-28 12:10:18 +02:00
86c48cb7d8 Merge pull request 'Newlib nano CCSDS define' (#49) from KSat/fsfw:mueller_CCSDSTime_Bugfix_Atmel into master
Does not hurt anyone.
2020-07-28 12:00:10 +02:00
136a68000b Merge remote-tracking branch 'upstream/master' into mueller_CSB_improvements 2020-07-25 11:00:27 +02:00
06e7f286d6 added explicit brackets 2020-07-25 10:55:28 +02:00
be9d0a61f4 Fixes #149 2020-07-21 15:15:53 +02:00
e1c17409d9 Merge pull request 'service interface stream enhancements' (#93) from KSat/fsfw:mueller_ServiceStreamEnhancement into master 2020-07-21 12:18:20 +02:00
dc4db6e031 Fixed spelling mistake in HealthHelper 2020-07-16 13:32:08 +02:00
6b03a1c03d commented out some more components 2020-07-16 13:00:22 +02:00
c9bc022941 commented out all new hk manager components 2020-07-16 12:57:29 +02:00
36f7cf2caf updated DHB changes 2020-07-16 12:54:30 +02:00
307c954007 fixed CommandMessageTypo
and integrated HasActionsIF interface changes
2020-07-16 12:49:53 +02:00
b7411591a1 Merge branch 'mueller/master' into mueller/project/distribDatapool 2020-07-16 12:42:02 +02:00
646e86ea85 dhb update init 2020-07-16 11:56:48 +02:00
aca0c94c51 CSB new update init 2020-07-16 11:47:11 +02:00
a0b8f8855c cotinued distir datapool 2020-07-16 11:45:23 +02:00
e5ab7ada68 added new interfaces for datasets 2020-07-14 15:45:03 +02:00
7a4a2f986a Merge pull request 'new intialize after task creation function' (#137) from KSat/fsfw:mueller_ExecutableObjectIF_newInit into master 2020-07-14 11:59:14 +02:00
52f56ca798 Merge pull request 'tmtc bridge improvements' (#136) from KSat/fsfw:mueller_TmTcBridgeImprovements into master 2020-07-14 11:58:38 +02:00
639e61cebf Merge pull request 'FixedTimeslotTask FreeRTOS improvements' (#117) from KSat/fsfw:mueller_FixedTimeslotTaskImprovements into master 2020-07-14 11:45:41 +02:00
8f2a7b9e68 Merge pull request 'hybrid iterator fix and improvement' (#109) from KSat/fsfw:mueller_HybridIterator into master 2020-07-14 11:40:48 +02:00
ced61da357 Merge pull request 'Fixed spelling mistake in HealthHelper' (#121) from gaisser_fix_spelling_mistake_health into master 2020-07-14 11:24:14 +02:00
e204bd77c6 created tpp file for fixed ordered multimap 2020-07-14 02:21:11 +02:00
a0834204da Merge remote-tracking branch 'upstream/master' into mueller_MutexImprovements 2020-07-13 22:18:08 +02:00
ef2a44c683 added back inttypes.h for cleaner code 2020-07-13 22:15:38 +02:00
9f12f232bc Merge branch 'mueller_CCSDSTime_Bugfix_Atmel' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller_CCSDSTime_Bugfix_Atmel 2020-07-13 22:07:27 +02:00
ae486f5330 Merge remote-tracking branch 'upstream/master' into mueller_CCSDSTime_Bugfix_Atmel 2020-07-13 22:02:17 +02:00
538962d0c2 Merge remote-tracking branch 'upstream/master' into mueller_SinglyLinkedListImprovements 2020-07-13 19:54:57 +02:00
d7e157d908 switch setLast and setEnd 2020-07-13 19:53:44 +02:00
14f86422e3 additional size_t replacement 2020-07-13 19:47:31 +02:00
d34ee48126 Merge remote-tracking branch 'upstream/master' into mueller_CSB_improvements 2020-07-13 19:39:36 +02:00
3a2dc5eeb6 new tmtc unix udp bridge 2020-07-13 13:33:12 +02:00
170a2c58f0 Merge pull request 'size_t replacement' (#140) from KSat/fsfw:mueller/hotfix/HealthTableIF into master 2020-07-13 11:52:06 +02:00
72c9ef1089 size_t replacement 2020-07-13 02:12:11 +02:00
85d24b9dfe removed file header comment 2020-07-10 14:31:58 +02:00
97b01f837c srv8 improvements 2020-07-10 14:29:17 +02:00
6b2b788308 added new pus services 2020-07-10 14:16:55 +02:00
5fb5cea949 Merge pull request 'Update SerializeAdapter' (#122) from mohr_serialize into master 2020-07-10 12:21:14 +02:00
26b5ef6dac Merge branch 'master' into mohr_serialize 2020-07-10 12:19:51 +02:00
d1e922eecf new intiialize after task creation function 2020-07-09 20:08:40 +02:00
83484237ae default argument for getter function 2020-07-09 19:53:17 +02:00
1025a3cecc Merge remote-tracking branch 'upstream/master' into mueller_CSB_improvements 2020-07-09 19:49:47 +02:00
90e299977b minor formatting improvements 2020-07-09 19:41:16 +02:00
133ed9586b tmtc bridge improvements 2020-07-09 19:31:28 +02:00
65d71b1c65 added new ctor, non-allocating 2020-07-07 18:11:36 +02:00
d795892d57 csb fifo tweak 2020-07-07 17:54:09 +02:00
5f76b03f3a fifo tweaks 2020-07-07 17:44:15 +02:00
e9166ec4c7 Merge remote-tracking branch 'upstream/master' into mueller_FIFO_static_normal 2020-07-07 17:43:03 +02:00
9f4f8d945c Merge pull request 'hotfix: arrayprinter was renamed' (#131) from KSat/fsfw:mueller_hotfix_arrayprinter into master 2020-07-07 13:27:11 +02:00
986bb154be hotfix: arrayprinter was renamed 2020-07-07 13:24:04 +02:00
ce5a241f4f Merge pull request 'new initializer list ctor' (#72) from KSat/fsfw:mueller_initializer_list into master 2020-07-07 12:10:53 +02:00
56c8f4877d Merge pull request 'mueller_TmTcBridge_cherryPicked' (#40) from KSat/fsfw:mueller_TmTcBridge_cherryPicked into master 2020-07-07 12:06:47 +02:00
6f40a8c622 Merge pull request 'mueller_stopwatch' (#30) from KSat/fsfw:mueller_stopwatch into master 2020-07-07 12:05:04 +02:00
2fccc4fef7 getter function for capacity 2020-07-06 23:08:31 +02:00
8f6c3b50af namespace fix 2020-07-06 13:40:13 +02:00
b699c8b2b3 put FIFO in namespace, fixed doc 2020-07-06 13:38:11 +02:00
991385de65 added missing include, CSB uses static fifo now 2020-07-06 13:29:56 +02:00
ec212d9fcf new fifo init 2020-07-06 13:26:58 +02:00
856f1efd6b Merge remote-tracking branch 'upstram/master' into mueller_PeriodicTaskImprovements 2020-07-06 12:40:27 +02:00
6a0a2675b1 typedef instead of auto used now 2020-07-06 12:36:01 +02:00
05393b900b Merge remote-tracking branch 'upstram/master' into mueller_FixedTimeslotTaskImprovements 2020-07-06 12:27:12 +02:00
f654c4b33e Merge remote-tracking branch 'upstram/master' into mueller_tcPacketBase 2020-07-06 12:22:22 +02:00
c3172d7308 Merge remote-tracking branch 'upstream/master' into mueller_TmTcBridge_cherryPicked 2020-07-03 16:33:17 +02:00
6e79972086 size_t for DataPoolAdmin 2020-07-03 15:50:29 +02:00
45430e8586 Reworked PoolRawAccess to use EndianConverter instead of converting by itself 2020-07-03 15:47:05 +02:00
89accf8940 Documented EndianConverter and changed length to size_t 2020-07-03 15:46:00 +02:00
06b481b02f Corrected filename of EndianConverter.h 2020-07-03 12:44:08 +02:00
8c68895c06 Merge remote-tracking branch 'origin/master' into mohr_serialize 2020-07-03 11:59:15 +02:00
3cd946fef8 Merge pull request 'DeviceHandlerBase: All Refactoring' (#44) from KSat/fsfw:mueller_DeviceHandlerBase_AllRefactoring into master 2020-07-03 11:48:55 +02:00
d311c49998 setTaskIF implemented 2020-06-29 16:57:00 +02:00
5400e38126 slight change 2020-06-29 16:53:32 +02:00
bfd49caab4 fixed include guard comment 2020-06-26 12:52:03 +02:00
053b472157 Fixed spelling mistake in HealthHelper 2020-06-25 18:09:32 +02:00
d1b9ab5126 added basic insertion operations 2020-06-25 17:17:24 +02:00
1ed5da3a12 getter function bugfix 2020-06-24 16:26:44 +02:00
ce3e4a1176 added getter for reject reply 2020-06-24 16:24:16 +02:00
fc0d42e3e0 error output for CSB init failure 2020-06-24 16:07:02 +02:00
644896245f better returnvalues for CSB init 2020-06-24 16:03:54 +02:00
8a56964dab doc fix, various improvements 2020-06-24 16:01:17 +02:00
19cbac923f typo fix 2020-06-24 12:06:08 +02:00
f826ada774 some more little changes for single linked list 2020-06-24 11:40:21 +02:00
a682ca97d2 Merge remote-tracking branch 'upstream/master' into mueller_SinglyLinkedListImprovements 2020-06-24 11:36:45 +02:00
a5a53e7f9b include guard updated 2020-06-24 11:36:10 +02:00
f6d2549534 requested changed implemented 2020-06-24 11:35:07 +02:00
e10cf44c8d Merge remote-tracking branch 'upstream/master' into mueller_HybridIterator 2020-06-24 11:33:31 +02:00
b4bc05fb12 Merge remote-tracking branch 'upstream/master' into mueller_FixedTimeslotTaskImprovements 2020-06-24 11:31:35 +02:00
93d57c0784 Merge remote-tracking branch 'upstream/master' into mueller_PeriodicTaskImprovements 2020-06-24 11:31:21 +02:00
a589be7c74 took over imrpvements 2020-06-23 11:06:54 +02:00
4c59b043e1 const store accessor in separate file now 2020-06-23 10:57:14 +02:00
c8b92a8828 Merge remote-tracking branch 'upstream/master' into mueller_StoreAccessor 2020-06-23 10:50:47 +02:00
e935b8bd04 some minor improvements 2020-06-23 10:45:47 +02:00
d51b3b68e4 Merge remote-tracking branch 'upstream/master' into mueller_TmTcBridge_cherryPicked 2020-06-23 10:37:10 +02:00
4507bdfb69 added setting task IF 2020-06-23 01:14:28 +02:00
1cc50639c7 improvements integrated 2020-06-22 23:49:31 +02:00
0c9c9c581b minor formatting 2020-06-22 23:31:27 +02:00
bf63ba15fe finished overflow checking (hopefully) 2020-06-22 23:30:17 +02:00
3c7ac60dbe added overflow checking 2020-06-22 20:39:36 +02:00
2cada2df4a some fixes and improvements 2020-06-22 20:21:11 +02:00
ffe2a7bffe fix for fixed timeslot task improvement 2020-06-22 19:00:02 +02:00
56aaa29985 added deadline missed check 2020-06-19 14:47:01 +02:00
31e5577763 added deadline missed check 2020-06-19 14:45:29 +02:00
d8e9e34ad9 framework submakefile improvements 2020-06-19 14:36:49 +02:00
cda3130b34 periodic reply map param is bool now 2020-06-19 01:05:51 +02:00
b412ef587a Merge remote-tracking branch 'upstream/master' into mueller_DeviceHandlerBase_AllRefactoring 2020-06-19 00:45:02 +02:00
952fc7303a renamed MESSAGE_TYPE to messagetypes 2020-06-17 21:15:19 +02:00
0c45522540 hybrid iterator fix and improvement 2020-06-17 20:57:35 +02:00
eb4880f603 singly linked list improvements 2020-06-17 20:53:10 +02:00
72f3b16c24 split up huge member function for readability 2020-06-10 22:53:24 +02:00
534fddd2c6 added back comment removed for unknown reasons 2020-06-10 22:19:08 +02:00
482aedfaf2 cleaned up includes, improved doc 2020-06-10 22:13:49 +02:00
5dc2133c3a CSB improvements 2020-06-10 21:41:48 +02:00
39d5fe34bb better include guard, doc form improvement 2020-06-10 21:36:21 +02:00
372493828d Merge remote-tracking branch 'upstream/master' into mueller_PSB_improvement 2020-06-10 21:24:55 +02:00
ed7b4e2a3a PSB improvements 2020-06-10 20:49:30 +02:00
860cdba94d subservicve passed to handleRequest() 2020-06-10 20:28:44 +02:00
86a6b2fee0 Merge remote-tracking branch 'upstream/master' into mueller_binSemaphoreInit 2020-06-10 16:48:14 +02:00
887f8331a2 Merge remote-tracking branch 'upstream/master' into mueller_TmTcBridge_cherryPicked 2020-06-10 16:44:11 +02:00
dc43222db8 Merge remote-tracking branch 'upstream/master' into mueller_stopwatch 2020-06-10 16:43:05 +02:00
dd8543fedd Merge remote-tracking branch 'upstream/master' into mueller_ServiceStreamEnhancement 2020-06-10 16:40:48 +02:00
b5567e8aae rtems mutex update 2020-06-09 13:26:27 +02:00
20abb810f2 i hope this is correct 2020-06-08 14:11:38 +02:00
ad37848039 Merge remote-tracking branch 'upstream/master' into mueller_MutexImprovements 2020-06-08 14:06:59 +02:00
9c766c123d device command iter was uninitialized 2020-06-06 20:56:09 +02:00
03e9362825 mutex helper special output for timeout fail 2020-06-05 20:42:39 +02:00
cef5fda379 refactored initializer list 2020-06-05 13:43:06 +02:00
38b0792cdc Merge remote-tracking branch 'upstream/master' into mueller_initializer_list 2020-06-05 12:31:49 +02:00
fbf804cdca linux changes for mutex 2020-06-04 20:25:15 +02:00
9bcc4c0e3c Merge remote-tracking branch 'upstream/master' into mueller_MutexImprovements 2020-06-04 20:21:52 +02:00
869700e6f5 added mutex IF timeout name 2020-06-04 20:20:38 +02:00
56340bb8b6 free rtos mutex improvements 2020-06-04 20:12:37 +02:00
639b517eda removed unnecessary change 2020-06-04 19:57:25 +02:00
7014833c1c improvements and fixes 2020-06-04 19:50:56 +02:00
3a573c1b4c no run-time dyn memory allocation now 2020-06-04 19:37:33 +02:00
c0808e71d9 no dyn memory allocation, print seems to work 2020-06-04 19:07:04 +02:00
d466921aa0 some more experiments 2020-06-04 17:58:22 +02:00
1cb241ca0c zero padded not using dyn mem alloc now 2020-06-04 17:30:09 +02:00
a6a3180196 removed conflict markers 2020-06-04 15:03:29 +02:00
3d175f603c removed conflict markers 2020-06-04 15:02:14 +02:00
1d99a99bbd I now remember why I included object manager IF changes 2020-06-04 15:00:05 +02:00
8e3f99a350 removed object manager changes for now 2020-06-04 14:59:14 +02:00
11c64a91a3 Merge remote-tracking branch 'upstream/master' into mueller_ServiceStreamEnhancement 2020-06-04 14:52:40 +02:00
e20244b0ce Merge remote-tracking branch 'upstream/master' into mueller_StoreAccessor 2020-06-04 14:35:55 +02:00
966c9c3993 buffer changes 2020-06-04 14:22:04 +02:00
f8fb370ae7 preamble changes started 2020-06-04 14:08:26 +02:00
764608005b buf renamed to streambuf 2020-06-04 13:26:35 +02:00
ef13249405 typedef renamed 2020-06-04 13:01:59 +02:00
9361568b45 clarifying commnet 2020-06-03 23:28:31 +02:00
7259a13569 more improvements:
1. New optional flag to redirect print to stderr. THis can be useful on
host environemtns (e.g linux)
2. non-buffered mode if this flag is true: the preamble msut be printed
manually
2. Getter function for preamble for that case.
3. printChar function: specify whether to print to stderr or stdout
2020-06-03 23:14:17 +02:00
d4f69633f0 renamed timeout values 2020-06-02 22:36:42 +02:00
e5cea3ead0 service interface stream enhancements 2020-05-29 20:31:08 +02:00
70454b4640 Merge remote-tracking branch 'upstram/master' into mueller_stopwatch 2020-05-29 17:55:52 +02:00
a9a23d7623 include improvements 2020-05-29 17:51:15 +02:00
c5bb18a788 include improvements, nullptr used 2020-05-29 17:49:39 +02:00
f15424be4f implemented missing static function 2020-05-29 17:47:55 +02:00
0be418a553 clock.h form improvements 2020-05-29 17:45:08 +02:00
1cf5991101 getClock_timval used now 2020-05-29 17:43:06 +02:00
43a7274129 Merge branch 'mueller_localPoolNeat' into mueller_StoreAccessor 2020-05-29 17:11:10 +02:00
f871f75e1c added back default value for pool manager.h 2020-05-29 17:10:57 +02:00
023af149df Merge branch 'mueller_localPoolNeat' into mueller_StoreAccessor 2020-05-29 17:07:48 +02:00
a3f379e149 and another little include guard fix 2020-05-29 16:50:37 +02:00
acf037614f added another author tag 2020-05-29 16:48:53 +02:00
ab17e28405 include protection output fix 2020-05-29 16:45:52 +02:00
a993223f6e added include protection 2020-05-29 16:44:31 +02:00
d83181cb0f added author tag 2020-05-29 16:41:23 +02:00
8af5a32f1d new store accessor classes
implementation of local pool and pool manager extracted into
tpp file.

store_address_t definition extracted in separate file to avoid circular
includes by using forward declarations
2020-05-29 16:37:46 +02:00
896e7f15dc addd new timeout value 2020-05-29 14:16:44 +02:00
2eba865564 some minor form corrections 2020-05-29 14:03:39 +02:00
8f563b7b21 added retvals for mutex 2020-05-29 14:02:14 +02:00
73183b39ef added new casts
otherwise i cant compile with new freertos version
2020-05-29 13:37:13 +02:00
6c9f157d2c added fw class ids 2020-05-29 13:34:17 +02:00
b4c6a04d4a added linux implementations 2020-05-29 13:33:44 +02:00
adb80a68fc addd freertos semaphore factory 2020-05-29 13:32:38 +02:00
f829d063ce added task management functions
required for freeRTOS
2020-05-29 13:31:55 +02:00
d909fcb6a1 added semaphore implementations 2020-05-29 13:31:19 +02:00
f388bd374c added new factory and interface 2020-05-29 13:29:29 +02:00
ca74e0c0f2 removed comments 2020-05-26 16:07:32 +02:00
9951b59627 DHB retval fixes 2020-05-25 23:45:32 +02:00
dd5b301980 improved returnvalues 2020-05-25 23:38:11 +02:00
5de68fcc6e some returnvalue comments 2020-05-25 23:36:47 +02:00
112779d91f cleaned up returnvlaues 2020-05-25 23:31:13 +02:00
98449ddc7f comment removed 2020-05-25 23:17:15 +02:00
19b4332801 some little tweaks 2020-05-25 23:16:46 +02:00
35b9346c2b include improvements for clock, sif fixes 2020-05-25 15:25:17 +02:00
4f278b610d Merge remote-tracking branch 'upstram/master' into mueller_stopwatch 2020-05-25 15:08:47 +02:00
7eb250a90a include testing 2020-05-25 15:06:54 +02:00
ca10020f19 added getter function for tc packet stored 2020-05-19 20:29:37 +02:00
331b36fe18 fixed setAppData function 2020-05-19 19:05:17 +02:00
730c715120 doc improved 2020-05-19 19:01:25 +02:00
7bc29fc2d5 souce data setter function 2020-05-19 19:00:33 +02:00
483a47d353 some renamings 2020-05-19 18:56:23 +02:00
7bc7e06277 added reordering of ctor arguments 2020-05-18 16:41:37 +02:00
df7be467eb nullptr replacements 2020-05-17 17:54:21 +02:00
0bf8e97830 better error output for invalid passed cookie 2020-05-17 17:49:32 +02:00
80c6eff8a6 added error output for passed nullptr cookie 2020-05-17 17:46:27 +02:00
deb8ce3744 merged upstream master 2020-05-17 15:53:29 +02:00
e8a1912fda Merge remote-tracking branch 'upstram/master' into mueller_DeviceHandlerBase_AllRefactoring 2020-05-17 15:50:40 +02:00
f4ad38f07f replyMap insertion improvements 2020-05-17 15:47:17 +02:00
7ceb6f3c96 override for executeAction() 2020-05-17 15:43:45 +02:00
fb0834ffe1 added cookie caching and deletion 2020-05-17 15:28:00 +02:00
b8e7b12a63 commented whole SWITCH IO BOARD block 2020-05-17 13:10:09 +02:00
4819bad402 addtional comment 2020-05-15 20:01:11 +02:00
1c967d4739 app data size uint16_t 2020-05-15 19:56:21 +02:00
eb5832180b size_t uint16_t corrections 2020-05-15 19:51:39 +02:00
1fb87db82e bugfix and additional functions 2020-05-15 19:44:14 +02:00
a159e60a90 removed bool specialization 2020-05-11 16:53:16 +02:00
fadebe2eb4 new initializer list ctor 2020-05-08 14:38:10 +02:00
614deea323 last size_t replacements 2020-05-07 23:38:28 +02:00
33eae034c7 replace device comIF uint32_t with size_t 2020-05-07 23:14:29 +02:00
25ff8784cf corrected documentation 2020-05-07 20:00:42 +02:00
1181ebcbda Merge remote-tracking branch 'upstream/master' into mueller_stopwatch 2020-05-07 19:57:31 +02:00
684dd67f63 seconds_t double now 2020-05-05 19:14:51 +02:00
6be607e422 FIFO protected 2020-05-04 17:33:56 +02:00
07247dbf40 added virtual keyword for init and performOp() 2020-04-23 11:50:13 +02:00
cf3190a904 Actually, not that horrible, thanks to sed 2020-04-21 22:28:43 +02:00
2093329481 working on updating SerializeIF, to quote Basti: This is going to be horrible 2020-04-21 21:34:03 +02:00
c30cae3431 added back NoC99 io section 2020-04-21 16:32:39 +02:00
ea904642d1 CCSDS time possible bugfix for sscanf() 2020-04-21 16:16:02 +02:00
b78b3ac68a added performOperationHook() 2020-04-19 22:17:14 +02:00
225e1b98a0 some bugfixes in cpp file to enable compilation 2020-04-19 22:10:02 +02:00
3bd83c00f5 freeRTOS with included with extern"C" 2020-04-19 21:52:13 +02:00
fd100cb994 header function order change
fillCOmmandANdREplyMAp is now closer to its helper functions
2020-04-19 16:10:44 +02:00
f4c925e671 Merge branch 'mueller_DeviceHandlerBase_API_change_CookieIF' into mueller_DeviceHandlerBase_AllRefactoring 2020-04-19 15:57:39 +02:00
7f08bb3506 removed ioboardAddress, max reply Len 2020-04-19 15:54:28 +02:00
36dbf6e1ce Merge branch 'mueller_DeviceHandlerBase_ctor_reduction' into mueller_DeviceHandlerBase_AllRefactoring 2020-04-19 15:51:58 +02:00
1820ad14b7 API change introduced, using new device comIF
also changed child handler base.
2020-04-19 15:48:17 +02:00
c8983650f7 Merge branch 'mueller_DeviceHandlerBase_Changes' into mueller_newDeviceCommunicationIF 2020-04-19 15:36:42 +02:00
bb650ac784 Merge remote-tracking branch 'origin/mueller_CookieToCookieIF' into mueller_newDeviceCommunicationIF 2020-04-19 15:30:14 +02:00
ff47fa191a Communication interface rework
As discussed, open/reOpen not used anymore, replaced by
initializeInterface call.
Using CookieIF.
2020-04-19 15:25:17 +02:00
520ed881bb wrong function call fixed 2020-04-19 15:16:44 +02:00
ce554c615c reduced massive ctor size
this was done by moving zero or nullptr initialization
into the header file
2020-04-19 15:15:33 +02:00
eacedf7ed6 DHB: replyLen in replyMap now
both maps are closer together now as well
2020-04-19 15:01:27 +02:00
74b8c3eef4 new returnvalue DeviceComIF
explicitely setting receivedDataLen to 0 in readReceivedMessage() does
not trigger error anymore
2020-04-19 14:52:27 +02:00
62644bdfc9 DeviceHandlerIF fixed some indentation error
still some unclarities about returnvalues
so I added a comment on what the returnvalues
in DHB and DH interface mean
2020-04-19 14:45:28 +02:00
1ec1d057b8 renamed rmap to com (more generic) 2020-04-19 14:08:20 +02:00
7126c19ee0 Restructured header file
Abstract functions are closer to the top
because they must be implemented and documentation
should be near the top.
Important virtual functions moved up too.
Additional documentation added and existing adapted
to 80 column width.
I tried to reduce the number of included files and sorted them a bit
2020-04-19 14:03:47 +02:00
574d6051ba new returnvalue for scanForReply
to ignore full packet
DeviceCommunicationIF sendMessage function takes const data pointer now
2020-04-19 13:41:43 +02:00
0c0c8ec448 device handler base indentation 2020-04-19 13:29:50 +02:00
eb9f43d202 Merge remote-tracking branch 'upstream/master' into mueller_DeviceHandlerBase_Changes 2020-04-19 13:27:20 +02:00
0cb2abfe7e old cookie added again
will be replaced in separate branch/pull request
2020-04-19 13:26:40 +02:00
abe7239018 reset, splitting up merge request 2020-04-19 13:24:10 +02:00
a1f36e6ae5 added std:: before uint32_t typedef 2020-04-18 15:05:51 +02:00
db34c45b67 removed self-inclusion 2020-04-18 14:16:46 +02:00
9c958c06fe Changed Cookie to CookieIF 2020-04-18 14:10:38 +02:00
81ab5a6914 As discussed, renamed Cookie to CookieIF.
Also added documentation on the purpose of this class
2020-04-18 14:03:37 +02:00
2b740a3c0f bugfix 2020-04-09 18:02:42 +02:00
ee23a7c0b5 fix 2020-04-06 14:02:33 +02:00
511c0db8c7 Cookie -> CookieIF, DHB changes
According to changes agreed on 01.04.2020,
slight refactoring of DHB:
requestLen is set to 0 if no respective reply is enabled
2020-04-01 12:43:53 +02:00
ac4275ef05 some minor changes 2020-03-27 14:44:54 +01:00
bfb0234d41 more refactoring 2020-03-24 15:59:08 +01:00
ea41514553 new cookie.cpp + cookieIF.h 2020-03-23 19:17:53 +01:00
59812199fd new cookieIF 2020-03-23 19:16:01 +01:00
029b2133e6 new adaptions for cookie + comIF changes
hook for performOp() added
2020-03-23 18:03:00 +01:00
e03aff3731 Device Handler Base Proposals
1. Interface functions moved closer to top (and functions which should
be implemented)
2. ioBoardAddress renamed to logicalAddress. getter FUnction added.
3. debug interface for easier debugging of device handlers
4. new documentation
5. new return value for scanForReply to ignore full packet
2020-02-03 22:34:15 +01:00
368ef242ff CCSDSTime bugfix for atmel
Possible good for other cases too?
2020-01-18 18:49:55 +01:00
1096 changed files with 58493 additions and 29292 deletions

7
.clang-format Normal file
View File

@ -0,0 +1,7 @@
---
BasedOnStyle: Google
IndentWidth: 2
---
Language: Cpp
ColumnLimit: 100
---

2
.gitignore vendored
View File

@ -2,3 +2,5 @@
.project .project
.settings .settings
.metadata .metadata
/build*

0
.gitmodules vendored Normal file
View File

175
CHANGELOG Normal file
View File

@ -0,0 +1,175 @@
# Changed from ASTP 1.1.0 to 1.2.0
## API Changes
### FSFW Architecture
- New src folder which contains all source files except the HAL, contributed code and test code
- External and internal API mostly stayed the same
- Folder names are now all smaller case: internalError was renamed to internalerror and
FreeRTOS was renamed to freertos
- Warning if optional headers are used but the modules was not added to the source files to compile
### HAL
- HAL added back into FSFW. It is tightly bound to the FSFW, and compiling it as a static library
made using it more complicated than necessary
## Bugfixes
### FreeRTOS QueueMapManager
- Fixed a bug which causes the first generated Queue ID to be invalid
## Enhancements
### FSFW Architecture
- See API changes chapter. This change will keep the internal API consistent in the future
# Changes from ASTP 1.0.0 to 1.1.0
## API Changes
### PUS
- Added PUS C support
- SUBSYSTEM_IDs added for PUS Services
- Added new Parameter which must be defined in config: fsfwconfig::FSFW_MAX_TM_PACKET_SIZE
### ObjectManager
- ObjectManager is now a singelton
### Configuration
- Additional configuration option fsfwconfig::FSFW_MAX_TM_PACKET_SIZE which
need to be specified in FSFWConfig.h
### CMake
- Changed Cmake FSFW_ADDITIONAL_INC_PATH to FSFW_ADDITIONAL_INC_PATHS
## Bugfixes
- timemanager/TimeStamperIF.h: Timestamp config was not used correctly, leading to different timestamp sizes than configured in fsfwconfig::FSFW_MISSION_TIMESTAMP_SIZE
- TCP server fixes
## Enhancements
### FreeRTOS Queue Handles
- Fixed an internal issue how FreeRTOS MessageQueues were handled
### Linux OSAL
- Better printf error messages
### CMake
- Check for C++11 as mininimum required Version
### Debug Output
- Changed Warning color to magenta, which is well readable on both dark and light mode IDEs
# Changes from ASTP 0.0.1 to 1.0.0
### Host OSAL
- Bugfix in MessageQueue, which caused the sender not to be set properly
### FreeRTOS OSAL
- vRequestContextSwitchFromISR is declared extern "C" so it can be defined in
a C file without issues
### PUS Services
- It is now possible to change the message queue depth for the telecommand verification service (PUS1)
- The same is possible for the event reporting service (PUS5)
- PUS Health Service added, which allows to command and retrieve health via PUS packets
### EnhancedControllerBase
- New base class for a controller which also implements HasActionsIF and HasLocalDataPoolIF
### Local Pool
- Interface of LocalPools has changed. LocalPool is not a template anymore. Instead the size and
bucket number of the pools per page and the number of pages are passed to the ctor instead of
two ctor arguments and a template parameter
### Parameter Service
- The API of the parameter service has been changed to prevent inconsistencies
between documentation and actual code and to clarify usage.
- The parameter ID now consists of:
1. Domain ID (1 byte)
2. Unique Identifier (1 byte)
3. Linear Index (2 bytes)
The linear index can be used for arrays as well as matrices.
The parameter load command now explicitely expects the ECSS PTC and PFC
information as well as the rows and column number. Rows and column will
default to one, which is equivalent to one scalar parameter (the most
important use-case)
### File System Interface
- A new interfaces specifies the functions for a software object which exposes the file system of
a given hardware to use message based file handling (e.g. PUS commanding)
### Internal Error Reporter
- The new internal error reporter uses the local data pools. The pool IDs for
the exisiting three error values and the new error set will be hardcoded for
now, the the constructor for the internal error reporter just takes an object
ID for now.
### Device Handler Base
- There is an additional `PERFORM_OPERATION` step for the device handler base. It is important
that DHB users adapt their polling sequence tables to perform this step. This steps allows for
a clear distinction between operation and communication steps
- setNormalDatapoolEntriesInvalid is not an abstract method and a default implementation was provided
- getTransitionDelayMs is now an abstract method
### DeviceHandlerIF
- Typo for UNKNOWN_DEVICE_REPLY
### Events
- makeEvent function: Now takes three input parameters instead of two and
allows setting a unique ID. Event.cpp source file removed, functions now
defined in header directly. Namespaces renamed. Functions declared `constexpr`
now
### Commanding Service Base
- CSB uses the new fsfwconfig::FSFW_CSB_FIFO_DEPTH variable to determine the FIFO depth for each
CSB instance. This variable has to be set in the FSFWConfig.h file
### Service Interface
- Proper printf support contained in ServiceInterfacePrinter.h
- CPP ostream support now optional (can reduce executable size by 150 - 250 kB)
- Amalagated header which determines automatically which service interface to use depending on FSFWConfig.h configuration.
Users can just use #include <fsfw/serviceinterface/ServiceInterface.h>
- If CPP streams are excluded, sif:: calls won't work anymore and need to be replaced by their printf counterparts.
For the fsfw, this can be done by checking the processor define FSFW_CPP_OSTREAM_ENABLED from FSFWConfig.h.
For mission code, developers need to replace sif:: calls by the printf counterparts, but only if the CPP stream are excluded.
If this is not the case, everything should work as usual.
### ActionHelper and ActionMessage
- ActionHelper finish function and ActionMessage::setCompletionReply now expects explicit
information whether to report a success or failure message instead of deriving it implicitely
from returnvalue
### PUS Parameter Service 20
Added PUS parameter service 20 (only custom subservices available).

351
CMakeLists.txt Normal file
View File

@ -0,0 +1,351 @@
cmake_minimum_required(VERSION 3.13)
set(FSFW_VERSION 2)
set(FSFW_SUBVERSION 0)
set(FSFW_REVISION 0)
# Add the cmake folder so the FindSphinx module is found
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
option(FSFW_GENERATE_SECTIONS
"Generate function and data sections. Required to remove unused code" ON
)
if(FSFW_GENERATE_SECTIONS)
option(FSFW_REMOVE_UNUSED_CODE "Remove unused code" ON)
endif()
option(FSFW_BUILD_UNITTESTS "Build unittest binary in addition to static library" OFF)
option(FSFW_BUILD_DOCS "Build documentation with Sphinx and Doxygen" OFF)
if(FSFW_BUILD_UNITTESTS)
option(FSFW_TESTS_GEN_COV "Generate coverage data for unittests" ON)
endif()
option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON)
# Options to exclude parts of the FSFW from compilation.
option(FSFW_ADD_INTERNAL_TESTS "Add internal unit tests" ON)
option(FSFW_ADD_UNITTESTS "Add regular unittests. Requires Catch2" OFF)
option(FSFW_ADD_HAL "Add Hardware Abstraction Layer" ON)
# Optional sources
option(FSFW_ADD_PUS "Compile with PUS sources" ON)
option(FSFW_ADD_MONITORING "Compile with monitoring components" ON)
option(FSFW_ADD_RMAP "Compile with RMAP" OFF)
option(FSFW_ADD_DATALINKLAYER "Compile with Data Link Layer" OFF)
option(FSFW_ADD_COORDINATES "Compile with coordinate components" OFF)
option(FSFW_ADD_TMSTORAGE "Compile with tm storage components" OFF)
# Contrib sources
option(FSFW_ADD_SGP4_PROPAGATOR "Add SGP4 propagator code" OFF)
set(LIB_FSFW_NAME fsfw)
set(FSFW_TEST_TGT fsfw-tests)
set(FSFW_DUMMY_TGT fsfw-dummy)
project(${LIB_FSFW_NAME})
add_library(${LIB_FSFW_NAME})
if(FSFW_BUILD_UNITTESTS)
message(STATUS "Building the FSFW unittests in addition to the static library")
# Check whether the user has already installed Catch2 first
find_package(Catch2 3)
# Not installed, so use FetchContent to download and provide Catch2
if(NOT Catch2_FOUND)
include(FetchContent)
FetchContent_Declare(
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v3.0.0-preview3
)
FetchContent_MakeAvailable(Catch2)
endif()
set(FSFW_CONFIG_PATH tests/src/fsfw_tests/unit/testcfg)
configure_file(tests/src/fsfw_tests/unit/testcfg/FSFWConfig.h.in FSFWConfig.h)
configure_file(tests/src/fsfw_tests/unit/testcfg/TestsConfig.h.in tests/TestsConfig.h)
project(${FSFW_TEST_TGT} CXX C)
add_executable(${FSFW_TEST_TGT})
if(FSFW_TESTS_GEN_COV)
message(STATUS "Generating coverage data for the library")
message(STATUS "Targets linking against ${LIB_FSFW_NAME} "
"will be compiled with coverage data as well"
)
include(FetchContent)
FetchContent_Declare(
cmake-modules
GIT_REPOSITORY https://github.com/bilke/cmake-modules.git
)
FetchContent_MakeAvailable(cmake-modules)
set(CMAKE_BUILD_TYPE "Debug")
list(APPEND CMAKE_MODULE_PATH ${cmake-modules_SOURCE_DIR})
include(CodeCoverage)
endif()
endif()
set(FSFW_CORE_INC_PATH "inc")
set_property(CACHE FSFW_OSAL PROPERTY STRINGS host linux rtems freertos)
# Configure Files
target_include_directories(${LIB_FSFW_NAME} PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
)
target_include_directories(${LIB_FSFW_NAME} INTERFACE
${CMAKE_CURRENT_BINARY_DIR}
)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
elseif(${CMAKE_CXX_STANDARD} LESS 11)
message(FATAL_ERROR "Compiling the FSFW requires a minimum of C++11 support")
endif()
# Backwards comptability
if(OS_FSFW AND NOT FSFW_OSAL)
message(WARNING "Please pass the FSFW OSAL as FSFW_OSAL instead of OS_FSFW")
set(FSFW_OSAL OS_FSFW)
endif()
if(NOT FSFW_OSAL)
message(STATUS "No OS for FSFW via FSFW_OSAL set. Assuming host OS")
# Assume host OS and autodetermine from OS_FSFW
if(UNIX)
set(FSFW_OSAL "linux"
CACHE STRING
"OS abstraction layer used in the FSFW"
)
elseif(WIN32)
set(FSFW_OSAL "host"
CACHE STRING "OS abstraction layer used in the FSFW"
)
endif()
endif()
set(FSFW_OSAL_DEFINITION FSFW_OSAL_HOST)
if(FSFW_OSAL MATCHES host)
set(FSFW_OS_NAME "Host")
set(FSFW_OSAL_HOST ON)
elseif(FSFW_OSAL MATCHES linux)
set(FSFW_OS_NAME "Linux")
set(FSFW_OSAL_LINUX ON)
elseif(FSFW_OSAL MATCHES freertos)
set(FSFW_OS_NAME "FreeRTOS")
set(FSFW_OSAL_FREERTOS ON)
target_link_libraries(${LIB_FSFW_NAME} PRIVATE
${LIB_OS_NAME}
)
elseif(FSFW_OSAL STREQUAL rtems)
set(FSFW_OS_NAME "RTEMS")
set(FSFW_OSAL_RTEMS ON)
else()
message(WARNING
"Invalid operating system for FSFW specified! Setting to host.."
)
set(FSFW_OS_NAME "Host")
set(OS_FSFW "host")
endif()
if(FSFW_BUILD_UNITTESTS OR FSFW_BUILD_DOCS)
configure_file(src/fsfw/FSFW.h.in fsfw/FSFW.h)
configure_file(src/fsfw/FSFWVersion.h.in fsfw/FSFWVersion.h)
else()
configure_file(src/fsfw/FSFW.h.in FSFW.h)
configure_file(src/fsfw/FSFWVersion.h.in FSFWVersion.h)
endif()
message(STATUS "Compiling FSFW for the ${FSFW_OS_NAME} operating system.")
add_subdirectory(src)
add_subdirectory(tests)
if(FSFW_ADD_HAL)
add_subdirectory(hal)
endif()
add_subdirectory(contrib)
if(FSFW_BUILD_DOCS)
add_subdirectory(docs)
endif()
if(FSFW_BUILD_UNITTESTS)
if(FSFW_TESTS_GEN_COV)
if(CMAKE_COMPILER_IS_GNUCXX)
include(CodeCoverage)
# Remove quotes.
separate_arguments(COVERAGE_COMPILER_FLAGS
NATIVE_COMMAND "${COVERAGE_COMPILER_FLAGS}"
)
# Add compile options manually, we don't want coverage for Catch2
target_compile_options(${FSFW_TEST_TGT} PRIVATE
"${COVERAGE_COMPILER_FLAGS}"
)
target_compile_options(${LIB_FSFW_NAME} PRIVATE
"${COVERAGE_COMPILER_FLAGS}"
)
# Exclude directories here
if(WIN32)
set(GCOVR_ADDITIONAL_ARGS
"--exclude-throw-branches"
"--exclude-unreachable-branches"
)
set(COVERAGE_EXCLUDES
"/c/msys64/mingw64/*"
)
elseif(UNIX)
set(COVERAGE_EXCLUDES
"/usr/include/*" "/usr/bin/*" "Catch2/*"
"/usr/local/include/*" "*/fsfw_tests/*"
"*/catch2-src/*"
)
endif()
target_link_options(${FSFW_TEST_TGT} PRIVATE
-fprofile-arcs
-ftest-coverage
)
target_link_options(${LIB_FSFW_NAME} PRIVATE
-fprofile-arcs
-ftest-coverage
)
# Need to specify this as an interface, otherwise there will the compile issues
target_link_options(${LIB_FSFW_NAME} INTERFACE
-fprofile-arcs
-ftest-coverage
)
if(WIN32)
setup_target_for_coverage_gcovr_html(
NAME ${FSFW_TEST_TGT}_coverage
EXECUTABLE ${FSFW_TEST_TGT}
DEPENDENCIES ${FSFW_TEST_TGT}
)
else()
setup_target_for_coverage_lcov(
NAME ${FSFW_TEST_TGT}_coverage
EXECUTABLE ${FSFW_TEST_TGT}
DEPENDENCIES ${FSFW_TEST_TGT}
)
endif()
endif()
endif()
target_link_libraries(${FSFW_TEST_TGT} PRIVATE Catch2::Catch2 ${LIB_FSFW_NAME})
endif()
# The project CMakeLists file has to set the FSFW_CONFIG_PATH and add it.
# If this is not given, we include the default configuration and emit a warning.
if(NOT FSFW_CONFIG_PATH)
set(DEF_CONF_PATH misc/defaultcfg/fsfwconfig)
if(NOT FSFW_BUILD_DOCS)
message(WARNING "Flight Software Framework configuration path not set!")
message(WARNING "Setting default configuration from ${DEF_CONF_PATH} ..")
endif()
add_subdirectory(${DEF_CONF_PATH})
set(FSFW_CONFIG_PATH ${DEF_CONF_PATH})
endif()
# FSFW might be part of a possibly complicated folder structure, so we
# extract the absolute path of the fsfwconfig folder.
if(IS_ABSOLUTE ${FSFW_CONFIG_PATH})
set(FSFW_CONFIG_PATH_ABSOLUTE ${FSFW_CONFIG_PATH})
else()
get_filename_component(FSFW_CONFIG_PATH_ABSOLUTE
${FSFW_CONFIG_PATH} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR}
)
endif()
foreach(INCLUDE_PATH ${FSFW_ADDITIONAL_INC_PATHS})
if(IS_ABSOLUTE ${INCLUDE_PATH})
set(CURR_ABS_INC_PATH "${INCLUDE_PATH}")
else()
get_filename_component(CURR_ABS_INC_PATH
${INCLUDE_PATH} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR})
endif()
if(CMAKE_VERBOSE)
message(STATUS "FSFW include path: ${CURR_ABS_INC_PATH}")
endif()
list(APPEND FSFW_ADD_INC_PATHS_ABS ${CURR_ABS_INC_PATH})
endforeach()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(NOT DEFINED FSFW_WARNING_FLAGS)
set(FSFW_WARNING_FLAGS
-Wall
-Wextra
-Wimplicit-fallthrough=1
-Wno-unused-parameter
-Wno-psabi
)
endif()
if(FSFW_GENERATE_SECTIONS)
target_compile_options(${LIB_FSFW_NAME} PRIVATE
"-ffunction-sections"
"-fdata-sections"
)
endif()
if(FSFW_REMOVE_UNUSED_CODE)
target_link_options(${LIB_FSFW_NAME} PRIVATE
"Wl,--gc-sections"
)
endif()
if(FSFW_WARNING_SHADOW_LOCAL_GCC)
list(APPEND WARNING_FLAGS "-Wshadow=local")
endif()
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set(COMPILER_FLAGS "/permissive-")
endif()
# Required include paths to compile the FSFW
target_include_directories(${LIB_FSFW_NAME} INTERFACE
${CMAKE_SOURCE_DIR}
${FSFW_CONFIG_PATH_ABSOLUTE}
${FSFW_CORE_INC_PATH}
${FSFW_ADD_INC_PATHS_ABS}
)
# Includes path required to compile FSFW itself as well
# We assume that the fsfwconfig folder uses include relative to the project
# root here!
target_include_directories(${LIB_FSFW_NAME} PRIVATE
${CMAKE_SOURCE_DIR}
${FSFW_CONFIG_PATH_ABSOLUTE}
${FSFW_CORE_INC_PATH}
${FSFW_ADD_INC_PATHS_ABS}
)
target_compile_options(${LIB_FSFW_NAME} PRIVATE
${FSFW_WARNING_FLAGS}
${COMPILER_FLAGS}
)
target_link_libraries(${LIB_FSFW_NAME} PRIVATE
${FSFW_ADDITIONAL_LINK_LIBS}
)
string(CONCAT POST_BUILD_COMMENT
"######################################################################\n"
"Built FSFW v${FSFW_VERSION}.${FSFW_SUBVERSION}.${FSFW_REVISION}, "
"Target OSAL: ${FSFW_OS_NAME}\n"
"######################################################################\n"
)
add_custom_command(
TARGET ${LIB_FSFW_NAME}
POST_BUILD
COMMENT ${POST_BUILD_COMMENT}
)

2
NOTICE
View File

@ -4,6 +4,8 @@ The initial version of the Flight Software Framework was developed during
the Flying Laptop Project by the Universität Stuttgart in coorporation the Flying Laptop Project by the Universität Stuttgart in coorporation
with Airbus Defence and Space GmbH. with Airbus Defence and Space GmbH.
The supreme FSFW Logo was designed by Markus Koller and Luise Trilsbach.
Copyrights in the Flight Software Framework are retained by their contributors. Copyrights in the Flight Software Framework are retained by their contributors.
No copyright assignment is required to contribute to the Flight Software Framework. No copyright assignment is required to contribute to the Flight Software Framework.

128
README.md Normal file
View File

@ -0,0 +1,128 @@
![FSFW Logo](misc/logo/FSFW_Logo_V3_bw.png)
# Flight Software Framework (FSFW)
The Flight Software Framework is a C++ Object Oriented Framework for unmanned,
automated systems like Satellites.
The initial version of the Flight Software Framework was developed during
the Flying Laptop Project by the University of Stuttgart in cooperation
with Airbus Defence and Space GmbH.
## Quick facts
The framework is designed for systems, which communicate with external devices, perform control loops, receive telecommands and send telemetry, and need to maintain a high level of availability. Therefore, a mode and health system provides control over the states of the software and the controlled devices. In addition, a simple mechanism of event based fault detection, isolation and recovery is implemented as well.
The FSFW provides abstraction layers for operating systems to provide a uniform operating system abstraction layer (OSAL). Some components of this OSAL are required internally by the FSFW but is also very useful for developers to implement the same application logic on different operating systems with a uniform interface.
Currently, the FSFW provides the following OSALs:
- Linux
- Host
- FreeRTOS
- RTEMS
The recommended hardware is a microprocessor with more than 1 MB of RAM and 1 MB of non-volatile
memory. For reference, current applications use a Cobham Gaisler UT699 (LEON3FT), a
ISISPACE IOBC or a Zynq-7020 SoC. The `fsfw` was also successfully run on the
STM32H743ZI-Nucleo board and on a Raspberry Pi and is currently running on the active
satellite mission Flying Laptop.
## Getting started
The [Hosted FSFW example](https://egit.irs.uni-stuttgart.de/fsfw/fsfw-example-hosted) provides a
good starting point and a demo to see the FSFW capabilities.
It is recommended to get started by building and playing around with the demo application.
There are also other examples provided for all OSALs using the popular embedded platforms
Raspberry Pi, Beagle Bone Black and STM32H7.
Generally, the FSFW is included in a project by providing
a configuration folder, building the static library and linking against it.
There are some functions like `printChar` which are different depending on the target architecture
and need to be implemented by the mission developer.
A template configuration folder was provided and can be copied into the project root to have
a starting point. The [configuration section](docs/README-config.md#top) provides more specific
information about the possible options.
## Adding the library
The following steps show how to add and use FSFW components. It is still recommended to
try out the example mentioned above to get started, but the following steps show how to
add and link against the FSFW library in general.
1. Add this repository as a submodule
```sh
git submodule add https://egit.irs.uni-stuttgart.de/fsfw/fsfw.git fsfw
```
2. Add the following directive inside the uppermost `CMakeLists.txt` file of your project
```cmake
add_subdirectory(fsfw)
```
3. Make sure to provide a configuration folder and supply the path to that folder with
the `FSFW_CONFIG_PATH` CMake variable from the uppermost `CMakeLists.txt` file.
It is also necessary to provide the `printChar` function. You can find an example
implementation for a hosted build
[here](https://egit.irs.uni-stuttgart.de/fsfw/fsfw-example-hosted/src/branch/master/bsp_hosted/utility/printChar.c).
4. Link against the FSFW library
```cmake
target_link_libraries(<YourProjectName> PRIVATE fsfw)
```
5. It should now be possible use the FSFW as a static library from the user code.
## Building the unittests
The FSFW also has unittests which use the [Catch2 library](https://github.com/catchorg/Catch2).
These are built by setting the CMake option `FSFW_BUILD_UNITTESTS` to `ON` or `TRUE`
from your project `CMakeLists.txt` file or from the command line.
The fsfw-tests binary will be built as part of the static library and dropped alongside it.
If the unittests are built, the library and the tests will be built with coverage information by
default. This can be disabled by setting the `FSFW_TESTS_COV_GEN` option to `OFF` or `FALSE`.
You can use the following commands inside the `fsfw` folder to set up the build system
```sh
mkdir build-Unittest && cd build-Unittest
cmake -DFSFW_BUILD_UNITTESTS=ON -DFSFW_OSAL=host ..
```
You can also use `-DFSFW_OSAL=linux` on Linux systems.
Coverage data in HTML format can be generated using the `CodeCoverage`
[CMake module](https://github.com/bilke/cmake-modules/tree/master).
To build the unittests, run them and then generare the coverage data in this format,
the following command can be used inside the build directory after the build system was set up
```sh
cmake --build . -- fsfw-tests_coverage -j
```
The `coverage.py` script located in the `script` folder can also be used to do this conveniently.
## Formatting the sources
The formatting is done by the `clang-format` tool. The configuration is contained within the
`.clang-format` file in the repository root. As long as `clang-format` is installed, you
can run the `apply-clang-format.sh` helper script to format all source files consistently.
## Index
[1. High-level overview](docs/README-highlevel.md#top) <br>
[2. Core components](docs/README-core.md#top) <br>
[3. Configuration](docs/README-config.md#top) <br>
[4. OSAL overview](docs/README-osal.md#top) <br>
[5. PUS services](docs/README-pus.md#top) <br>
[6. Device Handler overview](docs/README-devicehandlers.md#top) <br>
[7. Controller overview](docs/README-controllers.md#top) <br>
[8. Local Data Pools](docs/README-localpools.md#top) <br>

View File

@ -1,110 +0,0 @@
#include <framework/action/ActionHelper.h>
#include <framework/action/HasActionsIF.h>
#include <framework/objectmanager/ObjectManagerIF.h>
ActionHelper::ActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue) :
owner(setOwner), queueToUse(useThisQueue), ipcStore(nullptr) {
}
ActionHelper::~ActionHelper() {
}
ReturnValue_t ActionHelper::handleActionMessage(CommandMessage* command) {
if (command->getCommand() == ActionMessage::EXECUTE_ACTION) {
ActionId_t currentAction = ActionMessage::getActionId(command);
prepareExecution(command->getSender(), currentAction,
ActionMessage::getStoreId(command));
return HasReturnvaluesIF::RETURN_OK;
} else {
return CommandMessage::UNKNOWN_COMMAND;
}
}
ReturnValue_t ActionHelper::initialize(MessageQueueIF* queueToUse_) {
ipcStore = objectManager->get<StorageManagerIF>(objects::IPC_STORE);
if (ipcStore == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
}
if(queueToUse_ != nullptr) {
setQueueToUse(queueToUse_);
}
return HasReturnvaluesIF::RETURN_OK;
}
void ActionHelper::step(uint8_t step, MessageQueueId_t reportTo, ActionId_t commandId, ReturnValue_t result) {
CommandMessage reply;
ActionMessage::setStepReply(&reply, commandId, step + STEP_OFFSET, result);
queueToUse->sendMessage(reportTo, &reply);
}
void ActionHelper::finish(MessageQueueId_t reportTo, ActionId_t commandId, ReturnValue_t result) {
CommandMessage reply;
ActionMessage::setCompletionReply(&reply, commandId, result);
queueToUse->sendMessage(reportTo, &reply);
}
void ActionHelper::setQueueToUse(MessageQueueIF* queue) {
queueToUse = queue;
}
void ActionHelper::prepareExecution(MessageQueueId_t commandedBy, ActionId_t actionId,
store_address_t dataAddress) {
const uint8_t* dataPtr = NULL;
size_t size = 0;
ReturnValue_t result = ipcStore->getData(dataAddress, &dataPtr, &size);
if (result != HasReturnvaluesIF::RETURN_OK) {
CommandMessage reply;
ActionMessage::setStepReply(&reply, actionId, 0, result);
queueToUse->sendMessage(commandedBy, &reply);
return;
}
result = owner->executeAction(actionId, commandedBy, dataPtr, size);
ipcStore->deleteData(dataAddress);
if (result != HasReturnvaluesIF::RETURN_OK) {
CommandMessage reply;
ActionMessage::setStepReply(&reply, actionId, 0, result);
queueToUse->sendMessage(commandedBy, &reply);
return;
}
}
ReturnValue_t ActionHelper::reportData(MessageQueueId_t reportTo,
ActionId_t replyId, SerializeIF* data, bool hideSender) {
CommandMessage reply;
store_address_t storeAddress;
uint8_t *dataPtr;
size_t maxSize = data->getSerializedSize();
if (maxSize == 0) {
//No error, there's simply nothing to report.
return HasReturnvaluesIF::RETURN_OK;
}
size_t size = 0;
ReturnValue_t result = ipcStore->getFreeElement(&storeAddress, maxSize,
&dataPtr);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = data->serialize(&dataPtr, &size, maxSize, SerializeIF::Endianness::BIG);
if (result != HasReturnvaluesIF::RETURN_OK) {
ipcStore->deleteData(storeAddress);
return result;
}
//We don't need to report the objectId, as we receive REQUESTED data before the completion success message.
//True aperiodic replies need to be reported with another dedicated message.
ActionMessage::setDataReply(&reply, replyId, storeAddress);
//TODO Service Implementation sucks at the moment
if (hideSender){
result = MessageQueueSenderIF::sendMessage(reportTo, &reply);
} else {
result = queueToUse->sendMessage(reportTo, &reply);
}
if ( result != HasReturnvaluesIF::RETURN_OK){
ipcStore->deleteData(storeAddress);
}
return result;
}
void ActionHelper::resetHelper() {
}

View File

@ -1,93 +0,0 @@
#ifndef ACTIONHELPER_H_
#define ACTIONHELPER_H_
#include <framework/action/ActionMessage.h>
#include <framework/serialize/SerializeIF.h>
#include <framework/ipc/MessageQueueIF.h>
/**
* \brief Action Helper is a helper class which handles action messages
*
* Components which use the HasActionIF this helper can be used to handle the action messages.
* It does handle step messages as well as other answers to action calls. It uses the executeAction function
* of its owner as callback. The call of the initialize function is mandatory and it needs a valid messageQueueIF pointer!
*/
class HasActionsIF;
class ActionHelper {
public:
/**
* Constructor of the action helper
* @param setOwner Pointer to the owner of the interface
* @param useThisQueue messageQueue to be used, can be set during initialize function as well.
*/
ActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue);
virtual ~ActionHelper();
/**
* Function to be called from the owner with a new command message
*
* If the message is a valid action message the helper will use the executeAction function from HasActionsIF.
* If the message is invalid or the callback fails a message reply will be send to the sender of the message automatically.
*
* @param command Pointer to a command message received by the owner
* @return HasReturnvaluesIF::RETURN_OK if the message is a action message, CommandMessage::UNKNOW_COMMAND if this message ID is unkown
*/
ReturnValue_t handleActionMessage(CommandMessage* command);
/**
* Helper initialize function. Must be called before use of any other helper function
* @param queueToUse_ Pointer to the messageQueue to be used
* @return Returns RETURN_OK if successful
*/
ReturnValue_t initialize(MessageQueueIF* queueToUse_ = nullptr);
/**
* Function to be called from the owner to send a step message. Success or failure will be determined by the result value.
*
* @param step Number of steps already done
* @param reportTo The messageQueueId to report the step message to
* @param commandId ID of the executed command
* @param result Result of the execution
*/
void step(uint8_t step, MessageQueueId_t reportTo, ActionId_t commandId, ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
/**
* Function to be called by the owner to send a action completion message
*
* @param reportTo MessageQueueId_t to report the action completion message to
* @param commandId ID of the executed command
* @param result Result of the execution
*/
void finish(MessageQueueId_t reportTo, ActionId_t commandId, ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
/**
* Function to be called by the owner if an action does report data
*
* @param reportTo MessageQueueId_t to report the action completion message to
* @param replyId ID of the executed command
* @param data Pointer to the data
* @return Returns RETURN_OK if successful, otherwise failure code
*/
ReturnValue_t reportData(MessageQueueId_t reportTo, ActionId_t replyId, SerializeIF* data, bool hideSender = false);
/**
* Function to setup the MessageQueueIF* of the helper. Can be used to set the messageQueueIF* if
* message queue is unavailable at construction and initialize but must be setup before first call of other functions.
* @param queue Queue to be used by the helper
*/
void setQueueToUse(MessageQueueIF *queue);
protected:
static const uint8_t STEP_OFFSET = 1;//!< Increase of value of this per step
HasActionsIF* owner;//!< Pointer to the owner
MessageQueueIF* queueToUse;//!< Queue to be used as response sender, has to be set with
StorageManagerIF* ipcStore;//!< Pointer to an IPC Store, initialized during construction or initialize(MessageQueueIF* queueToUse_) or with setQueueToUse(MessageQueueIF *queue)
/**
*Internal function called by handleActionMessage(CommandMessage* command)
*
* @param commandedBy MessageQueueID of Commander
* @param actionId ID of action to be done
* @param dataAddress Address of additional data in IPC Store
*/
virtual void prepareExecution(MessageQueueId_t commandedBy, ActionId_t actionId, store_address_t dataAddress);
/**
*
*/
virtual void resetHelper();
};
#endif /* ACTIONHELPER_H_ */

View File

@ -1,79 +0,0 @@
#include <framework/action/ActionMessage.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/storagemanager/StorageManagerIF.h>
ActionMessage::ActionMessage() {
}
ActionMessage::~ActionMessage() {
}
void ActionMessage::setCommand(CommandMessage* message, ActionId_t fid,
store_address_t parameters) {
message->setCommand(EXECUTE_ACTION);
message->setParameter(fid);
message->setParameter2(parameters.raw);
}
ActionId_t ActionMessage::getActionId(const CommandMessage* message) {
return ActionId_t(message->getParameter());
}
store_address_t ActionMessage::getStoreId(const CommandMessage* message) {
store_address_t temp;
temp.raw = message->getParameter2();
return temp;
}
void ActionMessage::setStepReply(CommandMessage* message, ActionId_t fid, uint8_t step,
ReturnValue_t result) {
if (result == HasReturnvaluesIF::RETURN_OK) {
message->setCommand(STEP_SUCCESS);
} else {
message->setCommand(STEP_FAILED);
}
message->setParameter(fid);
message->setParameter2((step << 16) + result);
}
uint8_t ActionMessage::getStep(const CommandMessage* message) {
return uint8_t((message->getParameter2() >> 16) & 0xFF);
}
ReturnValue_t ActionMessage::getReturnCode(const CommandMessage* message) {
return message->getParameter2() & 0xFFFF;
}
void ActionMessage::setDataReply(CommandMessage* message, ActionId_t actionId,
store_address_t data) {
message->setCommand(DATA_REPLY);
message->setParameter(actionId);
message->setParameter2(data.raw);
}
void ActionMessage::setCompletionReply(CommandMessage* message,
ActionId_t fid, ReturnValue_t result) {
if (result == HasReturnvaluesIF::RETURN_OK) {
message->setCommand(COMPLETION_SUCCESS);
} else {
message->setCommand(COMPLETION_FAILED);
}
message->setParameter(fid);
message->setParameter2(result);
}
void ActionMessage::clear(CommandMessage* message) {
switch(message->getCommand()) {
case EXECUTE_ACTION:
case DATA_REPLY: {
StorageManagerIF *ipcStore = objectManager->get<StorageManagerIF>(
objects::IPC_STORE);
if (ipcStore != NULL) {
ipcStore->deleteData(getStoreId(message));
}
break;
}
default:
break;
}
}

View File

@ -1,32 +0,0 @@
#ifndef ACTIONMESSAGE_H_
#define ACTIONMESSAGE_H_
#include <framework/ipc/CommandMessage.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/storagemanager/StorageManagerIF.h>
typedef uint32_t ActionId_t;
class ActionMessage {
private:
ActionMessage();
public:
static const uint8_t MESSAGE_ID = messagetypes::ACTION;
static const Command_t EXECUTE_ACTION = MAKE_COMMAND_ID(1);
static const Command_t STEP_SUCCESS = MAKE_COMMAND_ID(2);
static const Command_t STEP_FAILED = MAKE_COMMAND_ID(3);
static const Command_t DATA_REPLY = MAKE_COMMAND_ID(4);
static const Command_t COMPLETION_SUCCESS = MAKE_COMMAND_ID(5);
static const Command_t COMPLETION_FAILED = MAKE_COMMAND_ID(6);
virtual ~ActionMessage();
static void setCommand(CommandMessage* message, ActionId_t fid, store_address_t parameters);
static ActionId_t getActionId(const CommandMessage* message );
static store_address_t getStoreId(const CommandMessage* message );
static void setStepReply(CommandMessage* message, ActionId_t fid, uint8_t step, ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
static uint8_t getStep(const CommandMessage* message );
static ReturnValue_t getReturnCode(const CommandMessage* message );
static void setDataReply(CommandMessage* message, ActionId_t actionId, store_address_t data);
static void setCompletionReply(CommandMessage* message, ActionId_t fid, ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
static void clear(CommandMessage* message);
};
#endif /* ACTIONMESSAGE_H_ */

View File

@ -1,127 +0,0 @@
#include <framework/action/ActionMessage.h>
#include <framework/action/CommandActionHelper.h>
#include <framework/action/CommandsActionsIF.h>
#include <framework/action/HasActionsIF.h>
#include <framework/objectmanager/ObjectManagerIF.h>
CommandActionHelper::CommandActionHelper(CommandsActionsIF *setOwner) :
owner(setOwner), queueToUse(NULL), ipcStore(
NULL), commandCount(0), lastTarget(0) {
}
CommandActionHelper::~CommandActionHelper() {
}
ReturnValue_t CommandActionHelper::commandAction(object_id_t commandTo,
ActionId_t actionId, SerializeIF *data) {
HasActionsIF *receiver = objectManager->get<HasActionsIF>(commandTo);
if (receiver == NULL) {
return CommandsActionsIF::OBJECT_HAS_NO_FUNCTIONS;
}
store_address_t storeId;
uint8_t *storePointer;
size_t maxSize = data->getSerializedSize();
ReturnValue_t result = ipcStore->getFreeElement(&storeId, maxSize,
&storePointer);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
size_t size = 0;
result = data->serialize(&storePointer, &size, maxSize,
SerializeIF::Endianness::BIG);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
return sendCommand(receiver->getCommandQueue(), actionId, storeId);
}
ReturnValue_t CommandActionHelper::commandAction(object_id_t commandTo,
ActionId_t actionId, const uint8_t *data, uint32_t size) {
// if (commandCount != 0) {
// return CommandsFunctionsIF::ALREADY_COMMANDING;
// }
HasActionsIF *receiver = objectManager->get<HasActionsIF>(commandTo);
if (receiver == NULL) {
return CommandsActionsIF::OBJECT_HAS_NO_FUNCTIONS;
}
store_address_t storeId;
ReturnValue_t result = ipcStore->addData(&storeId, data, size);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
return sendCommand(receiver->getCommandQueue(), actionId, storeId);
}
ReturnValue_t CommandActionHelper::sendCommand(MessageQueueId_t queueId,
ActionId_t actionId, store_address_t storeId) {
CommandMessage command;
ActionMessage::setCommand(&command, actionId, storeId);
ReturnValue_t result = queueToUse->sendMessage(queueId, &command);
if (result != HasReturnvaluesIF::RETURN_OK) {
ipcStore->deleteData(storeId);
}
lastTarget = queueId;
commandCount++;
return result;
}
ReturnValue_t CommandActionHelper::initialize() {
ipcStore = objectManager->get<StorageManagerIF>(objects::IPC_STORE);
if (ipcStore == NULL) {
return HasReturnvaluesIF::RETURN_FAILED;
}
queueToUse = owner->getCommandQueuePtr();
if (queueToUse == NULL) {
return HasReturnvaluesIF::RETURN_FAILED;
}
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t CommandActionHelper::handleReply(CommandMessage *reply) {
if (reply->getSender() != lastTarget) {
return HasReturnvaluesIF::RETURN_FAILED;
}
switch (reply->getCommand()) {
case ActionMessage::COMPLETION_SUCCESS:
commandCount--;
owner->completionSuccessfulReceived(ActionMessage::getActionId(reply));
return HasReturnvaluesIF::RETURN_OK;
case ActionMessage::COMPLETION_FAILED:
commandCount--;
owner->completionFailedReceived(ActionMessage::getActionId(reply),
ActionMessage::getReturnCode(reply));
return HasReturnvaluesIF::RETURN_OK;
case ActionMessage::STEP_SUCCESS:
owner->stepSuccessfulReceived(ActionMessage::getActionId(reply),
ActionMessage::getStep(reply));
return HasReturnvaluesIF::RETURN_OK;
case ActionMessage::STEP_FAILED:
commandCount--;
owner->stepFailedReceived(ActionMessage::getActionId(reply),
ActionMessage::getStep(reply),
ActionMessage::getReturnCode(reply));
return HasReturnvaluesIF::RETURN_OK;
case ActionMessage::DATA_REPLY:
extractDataForOwner(ActionMessage::getActionId(reply),
ActionMessage::getStoreId(reply));
return HasReturnvaluesIF::RETURN_OK;
default:
return HasReturnvaluesIF::RETURN_FAILED;
}
}
uint8_t CommandActionHelper::getCommandCount() const {
return commandCount;
}
void CommandActionHelper::extractDataForOwner(ActionId_t actionId, store_address_t storeId) {
const uint8_t * data = NULL;
size_t size = 0;
ReturnValue_t result = ipcStore->getData(storeId, &data, &size);
if (result != HasReturnvaluesIF::RETURN_OK) {
return;
}
owner->dataReceived(actionId, data, size);
ipcStore->deleteData(storeId);
}

View File

@ -1,36 +0,0 @@
#ifndef COMMANDACTIONHELPER_H_
#define COMMANDACTIONHELPER_H_
#include <framework/action/ActionMessage.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/serialize/SerializeIF.h>
#include <framework/storagemanager/StorageManagerIF.h>
#include <framework/ipc/MessageQueueIF.h>
class CommandsActionsIF;
class CommandActionHelper {
friend class CommandsActionsIF;
public:
CommandActionHelper(CommandsActionsIF* owner);
virtual ~CommandActionHelper();
ReturnValue_t commandAction(object_id_t commandTo,
ActionId_t actionId, const uint8_t* data, uint32_t size);
ReturnValue_t commandAction(object_id_t commandTo,
ActionId_t actionId, SerializeIF* data);
ReturnValue_t initialize();
ReturnValue_t handleReply(CommandMessage* reply);
uint8_t getCommandCount() const;
private:
CommandsActionsIF* owner;
MessageQueueIF* queueToUse;
StorageManagerIF* ipcStore;
uint8_t commandCount;
MessageQueueId_t lastTarget;
void extractDataForOwner(ActionId_t actionId, store_address_t storeId);
ReturnValue_t sendCommand(MessageQueueId_t queueId, ActionId_t actionId,
store_address_t storeId);
};
#endif /* COMMANDACTIONHELPER_H_ */

View File

@ -1,34 +0,0 @@
#ifndef COMMANDSACTIONSIF_H_
#define COMMANDSACTIONSIF_H_
#include <framework/action/CommandActionHelper.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/ipc/MessageQueueIF.h>
/**
* Interface to separate commanding actions of other objects.
* In next iteration, IF should be shortened to three calls:
* - dataReceived(data)
* - successReceived(id, step)
* - failureReceived(id, step, cause)
* or even
* - replyReceived(id, step, cause) (if cause == OK, it's a success).
*/
class CommandsActionsIF {
friend class CommandActionHelper;
public:
static const uint8_t INTERFACE_ID = CLASS_ID::COMMANDS_ACTIONS_IF;
static const ReturnValue_t OBJECT_HAS_NO_FUNCTIONS = MAKE_RETURN_CODE(1);
static const ReturnValue_t ALREADY_COMMANDING = MAKE_RETURN_CODE(2);
virtual ~CommandsActionsIF() {}
virtual MessageQueueIF* getCommandQueuePtr() = 0;
protected:
virtual void stepSuccessfulReceived(ActionId_t actionId, uint8_t step) = 0;
virtual void stepFailedReceived(ActionId_t actionId, uint8_t step, ReturnValue_t returnCode) = 0;
virtual void dataReceived(ActionId_t actionId, const uint8_t* data, uint32_t size) = 0;
virtual void completionSuccessfulReceived(ActionId_t actionId) = 0;
virtual void completionFailedReceived(ActionId_t actionId, ReturnValue_t returnCode) = 0;
};
#endif /* COMMANDSACTIONSIF_H_ */

View File

@ -1,60 +0,0 @@
#ifndef FRAMEWORK_ACTION_HASACTIONSIF_H_
#define FRAMEWORK_ACTION_HASACTIONSIF_H_
#include <framework/action/ActionHelper.h>
#include <framework/action/ActionMessage.h>
#include <framework/action/SimpleActionHelper.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/ipc/MessageQueueIF.h>
/**
* @brief
* Interface for component which uses actions
*
* @details
* This interface is used to execute actions in the component. Actions, in the
* sense of this interface, are activities with a well-defined beginning and
* end in time. They may adjust sub-states of components, but are not supposed
* to change the main mode of operation, which is handled with the HasModesIF
* described below.
*
* The HasActionsIF allows components to define such actions and make them
* available for other components to use. Implementing the interface is
* straightforward: Theres a single executeAction call, which provides an
* identifier for the action to execute, as well as arbitrary parameters for
* input.
* Aside from direct, software-based actions, it is used in device handler
* components as an interface to forward commands to devices.
* Implementing components of the interface are supposed to check identifier
* (ID) and parameters and immediately start execution of the action.
* It is, however, not required to immediately finish execution.
* Instead, this may be deferred to a later point in time, at which the
* component needs to inform the caller about finished or failed execution.
*
* @ingroup interfaces
*/
class HasActionsIF {
public:
static const uint8_t INTERFACE_ID = CLASS_ID::HAS_ACTIONS_IF;
static const ReturnValue_t IS_BUSY = MAKE_RETURN_CODE(1);
static const ReturnValue_t INVALID_PARAMETERS = MAKE_RETURN_CODE(2);
static const ReturnValue_t EXECUTION_FINISHED = MAKE_RETURN_CODE(3);
static const ReturnValue_t INVALID_ACTION_ID = MAKE_RETURN_CODE(4);
virtual ~HasActionsIF() { }
/**
* Function to get the MessageQueueId_t of the implementing object
* @return MessageQueueId_t of the object
*/
virtual MessageQueueId_t getCommandQueue() const = 0;
/**
* Execute or initialize the execution of a certain function.
* Returning #EXECUTION_FINISHED or a failure code, nothing else needs to
* be done. When needing more steps, return RETURN_OK and issue steps and
* completion manually.
* One "step failed" or completion report must be issued!
*/
virtual ReturnValue_t executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t* data, size_t size) = 0;
};
#endif /* FRAMEWORK_ACTION_HASACTIONSIF_H_ */

View File

@ -1,74 +0,0 @@
#include <framework/action/HasActionsIF.h>
#include <framework/action/SimpleActionHelper.h>
SimpleActionHelper::SimpleActionHelper(HasActionsIF* setOwner,
MessageQueueIF* useThisQueue) :
ActionHelper(setOwner, useThisQueue), isExecuting(false), lastCommander(
0), lastAction(0), stepCount(0) {
}
SimpleActionHelper::~SimpleActionHelper() {
}
void SimpleActionHelper::step(ReturnValue_t result) {
//STEP_OFFESET is subtracted to compensate for adding offset in base method, which is not necessary here.
ActionHelper::step(stepCount - STEP_OFFSET, lastCommander, lastAction,
result);
if (result != HasReturnvaluesIF::RETURN_OK) {
resetHelper();
}
}
void SimpleActionHelper::finish(ReturnValue_t result) {
ActionHelper::finish(lastCommander, lastAction, result);
resetHelper();
}
ReturnValue_t SimpleActionHelper::reportData(SerializeIF* data) {
return ActionHelper::reportData(lastCommander, lastAction, data);
}
void SimpleActionHelper::resetHelper() {
stepCount = 0;
isExecuting = false;
lastAction = 0;
lastCommander = 0;
}
void SimpleActionHelper::prepareExecution(MessageQueueId_t commandedBy,
ActionId_t actionId, store_address_t dataAddress) {
CommandMessage reply;
if (isExecuting) {
ipcStore->deleteData(dataAddress);
ActionMessage::setStepReply(&reply, actionId, 0,
HasActionsIF::IS_BUSY);
queueToUse->sendMessage(commandedBy, &reply);
}
const uint8_t* dataPtr = NULL;
size_t size = 0;
ReturnValue_t result = ipcStore->getData(dataAddress, &dataPtr, &size);
if (result != HasReturnvaluesIF::RETURN_OK) {
ActionMessage::setStepReply(&reply, actionId, 0, result);
queueToUse->sendMessage(commandedBy, &reply);
return;
}
lastCommander = commandedBy;
lastAction = actionId;
result = owner->executeAction(actionId, commandedBy, dataPtr, size);
ipcStore->deleteData(dataAddress);
switch (result) {
case HasReturnvaluesIF::RETURN_OK:
isExecuting = true;
stepCount++;
break;
case HasActionsIF::EXECUTION_FINISHED:
ActionMessage::setCompletionReply(&reply, actionId,
HasReturnvaluesIF::RETURN_OK);
queueToUse->sendMessage(commandedBy, &reply);
break;
default:
ActionMessage::setStepReply(&reply, actionId, 0, result);
queueToUse->sendMessage(commandedBy, &reply);
break;
}
}

View File

@ -1,24 +0,0 @@
#ifndef SIMPLEACTIONHELPER_H_
#define SIMPLEACTIONHELPER_H_
#include <framework/action/ActionHelper.h>
class SimpleActionHelper: public ActionHelper {
public:
SimpleActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue);
virtual ~SimpleActionHelper();
void step(ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
void finish(ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
ReturnValue_t reportData(SerializeIF* data);
protected:
void prepareExecution(MessageQueueId_t commandedBy, ActionId_t actionId, store_address_t dataAddress);
virtual void resetHelper();
private:
bool isExecuting;
MessageQueueId_t lastCommander;
ActionId_t lastAction;
uint8_t stepCount;
};
#endif /* SIMPLEACTIONHELPER_H_ */

8
automation/Dockerfile Normal file
View File

@ -0,0 +1,8 @@
FROM ubuntu:focal
RUN apt-get update
RUN apt-get --yes upgrade
#tzdata is a dependency, won't install otherwise
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get --yes install gcc g++ cmake make lcov git valgrind nano

72
automation/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,72 @@
pipeline {
agent any
environment {
BUILDDIR = 'build-unittests'
}
stages {
stage('Create Docker') {
agent {
dockerfile {
dir 'automation'
additionalBuildArgs '--no-cache'
reuseNode true
}
}
steps {
sh 'rm -rf $BUILDDIR'
}
}
stage('Configure') {
agent {
dockerfile {
dir 'automation'
reuseNode true
}
}
steps {
dir(BUILDDIR) {
sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_UNITTESTS=ON ..'
}
}
}
stage('Build') {
agent {
dockerfile {
dir 'automation'
reuseNode true
}
}
steps {
dir(BUILDDIR) {
sh 'cmake --build . -j'
}
}
}
stage('Unittests') {
agent {
dockerfile {
dir 'automation'
reuseNode true
}
}
steps {
dir(BUILDDIR) {
sh 'cmake --build . -- fsfw-tests_coverage -j'
}
}
}
stage('Valgrind') {
agent {
dockerfile {
dir 'automation'
reuseNode true
}
}
steps {
dir(BUILDDIR) {
sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
}
}
}
}
}

13
cmake/FindSphinx.cmake Normal file
View File

@ -0,0 +1,13 @@
# Look for an executable called sphinx-build
find_program(SPHINX_EXECUTABLE
NAMES sphinx-build
DOC "Path to sphinx-build executable")
include(FindPackageHandleStandardArgs)
# Handle standard arguments to find_package like REQUIRED and QUIET
find_package_handle_standard_args(
Sphinx
"Failed to find sphinx-build executable"
SPHINX_EXECUTABLE
)

View File

@ -1,247 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_ARRAYLIST_H_
#define FRAMEWORK_CONTAINER_ARRAYLIST_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serialize/SerializeIF.h>
/**
* @brief A List that stores its values in an array.
* @details
* The underlying storage is an array that can be allocated by the class
* itself or supplied via ctor.
*
* @ingroup container
*/
template<typename T, typename count_t = uint8_t>
class ArrayList {
template<typename U, typename count> friend class SerialArrayListAdapter;
public:
static const uint8_t INTERFACE_ID = CLASS_ID::ARRAY_LIST;
static const ReturnValue_t FULL = MAKE_RETURN_CODE(0x01);
/**
* Copying is forbiden by declaring copy ctor and copy assignment deleted
* It is too ambigous in this case.
* (Allocate a new backend? Use the same? What to do in an modifying call?)
*/
ArrayList(const ArrayList& other) = delete;
const ArrayList& operator=(const ArrayList& other) = delete;
/**
* Number of Elements stored in this List
*/
count_t size;
/**
* This is the allocating constructor;
*
* It allocates an array of the specified size.
*
* @param maxSize
*/
ArrayList(count_t maxSize) :
size(0), maxSize_(maxSize), allocated(true) {
entries = new T[maxSize];
}
/**
* This is the non-allocating constructor
*
* It expects a pointer to an array of a certain size and initializes itself to it.
*
* @param storage the array to use as backend
* @param maxSize size of storage
* @param size size of data already present in storage
*/
ArrayList(T *storage, count_t maxSize, count_t size = 0) :
size(size), entries(storage), maxSize_(maxSize), allocated(false) {
}
/**
* Destructor, if the allocating constructor was used, it deletes the array.
*/
virtual ~ArrayList() {
if (allocated) {
delete[] entries;
}
}
/**
* An Iterator to go trough an ArrayList
*
* It stores a pointer to an element and increments the
* pointer when incremented itself.
*/
class Iterator {
public:
/**
* Empty ctor, points to NULL
*/
Iterator(): value(0) {}
/**
* Initializes the Iterator to point to an element
*
* @param initialize
*/
Iterator(T *initialize) {
value = initialize;
}
/**
* The current element the iterator points to
*/
T *value;
Iterator& operator++() {
value++;
return *this;
}
Iterator operator++(int) {
Iterator tmp(*this);
operator++();
return tmp;
}
Iterator& operator--() {
value--;
return *this;
}
Iterator operator--(int) {
Iterator tmp(*this);
operator--();
return tmp;
}
T operator*() {
return *value;
}
T *operator->() {
return value;
}
const T *operator->() const{
return value;
}
//SHOULDDO this should be implemented as non-member
bool operator==(const typename ArrayList<T, count_t>::Iterator& other) const{
return (value == other.value);
}
//SHOULDDO this should be implemented as non-member
bool operator!=(const typename ArrayList<T, count_t>::Iterator& other) const {
return !(*this == other);
}
};
/**
* Iterator pointing to the first stored elmement
*
* @return Iterator to the first element
*/
Iterator begin() const {
return Iterator(&entries[0]);
}
/**
* returns an Iterator pointing to the element after the last stored entry
*
* @return Iterator to the element after the last entry
*/
Iterator end() const {
return Iterator(&entries[size]);
}
T & operator[](count_t i) const {
return entries[i];
}
/**
* The first element
*
* @return pointer to the first stored element
*/
T *front() {
return entries;
}
/**
* The last element
*
* does not return a valid pointer if called on an empty list.
*
* @return pointer to the last stored element
*/
T *back() {
return &entries[size - 1];
//Alternative solution
//return const_cast<T*>(static_cast<const T*>(*this).back());
}
const T* back() const{
return &entries[size-1];
}
/**
* The maximum number of elements this List can contain
*
* @return maximum number of elements
*/
uint32_t maxSize() const {
return this->maxSize_;
}
/**
* Insert a new element into the list.
*
* The new element is inserted after the last stored element.
*
* @param entry
* @return
* -@c FULL if the List is full
* -@c RETURN_OK else
*/
ReturnValue_t insert(T entry) {
if (size >= maxSize_) {
return FULL;
}
entries[size] = entry;
++size;
return HasReturnvaluesIF::RETURN_OK;
}
/**
* clear the List
*
* This does not actually clear all entries, it only sets the size to 0.
*/
void clear() {
size = 0;
}
count_t remaining() {
return (maxSize_ - size);
}
protected:
/**
* pointer to the array in which the entries are stored
*/
T *entries;
/**
* remembering the maximum size
*/
uint32_t maxSize_;
/**
* true if the array was allocated and needs to be deleted in the destructor.
*/
bool allocated;
};
#endif /* ARRAYLIST_H_ */

View File

@ -1,153 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_BINARYTREE_H_
#define FRAMEWORK_CONTAINER_BINARYTREE_H_
#include <stddef.h>
#include <stdint.h>
#include <map>
template<typename Tp>
class BinaryNode {
public:
BinaryNode(Tp* setValue) :
value(setValue), left(NULL), right(NULL), parent(NULL) {
}
Tp *value;
BinaryNode* left;
BinaryNode* right;
BinaryNode* parent;
};
template<typename Tp>
class ExplicitNodeIterator {
public:
typedef ExplicitNodeIterator<Tp> _Self;
typedef BinaryNode<Tp> _Node;
typedef Tp value_type;
typedef Tp* pointer;
typedef Tp& reference;
ExplicitNodeIterator() :
element(NULL) {
}
ExplicitNodeIterator(_Node* node) :
element(node) {
}
BinaryNode<Tp>* element;
_Self up() {
return _Self(element->parent);
}
_Self left() {
if (element != NULL) {
return _Self(element->left);
} else {
return _Self(NULL);
}
}
_Self right() {
if (element != NULL) {
return _Self(element->right);
} else {
return _Self(NULL);
}
}
bool operator==(const _Self& __x) const {
return element == __x.element;
}
bool operator!=(const _Self& __x) const {
return element != __x.element;
}
pointer
operator->() const {
if (element != NULL) {
return element->value;
} else {
return NULL;
}
}
pointer operator*() const {
return this->operator->();
}
};
/**
* Pretty rudimentary version of a simple binary tree (not a binary search tree!).
*/
template<typename Tp>
class BinaryTree {
public:
typedef ExplicitNodeIterator<Tp> iterator;
typedef BinaryNode<Tp> Node;
typedef std::pair<iterator, iterator> children;
BinaryTree() :
rootNode(NULL) {
}
BinaryTree(Node* rootNode) :
rootNode(rootNode) {
}
iterator begin() const {
return iterator(rootNode);
}
static iterator end() {
return iterator(NULL);
}
iterator insert(bool insertLeft, iterator parentNode, Node* newNode ) {
newNode->parent = parentNode.element;
if (parentNode.element != NULL) {
if (insertLeft) {
parentNode.element->left = newNode;
} else {
parentNode.element->right = newNode;
}
} else {
//Insert first element.
rootNode = newNode;
}
return iterator(newNode);
}
//No recursion to children. Needs to be done externally.
children erase(iterator node) {
if (node.element == rootNode) {
//We're root node
rootNode = NULL;
} else {
//Delete parent's reference
if (node.up().left() == node) {
node.up().element->left = NULL;
} else {
node.up().element->right = NULL;
}
}
return children(node.element->left, node.element->right);
}
static uint32_t countLeft(iterator start) {
if (start == end()) {
return 0;
}
//We also count the start node itself.
uint32_t count = 1;
while (start.left() != end()) {
count++;
start = start.left();
}
return count;
}
static uint32_t countRight(iterator start) {
if (start == end()) {
return 0;
}
//We also count the start node itself.
uint32_t count = 1;
while (start.right() != end()) {
count++;
start = start.right();
}
return count;
}
protected:
Node* rootNode;
};
#endif /* FRAMEWORK_CONTAINER_BINARYTREE_H_ */

View File

@ -1,42 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_DYNAMICFIFO_H_
#define FRAMEWORK_CONTAINER_DYNAMICFIFO_H_
#include <framework/container/FIFOBase.h>
#include <vector>
/**
* @brief Simple First-In-First-Out data structure. The maximum size
* can be set in the constructor.
* @details
* The maximum capacity can be determined at run-time, so this container
* performs dynamic memory allocation!
* The public interface of FIFOBase exposes the user interface for the FIFO.
* @tparam T Entry Type
* @tparam capacity Maximum capacity
*/
template<typename T>
class DynamicFIFO: public FIFOBase<T> {
public:
DynamicFIFO(size_t maxCapacity): FIFOBase<T>(nullptr, maxCapacity),
fifoVector(maxCapacity) {
// trying to pass the pointer of the uninitialized vector
// to the FIFOBase constructor directly lead to a super evil bug.
// So we do it like this now.
this->setData(fifoVector.data());
};
/**
* @brief Custom copy constructor which prevents setting the
* underlying pointer wrong.
*/
DynamicFIFO(const DynamicFIFO& other): FIFOBase<T>(other),
fifoVector(other.maxCapacity) {
this->setData(fifoVector.data());
}
private:
std::vector<T> fifoVector;
};
#endif /* FRAMEWORK_CONTAINER_DYNAMICFIFO_H_ */

View File

@ -1,34 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_FIFO_H_
#define FRAMEWORK_CONTAINER_FIFO_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/container/FIFOBase.h>
#include <array>
/**
* @brief Simple First-In-First-Out data structure with size fixed at
* compile time
* @details
* Performs no dynamic memory allocation.
* The public interface of FIFOBase exposes the user interface for the FIFO.
* @tparam T Entry Type
* @tparam capacity Maximum capacity
*/
template<typename T, size_t capacity>
class FIFO: public FIFOBase<T> {
public:
FIFO(): FIFOBase<T>(fifoArray.data(), capacity) {};
/**
* @brief Custom copy constructor to set pointer correctly.
* @param other
*/
FIFO(const FIFO& other): FIFOBase<T>(other) {
this->setData(fifoArray.data());
}
private:
std::array<T, capacity> fifoArray;
};
#endif /* FRAMEWORK_CONTAINERS_STATICFIFO_H_ */

View File

@ -1,65 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_H_
#define FRAMEWORK_CONTAINER_FIFOBASE_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <cstddef>
#include <cstring>
template <typename T>
class FIFOBase {
public:
static const uint8_t INTERFACE_ID = CLASS_ID::FIFO_CLASS;
static const ReturnValue_t FULL = MAKE_RETURN_CODE(1);
static const ReturnValue_t EMPTY = MAKE_RETURN_CODE(2);
/** Default ctor, takes pointer to first entry of underlying container
* and maximum capacity */
FIFOBase(T* values, const size_t maxCapacity);
/**
* Insert value into FIFO
* @param value
* @return
*/
ReturnValue_t insert(T value);
/**
* Retrieve item from FIFO. This removes the item from the FIFO.
* @param value
* @return
*/
ReturnValue_t retrieve(T *value);
/**
* Retrieve item from FIFO without removing it from FIFO.
* @param value
* @return
*/
ReturnValue_t peek(T * value);
/**
* Remove item from FIFO.
* @return
*/
ReturnValue_t pop();
bool empty();
bool full();
size_t size();
size_t getMaxCapacity() const;
protected:
void setData(T* data);
size_t maxCapacity = 0;
T* values;
size_t readIndex = 0;
size_t writeIndex = 0;
size_t currentSize = 0;
size_t next(size_t current);
};
#include <framework/container/FIFOBase.tpp>
#endif /* FRAMEWORK_CONTAINER_FIFOBASE_H_ */

View File

@ -1,87 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_TPP_
#define FRAMEWORK_CONTAINER_FIFOBASE_TPP_
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_H_
#error Include FIFOBase.h before FIFOBase.tpp!
#endif
template<typename T>
inline FIFOBase<T>::FIFOBase(T* values, const size_t maxCapacity):
maxCapacity(maxCapacity), values(values){};
template<typename T>
inline ReturnValue_t FIFOBase<T>::insert(T value) {
if (full()) {
return FULL;
} else {
values[writeIndex] = value;
writeIndex = next(writeIndex);
++currentSize;
return HasReturnvaluesIF::RETURN_OK;
}
};
template<typename T>
inline ReturnValue_t FIFOBase<T>::retrieve(T* value) {
if (empty()) {
return EMPTY;
} else {
*value = values[readIndex];
readIndex = next(readIndex);
--currentSize;
return HasReturnvaluesIF::RETURN_OK;
}
};
template<typename T>
inline ReturnValue_t FIFOBase<T>::peek(T* value) {
if(empty()) {
return EMPTY;
} else {
*value = values[readIndex];
return HasReturnvaluesIF::RETURN_OK;
}
};
template<typename T>
inline ReturnValue_t FIFOBase<T>::pop() {
T value;
return this->retrieve(&value);
};
template<typename T>
inline bool FIFOBase<T>::empty() {
return (currentSize == 0);
};
template<typename T>
inline bool FIFOBase<T>::full() {
return (currentSize == maxCapacity);
}
template<typename T>
inline size_t FIFOBase<T>::size() {
return currentSize;
}
template<typename T>
inline size_t FIFOBase<T>::next(size_t current) {
++current;
if (current == maxCapacity) {
current = 0;
}
return current;
}
template<typename T>
inline size_t FIFOBase<T>::getMaxCapacity() const {
return maxCapacity;
}
template<typename T>
inline void FIFOBase<T>::setData(T *data) {
this->values = data;
}
#endif

View File

@ -1,57 +0,0 @@
#ifndef FIXEDARRAYLIST_H_
#define FIXEDARRAYLIST_H_
#include <framework/container/ArrayList.h>
/**
* @brief Array List with a fixed maximum size
* @ingroup container
*/
template<typename T, uint32_t MAX_SIZE, typename count_t = uint8_t>
class FixedArrayList: public ArrayList<T, count_t> {
private:
T data[MAX_SIZE];
public:
/**
* (Robin) Maybe we should also implement move assignment and move ctor.
* Or at least delete them.
*/
FixedArrayList() :
ArrayList<T, count_t>(data, MAX_SIZE) {
}
// (Robin): We could create a constructor to initialize the fixed array list
// with data and the known size field
// so it can be used for serialization too (with SerialFixedArrrayListAdapter)
// is this feasible?
/**
* Initialize a fixed array list with data and number of data fields.
* Endianness of entries can be swapped optionally.
* @param data_
* @param count
* @param swapArrayListEndianess
*/
FixedArrayList(T * data_, count_t count):
ArrayList<T, count_t>(data, MAX_SIZE) {
memcpy(this->data, data_, count * sizeof(T));
this->size = count;
}
FixedArrayList(const FixedArrayList& other) :
ArrayList<T, count_t>(data, MAX_SIZE) {
memcpy(this->data, other.data, sizeof(this->data));
this->entries = data;
}
FixedArrayList& operator=(FixedArrayList other) {
memcpy(this->data, other.data, sizeof(this->data));
this->entries = data;
return *this;
}
virtual ~FixedArrayList() {
}
};
#endif /* FIXEDARRAYLIST_H_ */

View File

@ -1,225 +0,0 @@
#ifndef FIXEDMAP_H_
#define FIXEDMAP_H_
#include <framework/container/ArrayList.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <utility>
/**
* @brief Map implementation for maps with a pre-defined size.
* @details Can be initialized with desired maximum size.
* Iterator is used to access <key,value> pair and
* iterate through map entries. Complexity O(n).
* @ingroup container
*/
template<typename key_t, typename T>
class FixedMap: public SerializeIF {
public:
static const uint8_t INTERFACE_ID = CLASS_ID::FIXED_MAP;
static const ReturnValue_t KEY_ALREADY_EXISTS = MAKE_RETURN_CODE(0x01);
static const ReturnValue_t MAP_FULL = MAKE_RETURN_CODE(0x02);
static const ReturnValue_t KEY_DOES_NOT_EXIST = MAKE_RETURN_CODE(0x03);
private:
static const key_t EMPTY_SLOT = -1;
ArrayList<std::pair<key_t, T>, uint32_t> theMap;
uint32_t _size;
uint32_t findIndex(key_t key) const {
if (_size == 0) {
return 1;
}
uint32_t i = 0;
for (i = 0; i < _size; ++i) {
if (theMap[i].first == key) {
return i;
}
}
return i;
}
public:
FixedMap(uint32_t maxSize) :
theMap(maxSize), _size(0) {
}
class Iterator: public ArrayList<std::pair<key_t, T>, uint32_t>::Iterator {
public:
Iterator() :
ArrayList<std::pair<key_t, T>, uint32_t>::Iterator() {
}
Iterator(std::pair<key_t, T> *pair) :
ArrayList<std::pair<key_t, T>, uint32_t>::Iterator(pair) {
}
T operator*() {
return ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
// -> operator overloaded, can be used to access value
T *operator->() {
return &ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
// Can be used to access the key of the iterator
key_t first() {
return ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->first;
}
// Alternative to access value, similar to std::map implementation
T second() {
return ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
};
Iterator begin() const {
return Iterator(&theMap[0]);
}
Iterator end() const {
return Iterator(&theMap[_size]);
}
uint32_t size() const {
return _size;
}
ReturnValue_t insert(key_t key, T value, Iterator *storedValue = NULL) {
if (exists(key) == HasReturnvaluesIF::RETURN_OK) {
return FixedMap::KEY_ALREADY_EXISTS;
}
if (_size == theMap.maxSize()) {
return FixedMap::MAP_FULL;
}
theMap[_size].first = key;
theMap[_size].second = value;
if (storedValue != NULL) {
*storedValue = Iterator(&theMap[_size]);
}
++_size;
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t insert(std::pair<key_t, T> pair) {
return insert(pair.first, pair.second);
}
ReturnValue_t exists(key_t key) const {
ReturnValue_t result = KEY_DOES_NOT_EXIST;
if (findIndex(key) < _size) {
result = HasReturnvaluesIF::RETURN_OK;
}
return result;
}
ReturnValue_t erase(Iterator *iter) {
uint32_t i;
if ((i = findIndex((*iter).value->first)) >= _size) {
return KEY_DOES_NOT_EXIST;
}
theMap[i] = theMap[_size - 1];
--_size;
--((*iter).value);
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t erase(key_t key) {
uint32_t i;
if ((i = findIndex(key)) >= _size) {
return KEY_DOES_NOT_EXIST;
}
theMap[i] = theMap[_size - 1];
--_size;
return HasReturnvaluesIF::RETURN_OK;
}
T *findValue(key_t key) const {
return &theMap[findIndex(key)].second;
}
Iterator find(key_t key) const {
ReturnValue_t result = exists(key);
if (result != HasReturnvaluesIF::RETURN_OK) {
return end();
}
return Iterator(&theMap[findIndex(key)]);
}
ReturnValue_t find(key_t key, T **value) const {
ReturnValue_t result = exists(key);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
*value = &theMap[findIndex(key)].second;
return HasReturnvaluesIF::RETURN_OK;
}
void clear() {
_size = 0;
}
uint32_t maxSize() const {
return theMap.maxSize();
}
bool full() {
if(_size == theMap.maxSize()) {
return true;
}
else {
return false;
}
}
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
size_t maxSize, Endianness streamEndianness) const {
ReturnValue_t result = SerializeAdapter::serialize(&this->_size,
buffer, size, maxSize, streamEndianness);
uint32_t i = 0;
while ((result == HasReturnvaluesIF::RETURN_OK) && (i < this->_size)) {
result = SerializeAdapter::serialize(&theMap[i].first, buffer,
size, maxSize, streamEndianness);
result = SerializeAdapter::serialize(&theMap[i].second, buffer, size,
maxSize, streamEndianness);
++i;
}
return result;
}
virtual size_t getSerializedSize() const {
uint32_t printSize = sizeof(_size);
uint32_t i = 0;
for (i = 0; i < _size; ++i) {
printSize += SerializeAdapter::getSerializedSize(
&theMap[i].first);
printSize += SerializeAdapter::getSerializedSize(&theMap[i].second);
}
return printSize;
}
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness) {
ReturnValue_t result = SerializeAdapter::deSerialize(&this->_size,
buffer, size, streamEndianness);
if (this->_size > theMap.maxSize()) {
return SerializeIF::TOO_MANY_ELEMENTS;
}
uint32_t i = 0;
while ((result == HasReturnvaluesIF::RETURN_OK) && (i < this->_size)) {
result = SerializeAdapter::deSerialize(&theMap[i].first, buffer,
size, streamEndianness);
result = SerializeAdapter::deSerialize(&theMap[i].second, buffer, size,
streamEndianness);
++i;
}
return result;
}
};
#endif /* FIXEDMAP_H_ */

View File

@ -1,181 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_H_
#define FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_H_
#include <framework/container/ArrayList.h>
#include <cstring>
#include <set>
/**
* \ingroup container
*/
template<typename key_t, typename T, typename KEY_COMPARE = std::less<key_t>>
class FixedOrderedMultimap {
public:
static const uint8_t INTERFACE_ID = CLASS_ID::FIXED_MULTIMAP;
static const ReturnValue_t KEY_ALREADY_EXISTS = MAKE_RETURN_CODE(0x01);
static const ReturnValue_t MAP_FULL = MAKE_RETURN_CODE(0x02);
static const ReturnValue_t KEY_DOES_NOT_EXIST = MAKE_RETURN_CODE(0x03);
private:
typedef KEY_COMPARE compare;
compare myComp;
ArrayList<std::pair<key_t, T>, uint32_t> theMap;
uint32_t _size;
uint32_t findFirstIndex(key_t key, uint32_t startAt = 0) const {
if (startAt >= _size) {
return startAt + 1;
}
uint32_t i = startAt;
for (i = startAt; i < _size; ++i) {
if (theMap[i].first == key) {
return i;
}
}
return i;
}
uint32_t findNicePlace(key_t key) const {
uint32_t i = 0;
for (i = 0; i < _size; ++i) {
if (myComp(key, theMap[i].first)) {
return i;
}
}
return i;
}
void removeFromPosition(uint32_t position) {
if (_size <= position) {
return;
}
memmove(&theMap[position], &theMap[position + 1],
(_size - position - 1) * sizeof(std::pair<key_t,T>));
--_size;
}
public:
FixedOrderedMultimap(uint32_t maxSize) :
theMap(maxSize), _size(0) {
}
virtual ~FixedOrderedMultimap() {
}
class Iterator: public ArrayList<std::pair<key_t, T>, uint32_t>::Iterator {
public:
Iterator() :
ArrayList<std::pair<key_t, T>, uint32_t>::Iterator() {
}
Iterator(std::pair<key_t, T> *pair) :
ArrayList<std::pair<key_t, T>, uint32_t>::Iterator(pair) {
}
T operator*() {
return ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
T *operator->() {
return &ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
};
Iterator begin() const {
return Iterator(&theMap[0]);
}
Iterator end() const {
return Iterator(&theMap[_size]);
}
uint32_t size() const {
return _size;
}
ReturnValue_t insert(key_t key, T value, Iterator *storedValue = NULL) {
if (_size == theMap.maxSize()) {
return MAP_FULL;
}
uint32_t position = findNicePlace(key);
memmove(&theMap[position + 1], &theMap[position],
(_size - position) * sizeof(std::pair<key_t,T>));
theMap[position].first = key;
theMap[position].second = value;
++_size;
if (storedValue != NULL) {
*storedValue = Iterator(&theMap[position]);
}
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t insert(std::pair<key_t, T> pair) {
return insert(pair.fist, pair.second);
}
ReturnValue_t exists(key_t key) const {
ReturnValue_t result = KEY_DOES_NOT_EXIST;
if (findFirstIndex(key) < _size) {
result = HasReturnvaluesIF::RETURN_OK;
}
return result;
}
ReturnValue_t erase(Iterator *iter) {
uint32_t i;
if ((i = findFirstIndex((*iter).value->first)) >= _size) {
return KEY_DOES_NOT_EXIST;
}
removeFromPosition(i);
if (*iter != begin()) {
(*iter)--;
} else {
*iter = begin();
}
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t erase(key_t key) {
uint32_t i;
if ((i = findFirstIndex(key)) >= _size) {
return KEY_DOES_NOT_EXIST;
}
do {
removeFromPosition(i);
i = findFirstIndex(key, i);
} while (i < _size);
return HasReturnvaluesIF::RETURN_OK;
}
//This is potentially unsafe
// T *findValue(key_t key) const {
// return &theMap[findFirstIndex(key)].second;
// }
Iterator find(key_t key) const {
ReturnValue_t result = exists(key);
if (result != HasReturnvaluesIF::RETURN_OK) {
return end();
}
return Iterator(&theMap[findFirstIndex(key)]);
}
ReturnValue_t find(key_t key, T **value) const {
ReturnValue_t result = exists(key);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
*value = &theMap[findFirstIndex(key)].second;
return HasReturnvaluesIF::RETURN_OK;
}
void clear() {
_size = 0;
}
uint32_t maxSize() const {
return theMap.maxSize();
}
};
#endif /* FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_H_ */

View File

@ -1,90 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_HYBRIDITERATOR_H_
#define FRAMEWORK_CONTAINER_HYBRIDITERATOR_H_
#include <framework/container/ArrayList.h>
#include <framework/container/SinglyLinkedList.h>
template<typename T, typename count_t = uint8_t>
class HybridIterator: public LinkedElement<T>::Iterator,
public ArrayList<T, count_t>::Iterator {
public:
HybridIterator() {}
HybridIterator(typename LinkedElement<T>::Iterator *iter) :
LinkedElement<T>::Iterator(*iter), value(iter->value),
linked(true) {
}
HybridIterator(LinkedElement<T> *start) :
LinkedElement<T>::Iterator(start), value(start->value),
linked(true) {
}
HybridIterator(typename ArrayList<T, count_t>::Iterator start,
typename ArrayList<T, count_t>::Iterator end) :
ArrayList<T, count_t>::Iterator(start), value(start.value),
linked(false), end(end.value) {
if (value == this->end) {
value = NULL;
}
}
HybridIterator(T *firstElement, T *lastElement) :
ArrayList<T, count_t>::Iterator(firstElement), value(firstElement),
linked(false), end(++lastElement) {
if (value == end) {
value = NULL;
}
}
HybridIterator& operator++() {
if (linked) {
LinkedElement<T>::Iterator::operator++();
if (LinkedElement<T>::Iterator::value != nullptr) {
value = LinkedElement<T>::Iterator::value->value;
} else {
value = nullptr;
}
} else {
ArrayList<T, count_t>::Iterator::operator++();
value = ArrayList<T, count_t>::Iterator::value;
if (value == end) {
value = nullptr;
}
}
return *this;
}
HybridIterator operator++(int) {
HybridIterator tmp(*this);
operator++();
return tmp;
}
bool operator==(const HybridIterator& other) const {
return value == other.value;
}
bool operator!=(const HybridIterator& other) const {
return !(*this == other);
}
T operator*() {
return *value;
}
T *operator->() {
return value;
}
T* value = nullptr;
private:
bool linked = false;
T *end = nullptr;
};
#endif /* FRAMEWORK_CONTAINER_HYBRIDITERATOR_H_ */

View File

@ -1,721 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_INDEXEDRINGMEMORY_H_
#define FRAMEWORK_CONTAINER_INDEXEDRINGMEMORY_H_
#include <framework/container/ArrayList.h>
#include <framework/globalfunctions/CRC.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/serialize/SerialArrayListAdapter.h>
#include <cmath>
/**
* Index is the Type used for the list of indices.
*
* @tparam T Type which destribes the index. Needs to be a child of SerializeIF
* to be able to make it persistent
*/
template<typename T>
class Index: public SerializeIF{
/**
*
*/
static_assert(std::is_base_of<SerializeIF,T>::value,
"Wrong Type for Index, Type must implement SerializeIF");
public:
Index():blockStartAddress(0),size(0),storedPackets(0){}
Index(uint32_t startAddress):blockStartAddress(startAddress),
size(0),storedPackets(0) {
}
void setBlockStartAddress(uint32_t newAddress) {
this->blockStartAddress = newAddress;
}
uint32_t getBlockStartAddress() const {
return blockStartAddress;
}
const T* getIndexType() const {
return &indexType;
}
T* modifyIndexType() {
return &indexType;
}
/**
* Updates the index Type. Uses = operator
* @param indexType Type to copy from
*/
void setIndexType(T* indexType) {
this->indexType = *indexType;
}
uint32_t getSize() const {
return size;
}
void setSize(uint32_t size) {
this->size = size;
}
void addSize(uint32_t size){
this->size += size;
}
void setStoredPackets(uint32_t newStoredPackets){
this->storedPackets = newStoredPackets;
}
void addStoredPackets(uint32_t packets){
this->storedPackets += packets;
}
uint32_t getStoredPackets() const{
return this->storedPackets;
}
ReturnValue_t serialize(uint8_t** buffer, size_t* size,
size_t maxSize, Endianness streamEndianness) const {
ReturnValue_t result = SerializeAdapter::serialize(&blockStartAddress,buffer,size,maxSize,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = indexType.serialize(buffer,size,maxSize,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = SerializeAdapter::serialize(&this->size,buffer,size,maxSize,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = SerializeAdapter::serialize(&this->storedPackets,buffer,size,maxSize,streamEndianness);
return result;
}
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness){
ReturnValue_t result = SerializeAdapter::deSerialize(&blockStartAddress,buffer,size,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = indexType.deSerialize(buffer,size,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = SerializeAdapter::deSerialize(&this->size,buffer,size,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = SerializeAdapter::deSerialize(&this->storedPackets,buffer,size,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
return result;
}
size_t getSerializedSize() const {
uint32_t size = SerializeAdapter::getSerializedSize(&blockStartAddress);
size += indexType.getSerializedSize();
size += SerializeAdapter::getSerializedSize(&this->size);
size += SerializeAdapter::getSerializedSize(&this->storedPackets);
return size;
}
bool operator==(const Index<T>& other){
return ((blockStartAddress == other.getBlockStartAddress()) && (size==other.getSize())) && (indexType == *(other.getIndexType()));
}
private:
uint32_t blockStartAddress;
uint32_t size;
uint32_t storedPackets;
T indexType;
};
/**
* @brief Indexed Ring Memory Array is a class for a ring memory with indices.
* @details
* It assumes that the newest data comes in last
* It uses the currentWriteBlock as pointer to the current writing position
* The currentReadBlock must be set manually
* @tparam T
*/
template<typename T>
class IndexedRingMemoryArray: public SerializeIF, public ArrayList<Index<T>, uint32_t>{
/**
*
*/
public:
IndexedRingMemoryArray(uint32_t startAddress, uint32_t size, uint32_t bytesPerBlock,
SerializeIF* additionalInfo, bool overwriteOld):
ArrayList<Index<T>,uint32_t>(NULL,(uint32_t)10,(uint32_t)0),totalSize(size),
indexAddress(startAddress),currentReadSize(0),currentReadBlockSizeCached(0),
lastBlockToReadSize(0), additionalInfo(additionalInfo),overwriteOld(overwriteOld)
{
//Calculate the maximum number of indices needed for this blocksize
uint32_t maxNrOfIndices = floor(static_cast<double>(size)/static_cast<double>(bytesPerBlock));
//Calculate the Size needeed for the index itself
size_t serializedSize = 0;
if(additionalInfo!=NULL) {
serializedSize += additionalInfo->getSerializedSize();
}
//Size of current iterator type
Index<T> tempIndex;
serializedSize += tempIndex.getSerializedSize();
//Add Size of Array
serializedSize += sizeof(uint32_t); //size of array
serializedSize += (tempIndex.getSerializedSize() * maxNrOfIndices); //size of elements
serializedSize += sizeof(uint16_t); //size of crc
//Calculate new size after index
if(serializedSize > totalSize){
error << "IndexedRingMemory: Store is too small for index" << std::endl;
}
uint32_t useableSize = totalSize - serializedSize;
//Update the totalSize for calculations
totalSize = useableSize;
//True StartAddress
uint32_t trueStartAddress = indexAddress + serializedSize;
//Calculate True number of Blocks and reset size of true Number of Blocks
uint32_t trueNumberOfBlocks = floor(static_cast<double>(totalSize) / static_cast<double>(bytesPerBlock));
//allocate memory now
this->entries = new Index<T>[trueNumberOfBlocks];
this->size = trueNumberOfBlocks;
this->maxSize_ = trueNumberOfBlocks;
this->allocated = true;
//Check trueNumberOfBlocks
if(trueNumberOfBlocks<1) {
error << "IndexedRingMemory: Invalid Number of Blocks: " << trueNumberOfBlocks;
}
//Fill address into index
uint32_t address = trueStartAddress;
for (typename IndexedRingMemoryArray<T>::Iterator it = this->begin();it!=this->end();++it) {
it->setBlockStartAddress(address);
it->setSize(0);
it->setStoredPackets(0);
address += bytesPerBlock;
}
//Initialize iterators
currentWriteBlock = this->begin();
currentReadBlock = this->begin();
lastBlockToRead = this->begin();
//Check last blockSize
uint32_t lastBlockSize = (trueStartAddress + useableSize) - (this->back()->getBlockStartAddress());
if((lastBlockSize<bytesPerBlock) && (this->size > 1)){
//remove the last Block so the second last block has more size
this->size -= 1;
debug << "IndexedRingMemory: Last Block is smaller than bytesPerBlock, removed last block" << std::endl;
}
}
/**
* Resets the whole index, the iterators and executes the given reset function on every index type
* @param typeResetFnc static reset function which accepts a pointer to the index Type
*/
void reset(void (*typeResetFnc)(T*)){
currentReadBlock = this->begin();
currentWriteBlock = this->begin();
lastBlockToRead = this->begin();
currentReadSize = 0;
currentReadBlockSizeCached = 0;
lastBlockToReadSize = 0;
for(typename IndexedRingMemoryArray<T>::Iterator it = this->begin();it!=this->end();++it){
it->setSize(0);
it->setStoredPackets(0);
(*typeResetFnc)(it->modifyIndexType());
}
}
void resetBlock(typename IndexedRingMemoryArray<T>::Iterator it,void (*typeResetFnc)(T*)){
it->setSize(0);
it->setStoredPackets(0);
(*typeResetFnc)(it->modifyIndexType());
}
/**
* Reading
* @param it
*/
void setCurrentReadBlock(typename IndexedRingMemoryArray<T>::Iterator it){
currentReadBlock = it;
currentReadBlockSizeCached = it->getSize();
}
void resetRead(){
currentReadBlock = this->begin();
currentReadSize = 0;
currentReadBlockSizeCached = this->begin()->getSize();
lastBlockToRead = currentWriteBlock;
lastBlockToReadSize = currentWriteBlock->getSize();
}
/**
* Sets the last block to read to this iterator.
* Can be used to dump until block x
* @param it The iterator for the last read block
*/
void setLastBlockToRead(typename IndexedRingMemoryArray<T>::Iterator it){
lastBlockToRead = it;
lastBlockToReadSize = it->getSize();
}
/**
* Set the read pointer to the first written Block, which is the first non empty block in front of the write block
* Can be the currentWriteBlock as well
*/
void readOldest(){
resetRead();
currentReadBlock = getNextNonEmptyBlock();
currentReadBlockSizeCached = currentReadBlock->getSize();
}
/**
* Sets the current read iterator to the next Block and resets the current read size
* The current size of the block will be cached to avoid race condition between write and read
* If the end of the ring is reached the read pointer will be set to the begin
*/
void readNext(){
currentReadSize = 0;
if((this->size != 0) && (currentReadBlock.value ==this->back())){
currentReadBlock = this->begin();
}else{
currentReadBlock++;
}
currentReadBlockSizeCached = currentReadBlock->getSize();
}
/**
* Returns the address which is currently read from
* @return Address to read from
*/
uint32_t getCurrentReadAddress() const {
return getAddressOfCurrentReadBlock() + currentReadSize;
}
/**
* Adds readSize to the current size and checks if the read has no more data
* left and advances the read block.
* @param readSize The size that was read
* @return Returns true if the read can go on
*/
bool addReadSize(uint32_t readSize) {
if(currentReadBlock == lastBlockToRead) {
//The current read block is the last to read
if((currentReadSize+readSize)<lastBlockToReadSize) {
//the block has more data -> return true
currentReadSize += readSize;
return true;
}
else {
//Reached end of read -> return false
currentReadSize = lastBlockToReadSize;
return false;
}
}
else {
//We are not in the last Block
if((currentReadSize + readSize)<currentReadBlockSizeCached) {
//The current Block has more data
currentReadSize += readSize;
return true;
}
// TODO: Maybe some logic blocks should be extracted
else {
//The current block is written completely
readNext();
if(currentReadBlockSizeCached==0) {
//Next block is empty
typename IndexedRingMemoryArray<T>::Iterator it(currentReadBlock);
//Search if any block between this and the last block is not empty
for(;it!=lastBlockToRead;++it){
if(it == this->end()){
//This is the end, next block is the begin
it = this->begin();
if(it == lastBlockToRead){
//Break if the begin is the lastBlockToRead
break;
}
}
if(it->getSize()!=0){
//This is a non empty block. Go on reading with this block
currentReadBlock = it;
currentReadBlockSizeCached = it->getSize();
return true;
}
}
//reached lastBlockToRead and every block was empty, check if the last block is also empty
if(lastBlockToReadSize!=0){
//go on with last Block
currentReadBlock = lastBlockToRead;
currentReadBlockSizeCached = lastBlockToReadSize;
return true;
}
//There is no non empty block left
return false;
}
//Size is larger than 0
return true;
}
}
}
uint32_t getRemainigSizeOfCurrentReadBlock() const{
if(currentReadBlock == lastBlockToRead){
return (lastBlockToReadSize - currentReadSize);
}else{
return (currentReadBlockSizeCached - currentReadSize);
}
}
uint32_t getAddressOfCurrentReadBlock() const {
return currentReadBlock->getBlockStartAddress();
}
/**
* Gets the next non empty Block after the current write block,
* @return Returns the iterator to the block. If there is non, the current write block is returned
*/
typename IndexedRingMemoryArray<T>::Iterator getNextNonEmptyBlock() const {
for(typename IndexedRingMemoryArray<T>::Iterator it = getNextWrite();it!=currentWriteBlock;++it){
if(it == this->end()){
it = this->begin();
if(it == currentWriteBlock){
break;
}
}
if(it->getSize()!=0){
return it;
}
}
return currentWriteBlock;
}
/**
* Returns a copy of the oldest Index type
* @return Type of Index
*/
T* getOldest(){
return (getNextNonEmptyBlock()->modifyIndexType());
}
/*
* Writing
*/
uint32_t getAddressOfCurrentWriteBlock() const{
return currentWriteBlock->getBlockStartAddress();
}
uint32_t getSizeOfCurrentWriteBlock() const{
return currentWriteBlock->getSize();
}
uint32_t getCurrentWriteAddress() const{
return getAddressOfCurrentWriteBlock() + getSizeOfCurrentWriteBlock();
}
void clearCurrentWriteBlock(){
currentWriteBlock->setSize(0);
currentWriteBlock->setStoredPackets(0);
}
void addCurrentWriteBlock(uint32_t size, uint32_t storedPackets){
currentWriteBlock->addSize(size);
currentWriteBlock->addStoredPackets(storedPackets);
}
T* modifyCurrentWriteBlockIndexType(){
return currentWriteBlock->modifyIndexType();
}
void updatePreviousWriteSize(uint32_t size, uint32_t storedPackets){
typename IndexedRingMemoryArray<T>::Iterator it = getPreviousBlock(currentWriteBlock);
it->addSize(size);
it->addStoredPackets(storedPackets);
}
/**
* Checks if the block has enough space for sizeToWrite
* @param sizeToWrite The data to be written in the Block
* @return Returns true if size to write is smaller the remaining size of the block
*/
bool hasCurrentWriteBlockEnoughSpace(uint32_t sizeToWrite){
typename IndexedRingMemoryArray<T>::Iterator next = getNextWrite();
uint32_t addressOfNextBlock = next->getBlockStartAddress();
uint32_t availableSize =
( ( addressOfNextBlock + totalSize ) -
(getAddressOfCurrentWriteBlock() + getSizeOfCurrentWriteBlock()))
% totalSize;
return (sizeToWrite < availableSize);
}
/**
* Checks if the store is full if overwrite old is false
* @return Returns true if it is writeable and false if not
*/
bool isNextBlockWritable(){
//First check if this is the end of the list
typename IndexedRingMemoryArray<T>::Iterator next;
next = getNextWrite();
if((next->getSize()!=0) && (!overwriteOld)){
return false;
}
return true;
}
/**
* Updates current write Block Index Type
* @param infoOfNewBlock
*/
void updateCurrentBlock(T* infoOfNewBlock){
currentWriteBlock->setIndexType(infoOfNewBlock);
}
/**
* Succeed to next block, returns FAILED if overwrite is false and the store is full
* @return
*/
ReturnValue_t writeNext(){
//Check Next Block
if(!isNextBlockWritable()){
//The Index is full and does not overwrite old
return HasReturnvaluesIF::RETURN_FAILED;
}
//Next block can be written, update Metadata
currentWriteBlock = getNextWrite();
currentWriteBlock->setSize(0);
currentWriteBlock->setStoredPackets(0);
return HasReturnvaluesIF::RETURN_OK;
}
/**
* Serializes the Index and calculates the CRC.
* Parameters according to HasSerializeIF
* @param buffer
* @param size
* @param maxSize
* @param streamEndianness
* @return
*/
ReturnValue_t serialize(uint8_t** buffer, size_t* size,
size_t maxSize, Endianness streamEndianness) const{
uint8_t* crcBuffer = *buffer;
uint32_t oldSize = *size;
if(additionalInfo!=NULL){
additionalInfo->serialize(buffer,size,maxSize,streamEndianness);
}
ReturnValue_t result = currentWriteBlock->serialize(buffer,size,maxSize,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
result = SerializeAdapter::serialize(&this->size,buffer,size,maxSize,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
uint32_t i = 0;
while ((result == HasReturnvaluesIF::RETURN_OK) && (i < this->size)) {
result = SerializeAdapter::serialize(&this->entries[i], buffer, size,
maxSize, streamEndianness);
++i;
}
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
uint16_t crc = Calculate_CRC(crcBuffer,(*size-oldSize));
result = SerializeAdapter::serialize(&crc,buffer,size,maxSize,streamEndianness);
return result;
}
/**
* Get the serialized Size of the index
* @return The serialized size of the index
*/
size_t getSerializedSize() const {
size_t size = 0;
if(additionalInfo!=NULL){
size += additionalInfo->getSerializedSize();
}
size += currentWriteBlock->getSerializedSize();
size += SerializeAdapter::getSerializedSize(&this->size);
size += (this->entries[0].getSerializedSize()) * this->size;
uint16_t crc = 0;
size += SerializeAdapter::getSerializedSize(&crc);
return size;
}
/**
* DeSerialize the Indexed Ring from a buffer, deSerializes the current write iterator
* CRC Has to be checked before!
* @param buffer
* @param size
* @param streamEndianness
* @return
*/
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness){
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
if(additionalInfo!=NULL){
result = additionalInfo->deSerialize(buffer,size,streamEndianness);
}
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
Index<T> tempIndex;
result = tempIndex.deSerialize(buffer,size,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
uint32_t tempSize = 0;
result = SerializeAdapter::deSerialize(&tempSize,buffer,size,streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
if(this->size != tempSize){
return HasReturnvaluesIF::RETURN_FAILED;
}
uint32_t i = 0;
while ((result == HasReturnvaluesIF::RETURN_OK) && (i < this->size)) {
result = SerializeAdapter::deSerialize(
&this->entries[i], buffer, size,
streamEndianness);
++i;
}
if(result != HasReturnvaluesIF::RETURN_OK){
return result;
}
typename IndexedRingMemoryArray<T>::Iterator cmp(&tempIndex);
for(typename IndexedRingMemoryArray<T>::Iterator it= this->begin();it!=this->end();++it){
if(*(cmp.value) == *(it.value)){
currentWriteBlock = it;
return HasReturnvaluesIF::RETURN_OK;
}
}
//Reached if current write block iterator is not found
return HasReturnvaluesIF::RETURN_FAILED;
}
uint32_t getIndexAddress() const {
return indexAddress;
}
/*
* Statistics
*/
uint32_t getStoredPackets() const {
uint32_t size = 0;
for(typename IndexedRingMemoryArray<T>::Iterator it= this->begin();it!=this->end();++it){
size += it->getStoredPackets();
}
return size;
}
uint32_t getTotalSize() const {
return totalSize;
}
uint32_t getCurrentSize() const{
uint32_t size = 0;
for(typename IndexedRingMemoryArray<T>::Iterator it= this->begin();it!=this->end();++it){
size += it->getSize();
}
return size;
}
bool isEmpty() const{
return getCurrentSize()==0;
}
double getPercentageFilled() const{
uint32_t filledSize = 0;
for(typename IndexedRingMemoryArray<T>::Iterator it= this->begin();it!=this->end();++it){
filledSize += it->getSize();
}
return (double)filledSize/(double)this->totalSize;
}
typename IndexedRingMemoryArray<T>::Iterator getCurrentWriteBlock() const{
return currentWriteBlock;
}
/**
* Get the next block of the currentWriteBlock.
* Returns the first one if currentWriteBlock is the last one
* @return Iterator pointing to the next block after currentWriteBlock
*/
typename IndexedRingMemoryArray<T>::Iterator getNextWrite() const{
typename IndexedRingMemoryArray<T>::Iterator next(currentWriteBlock);
if((this->size != 0) && (currentWriteBlock.value == this->back())){
next = this->begin();
}else{
++next;
}
return next;
}
/**
* Get the block in front of the Iterator
* Returns the last block if it is the first block
* @param it iterator which you want the previous block from
* @return pointing to the block before it
*/
typename IndexedRingMemoryArray<T>::Iterator getPreviousBlock(typename IndexedRingMemoryArray<T>::Iterator it) {
if(this->begin() == it){
typename IndexedRingMemoryArray<T>::Iterator next((this->back()));
return next;
}
typename IndexedRingMemoryArray<T>::Iterator next(it);
--next;
return next;
}
private:
//The total size used by the blocks (without index)
uint32_t totalSize;
//The address of the index
const uint32_t indexAddress;
//The iterators for writing and reading
typename IndexedRingMemoryArray<T>::Iterator currentWriteBlock;
typename IndexedRingMemoryArray<T>::Iterator currentReadBlock;
//How much of the current read block is read already
uint32_t currentReadSize;
//Cached Size of current read block
uint32_t currentReadBlockSizeCached;
//Last block of current write (should be write block)
typename IndexedRingMemoryArray<T>::Iterator lastBlockToRead;
//current size of last Block to read
uint32_t lastBlockToReadSize;
//Additional Info to be serialized with the index
SerializeIF* additionalInfo;
//Does it overwrite old blocks?
const bool overwriteOld;
};
#endif /* FRAMEWORK_CONTAINER_INDEXEDRINGMEMORY_H_ */

View File

@ -1,50 +0,0 @@
#ifndef ISDERIVEDFROM_H_
#define ISDERIVEDFROM_H_
/**
* These template type checks are based on SFINAE
* (https://en.cppreference.com/w/cpp/language/sfinae)
*
* @tparam D Derived Type
* @tparam B Base Type
*/
template<typename D, typename B>
class IsDerivedFrom {
class No {
};
class Yes {
No no[3];
};
// This will be chosen if B is the base type
static Yes Test(B*); // declared, but not defined
// This will be chosen for anything else
static No Test(... ); // declared, but not defined
public:
enum {
Is = sizeof(Test(static_cast<D*>(0))) == sizeof(Yes)
};
};
template<typename, typename>
struct is_same {
static bool const value = false;
};
template<typename A>
struct is_same<A, A> {
static bool const value = true;
};
template<bool C, typename T = void>
struct enable_if {
typedef T type;
};
template<typename T>
struct enable_if<false, T> { };
#endif /* ISDERIVEDFROM_H_ */

View File

@ -1,35 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_PLACEMENTFACTORY_H_
#define FRAMEWORK_CONTAINER_PLACEMENTFACTORY_H_
#include <framework/storagemanager/StorageManagerIF.h>
#include <utility>
class PlacementFactory {
public:
PlacementFactory(StorageManagerIF* backend) :
dataBackend(backend) {
}
template<typename T, typename ... Args>
T* generate(Args&&... args) {
store_address_t tempId;
uint8_t* pData = NULL;
ReturnValue_t result = dataBackend->getFreeElement(&tempId, sizeof(T),
&pData);
if (result != HasReturnvaluesIF::RETURN_OK) {
return NULL;
}
T* temp = new (pData) T(std::forward<Args>(args)...);
return temp;
}
template<typename T>
ReturnValue_t destroy(T* thisElement) {
//Need to call destructor first, in case something was allocated by the object (shouldn't do that, however).
thisElement->~T();
uint8_t* pointer = (uint8_t*) (thisElement);
return dataBackend->deleteData(pointer, sizeof(T));
}
private:
StorageManagerIF* dataBackend;
};
#endif /* FRAMEWORK_CONTAINER_PLACEMENTFACTORY_H_ */

View File

@ -1,113 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_RINGBUFFERBASE_H_
#define FRAMEWORK_CONTAINER_RINGBUFFERBASE_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <cstddef>
template<uint8_t N_READ_PTRS = 1>
class RingBufferBase {
public:
RingBufferBase(size_t startAddress, const size_t size, bool overwriteOld) :
start(startAddress), write(startAddress), size(size),
overwriteOld(overwriteOld) {
for (uint8_t count = 0; count < N_READ_PTRS; count++) {
read[count] = startAddress;
}
}
virtual ~RingBufferBase() {}
bool isFull(uint8_t n = 0) {
return (availableWriteSpace(n) == 0);
}
bool isEmpty(uint8_t n = 0) {
return (availableReadData(n) == 0);
}
size_t availableReadData(uint8_t n = 0) const {
return ((write + size) - read[n]) % size;
}
size_t availableWriteSpace(uint8_t n = 0) const {
//One less to avoid ambiguous full/empty problem.
return (((read[n] + size) - write - 1) % size);
}
bool overwritesOld() const {
return overwriteOld;
}
size_t maxSize() const {
return size - 1;
}
void clear() {
write = start;
for (uint8_t count = 0; count < N_READ_PTRS; count++) {
read[count] = start;
}
}
size_t writeTillWrap() {
return (start + size) - write;
}
size_t readTillWrap(uint8_t n = 0) {
return (start + size) - read[n];
}
size_t getStart() const {
return start;
}
protected:
const size_t start;
size_t write;
size_t read[N_READ_PTRS];
const size_t size;
const bool overwriteOld;
void incrementWrite(uint32_t amount) {
write = ((write + amount - start) % size) + start;
}
void incrementRead(uint32_t amount, uint8_t n = 0) {
read[n] = ((read[n] + amount - start) % size) + start;
}
ReturnValue_t readData(uint32_t amount, uint8_t n = 0) {
if (availableReadData(n) >= amount) {
incrementRead(amount, n);
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
ReturnValue_t writeData(uint32_t amount) {
if (availableWriteSpace() >= amount or overwriteOld) {
incrementWrite(amount);
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
size_t getRead(uint8_t n = 0) const {
return read[n];
}
void setRead(uint32_t read, uint8_t n = 0) {
if (read >= start && read < (start+size)) {
this->read[n] = read;
}
}
uint32_t getWrite() const {
return write;
}
void setWrite(uint32_t write) {
this->write = write;
}
};
#endif /* FRAMEWORK_CONTAINER_RINGBUFFERBASE_H_ */

View File

@ -1,79 +0,0 @@
#include <iostream>
#include "SimpleRingBuffer.h"
int main() {
using namespace std;
SimpleRingBuffer buffer(64, false);
uint8_t data[8] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
ReturnValue_t result = buffer.writeData(data, 8);
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
}
result = buffer.writeData(data, 8);
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
}
uint8_t buffer2[47] = {0};
for (uint8_t count = 0; count<sizeof(buffer2); count++) {
buffer2[count] = count;
}
result = buffer.writeData(buffer2, sizeof(buffer2));
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
}
result = buffer.writeData(buffer2, sizeof(buffer2));
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
}
uint8_t readBuffer[64] = {0};
uint32_t writtenData = 0;
result = buffer.readData(readBuffer, 12, true, &writtenData);
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "readData failed." << endl;
} else {
cout << "Read data: " << writtenData << endl;
for (uint32_t count = 0; count < writtenData; count++) {
cout << hex << (uint16_t)readBuffer[count] << " ";
}
cout << dec << endl;
}
result = buffer.readData(readBuffer, 60, true, &writtenData);
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "readData failed." << endl;
} else {
cout << "Read data: " << writtenData << endl;
for (uint32_t count = 0; count < writtenData; count++) {
cout << hex << (uint16_t)readBuffer[count] << " ";
}
cout << dec << endl;
}
result = buffer.writeData(data, sizeof(data));
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
}
result = buffer.readData(readBuffer, 60, true, &writtenData);
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "readData failed." << endl;
} else {
cout << "Read data: " << writtenData << endl;
for (uint32_t count = 0; count < writtenData; count++) {
cout << hex << (uint16_t)readBuffer[count] << " ";
}
cout << dec << endl;
}
result = buffer.writeData(readBuffer, sizeof(readBuffer));
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
}
result = buffer.writeData(readBuffer, sizeof(readBuffer)-1);
if (result != HasReturnvaluesIF::RETURN_OK) {
cout << "writeData failed." << endl;
} else {
cout << "write done." << endl;
}
}

View File

@ -1,59 +0,0 @@
#include <framework/container/SharedRingBuffer.h>
#include <framework/ipc/MutexFactory.h>
#include <framework/ipc/MutexHelper.h>
SharedRingBuffer::SharedRingBuffer(object_id_t objectId, const size_t size,
bool overwriteOld, size_t maxExcessBytes, dur_millis_t mutexTimeout):
SystemObject(objectId), SimpleRingBuffer(size, overwriteOld,
maxExcessBytes), mutexTimeout(mutexTimeout) {
mutex = MutexFactory::instance()->createMutex();
}
SharedRingBuffer::SharedRingBuffer(object_id_t objectId, uint8_t *buffer,
const size_t size, bool overwriteOld, size_t maxExcessBytes,
dur_millis_t mutexTimeout):
SystemObject(objectId), SimpleRingBuffer(buffer, size, overwriteOld,
maxExcessBytes), mutexTimeout(mutexTimeout) {
mutex = MutexFactory::instance()->createMutex();
}
ReturnValue_t SharedRingBuffer::getFreeElementProtected(uint8_t** writePtr,
size_t amount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::getFreeElement(writePtr,amount);
}
ReturnValue_t SharedRingBuffer::writeDataProtected(const uint8_t *data,
size_t amount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::writeData(data,amount);
}
ReturnValue_t SharedRingBuffer::readDataProtected(uint8_t *data, size_t amount,
bool incrementReadPtr, bool readRemaining,
size_t *trueAmount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::readData(data,amount, incrementReadPtr,
readRemaining, trueAmount);
}
ReturnValue_t SharedRingBuffer::deleteDataProtected(size_t amount,
bool deleteRemaining, size_t *trueAmount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::deleteData(amount, deleteRemaining, trueAmount);
}
size_t SharedRingBuffer::getExcessBytes() const {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::getExcessBytes();
}
void SharedRingBuffer::moveExcessBytesToStart() {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::moveExcessBytesToStart();
}
size_t SharedRingBuffer::getAvailableReadDataProtected(uint8_t n) const {
MutexHelper(mutex, mutexTimeout);
return ((write + size) - read[n]) % size;
}

View File

@ -1,68 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_SHAREDRINGBUFFER_H_
#define FRAMEWORK_CONTAINER_SHAREDRINGBUFFER_H_
#include <framework/container/SimpleRingBuffer.h>
#include <framework/ipc/MutexIF.h>
#include <framework/objectmanager/SystemObject.h>
#include <framework/timemanager/Clock.h>
class SharedRingBuffer: public SystemObject,
public SimpleRingBuffer {
public:
/**
* This constructor allocates a new internal buffer with the supplied size.
* @param size
* @param overwriteOld
* If the ring buffer is overflowing at a write operartion, the oldest data
* will be overwritten.
*/
SharedRingBuffer(object_id_t objectId, const size_t size,
bool overwriteOld, size_t maxExcessBytes,
dur_millis_t mutexTimeout = 10);
/**
* This constructor takes an external buffer with the specified size.
* @param buffer
* @param size
* @param overwriteOld
* If the ring buffer is overflowing at a write operartion, the oldest data
* will be overwritten.
*/
SharedRingBuffer(object_id_t objectId, uint8_t* buffer, const size_t size,
bool overwriteOld, size_t maxExcessBytes,
dur_millis_t mutexTimeout = 10);
void setMutexTimeout(dur_millis_t newTimeout);
virtual size_t getExcessBytes() const override;
/**
* Helper functions which moves any excess bytes to the start
* of the ring buffer.
* @return
*/
virtual void moveExcessBytesToStart() override;
/** Performs mutex protected SimpleRingBuffer::getFreeElement call */
ReturnValue_t getFreeElementProtected(uint8_t** writePtr, size_t amount);
/** Performs mutex protected SimpleRingBuffer::writeData call */
ReturnValue_t writeDataProtected(const uint8_t* data, size_t amount);
/** Performs mutex protected SimpleRingBuffer::readData call */
ReturnValue_t readDataProtected(uint8_t *data, size_t amount,
bool incrementReadPtr = false,
bool readRemaining = false, size_t *trueAmount = nullptr);
/** Performs mutex protected SimpleRingBuffer::deleteData call */
ReturnValue_t deleteDataProtected(size_t amount,
bool deleteRemaining = false, size_t* trueAmount = nullptr);
size_t getAvailableReadDataProtected (uint8_t n = 0) const;
private:
dur_millis_t mutexTimeout;
MutexIF* mutex = nullptr;
};
#endif /* FRAMEWORK_CONTAINER_SHAREDRINGBUFFER_H_ */

View File

@ -1,127 +0,0 @@
#include <framework/container/SimpleRingBuffer.h>
#include <cstring>
SimpleRingBuffer::SimpleRingBuffer(const size_t size, bool overwriteOld,
size_t maxExcessBytes) :
RingBufferBase<>(0, size, overwriteOld),
maxExcessBytes(maxExcessBytes) {
if(maxExcessBytes > size) {
this->maxExcessBytes = size;
}
else {
this->maxExcessBytes = maxExcessBytes;
}
buffer = new uint8_t[size + maxExcessBytes];
}
SimpleRingBuffer::SimpleRingBuffer(uint8_t *buffer, const size_t size,
bool overwriteOld, size_t maxExcessBytes):
RingBufferBase<>(0, size, overwriteOld), buffer(buffer) {
if(maxExcessBytes > size) {
this->maxExcessBytes = size;
}
else {
this->maxExcessBytes = maxExcessBytes;
}
}
SimpleRingBuffer::~SimpleRingBuffer() {
delete[] buffer;
}
ReturnValue_t SimpleRingBuffer::getFreeElement(uint8_t **writePointer,
size_t amount) {
if (availableWriteSpace() >= amount or overwriteOld) {
size_t amountTillWrap = writeTillWrap();
if (amountTillWrap < amount) {
if((amount - amountTillWrap + excessBytes) > maxExcessBytes) {
return HasReturnvaluesIF::RETURN_FAILED;
}
excessBytes = amount - amountTillWrap;
}
*writePointer = &buffer[write];
incrementWrite(amount);
return HasReturnvaluesIF::RETURN_OK;
}
else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
ReturnValue_t SimpleRingBuffer::writeData(const uint8_t* data,
size_t amount) {
if (availableWriteSpace() >= amount or overwriteOld) {
size_t amountTillWrap = writeTillWrap();
if (amountTillWrap >= amount) {
// remaining size in buffer is sufficient to fit full amount.
memcpy(&buffer[write], data, amount);
}
else {
memcpy(&buffer[write], data, amountTillWrap);
memcpy(buffer, data + amountTillWrap, amount - amountTillWrap);
}
incrementWrite(amount);
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
ReturnValue_t SimpleRingBuffer::readData(uint8_t* data, size_t amount,
bool incrementReadPtr, bool readRemaining, size_t* trueAmount) {
size_t availableData = availableReadData(READ_PTR);
size_t amountTillWrap = readTillWrap(READ_PTR);
if (availableData < amount) {
if (readRemaining) {
// more data available than amount specified.
amount = availableData;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
if (trueAmount != nullptr) {
*trueAmount = amount;
}
if (amountTillWrap >= amount) {
memcpy(data, &buffer[read[READ_PTR]], amount);
} else {
memcpy(data, &buffer[read[READ_PTR]], amountTillWrap);
memcpy(data + amountTillWrap, buffer, amount - amountTillWrap);
}
if(incrementReadPtr) {
deleteData(amount, readRemaining);
}
return HasReturnvaluesIF::RETURN_OK;
}
size_t SimpleRingBuffer::getExcessBytes() const {
return excessBytes;
}
void SimpleRingBuffer::moveExcessBytesToStart() {
if(excessBytes > 0) {
std::memcpy(buffer, &buffer[size], excessBytes);
excessBytes = 0;
}
}
ReturnValue_t SimpleRingBuffer::deleteData(size_t amount,
bool deleteRemaining, size_t* trueAmount) {
size_t availableData = availableReadData(READ_PTR);
if (availableData < amount) {
if (deleteRemaining) {
amount = availableData;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
if (trueAmount != nullptr) {
*trueAmount = amount;
}
incrementRead(amount, READ_PTR);
return HasReturnvaluesIF::RETURN_OK;
}

View File

@ -1,119 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_SIMPLERINGBUFFER_H_
#define FRAMEWORK_CONTAINER_SIMPLERINGBUFFER_H_
#include <framework/container/RingBufferBase.h>
#include <cstddef>
/**
* @brief Circular buffer implementation, useful for buffering
* into data streams.
* @details
* Note that the deleteData() has to be called to increment the read pointer.
* This class allocated dynamically, so
* @ingroup containers
*/
class SimpleRingBuffer: public RingBufferBase<> {
public:
/**
* This constructor allocates a new internal buffer with the supplied size.
*
* @param size
* @param overwriteOld If the ring buffer is overflowing at a write
* operation, the oldest data will be overwritten.
* @param maxExcessBytes These additional bytes will be allocated in addtion
* to the specified size to accomodate contiguous write operations
* with getFreeElement.
*
*/
SimpleRingBuffer(const size_t size, bool overwriteOld,
size_t maxExcessBytes = 0);
/**
* This constructor takes an external buffer with the specified size.
* @param buffer
* @param size
* @param overwriteOld
* If the ring buffer is overflowing at a write operartion, the oldest data
* will be overwritten.
* @param maxExcessBytes
* If the buffer can accomodate additional bytes for contigous write
* operations with getFreeElement, this is the maximum allowed additional
* size
*/
SimpleRingBuffer(uint8_t* buffer, const size_t size, bool overwriteOld,
size_t maxExcessBytes = 0);
virtual ~SimpleRingBuffer();
/**
* Write to circular buffer and increment write pointer by amount.
* @param data
* @param amount
* @return -@c RETURN_OK if write operation was successfull
* -@c RETURN_FAILED if
*/
ReturnValue_t writeData(const uint8_t* data, size_t amount);
/**
* Returns a pointer to a free element. If the remaining buffer is
* not large enough, the data will be written past the actual size
* and the amount of excess bytes will be cached.
* @param writePointer Pointer to a pointer which can be used to write
* contiguous blocks into the ring buffer
* @param amount
* @return
*/
ReturnValue_t getFreeElement(uint8_t** writePointer, size_t amount);
virtual size_t getExcessBytes() const;
/**
* Helper functions which moves any excess bytes to the start
* of the ring buffer.
* @return
*/
virtual void moveExcessBytesToStart();
/**
* Read from circular buffer at read pointer.
* @param data
* @param amount
* @param incrementReadPtr
* If this is set to true, the read pointer will be incremented.
* If readRemaining is set to true, the read pointer will be incremented
* accordingly.
* @param readRemaining
* If this is set to true, the data will be read even if the amount
* specified exceeds the read data available.
* @param trueAmount [out]
* If readRemaining was set to true, the true amount read will be assigned
* to the passed value.
* @return
* - @c RETURN_OK if data was read successfully
* - @c RETURN_FAILED if not enough data was available and readRemaining
* was set to false.
*/
ReturnValue_t readData(uint8_t* data, size_t amount,
bool incrementReadPtr = false, bool readRemaining = false,
size_t* trueAmount = nullptr);
/**
* Delete data by incrementing read pointer.
* @param amount
* @param deleteRemaining
* If the amount specified is larger than the remaing size to read and this
* is set to true, the remaining amount will be deleted as well
* @param trueAmount [out]
* If deleteRemaining was set to true, the amount deleted will be assigned
* to the passed value.
* @return
*/
ReturnValue_t deleteData(size_t amount, bool deleteRemaining = false,
size_t* trueAmount = nullptr);
private:
static const uint8_t READ_PTR = 0;
uint8_t* buffer = nullptr;
size_t maxExcessBytes;
size_t excessBytes = 0;
};
#endif /* FRAMEWORK_CONTAINER_SIMPLERINGBUFFER_H_ */

View File

@ -1,154 +0,0 @@
#ifndef FRAMEWORK_CONTAINER_SINGLYLINKEDLIST_H_
#define FRAMEWORK_CONTAINER_SINGLYLINKEDLIST_H_
#include <cstddef>
#include <cstdint>
/**
* @brief Linked list data structure,
* each entry has a pointer to the next entry (singly)
* @ingroup container
*/
template<typename T>
class LinkedElement {
public:
T *value;
class Iterator {
public:
LinkedElement<T> *value = nullptr;
Iterator() {}
Iterator(LinkedElement<T> *element) :
value(element) {
}
Iterator& operator++() {
value = value->getNext();
return *this;
}
Iterator operator++(int) {
Iterator tmp(*this);
operator++();
return tmp;
}
bool operator==(Iterator other) {
return value == other.value;
}
bool operator!=(Iterator other) {
return !(*this == other);
}
T *operator->() {
return value->value;
}
};
LinkedElement(T* setElement, LinkedElement<T>* setNext = nullptr):
value(setElement), next(setNext) {}
virtual ~LinkedElement(){}
virtual LinkedElement* getNext() const {
return next;
}
virtual void setNext(LinkedElement* next) {
this->next = next;
}
virtual void setEnd() {
this->next = nullptr;
}
LinkedElement* begin() {
return this;
}
LinkedElement* end() {
return nullptr;
}
private:
LinkedElement *next;
};
template<typename T>
class SinglyLinkedList {
public:
using ElementIterator = typename LinkedElement<T>::Iterator;
SinglyLinkedList() {}
SinglyLinkedList(ElementIterator start) :
start(start.value) {}
SinglyLinkedList(LinkedElement<T>* startElement) :
start(startElement) {}
ElementIterator begin() const {
return ElementIterator::Iterator(start);
}
/** Returns iterator to nulltr */
ElementIterator end() const {
return ElementIterator::Iterator();
}
/**
* Returns last element in singly linked list.
* @return
*/
ElementIterator back() const {
LinkedElement<T> *element = start;
while (element != nullptr) {
element = element->getNext();
}
return ElementIterator::Iterator(element);
}
size_t getSize() const {
size_t size = 0;
LinkedElement<T> *element = start;
while (element != nullptr) {
size++;
element = element->getNext();
}
return size;
}
void setStart(LinkedElement<T>* firstElement) {
start = firstElement;
}
void setNext(LinkedElement<T>* currentElement,
LinkedElement<T>* nextElement) {
currentElement->setNext(nextElement);
}
void setLast(LinkedElement<T>* lastElement) {
lastElement->setEnd();
}
void insertElement(LinkedElement<T>* element, size_t position) {
LinkedElement<T> *currentElement = start;
for(size_t count = 0; count < position; count++) {
if(currentElement == nullptr) {
return;
}
currentElement = currentElement->getNext();
}
LinkedElement<T>* elementAfterCurrent = currentElement->next;
currentElement->setNext(element);
if(elementAfterCurrent != nullptr) {
element->setNext(elementAfterCurrent);
}
}
void insertBack(LinkedElement<T>* lastElement) {
back().value->setNext(lastElement);
}
protected:
LinkedElement<T> *start = nullptr;
};
#endif /* SINGLYLINKEDLIST_H_ */

View File

@ -1,13 +0,0 @@
#ifndef GROUP_H_
#define GROUP_H_
/**
* @defgroup container Container
*
* General Purpose Containers to store various elements.
* As opposed to the STL library implementation, these implementations
* don't allocate memory dynamically.
*/
#endif /* GROUP_H_ */

View File

@ -1,365 +0,0 @@
#include "FixedArrayList.h"
#include "SinglyLinkedList.h"
#include "HybridIterator.h"
#include "FixedMap.h"
#include <stdio.h>
/*
class Packet: public SinglyLinkedList {
public:
SinglyLinkedList::Element<uint32_t> element1;
SinglyLinkedList::Element<uint32_t> element2;
Packet() {
this->start = &element1;
element1.next = &element2;
}
};
class Packet2: public SinglyLinkedList {
public:
SinglyLinkedList::Element<uint32_t> element1;
SinglyLinkedList::Element<FixedArrayList<FixedArrayList<uint8_t, 5>, 2>> element2;
SinglyLinkedList::Element<uint32_t> element3;
Packet2() {
this->start = &element1;
element1.next = &element2;
element2.next = &element3;
}
};
class Packet3: public SinglyLinkedList {
public:
SinglyLinkedList::TypedElement<uint32_t> element1;
SinglyLinkedList::TypedElement<uint32_t> element2;
Packet3() {
this->start = &element1;
element1.next = &element2;
}
};
void arrayList() {
puts("** Array List **");
FixedArrayList<uint32_t, 10, uint32_t> list;
FixedArrayList<uint32_t, 10, uint32_t> list2;
list.size = 2;
list[0] = 0xcafecafe;
list[1] = 0x12345678;
uint8_t buffer[100];
uint8_t *pointer = buffer;
uint32_t size = 0;
uint32_t maxSize = 100;
uint32_t i;
int32_t size2;
printf("printsize: %i\n", list.getPrintSize());
list.print(&pointer, &size, 100, true);
printf("buffer(%i):", size);
for (i = 0; i < size; ++i) {
printf("%02x", buffer[i]);
}
printf("\n");
pointer = buffer;
size2 = size;
printf("list2 read: %x\n", list2.read(&pointer, &size2, true));
printf("list2(%i):", list2.size);
for (ArrayList<uint32_t, uint32_t>::Iterator iter = list2.begin();
iter != list2.end(); iter++) {
printf("0x%04x ", *iter);
}
printf("\n");
HybridIterator<uint32_t, uint32_t> hiter(list.begin(),list.end());
printf("hybrid1: 0x%04x\n", *(hiter++));
printf("hybrid2: 0x%04x\n", *hiter);
}
void allocatingList() {
puts("** Allocating List **");
ArrayList<uint8_t> myList(3), myList2(2);
myList[0] = 0xab;
myList[1] = 0xcd;
myList.size = 2;
uint8_t buffer[100];
uint8_t *pointer = buffer;
uint32_t size = 0;
uint32_t maxSize = 100;
uint32_t i;
int32_t size2;
myList.print(&pointer, &size, 100, true);
pointer = buffer;
size2 = size;
printf("Read %x\n", myList2.read(&pointer, &size2, true));
printf("%x,%x\n", myList2[0], myList2[1]);
}
void linkedList() {
puts("** Linked List **");
uint8_t buffer[100];
uint8_t *pointer = buffer;
uint32_t size = 0;
uint32_t maxSize = 100;
uint32_t i;
int32_t size2;
Packet myPacket;
myPacket.element1.entry = 0x12345678;
myPacket.element2.entry = 0x9abcdef0;
pointer = buffer;
size = 0;
ReturnValue_t result = myPacket.print(&pointer, &size, 100, true);
printf("result %02x\n", result);
printf("printsize: %i\n", myPacket.getPrintSize());
printf("buffer(%i):", size);
for (i = 0; i < size; ++i) {
printf("%02x", buffer[i]);
}
printf("\n");
Packet3 myPacket3;
myPacket3.element1.entry = 0x12345678;
myPacket3.element2.entry = 0xabcdeff;
SinglyLinkedList::TypedIterator<uint32_t> titer(&myPacket3.element1);
printf("0x%04x\n", *titer);
HybridIterator<uint32_t, uint32_t> hiter(&myPacket3.element1);
printf("hybrid1: 0x%04x\n", *hiter);
hiter++;
printf("hybrid2: 0x%04x\n", *hiter);
}
void complex() {
puts("** complex **");
uint8_t buffer[100];
uint8_t *pointer = buffer;
uint32_t size = 0;
uint32_t maxSize = 100;
uint32_t i;
int32_t size2 = size;
Packet myPacket2;
size2 = size;
pointer = buffer;
myPacket2.read(&pointer, &size2, true);
printf("packet: 0x%04x, 0x%04x\n", myPacket2.element1.entry,
myPacket2.element2.entry);
buffer[0] = 0x12;
buffer[1] = 0x34;
buffer[2] = 0x56;
buffer[3] = 0x78;
buffer[4] = 0x2;
buffer[5] = 0x3;
buffer[6] = 0xab;
buffer[7] = 0xcd;
buffer[8] = 0xef;
buffer[9] = 0x2;
buffer[10] = 0x11;
buffer[11] = 0x22;
buffer[12] = 0xca;
buffer[13] = 0xfe;
buffer[14] = 0x5a;
buffer[15] = 0xfe;
pointer = buffer;
size2 = 23;
Packet2 p2;
ReturnValue_t result = p2.read(&pointer, &size2, true);
printf("result is %02x\n", result);
printf("%04x; %i: %i: %x %x %x; %i: %x %x;; %04x\n", p2.element1.entry,
p2.element2.entry.size, p2.element2.entry[0].size,
p2.element2.entry[0][0], p2.element2.entry[0][1],
p2.element2.entry[0][2], p2.element2.entry[1].size,
p2.element2.entry[1][0], p2.element2.entry[1][1],
p2.element3.entry);
}
*/
struct Test {
uint32_t a;
uint32_t b;
};
template<typename key_t, typename T>
void printMap(FixedMap<key_t, T> *map) {
typename FixedMap<key_t, T>::Iterator iter;
printf("Map (%i): ", map->getSize());
for (iter = map->begin(); iter != map->end(); ++iter) {
printf("%x:%08x,%08x ", iter.value->first, (*iter).a, (*iter).b);
}
printf("\n");
}
template<typename T>
void map() {
puts("** Map **");
typename FixedMap<T, Test>::Iterator iter;
ReturnValue_t result;
FixedMap<T, Test> myMap(5);
printMap<T, Test>(&myMap);
Test a;
a.a = 0x01234567;
a.b = 0xabcdef89;
myMap.insert(1, a);
printMap<T, Test>(&myMap);
a.a = 0;
myMap.insert(2, a);
printMap<T, Test>(&myMap);
printf("2 exists: %x\n", myMap.exists(0x02));
printf("ff exists: %x\n", myMap.exists(0xff));
a.a = 1;
printf("insert 0x2: %x\n", myMap.insert(2, a));
result = myMap.insert(0xff, a);
a.a = 0x44;
result = myMap.insert(0xab, a);
result = myMap.insert(0xa, a);
printMap<T, Test>(&myMap);
printf("insert 0x5: %x\n", myMap.insert(5, a));
printf("erase 0xfe: %x\n", myMap.erase(0xfe));
printf("erase 0x2: %x\n", myMap.erase(0x2));
printMap<T, Test>(&myMap);
printf("erase 0xab: %x\n", myMap.erase(0xab));
printMap<T, Test>(&myMap);
printf("insert 0x5: %x\n", myMap.insert(5, a));
printMap<T, Test>(&myMap);
iter = myMap.begin();
++iter;
++iter;
++iter;
printf("iter: %i: %x,%x\n",iter.value->first, iter->a, iter->b);
myMap.erase(&iter);
printf("iter: %i: %x,%x\n",iter.value->first, iter->a, iter->b);
printMap<T, Test>(&myMap);
}
/*
void mapPrint() {
puts("** Map Print **");
FixedMap<uint16_t, Packet2> myMap(5);
Packet2 myPacket;
myPacket.element1.entry = 0x12345678;
myPacket.element2.entry[0][0] = 0xab;
myPacket.element2.entry[0][1] = 0xcd;
myPacket.element2.entry[0].size = 2;
myPacket.element2.entry.size = 1;
myPacket.element3.entry = 0xabcdef90;
myMap.insert(0x1234, myPacket);
uint8_t buffer[100];
uint32_t size = 0, i;
uint8_t *pointer = buffer;
printf("printsize: %i\n", myMap.getPrintSize());
SerializeAdapter<FixedMap<uint16_t, Packet2>>::print(&myMap, &pointer,
&size, 100, false);
printf("buffer(%i):", size);
for (i = 0; i < size; ++i) {
printf("%02x", buffer[i]);
}
printf("\n");
int32_t size2 = size;
pointer = buffer;
FixedMap<uint16_t, Packet2> myMap2(5);
ReturnValue_t result = SerializeAdapter<FixedMap<uint16_t, Packet2>>::read(
&myMap2, &pointer, &size2, false);
Packet2 *myPacket2 = myMap2.find(0x1234);
printf("Map (%i): Packet2: %x, Array (%i): Array (%i): %x, %x; %x\n",
myMap2.getSize(), myPacket2->element1.entry,
myPacket2->element2.entry.size, myPacket2->element2.entry[0].size,
myPacket2->element2.entry[0][0], myPacket2->element2.entry[0][1],
myPacket2->element3.entry);
}
void empty() {
puts("** Empty **");
ArrayList<uint32_t> list(0);
printf("%p %p\n", list.front(), list.back());
}
*/
int main(void) {
// arrayList();
// linkedList();
// allocatingList();
// complex();
map<uint32_t>();
//
// mapPrint();
// empty();
return 0;
}

9
contrib/CMakeLists.txt Normal file
View File

@ -0,0 +1,9 @@
target_include_directories(${LIB_FSFW_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
)
target_include_directories(${LIB_FSFW_NAME} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
)
add_subdirectory(fsfw_contrib)

View File

@ -0,0 +1,11 @@
if(FSFW_ADD_SGP4_PROPAGATOR)
target_sources(${LIB_FSFW_NAME} PRIVATE
sgp4/sgp4unit.cpp
)
target_include_directories(${LIB_FSFW_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/sgp4
)
target_include_directories(${LIB_FSFW_NAME} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/sgp4
)
endif()

View File

@ -1,137 +0,0 @@
#include <framework/subsystem/SubsystemBase.h>
#include <framework/controller/ControllerBase.h>
#include <framework/subsystem/SubsystemBase.h>
#include <framework/ipc/QueueFactory.h>
#include <framework/action/HasActionsIF.h>
ControllerBase::ControllerBase(uint32_t setObjectId, uint32_t parentId,
size_t commandQueueDepth) :
SystemObject(setObjectId), parentId(parentId), mode(MODE_OFF), submode(
SUBMODE_NONE), commandQueue(NULL), modeHelper(
this), healthHelper(this, setObjectId),hkSwitcher(this),executingTask(NULL) {
commandQueue = QueueFactory::instance()->createMessageQueue(commandQueueDepth);
}
ControllerBase::~ControllerBase() {
QueueFactory::instance()->deleteMessageQueue(commandQueue);
}
ReturnValue_t ControllerBase::initialize() {
ReturnValue_t result = SystemObject::initialize();
if (result != RETURN_OK) {
return result;
}
MessageQueueId_t parentQueue = 0;
if (parentId != 0) {
SubsystemBase *parent = objectManager->get<SubsystemBase>(parentId);
if (parent == NULL) {
return RETURN_FAILED;
}
parentQueue = parent->getCommandQueue();
parent->registerChild(getObjectId());
}
result = healthHelper.initialize(parentQueue);
if (result != RETURN_OK) {
return result;
}
result = modeHelper.initialize(parentQueue);
if (result != RETURN_OK) {
return result;
}
result = hkSwitcher.initialize();
if (result != RETURN_OK) {
return result;
}
return RETURN_OK;
}
MessageQueueId_t ControllerBase::getCommandQueue() const {
return commandQueue->getId();
}
void ControllerBase::handleQueue() {
CommandMessage command;
ReturnValue_t result;
for (result = commandQueue->receiveMessage(&command); result == RETURN_OK;
result = commandQueue->receiveMessage(&command)) {
result = modeHelper.handleModeCommand(&command);
if (result == RETURN_OK) {
continue;
}
result = healthHelper.handleHealthCommand(&command);
if (result == RETURN_OK) {
continue;
}
result = handleCommandMessage(&command);
if (result == RETURN_OK) {
continue;
}
command.setToUnknownCommand();
commandQueue->reply(&command);
}
}
void ControllerBase::startTransition(Mode_t mode, Submode_t submode) {
changeHK(this->mode, this->submode, false);
triggerEvent(CHANGING_MODE, mode, submode);
this->mode = mode;
this->submode = submode;
modeHelper.modeChanged(mode, submode);
modeChanged(mode, submode);
announceMode(false);
changeHK(this->mode, this->submode, true);
}
void ControllerBase::getMode(Mode_t* mode, Submode_t* submode) {
*mode = this->mode;
*submode = this->submode;
}
void ControllerBase::setToExternalControl() {
healthHelper.setHealth(EXTERNAL_CONTROL);
}
void ControllerBase::announceMode(bool recursive) {
triggerEvent(MODE_INFO, mode, submode);
}
ReturnValue_t ControllerBase::performOperation(uint8_t opCode) {
handleQueue();
hkSwitcher.performOperation();
performControlOperation();
return RETURN_OK;
}
void ControllerBase::modeChanged(Mode_t mode, Submode_t submode) {
return;
}
ReturnValue_t ControllerBase::setHealth(HealthState health) {
switch (health) {
case HEALTHY:
case EXTERNAL_CONTROL:
healthHelper.setHealth(health);
return RETURN_OK;
default:
return INVALID_HEALTH_STATE;
}
}
HasHealthIF::HealthState ControllerBase::getHealth() {
return healthHelper.getHealth();
}
void ControllerBase::setTaskIF(PeriodicTaskIF* task_){
executingTask = task_;
}
void ControllerBase::changeHK(Mode_t mode, Submode_t submode, bool enable) {
}

View File

@ -1,79 +0,0 @@
#ifndef CONTROLLERBASE_H_
#define CONTROLLERBASE_H_
#include <framework/health/HasHealthIF.h>
#include <framework/health/HealthHelper.h>
#include <framework/modes/HasModesIF.h>
#include <framework/modes/ModeHelper.h>
#include <framework/objectmanager/SystemObject.h>
#include <framework/tasks/ExecutableObjectIF.h>
#include <framework/datapool/HkSwitchHelper.h>
class ControllerBase: public HasModesIF,
public HasHealthIF,
public ExecutableObjectIF,
public SystemObject,
public HasReturnvaluesIF {
public:
static const Mode_t MODE_NORMAL = 2;
ControllerBase(uint32_t setObjectId, uint32_t parentId,
size_t commandQueueDepth = 3);
virtual ~ControllerBase();
ReturnValue_t initialize();
virtual MessageQueueId_t getCommandQueue() const;
virtual ReturnValue_t performOperation(uint8_t opCode);
virtual ReturnValue_t setHealth(HealthState health);
virtual HasHealthIF::HealthState getHealth();
/**
* Implementation of ExecutableObjectIF function
*
* Used to setup the reference of the task, that executes this component
* @param task_ Pointer to the taskIF of this task
*/
virtual void setTaskIF(PeriodicTaskIF* task_);
protected:
const uint32_t parentId;
Mode_t mode;
Submode_t submode;
MessageQueueIF* commandQueue;
ModeHelper modeHelper;
HealthHelper healthHelper;
HkSwitchHelper hkSwitcher;
/**
* Pointer to the task which executes this component, is invalid before setTaskIF was called.
*/
PeriodicTaskIF* executingTask;
void handleQueue();
virtual ReturnValue_t handleCommandMessage(CommandMessage *message) = 0;
virtual void performControlOperation() = 0;
virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode) = 0;
virtual void modeChanged(Mode_t mode, Submode_t submode);
virtual void startTransition(Mode_t mode, Submode_t submode);
virtual void getMode(Mode_t *mode, Submode_t *submode);
virtual void setToExternalControl();
virtual void announceMode(bool recursive);
virtual void changeHK(Mode_t mode, Submode_t submode, bool enable);
};
#endif /* CONTROLLERBASE_H_ */

View File

@ -1,14 +0,0 @@
#include <framework/datapool/ControllerSet.h>
ControllerSet::ControllerSet() {
}
ControllerSet::~ControllerSet() {
}
void ControllerSet::setInvalid() {
read();
setToDefault();
commit(PoolVariableIF::INVALID);
}

View File

@ -1,15 +0,0 @@
#ifndef CONTROLLERSET_H_
#define CONTROLLERSET_H_
#include <framework/datapoolglob/GlobalDataSet.h>
class ControllerSet :public GlobDataSet {
public:
ControllerSet();
virtual ~ControllerSet();
virtual void setToDefault() = 0;
void setInvalid();
};
#endif /* CONTROLLERSET_H_ */

View File

@ -1,168 +0,0 @@
#include <framework/datapool/DataSetBase.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
DataSetBase::DataSetBase(PoolVariableIF** registeredVariablesArray,
const size_t maxFillCount):
registeredVariables(registeredVariablesArray),
maxFillCount(maxFillCount) {
for (uint8_t count = 0; count < maxFillCount; count++) {
registeredVariables[count] = nullptr;
}
}
DataSetBase::~DataSetBase() {}
ReturnValue_t DataSetBase::registerVariable(
PoolVariableIF *variable) {
if (state != States::DATA_SET_UNINITIALISED) {
sif::error << "DataSet::registerVariable: "
"Call made in wrong position." << std::endl;
return DataSetIF::DATA_SET_UNINITIALISED;
}
if (variable == nullptr) {
sif::error << "DataSet::registerVariable: "
"Pool variable is nullptr." << std::endl;
return DataSetIF::POOL_VAR_NULL;
}
if (fillCount >= maxFillCount) {
sif::error << "DataSet::registerVariable: "
"DataSet is full." << std::endl;
return DataSetIF::DATA_SET_FULL;
}
registeredVariables[fillCount] = variable;
fillCount++;
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t DataSetBase::read(uint32_t lockTimeout) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
if (state == States::DATA_SET_UNINITIALISED) {
lockDataPool(lockTimeout);
for (uint16_t count = 0; count < fillCount; count++) {
result = readVariable(count);
if(result != RETURN_OK) {
break;
}
}
state = States::DATA_SET_WAS_READ;
unlockDataPool();
}
else {
sif::error << "DataSet::read(): "
"Call made in wrong position. Don't forget to commit"
" member datasets!" << std::endl;
result = SET_WAS_ALREADY_READ;
}
return result;
}
uint16_t DataSetBase::getFillCount() const {
return fillCount;
}
ReturnValue_t DataSetBase::readVariable(uint16_t count) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
// These checks are often performed by the respective
// variable implementation too, but I guess a double check does not hurt.
if (registeredVariables[count]->getReadWriteMode() !=
PoolVariableIF::VAR_WRITE and
registeredVariables[count]->getDataPoolId()
!= PoolVariableIF::NO_PARAMETER)
{
result = registeredVariables[count]->readWithoutLock();
if(result != HasReturnvaluesIF::RETURN_OK) {
result = INVALID_PARAMETER_DEFINITION;
}
}
return result;
}
ReturnValue_t DataSetBase::commit(uint32_t lockTimeout) {
if (state == States::DATA_SET_WAS_READ) {
handleAlreadyReadDatasetCommit(lockTimeout);
return HasReturnvaluesIF::RETURN_OK;
}
else {
return handleUnreadDatasetCommit(lockTimeout);
}
}
void DataSetBase::handleAlreadyReadDatasetCommit(uint32_t lockTimeout) {
lockDataPool(lockTimeout);
for (uint16_t count = 0; count < fillCount; count++) {
if (registeredVariables[count]->getReadWriteMode()
!= PoolVariableIF::VAR_READ
&& registeredVariables[count]->getDataPoolId()
!= PoolVariableIF::NO_PARAMETER) {
registeredVariables[count]->commitWithoutLock();
}
}
state = States::DATA_SET_UNINITIALISED;
unlockDataPool();
}
ReturnValue_t DataSetBase::handleUnreadDatasetCommit(uint32_t lockTimeout) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
lockDataPool(lockTimeout);
for (uint16_t count = 0; count < fillCount; count++) {
if (registeredVariables[count]->getReadWriteMode()
== PoolVariableIF::VAR_WRITE
&& registeredVariables[count]->getDataPoolId()
!= PoolVariableIF::NO_PARAMETER) {
registeredVariables[count]->commitWithoutLock();
} else if (registeredVariables[count]->getDataPoolId()
!= PoolVariableIF::NO_PARAMETER) {
if (result != COMMITING_WITHOUT_READING) {
sif::error << "DataSet::commit(): commit-without-read call made "
"with non write-only variable." << std::endl;
result = COMMITING_WITHOUT_READING;
}
}
}
state = States::DATA_SET_UNINITIALISED;
unlockDataPool();
return result;
}
ReturnValue_t DataSetBase::lockDataPool(uint32_t timeoutMs) {
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t DataSetBase::unlockDataPool() {
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t DataSetBase::serialize(uint8_t** buffer, size_t* size,
const size_t maxSize, SerializeIF::Endianness streamEndianness) const {
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
for (uint16_t count = 0; count < fillCount; count++) {
result = registeredVariables[count]->serialize(buffer, size, maxSize,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
}
return result;
}
ReturnValue_t DataSetBase::deSerialize(const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
for (uint16_t count = 0; count < fillCount; count++) {
result = registeredVariables[count]->deSerialize(buffer, size,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
}
return result;
}
size_t DataSetBase::getSerializedSize() const {
uint32_t size = 0;
for (uint16_t count = 0; count < fillCount; count++) {
size += registeredVariables[count]->getSerializedSize();
}
return size;
}

View File

@ -1,149 +0,0 @@
#ifndef FRAMEWORK_DATAPOOL_DATASETBASE_H_
#define FRAMEWORK_DATAPOOL_DATASETBASE_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/datapool/PoolVariableIF.h>
#include <framework/ipc/MutexIF.h>
/**
* @brief The DataSetBase class manages a set of locally checked out variables.
* @details
* This class manages a list, where a set of local variables (or pool variables)
* are registered. They are checked-out (i.e. their values are looked
* up and copied) with the read call. After the user finishes working with the
* pool variables, he can write back all variable values to the pool with
* the commit call. The data set manages locking and freeing the data pool,
* to ensure that all values are read and written back at once.
*
* An internal state manages usage of this class. Variables may only be
* registered before the read call is made, and the commit call only
* after the read call.
*
* If pool variables are writable and not committed until destruction
* of the set, the DataSet class automatically sets the valid flag in the
* data pool to invalid (without) changing the variable's value.
*
* The base class lockDataPool und unlockDataPool implementation are empty
* and should be implemented to protect the underlying pool type.
* @author Bastian Baetz
* @ingroup data_pool
*/
class DataSetBase: public DataSetIF,
public SerializeIF,
public HasReturnvaluesIF {
public:
/**
* @brief Creates an empty dataset. Use registerVariable or
* supply a pointer to this dataset to PoolVariable
* initializations to register pool variables.
*/
DataSetBase(PoolVariableIF** registeredVariablesArray,
const size_t maxFillCount);
virtual~ DataSetBase();
/**
* @brief The read call initializes reading out all registered variables.
* @details
* It iterates through the list of registered variables and calls all read()
* functions of the registered pool variables (which read out their values
* from the data pool) which are not write-only.
* In case of an error (e.g. a wrong data type, or an invalid data pool id),
* the operation is aborted and @c INVALID_PARAMETER_DEFINITION returned.
*
* The data pool is locked during the whole read operation and
* freed afterwards.The state changes to "was written" after this operation.
* @return
* - @c RETURN_OK if all variables were read successfully.
* - @c INVALID_PARAMETER_DEFINITION if PID, size or type of the
* requested variable is invalid.
* - @c SET_WAS_ALREADY_READ if read() is called twice without calling
* commit() in between
*/
virtual ReturnValue_t read(uint32_t lockTimeout =
MutexIF::BLOCKING) override;
/**
* @brief The commit call initializes writing back the registered variables.
* @details
* It iterates through the list of registered variables and calls the
* commit() method of the remaining registered variables (which write back
* their values to the pool).
*
* The data pool is locked during the whole commit operation and
* freed afterwards. The state changes to "was committed" after this operation.
*
* If the set does contain at least one variable which is not write-only
* commit() can only be called after read(). If the set only contains
* variables which are write only, commit() can be called without a
* preceding read() call.
* @return - @c RETURN_OK if all variables were read successfully.
* - @c COMMITING_WITHOUT_READING if set was not read yet and
* contains non write-only variables
*/
virtual ReturnValue_t commit(uint32_t lockTimeout =
MutexIF::BLOCKING) override;
/**
* Register the passed pool variable instance into the data set.
* @param variable
* @return
*/
virtual ReturnValue_t registerVariable( PoolVariableIF* variable) override;
/**
* Provides the means to lock the underlying data structure to ensure
* thread-safety. Default implementation is empty
* @return Always returns -@c RETURN_OK
*/
virtual ReturnValue_t lockDataPool(uint32_t timeoutMs =
MutexIF::BLOCKING) override;
/**
* Provides the means to unlock the underlying data structure to ensure
* thread-safety. Default implementation is empty
* @return Always returns -@c RETURN_OK
*/
virtual ReturnValue_t unlockDataPool() override;
virtual uint16_t getFillCount() const;
/* SerializeIF implementations */
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
const size_t maxSize,
SerializeIF::Endianness streamEndianness) const override;
virtual size_t getSerializedSize() const override;
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) override;
protected:
/**
* @brief The fill_count attribute ensures that the variables
* register in the correct array position and that the maximum
* number of variables is not exceeded.
*/
uint16_t fillCount = 0;
/**
* States of the seet.
*/
enum class States {
DATA_SET_UNINITIALISED, //!< DATA_SET_UNINITIALISED
DATA_SET_WAS_READ //!< DATA_SET_WAS_READ
};
/**
* @brief state manages the internal state of the data set,
* which is important e.g. for the behavior on destruction.
*/
States state = States::DATA_SET_UNINITIALISED;
/**
* @brief This array represents all pool variables registered in this set.
* Child classes can use a static or dynamic container to create
* an array of registered variables and assign the first entry here.
*/
PoolVariableIF** registeredVariables = nullptr;
const size_t maxFillCount = 0;
private:
ReturnValue_t readVariable(uint16_t count);
void handleAlreadyReadDatasetCommit(uint32_t lockTimeout);
ReturnValue_t handleUnreadDatasetCommit(uint32_t lockTimeout);
};
#endif /* FRAMEWORK_DATAPOOL_DATASETBASE_H_ */

View File

@ -1,188 +0,0 @@
/**
* @file PoolRawAccessHelper.cpp
*
* @date 22.12.2019
* @author R. Mueller
*/
#include <framework/datapool/PoolRawAccessHelper.h>
#include <framework/datapoolglob/GlobalDataSet.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <cmath>
#include <cstring>
PoolRawAccessHelper::PoolRawAccessHelper(uint32_t * poolIdBuffer_,
uint8_t numberOfParameters_):
poolIdBuffer(reinterpret_cast<uint8_t * >(poolIdBuffer_)),
numberOfParameters(numberOfParameters_), validBufferIndex(0),
validBufferIndexBit(1) {
}
PoolRawAccessHelper::~PoolRawAccessHelper() {
}
ReturnValue_t PoolRawAccessHelper::serialize(uint8_t **buffer, size_t *size,
const size_t max_size, SerializeIF::Endianness streamEndianness) {
SerializationArgs serializationArgs = {buffer, size, max_size,
streamEndianness};
ReturnValue_t result = RETURN_OK;
size_t remainingParametersSize = numberOfParameters * 4;
for(uint8_t count=0; count < numberOfParameters; count++) {
result = serializeCurrentPoolEntryIntoBuffer(serializationArgs,
&remainingParametersSize, false);
if(result != RETURN_OK) {
return result;
}
}
if(remainingParametersSize != 0) {
sif::debug << "PoolRawAccessHelper: "
"Remaining parameters size not 0 !" << std::endl;
result = RETURN_FAILED;
}
return result;
}
ReturnValue_t PoolRawAccessHelper::serializeWithValidityMask(uint8_t ** buffer,
size_t * size, const size_t max_size,
SerializeIF::Endianness streamEndianness) {
ReturnValue_t result = RETURN_OK;
SerializationArgs argStruct = {buffer, size, max_size, streamEndianness};
size_t remainingParametersSize = numberOfParameters * 4;
uint8_t validityMaskSize = ceil((float)numberOfParameters/8.0);
uint8_t validityMask[validityMaskSize];
memset(validityMask,0, validityMaskSize);
for(uint8_t count = 0; count < numberOfParameters; count++) {
result = serializeCurrentPoolEntryIntoBuffer(argStruct,
&remainingParametersSize,true,validityMask);
if (result != RETURN_OK) {
return result;
}
}
if(remainingParametersSize != 0) {
sif::debug << "PoolRawAccessHelper: Remaining "
"parameters size not 0 !" << std::endl;
result = RETURN_FAILED;
}
memcpy(*argStruct.buffer, validityMask, validityMaskSize);
*size += validityMaskSize;
validBufferIndex = 1;
validBufferIndexBit = 0;
return result;
}
ReturnValue_t PoolRawAccessHelper::serializeCurrentPoolEntryIntoBuffer(
SerializationArgs argStruct, size_t * remainingParameters,
bool withValidMask, uint8_t * validityMask) {
uint32_t currentPoolId;
// Deserialize current pool ID from pool ID buffer
ReturnValue_t result = SerializeAdapter::deSerialize(&currentPoolId,
&poolIdBuffer,remainingParameters, SerializeIF::Endianness::MACHINE);
if(result != RETURN_OK) {
sif::debug << std::hex << "PoolRawAccessHelper: Error deSeralizing "
"pool IDs" << std::dec << std::endl;
return result;
}
result = handlePoolEntrySerialization(currentPoolId, argStruct,
withValidMask, validityMask);
return result;
}
ReturnValue_t PoolRawAccessHelper::handlePoolEntrySerialization(
uint32_t currentPoolId,SerializationArgs argStruct, bool withValidMask,
uint8_t * validityMask) {
ReturnValue_t result = RETURN_FAILED;
uint8_t arrayPosition = 0;
uint8_t counter = 0;
bool poolEntrySerialized = false;
//debug << "Pool Raw Access Helper: Handling Pool ID: "
// << std::hex << currentPoolId << std::endl;
while(not poolEntrySerialized) {
if(counter > GlobDataSet::DATA_SET_MAX_SIZE) {
sif::error << "PoolRawAccessHelper: Config error, "
"max. number of possible data set variables exceeded"
<< std::endl;
return result;
}
counter ++;
GlobDataSet currentDataSet;
//debug << "Current array position: " << (int)arrayPosition << std::endl;
PoolRawAccess currentPoolRawAccess(currentPoolId, arrayPosition,
&currentDataSet, PoolVariableIF::VAR_READ);
result = currentDataSet.read();
if (result != RETURN_OK) {
sif::debug << std::hex << "PoolRawAccessHelper: Error reading raw "
"dataset with returncode 0x" << result << std::dec << std::endl;
return result;
}
result = checkRemainingSize(&currentPoolRawAccess, &poolEntrySerialized,
&arrayPosition);
if(result != RETURN_OK) {
sif::error << "Pool Raw Access Helper: Configuration Error at pool ID "
<< std::hex << currentPoolId
<< ". Size till end smaller than 0" << std::dec << std::endl;
return result;
}
// set valid mask bit if necessary
if(withValidMask) {
if(currentPoolRawAccess.isValid()) {
handleMaskModification(validityMask);
}
validBufferIndexBit ++;
}
result = currentDataSet.serialize(argStruct.buffer, argStruct.size,
argStruct.max_size, argStruct.streamEndianness);
if (result != RETURN_OK) {
sif::debug << "Pool Raw Access Helper: Error serializing pool data with "
"ID 0x" << std::hex << currentPoolId << " into send buffer "
"with return code " << result << std::dec << std::endl;
return result;
}
}
return result;
}
ReturnValue_t PoolRawAccessHelper::checkRemainingSize(PoolRawAccess*
currentPoolRawAccess, bool * isSerialized, uint8_t * arrayPosition) {
int8_t remainingSize = currentPoolRawAccess->getSizeTillEnd() -
currentPoolRawAccess->getSizeOfType();
if(remainingSize == 0) {
*isSerialized = true;
}
else if(remainingSize > 0) {
*arrayPosition += 1;
}
else {
return RETURN_FAILED;
}
return RETURN_OK;
}
void PoolRawAccessHelper::handleMaskModification(uint8_t * validityMask) {
validityMask[validBufferIndex] =
bitSetter(validityMask[validBufferIndex], validBufferIndexBit, true);
if(validBufferIndexBit == 8) {
validBufferIndex ++;
validBufferIndexBit = 1;
}
}
uint8_t PoolRawAccessHelper::bitSetter(uint8_t byte, uint8_t position,
bool value) {
if(position < 1 or position > 8) {
sif::debug << "Pool Raw Access: Bit setting invalid position" << std::endl;
return byte;
}
uint8_t shiftNumber = position + (6 - 2 * (position - 1));
byte |= 1UL << shiftNumber;
return byte;
}

View File

@ -1,111 +0,0 @@
/**
* @file PoolRawAccessHelper.h
*
* @date 22.12.2019
*/
#ifndef FRAMEWORK_DATAPOOL_POOLRAWACCESSHELPER_H_
#define FRAMEWORK_DATAPOOL_POOLRAWACCESSHELPER_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/datapoolglob/GlobalDataSet.h>
#include <framework/datapoolglob/PoolRawAccess.h>
/**
* @brief This helper function simplifies accessing data pool entries
* via PoolRawAccess
* @details Can be used for a Housekeeping Service
* like ECSS PUS Service 3 if the type of the datapool entries is unknown.
* The provided dataset can be serialized into a provided buffer automatically by
* providing a buffer of pool IDs
* @ingroup data_pool
*/
class PoolRawAccessHelper: public HasReturnvaluesIF {
public:
/**
* Call this constructor if a dataset needs to be serialized via
* Pool Raw Access
* @param dataSet_ This dataset will be used to perform thread-safe reading
* @param poolIdBuffer_ A buffer of uint32_t pool IDs
* @param numberOfParameters_ The number of parameters / pool IDs
*/
PoolRawAccessHelper(uint32_t * poolIdBuffer_, uint8_t numberOfParameters_);
virtual ~PoolRawAccessHelper();
/**
* Serialize the datapool entries derived from the pool ID buffer
* directly into a provided buffer
* @param [out] buffer
* @param [out] size Size of the serialized buffer
* @param max_size
* @param bigEndian
* @return @c RETURN_OK On success
* @c RETURN_FAILED on failure
*/
ReturnValue_t serialize(uint8_t ** buffer, size_t * size,
const size_t max_size, SerializeIF::Endianness streamEndianness);
/**
* Serializes data pool entries into provided buffer with the validity mask buffer
* at the end of the buffer. Every bit of the validity mask denotes
* the validity of a corresponding data pool entry from left to right.
* @param [out] buffer
* @param [out] size Size of the serialized buffer plus size
* of the validity mask
* @return @c RETURN_OK On success
* @c RETURN_FAILED on failure
*/
ReturnValue_t serializeWithValidityMask(uint8_t ** buffer, size_t * size,
const size_t max_size, SerializeIF::Endianness streamEndianness);
private:
// DataSet * dataSet;
const uint8_t * poolIdBuffer;
uint8_t numberOfParameters;
uint8_t validBufferIndex;
uint8_t validBufferIndexBit;
struct SerializationArgs {
uint8_t ** buffer;
size_t * size;
const size_t max_size;
SerializeIF::Endianness streamEndianness;
};
/**
* Helper function to serialize single pool entries
* @param pPoolIdBuffer
* @param buffer
* @param remainingParameters
* @param hkDataSize
* @param max_size
* @param bigEndian
* @param withValidMask Can be set optionally to set a
* provided validity mask
* @param validityMask Can be supplied and will be set if
* @c withValidMask is set to true
* @return
*/
ReturnValue_t serializeCurrentPoolEntryIntoBuffer(
SerializationArgs argStruct, size_t * remainingParameters,
bool withValidMask = false, uint8_t * validityMask = nullptr);
ReturnValue_t handlePoolEntrySerialization(uint32_t currentPoolId,
SerializationArgs argStruct, bool withValidMask = false,
uint8_t * validityMask = nullptr);
ReturnValue_t checkRemainingSize(PoolRawAccess * currentPoolRawAccess,
bool * isSerialized, uint8_t * arrayPosition);
void handleMaskModification(uint8_t * validityMask);
/**
* Sets specific bit of a byte
* @param byte
* @param position Position of byte to set from 1 to 8
* @param value Binary value to set
* @return
*/
uint8_t bitSetter(uint8_t byte, uint8_t position, bool value);
};
#endif /* FRAMEWORK_DATAPOOL_POOLRAWACCESSHELPER_H_ */

View File

@ -1,99 +0,0 @@
#ifndef FRAMEWORK_DATAPOOL_POOLVARIABLEIF_H_
#define FRAMEWORK_DATAPOOL_POOLVARIABLEIF_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/serialize/SerializeIF.h>
/**
* @brief This interface is used to control data pool
* variable representations.
* @details
* To securely handle data pool variables, all pool entries are locally
* managed by data pool variable access classes, which are called pool
* variables. To ensure a common state of a set of variables needed in a
* function, these local pool variables again are managed by other classes,
* like the DataSet classes. This interface provides unified access to
* local pool variables for such manager classes.
* @author Bastian Baetz
* @ingroup data_pool
*/
class PoolVariableIF : public SerializeIF {
friend class DataSetBase;
friend class GlobDataSet;
friend class LocalDataSet;
public:
static constexpr uint8_t INTERFACE_ID = CLASS_ID::POOL_VARIABLE_IF;
static constexpr ReturnValue_t INVALID_READ_WRITE_MODE = MAKE_RETURN_CODE(0xA0);
static constexpr bool VALID = 1;
static constexpr bool INVALID = 0;
static constexpr uint32_t NO_PARAMETER = 0xffffffff;
enum ReadWriteMode_t {
VAR_READ, VAR_WRITE, VAR_READ_WRITE
};
/**
* @brief This is an empty virtual destructor,
* as it is proposed for C++ interfaces.
*/
virtual ~PoolVariableIF() {}
/**
* @brief This method returns if the variable is write-only,
* read-write or read-only.
*/
virtual ReadWriteMode_t getReadWriteMode() const = 0;
/**
* @brief This operation shall return the data pool id of the variable.
*/
virtual uint32_t getDataPoolId() const = 0;
/**
* @brief With this call, the valid information of the
* variable is returned.
*/
virtual bool isValid() const = 0;
/**
* @brief With this call, the valid information of the variable is set.
*/
virtual void setValid(bool validity) = 0;
/**
* @brief The commit call shall write back a newly calculated local
* value to the data pool.
* @details
* It is assumed that these calls are implemented in a thread-safe manner!
*/
virtual ReturnValue_t commit(uint32_t lockTimeout) = 0;
/**
* @brief The read call shall read the value of this parameter from
* the data pool and store the content locally.
* @details
* It is assumbed that these calls are implemented in a thread-safe manner!
*/
virtual ReturnValue_t read(uint32_t lockTimeout) = 0;
protected:
/**
* @brief Same as commit with the difference that comitting will be
* performed without a lock
* @return
* This can be used if the lock protection is handled externally
* to avoid the overhead of locking and unlocking consecutively.
* Declared protected to avoid free public usage.
*/
virtual ReturnValue_t readWithoutLock() = 0;
/**
* @brief Same as commit with the difference that comitting will be
* performed without a lock
* @return
* This can be used if the lock protection is handled externally
* to avoid the overhead of locking and unlocking consecutively.
* Declared protected to avoid free public usage.
*/
virtual ReturnValue_t commitWithoutLock() = 0;
};
using pool_rwm_t = PoolVariableIF::ReadWriteMode_t;
#endif /* POOLVARIABLEIF_H_ */

View File

@ -1,300 +0,0 @@
#include <framework/datapoolglob/DataPoolAdmin.h>
#include <framework/datapoolglob/GlobalDataSet.h>
#include <framework/datapoolglob/GlobalDataPool.h>
#include <framework/datapoolglob/PoolRawAccess.h>
#include <framework/ipc/CommandMessage.h>
#include <framework/ipc/QueueFactory.h>
#include <framework/parameters/ParameterMessage.h>
DataPoolAdmin::DataPoolAdmin(object_id_t objectId) :
SystemObject(objectId), storage(NULL), commandQueue(NULL), memoryHelper(
this, NULL), actionHelper(this, NULL) {
commandQueue = QueueFactory::instance()->createMessageQueue();
}
DataPoolAdmin::~DataPoolAdmin() {
QueueFactory::instance()->deleteMessageQueue(commandQueue);
}
ReturnValue_t DataPoolAdmin::performOperation(uint8_t opCode) {
handleCommand();
return RETURN_OK;
}
MessageQueueId_t DataPoolAdmin::getCommandQueue() const {
return commandQueue->getId();
}
ReturnValue_t DataPoolAdmin::executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t* data, size_t size) {
if (actionId != SET_VALIDITY) {
return INVALID_ACTION_ID;
}
if (size != 5) {
return INVALID_PARAMETERS;
}
uint32_t address = (data[0] << 24) | (data[1] << 16) | (data[2] << 8)
| data[3];
uint8_t valid = data[4];
uint32_t poolId = glob::dataPool.PIDToDataPoolId(address);
GlobDataSet mySet;
PoolRawAccess variable(poolId, 0, &mySet, PoolVariableIF::VAR_READ_WRITE);
ReturnValue_t status = mySet.read();
if (status != RETURN_OK) {
return INVALID_ADDRESS;
}
if (valid != 0) {
variable.setValid(PoolVariableIF::VALID);
} else {
variable.setValid(PoolVariableIF::INVALID);
}
mySet.commit();
return EXECUTION_FINISHED;
}
ReturnValue_t DataPoolAdmin::getParameter(uint8_t domainId,
uint16_t parameterId, ParameterWrapper* parameterWrapper,
const ParameterWrapper* newValues, uint16_t startAtIndex) {
return HasReturnvaluesIF::RETURN_FAILED;
}
void DataPoolAdmin::handleCommand() {
CommandMessage command;
ReturnValue_t result = commandQueue->receiveMessage(&command);
if (result != RETURN_OK) {
return;
}
result = actionHelper.handleActionMessage(&command);
if (result == HasReturnvaluesIF::RETURN_OK) {
return;
}
result = handleParameterCommand(&command);
if (result == HasReturnvaluesIF::RETURN_OK) {
return;
}
result = memoryHelper.handleMemoryCommand(&command);
if (result != RETURN_OK) {
command.setToUnknownCommand();
commandQueue->reply(&command);
}
}
ReturnValue_t DataPoolAdmin::handleMemoryLoad(uint32_t address,
const uint8_t* data, size_t size, uint8_t** dataPointer) {
uint32_t poolId = glob::dataPool.PIDToDataPoolId(address);
uint8_t arrayIndex = glob::dataPool.PIDToArrayIndex(address);
GlobDataSet testSet;
PoolRawAccess varToGetSize(poolId, arrayIndex, &testSet,
PoolVariableIF::VAR_READ);
ReturnValue_t status = testSet.read();
if (status != RETURN_OK) {
return INVALID_ADDRESS;
}
uint8_t typeSize = varToGetSize.getSizeOfType();
if (size % typeSize != 0) {
return INVALID_SIZE;
}
if (size > varToGetSize.getSizeTillEnd()) {
return INVALID_SIZE;
}
const uint8_t* readPosition = data;
for (; size > 0; size -= typeSize) {
GlobDataSet rawSet;
PoolRawAccess variable(poolId, arrayIndex, &rawSet,
PoolVariableIF::VAR_READ_WRITE);
status = rawSet.read();
if (status == RETURN_OK) {
status = variable.setEntryFromBigEndian(readPosition, typeSize);
if (status == RETURN_OK) {
status = rawSet.commit();
}
}
arrayIndex += 1;
readPosition += typeSize;
}
return ACTIVITY_COMPLETED;
}
ReturnValue_t DataPoolAdmin::handleMemoryDump(uint32_t address, size_t size,
uint8_t** dataPointer, uint8_t* copyHere) {
uint32_t poolId = glob::dataPool.PIDToDataPoolId(address);
uint8_t arrayIndex = glob::dataPool.PIDToArrayIndex(address);
GlobDataSet testSet;
PoolRawAccess varToGetSize(poolId, arrayIndex, &testSet,
PoolVariableIF::VAR_READ);
ReturnValue_t status = testSet.read();
if (status != RETURN_OK) {
return INVALID_ADDRESS;
}
uint8_t typeSize = varToGetSize.getSizeOfType();
if (size > varToGetSize.getSizeTillEnd()) {
return INVALID_SIZE;
}
uint8_t* ptrToCopy = copyHere;
for (; size > 0; size -= typeSize) {
GlobDataSet rawSet;
PoolRawAccess variable(poolId, arrayIndex, &rawSet,
PoolVariableIF::VAR_READ);
status = rawSet.read();
if (status == RETURN_OK) {
size_t temp = 0;
status = variable.getEntryEndianSafe(ptrToCopy, &temp, size);
if (status != RETURN_OK) {
return RETURN_FAILED;
}
} else {
//Error reading parameter.
}
arrayIndex += 1;
ptrToCopy += typeSize;
}
return ACTIVITY_COMPLETED;
}
ReturnValue_t DataPoolAdmin::initialize() {
ReturnValue_t result = SystemObject::initialize();
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = memoryHelper.initialize(commandQueue);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
storage = objectManager->get<StorageManagerIF>(objects::IPC_STORE);
if (storage == NULL) {
return HasReturnvaluesIF::RETURN_FAILED;
}
result = actionHelper.initialize(commandQueue);
return result;
}
//mostly identical to ParameterHelper::handleParameterMessage()
ReturnValue_t DataPoolAdmin::handleParameterCommand(CommandMessage* command) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
switch (command->getCommand()) {
case ParameterMessage::CMD_PARAMETER_DUMP: {
uint8_t domain = HasParametersIF::getDomain(
ParameterMessage::getParameterId(command));
uint16_t parameterId = HasParametersIF::getMatrixId(
ParameterMessage::getParameterId(command));
DataPoolParameterWrapper wrapper;
result = wrapper.set(domain, parameterId);
if (result == HasReturnvaluesIF::RETURN_OK) {
result = sendParameter(command->getSender(),
ParameterMessage::getParameterId(command), &wrapper);
}
}
break;
case ParameterMessage::CMD_PARAMETER_LOAD: {
uint8_t domain = HasParametersIF::getDomain(
ParameterMessage::getParameterId(command));
uint16_t parameterId = HasParametersIF::getMatrixId(
ParameterMessage::getParameterId(command));
uint8_t index = HasParametersIF::getIndex(
ParameterMessage::getParameterId(command));
const uint8_t *storedStream;
size_t storedStreamSize;
result = storage->getData(ParameterMessage::getStoreId(command),
&storedStream, &storedStreamSize);
if (result != HasReturnvaluesIF::RETURN_OK) {
break;
}
ParameterWrapper streamWrapper;
result = streamWrapper.set(storedStream, storedStreamSize);
if (result != HasReturnvaluesIF::RETURN_OK) {
storage->deleteData(ParameterMessage::getStoreId(command));
break;
}
DataPoolParameterWrapper poolWrapper;
result = poolWrapper.set(domain, parameterId);
if (result != HasReturnvaluesIF::RETURN_OK) {
storage->deleteData(ParameterMessage::getStoreId(command));
break;
}
result = poolWrapper.copyFrom(&streamWrapper, index);
storage->deleteData(ParameterMessage::getStoreId(command));
if (result == HasReturnvaluesIF::RETURN_OK) {
result = sendParameter(command->getSender(),
ParameterMessage::getParameterId(command), &poolWrapper);
}
}
break;
default:
return HasReturnvaluesIF::RETURN_FAILED;
}
if (result != HasReturnvaluesIF::RETURN_OK) {
rejectCommand(command->getSender(), result, command->getCommand());
}
return HasReturnvaluesIF::RETURN_OK;
}
//identical to ParameterHelper::sendParameter()
ReturnValue_t DataPoolAdmin::sendParameter(MessageQueueId_t to, uint32_t id,
const DataPoolParameterWrapper* wrapper) {
size_t serializedSize = wrapper->getSerializedSize();
uint8_t *storeElement;
store_address_t address;
ReturnValue_t result = storage->getFreeElement(&address, serializedSize,
&storeElement);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
size_t storeElementSize = 0;
result = wrapper->serialize(&storeElement, &storeElementSize,
serializedSize, SerializeIF::Endianness::BIG);
if (result != HasReturnvaluesIF::RETURN_OK) {
storage->deleteData(address);
return result;
}
CommandMessage reply;
ParameterMessage::setParameterDumpReply(&reply, id, address);
commandQueue->sendMessage(to, &reply);
return HasReturnvaluesIF::RETURN_OK;
}
//identical to ParameterHelper::rejectCommand()
void DataPoolAdmin::rejectCommand(MessageQueueId_t to, ReturnValue_t reason,
Command_t initialCommand) {
CommandMessage reply;
reply.setReplyRejected(reason, initialCommand);
commandQueue->sendMessage(to, &reply);
}

View File

@ -1,59 +0,0 @@
#ifndef DATAPOOLADMIN_H_
#define DATAPOOLADMIN_H_
#include <framework/objectmanager/SystemObject.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/tasks/ExecutableObjectIF.h>
#include <framework/action/HasActionsIF.h>
#include <framework/ipc/MessageQueueIF.h>
#include <framework/parameters/ReceivesParameterMessagesIF.h>
#include <framework/memory/MemoryHelper.h>
#include <framework/action/SimpleActionHelper.h>
#include <framework/datapoolglob/DataPoolParameterWrapper.h>
class DataPoolAdmin: public HasActionsIF,
public ExecutableObjectIF,
public AcceptsMemoryMessagesIF,
public HasReturnvaluesIF,
public ReceivesParameterMessagesIF,
public SystemObject {
public:
static const ActionId_t SET_VALIDITY = 1;
DataPoolAdmin(object_id_t objectId);
~DataPoolAdmin();
ReturnValue_t performOperation(uint8_t opCode);
MessageQueueId_t getCommandQueue() const;
ReturnValue_t handleMemoryLoad(uint32_t address, const uint8_t* data,
size_t size, uint8_t** dataPointer);
ReturnValue_t handleMemoryDump(uint32_t address, size_t size,
uint8_t** dataPointer, uint8_t* copyHere);
ReturnValue_t executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t* data, size_t size);
//not implemented as ParameterHelper is no used
ReturnValue_t getParameter(uint8_t domainId, uint16_t parameterId,
ParameterWrapper *parameterWrapper,
const ParameterWrapper *newValues, uint16_t startAtIndex);
ReturnValue_t initialize();
private:
StorageManagerIF *storage;
MessageQueueIF* commandQueue;
MemoryHelper memoryHelper;
SimpleActionHelper actionHelper;
void handleCommand();
ReturnValue_t handleParameterCommand(CommandMessage *command);
ReturnValue_t sendParameter(MessageQueueId_t to, uint32_t id,
const DataPoolParameterWrapper* wrapper);
void rejectCommand(MessageQueueId_t to, ReturnValue_t reason,
Command_t initialCommand);
};
#endif /* DATAPOOLADMIN_H_ */

View File

@ -1,179 +0,0 @@
#include <framework/datapoolglob/GlobalDataSet.h>
#include <framework/datapoolglob/DataPoolParameterWrapper.h>
#include <framework/datapoolglob/PoolRawAccess.h>
#include <framework/parameters/HasParametersIF.h>
DataPoolParameterWrapper::DataPoolParameterWrapper() :
type(Type::UNKNOWN_TYPE), rows(0), columns(0), poolId(
PoolVariableIF::NO_PARAMETER) {
}
DataPoolParameterWrapper::~DataPoolParameterWrapper() {
}
ReturnValue_t DataPoolParameterWrapper::set(uint8_t domainId,
uint16_t parameterId) {
poolId = (domainId << 16) + parameterId;
GlobDataSet mySet;
PoolRawAccess raw(poolId, 0, &mySet, PoolVariableIF::VAR_READ);
ReturnValue_t status = mySet.read();
if (status != HasReturnvaluesIF::RETURN_OK) {
//should only fail for invalid pool id
return HasParametersIF::INVALID_MATRIX_ID;
}
type = raw.getType();
rows = raw.getArraySize();
columns = 1;
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t DataPoolParameterWrapper::serialize(uint8_t** buffer,
size_t* size, size_t maxSize, Endianness streamEndianness) const {
ReturnValue_t result;
result = SerializeAdapter::serialize(&type, buffer, size, maxSize,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = SerializeAdapter::serialize(&columns, buffer, size,
maxSize, streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = SerializeAdapter::serialize(&rows, buffer, size, maxSize,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
for (uint8_t index = 0; index < rows; index++){
GlobDataSet mySet;
PoolRawAccess raw(poolId, index, &mySet,PoolVariableIF::VAR_READ);
mySet.read();
result = raw.serialize(buffer,size,maxSize,streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK){
return result;
}
}
return HasReturnvaluesIF::RETURN_OK;
}
//same as ParameterWrapper
size_t DataPoolParameterWrapper::getSerializedSize() const {
size_t serializedSize = 0;
serializedSize += type.getSerializedSize();
serializedSize += sizeof(rows);
serializedSize += sizeof(columns);
serializedSize += rows * columns * type.getSize();
return serializedSize;
}
ReturnValue_t DataPoolParameterWrapper::deSerialize(const uint8_t** buffer,
size_t* size, Endianness streamEndianness) {
return HasReturnvaluesIF::RETURN_FAILED;
}
template<typename T>
ReturnValue_t DataPoolParameterWrapper::deSerializeData(uint8_t startingRow,
uint8_t startingColumn, const void* from, uint8_t fromRows) {
//treat from as a continuous Stream as we copy all of it
const uint8_t *fromAsStream = (const uint8_t *) from;
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
for (uint8_t fromRow = 0; fromRow < fromRows; fromRow++) {
GlobDataSet mySet;
PoolRawAccess raw(poolId, startingRow + fromRow, &mySet,
PoolVariableIF::VAR_READ_WRITE);
mySet.read();
result = raw.setEntryFromBigEndian(fromAsStream, sizeof(T));
fromAsStream += sizeof(T);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
mySet.commit();
}
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t DataPoolParameterWrapper::copyFrom(const ParameterWrapper* from,
uint16_t startWritingAtIndex) {
if (poolId == PoolVariableIF::NO_PARAMETER) {
return ParameterWrapper::NOT_SET;
}
if (type != from->type) {
return ParameterWrapper::DATATYPE_MISSMATCH;
}
//check if from fits into this
uint8_t startingRow = startWritingAtIndex / columns;
uint8_t startingColumn = startWritingAtIndex % columns;
if ((from->rows > (rows - startingRow))
|| (from->columns > (columns - startingColumn))) {
return ParameterWrapper::TOO_BIG;
}
ReturnValue_t result;
//copy data
if (from->pointsToStream) {
switch (type) {
case Type::UINT8_T:
result = deSerializeData<uint8_t>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::INT8_T:
result = deSerializeData<int8_t>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::UINT16_T:
result = deSerializeData<uint16_t>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::INT16_T:
result = deSerializeData<int16_t>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::UINT32_T:
result = deSerializeData<uint32_t>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::INT32_T:
result = deSerializeData<int32_t>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::FLOAT:
result = deSerializeData<float>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
case Type::DOUBLE:
result = deSerializeData<double>(startingRow, startingColumn,
from->readonlyData, from->rows);
break;
default:
result = ParameterWrapper::UNKNOW_DATATYPE;
break;
}
} else {
//not supported
return HasReturnvaluesIF::RETURN_FAILED;
}
return result;
}

View File

@ -1,38 +0,0 @@
#ifndef DATAPOOLPARAMETERWRAPPER_H_
#define DATAPOOLPARAMETERWRAPPER_H_
#include <framework/globalfunctions/Type.h>
#include <framework/parameters/ParameterWrapper.h>
class DataPoolParameterWrapper: public SerializeIF {
public:
DataPoolParameterWrapper();
virtual ~DataPoolParameterWrapper();
ReturnValue_t set(uint8_t domainId, uint16_t parameterId);
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
size_t maxSize, Endianness streamEndianness) const override;
virtual size_t getSerializedSize() const override;
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness) override;
ReturnValue_t copyFrom(const ParameterWrapper *from,
uint16_t startWritingAtIndex);
private:
Type type;
uint8_t rows;
uint8_t columns;
uint32_t poolId;
template<typename T>
ReturnValue_t deSerializeData(uint8_t startingRow, uint8_t startingColumn,
const void *from, uint8_t fromRows);
};
#endif /* DATAPOOLPARAMETERWRAPPER_H_ */

View File

@ -1,132 +0,0 @@
#include <framework/datapoolglob/GlobalDataPool.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <framework/ipc/MutexFactory.h>
GlobalDataPool::GlobalDataPool(
void(*initFunction)(GlobPoolMap* pool_map)) {
mutex = MutexFactory::instance()->createMutex();
if (initFunction != NULL ) {
initFunction( &this->globDataPool );
}
}
GlobalDataPool::~GlobalDataPool() {
MutexFactory::instance()->deleteMutex(mutex);
for(GlobPoolMapIter it = this->globDataPool.begin();
it != this->globDataPool.end(); ++it )
{
delete it->second;
}
}
// The function checks PID, type and array length before returning a copy of
// the PoolEntry. In failure case, it returns a temp-Entry with size 0 and NULL-ptr.
template <typename T> PoolEntry<T>* GlobalDataPool::getData( uint32_t data_pool_id,
uint8_t sizeOrPosition ) {
GlobPoolMapIter it = this->globDataPool.find( data_pool_id );
if ( it != this->globDataPool.end() ) {
PoolEntry<T>* entry = dynamic_cast< PoolEntry<T>* >( it->second );
if (entry != nullptr ) {
if ( sizeOrPosition <= entry->length ) {
return entry;
}
}
}
return nullptr;
}
PoolEntryIF* GlobalDataPool::getRawData( uint32_t data_pool_id ) {
GlobPoolMapIter it = this->globDataPool.find( data_pool_id );
if ( it != this->globDataPool.end() ) {
return it->second;
} else {
return nullptr;
}
}
ReturnValue_t GlobalDataPool::unlockDataPool() {
ReturnValue_t status = mutex->unlockMutex();
if(status != RETURN_OK) {
sif::error << "DataPool::DataPool: unlock of mutex failed with"
" error code: " << status << std::endl;
}
return status;
}
ReturnValue_t GlobalDataPool::lockDataPool(uint32_t timeoutMs) {
ReturnValue_t status = mutex->lockMutex(timeoutMs);
if(status != RETURN_OK) {
sif::error << "DataPool::DataPool: lock of mutex failed "
"with error code: " << status << std::endl;
}
return status;
}
void GlobalDataPool::print() {
sif::debug << "DataPool contains: " << std::endl;
std::map<uint32_t, PoolEntryIF*>::iterator dataPoolIt;
dataPoolIt = this->globDataPool.begin();
while( dataPoolIt != this->globDataPool.end() ) {
sif::debug << std::hex << dataPoolIt->first << std::dec << " |";
dataPoolIt->second->print();
dataPoolIt++;
}
}
uint32_t GlobalDataPool::PIDToDataPoolId(uint32_t parameter_id) {
return (parameter_id >> 8) & 0x00FFFFFF;
}
uint8_t GlobalDataPool::PIDToArrayIndex(uint32_t parameter_id) {
return (parameter_id & 0x000000FF);
}
uint32_t GlobalDataPool::poolIdAndPositionToPid(uint32_t poolId, uint8_t index) {
return (poolId << 8) + index;
}
//SHOULDDO: Do we need a mutex lock here... I don't think so,
//as we only check static const values of elements in a list that do not change.
//there is no guarantee in the standard, but it seems to me that the implementation is safe -UM
ReturnValue_t GlobalDataPool::getType(uint32_t parameter_id, Type* type) {
GlobPoolMapIter it = this->globDataPool.find( PIDToDataPoolId(parameter_id));
if ( it != this->globDataPool.end() ) {
*type = it->second->getType();
return RETURN_OK;
} else {
*type = Type::UNKNOWN_TYPE;
return RETURN_FAILED;
}
}
bool GlobalDataPool::exists(uint32_t parameterId) {
uint32_t poolId = PIDToDataPoolId(parameterId);
uint32_t index = PIDToArrayIndex(parameterId);
GlobPoolMapIter it = this->globDataPool.find( poolId );
if (it != globDataPool.end()) {
if (it->second->getSize() >= index) {
return true;
}
}
return false;
}
template PoolEntry<uint8_t>* GlobalDataPool::getData<uint8_t>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<uint16_t>* GlobalDataPool::getData<uint16_t>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<uint32_t>* GlobalDataPool::getData<uint32_t>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<uint64_t>* GlobalDataPool::getData<uint64_t>(
uint32_t data_pool_id, uint8_t size);
template PoolEntry<int8_t>* GlobalDataPool::getData<int8_t>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<int16_t>* GlobalDataPool::getData<int16_t>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<int32_t>* GlobalDataPool::getData<int32_t>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<float>* GlobalDataPool::getData<float>(
uint32_t data_pool_id, uint8_t size );
template PoolEntry<double>* GlobalDataPool::getData<double>(
uint32_t data_pool_id, uint8_t size);

View File

@ -1,149 +0,0 @@
#ifndef GLOBALDATAPOOL_H_
#define GLOBALDATAPOOL_H_
#include <framework/datapool/PoolEntry.h>
#include <framework/globalfunctions/Type.h>
#include <framework/ipc/MutexIF.h>
#include <map>
/**
* @defgroup data_pool Global data pool
* This is the group, where all classes associated with global
* data pool handling belong to.
* This includes classes to access Data Pool variables.
*/
/**
* Typedefs for the global pool representations
*/
using GlobPoolMap = std::map<uint32_t, PoolEntryIF*>;
using GlobPoolMapIter = GlobPoolMap::iterator;
/**
* @brief This class represents the OBSW global data-pool.
*
* @details
* All variables are registered and space is allocated in an initialization
* function, which is passed do the constructor. Space for the variables is
* allocated on the heap (with a new call).
*
* The data is found by a data pool id, which uniquely represents a variable.
* Data pool variables should be used with a blackboard logic in mind,
* which means read data is valid (if flagged so),
* but not necessarily up-to-date.
*
* Variables are either single values or arrays.
* @author Bastian Baetz
* @ingroup data_pool
*/
class GlobalDataPool : public HasReturnvaluesIF {
private:
/**
* @brief This is the actual data pool itself.
* @details It is represented by a map with the data pool id as index
* and a pointer to a single PoolEntry as value.
*/
GlobPoolMap globDataPool;
/**
* @brief The mutex is created in the constructor and makes
* access mutual exclusive.
* @details Locking and unlocking the pool is only done by the DataSet class.
*/
MutexIF* mutex;
public:
/**
* @brief In the classes constructor,
* the passed initialization function is called.
* @details
* To enable filling the pool, a pointer to the map is passed,
* allowing direct access to the pool's content.
* On runtime, adding or removing variables is forbidden.
*/
GlobalDataPool( void ( *initFunction )( GlobPoolMap* pool_map ) );
/**
* @brief The destructor iterates through the data_pool map and
* calls all entries destructors to clean up the heap.
*/
~GlobalDataPool();
/**
* @brief This is the default call to access the pool.
* @details
* A pointer to the PoolEntry object is returned.
* The call checks data pool id, type and array size.
* Returns NULL in case of failure.
* @param data_pool_id The data pool id to search.
* @param sizeOrPosition The array size (not byte size!) of the pool entry,
* or the position the user wants to read.
* If smaller than the entry size, everything's ok.
*/
template <typename T> PoolEntry<T>* getData( uint32_t data_pool_id,
uint8_t sizeOrPosition );
/**
* @brief An alternative call to get a data pool entry in case the type is not implicitly known
* (i.e. in Housekeeping Telemetry).
* @details It returns a basic interface and does NOT perform
* a size check. The caller has to assure he does not copy too much data.
* Returns NULL in case the entry is not found.
* @param data_pool_id The data pool id to search.
*/
PoolEntryIF* getRawData( uint32_t data_pool_id );
/**
* @brief This is a small helper function to facilitate locking the global data pool.
* @details It fetches the pool's mutex id and tries to acquire the mutex.
*/
ReturnValue_t lockDataPool(uint32_t timeoutMs = MutexIF::BLOCKING);
/**
* @brief This is a small helper function to facilitate unlocking the global data pool.
* @details It fetches the pool's mutex id and tries to free the mutex.
*/
ReturnValue_t unlockDataPool();
/**
* @brief The print call is a simple debug method.
* @details It prints the current content of the data pool.
* It iterates through the data_pool map and calls each entry's print() method.
*/
void print();
/**
* Extracts the data pool id from a SCOS 2000 PID.
* @param parameter_id The passed Parameter ID.
* @return The data pool id as used within the OBSW.
*/
static uint32_t PIDToDataPoolId( uint32_t parameter_id );
/**
* Extracts an array index out of a SCOS 2000 PID.
* @param parameter_id The passed Parameter ID.
* @return The index of the corresponding data pool entry.
*/
static uint8_t PIDToArrayIndex( uint32_t parameter_id );
/**
* Retransforms a data pool id and an array index to a SCOS 2000 PID.
*/
static uint32_t poolIdAndPositionToPid( uint32_t poolId, uint8_t index );
/**
* Method to return the type of a pool variable.
* @param parameter_id A parameterID (not pool id) of a DP member.
* @param type Returns the type or TYPE::UNKNOWN_TYPE
* @return RETURN_OK if parameter exists, RETURN_FAILED else.
*/
ReturnValue_t getType( uint32_t parameter_id, Type* type );
/**
* Method to check if a PID exists. Does not lock, as there's no
* possibility to alter the list that is checked during run-time.
* @param parameterId The PID (not pool id!) of a parameter.
* @return true if exists, false else.
*/
bool exists(uint32_t parameterId);
};
//We assume someone globally instantiates a DataPool.
namespace glob {
extern GlobalDataPool dataPool;
}
#endif /* DATAPOOL_H_ */

View File

@ -1,44 +0,0 @@
#include <framework/datapoolglob/GlobalDataPool.h>
#include <framework/datapoolglob/GlobalDataSet.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
GlobDataSet::GlobDataSet(): DataSetBase(
reinterpret_cast<PoolVariableIF**>(&registeredVariables),
DATA_SET_MAX_SIZE) {}
// Don't do anything with your variables, they are dead already!
// (Destructor is already called)
GlobDataSet::~GlobDataSet() {}
ReturnValue_t GlobDataSet::commit(bool valid, uint32_t lockTimeout) {
setEntriesValid(valid);
setSetValid(valid);
return commit(lockTimeout);
}
ReturnValue_t GlobDataSet::commit(uint32_t lockTimeout) {
return DataSetBase::commit(lockTimeout);
}
ReturnValue_t GlobDataSet::unlockDataPool() {
return glob::dataPool.unlockDataPool();
}
ReturnValue_t GlobDataSet::lockDataPool(uint32_t timeoutMs) {
return glob::dataPool.lockDataPool(timeoutMs);
}
void GlobDataSet::setEntriesValid(bool valid) {
for (uint16_t count = 0; count < fillCount; count++) {
if (registeredVariables[count]->getReadWriteMode()
!= PoolVariableIF::VAR_READ) {
registeredVariables[count]->setValid(valid);
}
}
}
void GlobDataSet::setSetValid(bool valid) {
this->valid = valid;
}

View File

@ -1,96 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLGLOB_DATASET_H_
#define FRAMEWORK_DATAPOOLGLOB_DATASET_H_
#include <framework/datapool/DataSetBase.h>
/**
* @brief The DataSet class manages a set of locally checked out variables
* for the global data pool.
* @details
* This class uses the read-commit() semantic provided by the DataSetBase class.
* It extends the base class by using the global data pool,
* having a valid state and implementing lock und unlock calls for the global
* datapool.
*
* For more information on how this class works, see the DataSetBase
* documentation.
* @author Bastian Baetz
* @ingroup data_pool
*/
class GlobDataSet: public DataSetBase {
public:
/**
* @brief Creates an empty GlobDataSet. Use registerVariable or
* supply a pointer to this dataset to PoolVariable
* initializations to register pool variables.
*/
GlobDataSet();
/**
* @brief The destructor automatically manages writing the valid
* information of variables.
* @details
* In case the data set was read out, but not committed(indicated by state),
* the destructor parses all variables that are still registered to the set.
* For each, the valid flag in the data pool is set to "invalid".
*/
~GlobDataSet();
/**
* Variant of method above which sets validity of all elements of the set.
* @param valid Validity information from PoolVariableIF.
* @return - @c RETURN_OK if all variables were read successfully.
* - @c COMMITING_WITHOUT_READING if set was not read yet and
* contains non write-only variables
*/
ReturnValue_t commit(bool valid, uint32_t lockTimeout = MutexIF::BLOCKING);
ReturnValue_t commit(uint32_t lockTimeout = MutexIF::BLOCKING) override;
/**
* Set all entries
* @param valid
*/
void setSetValid(bool valid);
/**
* Set the valid information of all variables contained in the set which
* are not read-only
*
* @param valid Validity information from PoolVariableIF.
*/
void setEntriesValid(bool valid);
//!< This definition sets the maximum number of variables to
//! register in one DataSet.
static const uint8_t DATA_SET_MAX_SIZE = 63;
private:
/**
* If the valid state of a dataset is always relevant to the whole
* data set we can use this flag.
*/
bool valid = false;
/**
* @brief This is a small helper function to facilitate locking
* the global data pool.
* @details
* It makes use of the lockDataPool method offered by the DataPool class.
*/
ReturnValue_t lockDataPool(uint32_t timeoutMs) override;
/**
* @brief This is a small helper function to facilitate
* unlocking the global data pool
* @details
* It makes use of the freeDataPoolLock method offered by the DataPool class.
*/
ReturnValue_t unlockDataPool() override;
void handleAlreadyReadDatasetCommit();
ReturnValue_t handleUnreadDatasetCommit();
PoolVariableIF* registeredVariables[DATA_SET_MAX_SIZE];
};
#endif /* FRAMEWORK_DATAPOOLGLOB_DATASET_H_ */

View File

@ -1,213 +0,0 @@
#ifndef GLOBALPOOLVARIABLE_H_
#define GLOBALPOOLVARIABLE_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/datapoolglob/GlobalDataPool.h>
#include <framework/datapool/PoolVariableIF.h>
#include <framework/datapool/PoolEntry.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
template<typename T, uint8_t n_var> class PoolVarList;
/**
* @brief This is the access class for non-array data pool entries.
*
* @details
* To ensure safe usage of the data pool, operation is not done directly
* on the data pool entries, but on local copies. This class provides simple
* type-safe access to single data pool entries (i.e. entries with length = 1).
* The class can be instantiated as read-write and read only.
* It provides a commit-and-roll-back semantic, which means that the
* variable's value in the data pool is not changed until the
* commit call is executed.
* @tparam T The template parameter sets the type of the variable.
* Currently, all plain data types are supported, but in principle
* any type is possible.
* @ingroup data_pool
*/
template<typename T>
class GlobPoolVar: public PoolVariableIF {
template<typename U, uint8_t n_var> friend class PoolVarList;
static_assert(not std::is_same<T, bool>::value,
"Do not use boolean for the PoolEntry type, use uint8_t instead!"
"There is no boolean type in CCSDS.");
public:
/**
* @brief In the constructor, the variable can register itself in a
* DataSet (if nullptr is not passed).
* @details
* It DOES NOT fetch the current value from the data pool, but
* sets the value attribute to default (0).
* The value is fetched within the read() operation.
* @param set_id This is the id in the global data pool
* this instance of the access class corresponds to.
* @param dataSet The data set in which the variable shall register
* itself. If NULL, the variable is not registered.
* @param setWritable If this flag is set to true, changes in the value
* attribute can be written back to the data pool, otherwise not.
*/
GlobPoolVar(uint32_t set_id, DataSetIF* dataSet,
ReadWriteMode_t setReadWriteMode);
/**
* @brief This is the local copy of the data pool entry.
* @details The user can work on this attribute
* just like he would on a simple local variable.
*/
T value = 0;
/**
* @brief Copy ctor to copy classes containing Pool Variables.
* (Robin): This only copies member variables, which is done
* by the default copy ctor. maybe we can ommit this ctor?
*/
GlobPoolVar(const GlobPoolVar& rhs);
/**
* @brief The classes destructor is empty.
* @details If commit() was not called, the local value is
* discarded and not written back to the data pool.
*/
~GlobPoolVar() {}
/**
* @brief This is a call to read the value from the global data pool.
* @details
* When executed, this operation tries to fetch the pool entry with matching
* data pool id from the global data pool and copies the value and the valid
* information to its local attributes. In case of a failure (wrong type or
* pool id not found), the variable is set to zero and invalid.
* The read call is protected with a lock.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t read(uint32_t lockTimeout) override;
/**
* @brief The commit call writes back the variable's value to the data pool.
* @details
* It checks type and size, as well as if the variable is writable. If so,
* the value is copied and the valid flag is automatically set to "valid".
* The operation does NOT provide any mutual exclusive protection by itself.
* The commit call is protected with a lock.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t commit(uint32_t lockTimeout) override;
protected:
/**
* @brief Like #read, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t readWithoutLock() override;
/**
* @brief Like #commit, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t commitWithoutLock() override;
/**
* @brief To access the correct data pool entry on read and commit calls,
* the data pool is stored.
*/
uint32_t dataPoolId;
/**
* @brief The valid information as it was stored in the data pool is
* copied to this attribute.
*/
uint8_t valid;
/**
* @brief The information whether the class is read-write or read-only
* is stored here.
*/
pool_rwm_t readWriteMode;
/**
* Empty ctor for List initialization
*/
GlobPoolVar();
public:
/**
* \brief This operation returns the data pool id of the variable.
*/
uint32_t getDataPoolId() const override;
/**
* This method returns if the variable is write-only, read-write or read-only.
*/
ReadWriteMode_t getReadWriteMode() const override;
/**
* This operation sets the data pool id of the variable.
* The method is necessary to set id's of data pool member variables with bad initialization.
*/
void setDataPoolId(uint32_t poolId);
/**
* \brief With this call, the valid information of the variable is returned.
*/
bool isValid() const override;
uint8_t getValid();
void setValid(bool valid) override;
operator T() {
return value;
}
operator T() const {
return value;
}
GlobPoolVar<T> &operator=(T newValue) {
value = newValue;
return *this;
}
GlobPoolVar<T> &operator=(GlobPoolVar<T> newPoolVariable) {
value = newPoolVariable.value;
return *this;
}
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
const size_t max_size,
SerializeIF::Endianness streamEndianness) const override {
return SerializeAdapter::serialize(&value, buffer, size, max_size,
streamEndianness);
}
virtual size_t getSerializedSize() const {
return SerializeAdapter::getSerializedSize(&value);
}
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) {
return SerializeAdapter::deSerialize(&value, buffer, size,
streamEndianness);
}
};
#include <framework/datapoolglob/GlobalPoolVariable.tpp>
typedef GlobPoolVar<uint8_t> gp_bool_t;
typedef GlobPoolVar<uint8_t> gp_uint8_t;
typedef GlobPoolVar<uint16_t> gp_uint16_t;
typedef GlobPoolVar<uint32_t> gp_uint32_t;
typedef GlobPoolVar<int8_t> gp_int8_t;
typedef GlobPoolVar<int16_t> gp_int16_t;
typedef GlobPoolVar<int32_t> gp_int32_t;
typedef GlobPoolVar<float> gp_float_t;
typedef GlobPoolVar<double> gp_double_t;
#endif /* POOLVARIABLE_H_ */

View File

@ -1,117 +0,0 @@
#ifndef GLOBALPOOLVARIABLE_TPP_
#define GLOBALPOOLVARIABLE_TPP_
template <class T>
inline GlobPoolVar<T>::GlobPoolVar(uint32_t set_id,
DataSetIF* dataSet, ReadWriteMode_t setReadWriteMode):
dataPoolId(set_id), valid(PoolVariableIF::INVALID),
readWriteMode(setReadWriteMode)
{
if (dataSet != nullptr) {
dataSet->registerVariable(this);
}
}
template<typename T>
inline ReturnValue_t GlobPoolVar<T>::read(uint32_t lockTimeout) {
ReturnValue_t result = glob::dataPool.lockDataPool(lockTimeout);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = readWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "GlobPoolVar::read: Could not unlock global data pool"
<< std::endl;
}
return result;
}
template<typename T>
inline ReturnValue_t GlobPoolVar<T>::commit(uint32_t lockTimeout) {
ReturnValue_t result = glob::dataPool.lockDataPool(lockTimeout);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = commitWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "GlobPoolVar::read: Could not unlock global data pool"
<< std::endl;
}
return result;
}
template <class T>
inline ReturnValue_t GlobPoolVar<T>::readWithoutLock() {
PoolEntry<T>* read_out = glob::dataPool.getData<T>(dataPoolId, 1);
if (read_out != NULL) {
valid = read_out->valid;
value = *(read_out->address);
return HasReturnvaluesIF::RETURN_OK;
} else {
value = 0;
valid = false;
sif::error << "PoolVariable: read of DP Variable 0x" << std::hex
<< dataPoolId << std::dec << " failed." << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
}
}
template <class T>
inline ReturnValue_t GlobPoolVar<T>::commitWithoutLock() {
PoolEntry<T>* write_back = glob::dataPool.getData<T>(dataPoolId, 1);
if ((write_back != NULL) && (readWriteMode != VAR_READ)) {
write_back->valid = valid;
*(write_back->address) = value;
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
template <class T>
inline GlobPoolVar<T>::GlobPoolVar():
dataPoolId(PoolVariableIF::NO_PARAMETER),
valid(PoolVariableIF::INVALID),
readWriteMode(VAR_READ), value(0) {}
template <class T>
inline GlobPoolVar<T>::GlobPoolVar(const GlobPoolVar& rhs) :
dataPoolId(rhs.dataPoolId), valid(rhs.valid), readWriteMode(
rhs.readWriteMode), value(rhs.value) {}
template <class T>
inline pool_rwm_t GlobPoolVar<T>::getReadWriteMode() const {
return readWriteMode;
}
template <class T>
inline uint32_t GlobPoolVar<T>::getDataPoolId() const {
return dataPoolId;
}
template <class T>
inline void GlobPoolVar<T>::setDataPoolId(uint32_t poolId) {
dataPoolId = poolId;
}
template <class T>
inline bool GlobPoolVar<T>::isValid() const {
if (valid)
return true;
else
return false;
}
template <class T>
inline uint8_t GlobPoolVar<T>::getValid() {
return valid;
}
template <class T>
inline void GlobPoolVar<T>::setValid(bool valid) {
this->valid = valid;
}
#endif

View File

@ -1,185 +0,0 @@
#ifndef GLOBALPOOLVECTOR_H_
#define GLOBALPOOLVECTOR_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/datapool/PoolEntry.h>
#include <framework/datapool/PoolVariableIF.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
/**
* @brief This is the access class for array-type data pool entries.
*
* @details
* To ensure safe usage of the data pool, operation is not done directly on the
* data pool entries, but on local copies. This class provides simple type-
* and length-safe access to vector-style data pool entries (i.e. entries with
* length > 1). The class can be instantiated as read-write and read only.
*
* It provides a commit-and-roll-back semantic, which means that no array
* entry in the data pool is changed until the commit call is executed.
* There are two template parameters:
* @tparam T
* This template parameter specifies the data type of an array entry. Currently,
* all plain data types are supported, but in principle any type is possible.
* @tparam vector_size
* This template parameter specifies the vector size of this entry. Using a
* template parameter for this is not perfect, but avoids
* dynamic memory allocation.
* @ingroup data_pool
*/
template<typename T, uint16_t vectorSize>
class GlobPoolVector: public PoolVariableIF {
public:
/**
* @brief In the constructor, the variable can register itself in a
* DataSet (if no nullptr is passed).
* @details
* It DOES NOT fetch the current value from the data pool, but sets the
* value attribute to default (0). The value is fetched within the
* read() operation.
* @param set_id
* This is the id in the global data pool this instance of the access
* class corresponds to.
* @param dataSet
* The data set in which the variable shall register itself. If nullptr,
* the variable is not registered.
* @param setWritable
* If this flag is set to true, changes in the value attribute can be
* written back to the data pool, otherwise not.
*/
GlobPoolVector(uint32_t set_id, DataSetIF* set,
ReadWriteMode_t setReadWriteMode);
/**
* @brief This is the local copy of the data pool entry.
* @details The user can work on this attribute
* just like he would on a local array of this type.
*/
T value[vectorSize];
/**
* @brief The classes destructor is empty.
* @details If commit() was not called, the local value is
* discarded and not written back to the data pool.
*/
~GlobPoolVector() {};
/**
* @brief The operation returns the number of array entries
* in this variable.
*/
uint8_t getSize() {
return vectorSize;
}
/**
* @brief This operation returns the data pool id of the variable.
*/
uint32_t getDataPoolId() const {
return dataPoolId;
}
/**
* @brief This operation sets the data pool id of the variable.
* @details
* The method is necessary to set id's of data pool member variables
* with bad initialization.
*/
void setDataPoolId(uint32_t poolId) {
dataPoolId = poolId;
}
/**
* This method returns if the variable is write-only, read-write or read-only.
*/
ReadWriteMode_t getReadWriteMode() const {
return readWriteMode;
}
/**
* @brief With this call, the valid information of the variable is returned.
*/
bool isValid() const {
if (valid != INVALID)
return true;
else
return false;
}
void setValid(bool valid) {this->valid = valid;}
uint8_t getValid() {return valid;}
T &operator [](int i) {return value[i];}
const T &operator [](int i) const {return value[i];}
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
size_t max_size, Endianness streamEndianness) const override;
virtual size_t getSerializedSize() const override;
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness) override;
/**
* @brief This is a call to read the array's values
* from the global data pool.
* @details
* When executed, this operation tries to fetch the pool entry with matching
* data pool id from the global data pool and copies all array values
* and the valid information to its local attributes.
* In case of a failure (wrong type, size or pool id not found), the
* variable is set to zero and invalid.
* The read call is protected by a lock of the global data pool.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t read(uint32_t lockTimeout = MutexIF::BLOCKING) override;
/**
* @brief The commit call copies the array values back to the data pool.
* @details
* It checks type and size, as well as if the variable is writable. If so,
* the value is copied and the valid flag is automatically set to "valid".
* The commit call is protected by a lock of the global data pool.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t commit(uint32_t lockTimeout = MutexIF::BLOCKING) override;
protected:
/**
* @brief Like #read, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t readWithoutLock() override;
/**
* @brief Like #commit, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t commitWithoutLock() override;
private:
/**
* @brief To access the correct data pool entry on read and commit calls,
* the data pool id is stored.
*/
uint32_t dataPoolId;
/**
* @brief The valid information as it was stored in the data pool
* is copied to this attribute.
*/
uint8_t valid;
/**
* @brief The information whether the class is read-write or
* read-only is stored here.
*/
ReadWriteMode_t readWriteMode;
};
#include <framework/datapoolglob/GlobalPoolVector.tpp>
template<typename T, uint16_t vectorSize>
using gp_vec_t = GlobPoolVector<T, vectorSize>;
#endif /* POOLVECTOR_H_ */

View File

@ -1,117 +0,0 @@
#ifndef GLOBALPOOLVECTOR_TPP_
#define GLOBALPOOLVECTOR_TPP_
template<typename T, uint16_t vectorSize>
inline GlobPoolVector<T, vectorSize>::GlobPoolVector(uint32_t set_id,
DataSetIF* set, ReadWriteMode_t setReadWriteMode) :
dataPoolId(set_id), valid(false), readWriteMode(setReadWriteMode) {
memset(this->value, 0, vectorSize * sizeof(T));
if (set != nullptr) {
set->registerVariable(this);
}
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t GlobPoolVector<T, vectorSize>::read(uint32_t lockTimeout) {
ReturnValue_t result = glob::dataPool.lockDataPool(lockTimeout);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = readWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "GlobPoolVar::read: Could not unlock global data pool"
<< std::endl;
}
return result;
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t GlobPoolVector<T, vectorSize>::commit(
uint32_t lockTimeout) {
ReturnValue_t result = glob::dataPool.lockDataPool(lockTimeout);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = commitWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "GlobPoolVar::read: Could not unlock global data pool"
<< std::endl;
}
return result;
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t GlobPoolVector<T, vectorSize>::readWithoutLock() {
PoolEntry<T>* read_out = glob::dataPool.getData<T>(this->dataPoolId,
vectorSize);
if (read_out != nullptr) {
this->valid = read_out->valid;
memcpy(this->value, read_out->address, read_out->getByteSize());
return HasReturnvaluesIF::RETURN_OK;
} else {
memset(this->value, 0, vectorSize * sizeof(T));
sif::error << "PoolVector: Read of DP Variable 0x" << std::hex
<< std::setw(8) << std::setfill('0') << dataPoolId <<
std::dec << " failed." << std::endl;
this->valid = INVALID;
return HasReturnvaluesIF::RETURN_FAILED;
}
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t GlobPoolVector<T, vectorSize>::commitWithoutLock() {
PoolEntry<T>* writeBack = glob::dataPool.getData<T>(this->dataPoolId,
vectorSize);
if ((writeBack != nullptr) && (this->readWriteMode != VAR_READ)) {
writeBack->valid = valid;
memcpy(writeBack->address, this->value, writeBack->getByteSize());
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t GlobPoolVector<T, vectorSize>::serialize(uint8_t** buffer,
size_t* size, size_t max_size,
SerializeIF::Endianness streamEndianness) const {
uint16_t i;
ReturnValue_t result;
for (i = 0; i < vectorSize; i++) {
result = SerializeAdapter::serialize(&(value[i]), buffer, size,
max_size, streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
}
return result;
}
template<typename T, uint16_t vectorSize>
inline size_t GlobPoolVector<T, vectorSize>::getSerializedSize() const {
return vectorSize * SerializeAdapter::getSerializedSize(value);
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t GlobPoolVector<T, vectorSize>::deSerialize(
const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) {
uint16_t i;
ReturnValue_t result;
for (i = 0; i < vectorSize; i++) {
result = SerializeAdapter::deSerialize(&(value[i]), buffer, size,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
}
return result;
}
#endif

View File

@ -1,164 +0,0 @@
#ifndef PIDREADER_H_
#define PIDREADER_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/datapoolglob/GlobalDataPool.h>
#include <framework/datapool/PoolEntry.h>
#include <framework/datapool/PoolVariableIF.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
template<typename U, uint8_t n_var> class PIDReaderList;
template<typename T>
class PIDReader: public PoolVariableIF {
template<typename U, uint8_t n_var> friend class PIDReaderList;
protected:
uint32_t parameterId;
uint8_t valid;
ReturnValue_t readWithoutLock() {
uint8_t arrayIndex = GlobalDataPool::PIDToArrayIndex(parameterId);
PoolEntry<T> *read_out = glob::dataPool.getData<T>(
GlobalDataPool::PIDToDataPoolId(parameterId), arrayIndex);
if (read_out != NULL) {
valid = read_out->valid;
value = read_out->address[arrayIndex];
return HasReturnvaluesIF::RETURN_OK;
} else {
value = 0;
valid = false;
sif::error << "PIDReader: read of PID 0x" << std::hex << parameterId
<< std::dec << " failed." << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
}
}
/**
* Never commit, is read-only.
* Reason is the possibility to access a single DP vector element, but if we commit,
* we set validity of the whole vector.
*/
ReturnValue_t commit(uint32_t lockTimeout) override {
return HasReturnvaluesIF::RETURN_FAILED;
}
ReturnValue_t commitWithoutLock() override {
return HasReturnvaluesIF::RETURN_FAILED;
}
/**
* Empty ctor for List initialization
*/
PIDReader() :
parameterId(PoolVariableIF::NO_PARAMETER), valid(
PoolVariableIF::INVALID), value(0) {
}
public:
/**
* \brief This is the local copy of the data pool entry.
*/
T value;
/**
* \brief In the constructor, the variable can register itself in a DataSet (if not NULL is
* passed).
* \details It DOES NOT fetch the current value from the data pool, but sets the value
* attribute to default (0). The value is fetched within the read() operation.
* \param set_id This is the id in the global data pool this instance of the access class
* corresponds to.
* \param dataSet The data set in which the variable shall register itself. If NULL,
* the variable is not registered.
* \param setWritable If this flag is set to true, changes in the value attribute can be
* written back to the data pool, otherwise not.
*/
PIDReader(uint32_t setParameterId, DataSetIF *dataSet) :
parameterId(setParameterId), valid(PoolVariableIF::INVALID), value(
0) {
if (dataSet != NULL) {
dataSet->registerVariable(this);
}
}
ReturnValue_t read(uint32_t lockTimeout) override {
ReturnValue_t result = glob::dataPool.lockDataPool();
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = readWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "PIDReader::read: Could not unlock data pool!"
<< std::endl;
}
return result;
}
/**
* Copy ctor to copy classes containing Pool Variables.
*/
PIDReader(const PIDReader &rhs) :
parameterId(rhs.parameterId), valid(rhs.valid), value(rhs.value) {
}
/**
* \brief The classes destructor is empty.
*/
~PIDReader() {
}
/**
* \brief This operation returns the data pool id of the variable.
*/
uint32_t getDataPoolId() const {
return GlobalDataPool::PIDToDataPoolId(parameterId);
}
uint32_t getParameterId() const {
return parameterId;
}
/**
* This method returns if the variable is write-only, read-write or read-only.
*/
ReadWriteMode_t getReadWriteMode() const {
return VAR_READ;
}
/**
* \brief With this call, the valid information of the variable is returned.
*/
bool isValid() const {
if (valid)
return true;
else
return false;
}
uint8_t getValid() {
return valid;
}
void setValid(bool valid) {
this->valid = valid;
}
operator T() {
return value;
}
PIDReader<T>& operator=(T newValue) {
value = newValue;
return *this;
}
virtual ReturnValue_t serialize(uint8_t **buffer, size_t *size,
size_t maxSize, Endianness streamEndianness) const override {
return SerializeAdapter::serialize(&value, buffer, size, maxSize,
streamEndianness);
}
virtual size_t getSerializedSize() const override {
return SerializeAdapter::getSerializedSize(&value);
}
virtual ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
Endianness streamEndianness) override {
return SerializeAdapter::deSerialize(&value, buffer, size,
streamEndianness);
}
};
#endif /* PIDREADER_H_ */

View File

@ -1,27 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLGLOB_PIDREADERLIST_H_
#define FRAMEWORK_DATAPOOLGLOB_PIDREADERLIST_H_
#include <framework/datapool/PoolVariableIF.h>
#include <framework/datapoolglob/PIDReader.h>
template <class T, uint8_t n_var>
class PIDReaderList {
private:
PIDReader<T> variables[n_var];
public:
PIDReaderList( const uint32_t setPid[n_var], DataSetIF* dataSet) {
//I really should have a look at the new init list c++ syntax.
if (dataSet == NULL) {
return;
}
for (uint8_t count = 0; count < n_var; count++) {
variables[count].parameterId = setPid[count];
dataSet->registerVariable(&variables[count]);
}
}
PIDReader<T> &operator [](int i) { return variables[i]; }
};
#endif /* FRAMEWORK_DATAPOOLGLOB_PIDREADERLIST_H_ */

View File

@ -1,239 +0,0 @@
#include <framework/datapoolglob/GlobalDataPool.h>
#include <framework/datapoolglob/PoolRawAccess.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <framework/serialize/EndianConverter.h>
#include <cstring>
PoolRawAccess::PoolRawAccess(uint32_t set_id, uint8_t setArrayEntry,
DataSetIF* dataSet, ReadWriteMode_t setReadWriteMode) :
dataPoolId(set_id), arrayEntry(setArrayEntry), valid(false),
type(Type::UNKNOWN_TYPE), typeSize(0), arraySize(0), sizeTillEnd(0),
readWriteMode(setReadWriteMode) {
memset(value, 0, sizeof(value));
if (dataSet != nullptr) {
dataSet->registerVariable(this);
}
}
PoolRawAccess::~PoolRawAccess() {}
ReturnValue_t PoolRawAccess::read(uint32_t lockTimeout) {
ReturnValue_t result = glob::dataPool.lockDataPool(lockTimeout);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = readWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "GlobPoolVar::read: Could not unlock global data pool"
<< std::endl;
}
return result;
}
ReturnValue_t PoolRawAccess::readWithoutLock() {
ReturnValue_t result = RETURN_FAILED;
PoolEntryIF* readOut = glob::dataPool.getRawData(dataPoolId);
if (readOut != nullptr) {
result = handleReadOut(readOut);
if(result == RETURN_OK) {
return result;
}
} else {
result = READ_ENTRY_NON_EXISTENT;
}
handleReadError(result);
return result;
}
ReturnValue_t PoolRawAccess::handleReadOut(PoolEntryIF* readOut) {
ReturnValue_t result = RETURN_FAILED;
valid = readOut->getValid();
if (readOut->getSize() > arrayEntry) {
arraySize = readOut->getSize();
typeSize = readOut->getByteSize() / readOut->getSize();
type = readOut->getType();
if (typeSize <= sizeof(value)) {
uint16_t arrayPosition = arrayEntry * typeSize;
sizeTillEnd = readOut->getByteSize() - arrayPosition;
uint8_t* ptr = &((uint8_t*) readOut->getRawData())[arrayPosition];
memcpy(value, ptr, typeSize);
return RETURN_OK;
} else {
result = READ_TYPE_TOO_LARGE;
}
} else {
//debug << "PoolRawAccess: Size: " << (int)read_out->getSize() << std::endl;
result = READ_INDEX_TOO_LARGE;
}
return result;
}
void PoolRawAccess::handleReadError(ReturnValue_t result) {
sif::error << "PoolRawAccess: read of DP Variable 0x" << std::hex << dataPoolId
<< std::dec << " failed, ";
if(result == READ_TYPE_TOO_LARGE) {
sif::error << "type too large." << std::endl;
}
else if(result == READ_INDEX_TOO_LARGE) {
sif::error << "index too large." << std::endl;
}
else if(result == READ_ENTRY_NON_EXISTENT) {
sif::error << "entry does not exist." << std::endl;
}
valid = INVALID;
typeSize = 0;
sizeTillEnd = 0;
memset(value, 0, sizeof(value));
}
ReturnValue_t PoolRawAccess::commit(uint32_t lockTimeout) {
ReturnValue_t result = glob::dataPool.lockDataPool(lockTimeout);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = commitWithoutLock();
ReturnValue_t unlockResult = glob::dataPool.unlockDataPool();
if(unlockResult != HasReturnvaluesIF::RETURN_OK) {
sif::error << "GlobPoolVar::read: Could not unlock global data pool"
<< std::endl;
}
return result;
}
ReturnValue_t PoolRawAccess::commitWithoutLock() {
PoolEntryIF* write_back = glob::dataPool.getRawData(dataPoolId);
if ((write_back != NULL) && (readWriteMode != VAR_READ)) {
write_back->setValid(valid);
uint8_t array_position = arrayEntry * typeSize;
uint8_t* ptr = &((uint8_t*) write_back->getRawData())[array_position];
memcpy(ptr, value, typeSize);
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
uint8_t* PoolRawAccess::getEntry() {
return value;
}
ReturnValue_t PoolRawAccess::getEntryEndianSafe(uint8_t* buffer,
size_t* writtenBytes, size_t max_size) {
uint8_t* data_ptr = getEntry();
// debug << "PoolRawAccess::getEntry: Array position: " <<
// index * size_of_type << " Size of T: " << (int)size_of_type <<
// " ByteSize: " << byte_size << " Position: " << *size << std::endl;
if (typeSize == 0)
return DATA_POOL_ACCESS_FAILED;
if (typeSize > max_size)
return INCORRECT_SIZE;
EndianConverter::convertBigEndian(buffer, data_ptr, typeSize);
*writtenBytes = typeSize;
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t PoolRawAccess::serialize(uint8_t** buffer, size_t* size,
size_t maxSize, Endianness streamEndianness) const {
if (typeSize + *size <= maxSize) {
switch(streamEndianness) {
case(Endianness::BIG):
EndianConverter::convertBigEndian(*buffer, value, typeSize);
break;
case(Endianness::LITTLE):
EndianConverter::convertLittleEndian(*buffer, value, typeSize);
break;
case(Endianness::MACHINE):
default:
memcpy(*buffer, value, typeSize);
break;
}
*size += typeSize;
(*buffer) += typeSize;
return HasReturnvaluesIF::RETURN_OK;
} else {
return SerializeIF::BUFFER_TOO_SHORT;
}
}
Type PoolRawAccess::getType() {
return type;
}
size_t PoolRawAccess::getSizeOfType() {
return typeSize;
}
size_t PoolRawAccess::getArraySize(){
return arraySize;
}
uint32_t PoolRawAccess::getDataPoolId() const {
return dataPoolId;
}
PoolVariableIF::ReadWriteMode_t PoolRawAccess::getReadWriteMode() const {
return readWriteMode;
}
ReturnValue_t PoolRawAccess::setEntryFromBigEndian(const uint8_t *buffer,
size_t setSize) {
if (typeSize == setSize) {
EndianConverter::convertBigEndian(value, buffer, typeSize);
return HasReturnvaluesIF::RETURN_OK;
} else {
sif::error << "PoolRawAccess::setEntryFromBigEndian: Illegal sizes: "
"Internal" << (uint32_t) typeSize << ", Requested: " << setSize
<< std::endl;
return INCORRECT_SIZE;
}
}
bool PoolRawAccess::isValid() const {
if (valid != INVALID)
return true;
else
return false;
}
void PoolRawAccess::setValid(bool valid) {
this->valid = valid;
}
size_t PoolRawAccess::getSizeTillEnd() const {
return sizeTillEnd;
}
size_t PoolRawAccess::getSerializedSize() const {
return typeSize;
}
ReturnValue_t PoolRawAccess::deSerialize(const uint8_t **buffer, size_t *size,
Endianness streamEndianness) {
if (*size >= typeSize) {
switch(streamEndianness) {
case(Endianness::BIG):
EndianConverter::convertBigEndian(value, *buffer, typeSize);
break;
case(Endianness::LITTLE):
EndianConverter::convertLittleEndian(value, *buffer, typeSize);
break;
case(Endianness::MACHINE):
default:
memcpy(value, *buffer, typeSize);
break;
}
*size -= typeSize;
*buffer += typeSize;
return HasReturnvaluesIF::RETURN_OK;
}
else {
return SerializeIF::STREAM_TOO_SHORT;
}
}

View File

@ -1,220 +0,0 @@
#ifndef POOLRAWACCESS_H_
#define POOLRAWACCESS_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/datapool/PoolEntryIF.h>
#include <framework/datapool/PoolVariableIF.h>
#include <framework/globalfunctions/Type.h>
/**
* @brief This class allows accessing Data Pool variables as raw bytes.
* @details
* This is necessary to have an access method for HK data, as the PID's alone
* do not provide type information. Please note that the the raw pool access
* read() and commit() calls are not thread-safe.
*
* Please supply a data set and use the data set read(), commit() calls for
* thread-safe data pool access.
* @ingroup data_pool
*/
class PoolRawAccess: public PoolVariableIF, HasReturnvaluesIF {
public:
/**
* This constructor is used to access a data pool entry with a
* given ID if the target type is not known. A DataSet object is supplied
* and the data pool entry with the given ID is registered to that data set.
* Please note that a pool raw access buffer only has a buffer
* with a size of double. As such, for vector entries which have
* @param data_pool_id Target data pool entry ID
* @param arrayEntry
* @param data_set Dataset to register data pool entry to
* @param setReadWriteMode
* @param registerVectors If set to true, the constructor checks if
* there are multiple vector entries to registers
* and registers all of them recursively into the data_set
*
*/
PoolRawAccess(uint32_t data_pool_id, uint8_t arrayEntry,
DataSetIF* data_set, ReadWriteMode_t setReadWriteMode =
PoolVariableIF::VAR_READ);
/**
* @brief This operation returns a pointer to the entry fetched.
* @details Return pointer to the buffer containing the raw data
* Size and number of data can be retrieved by other means.
*/
uint8_t* getEntry();
/**
* @brief This operation returns the fetched entry from the data pool and
* flips the bytes, if necessary.
* @details It makes use of the getEntry call of this function, but additionally flips the
* bytes to big endian, which is the default for external communication (as House-
* keeping telemetry). To achieve this, the data is copied directly to the passed
* buffer, if it fits in the given max_size.
* @param buffer A pointer to a buffer to write to
* @param writtenBytes The number of bytes written is returned with this value.
* @param max_size The maximum size that the function may write to buffer.
* @return - @c RETURN_OK if entry could be acquired
* - @c RETURN_FAILED else.
*/
ReturnValue_t getEntryEndianSafe(uint8_t *buffer, size_t *size,
size_t maxSize);
/**
* @brief Serialize raw pool entry into provided buffer directly
* @param buffer Provided buffer. Raw pool data will be copied here
* @param size [out] Increment provided size value by serialized size
* @param max_size Maximum allowed serialization size
* @param bigEndian Specify endianess
* @return - @c RETURN_OK if serialization was successfull
* - @c SerializeIF::BUFFER_TOO_SHORT if range check failed
*/
ReturnValue_t serialize(uint8_t **buffer, size_t *size,
size_t maxSize, Endianness streamEndianness) const override;
size_t getSerializedSize() const override;
ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
Endianness streamEndianness) override;
/**
* With this method, the content can be set from a big endian buffer safely.
* @param buffer Pointer to the data to set
* @param size Size of the data to write. Must fit this->size.
* @return - @c RETURN_OK on success
* - @c RETURN_FAILED on failure
*/
ReturnValue_t setEntryFromBigEndian(const uint8_t* buffer,
size_t setSize);
/**
* @brief This operation returns the type of the entry currently stored.
*/
Type getType();
/**
* @brief This operation returns the size of the entry currently stored.
*/
size_t getSizeOfType();
/**
*
* @return the size of the datapool array
*/
size_t getArraySize();
/**
* @brief This operation returns the data pool id of the variable.
*/
uint32_t getDataPoolId() const;
static const uint8_t INTERFACE_ID = CLASS_ID::POOL_RAW_ACCESS_CLASS;
static const ReturnValue_t INCORRECT_SIZE = MAKE_RETURN_CODE(0x01);
static const ReturnValue_t DATA_POOL_ACCESS_FAILED = MAKE_RETURN_CODE(0x02);
static const ReturnValue_t READ_TYPE_TOO_LARGE = MAKE_RETURN_CODE(0x03);
static const ReturnValue_t READ_INDEX_TOO_LARGE = MAKE_RETURN_CODE(0x04);
static const ReturnValue_t READ_ENTRY_NON_EXISTENT = MAKE_RETURN_CODE(0x05);
static const uint8_t RAW_MAX_SIZE = sizeof(double);
uint8_t value[RAW_MAX_SIZE];
/**
* @brief The classes destructor is empty. If commit() was not called, the local value is
* discarded and not written back to the data pool.
*/
~PoolRawAccess();
/**
* This method returns if the variable is read-write or read-only.
*/
ReadWriteMode_t getReadWriteMode() const;
/**
* @brief With this call, the valid information of the variable is returned.
*/
bool isValid() const;
void setValid(bool valid);
/**
* Getter for the remaining size.
*/
size_t getSizeTillEnd() const;
/**
* @brief This is a call to read the value from the global data pool.
* @details
* When executed, this operation tries to fetch the pool entry with matching
* data pool id from the global data pool and copies the value and the valid
* information to its local attributes. In case of a failure (wrong type or
* pool id not found), the variable is set to zero and invalid.
* The call is protected by a lock of the global data pool.
* @return -@c RETURN_OK Read successfull
* -@c READ_TYPE_TOO_LARGE
* -@c READ_INDEX_TOO_LARGE
* -@c READ_ENTRY_NON_EXISTENT
*/
ReturnValue_t read(uint32_t lockTimeout = MutexIF::BLOCKING) override;
/**
* @brief The commit call writes back the variable's value to the data pool.
* @details
* It checks type and size, as well as if the variable is writable. If so,
* the value is copied and the valid flag is automatically set to "valid".
* The call is protected by a lock of the global data pool.
*
*/
ReturnValue_t commit(uint32_t lockTimeout = MutexIF::BLOCKING) override;
protected:
/**
* @brief Like #read, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t readWithoutLock() override;
/**
* @brief Like #commit, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t commitWithoutLock() override;
ReturnValue_t handleReadOut(PoolEntryIF* read_out);
void handleReadError(ReturnValue_t result);
private:
/**
* @brief To access the correct data pool entry on read and commit calls, the data pool id
* is stored.
*/
uint32_t dataPoolId;
/**
* @brief The array entry that is fetched from the data pool.
*/
uint8_t arrayEntry;
/**
* @brief The valid information as it was stored in the data pool is copied to this attribute.
*/
uint8_t valid;
/**
* @brief This value contains the type of the data pool entry.
*/
Type type;
/**
* @brief This value contains the size of the data pool entry type in bytes.
*/
size_t typeSize;
/**
* The size of the DP array (single values return 1)
*/
size_t arraySize;
/**
* The size (in bytes) from the selected entry till the end of this DataPool variable.
*/
size_t sizeTillEnd;
/**
* @brief The information whether the class is read-write or read-only is stored here.
*/
ReadWriteMode_t readWriteMode;
};
#endif /* POOLRAWACCESS_H_ */

View File

@ -1,77 +0,0 @@
#ifndef FRAMEWORK_DATAPOOL_HASHKPOOLPARAMETERSIF_H_
#define FRAMEWORK_DATAPOOL_HASHKPOOLPARAMETERSIF_H_
#include <framework/datapool/PoolEntryIF.h>
#include <framework/ipc/MessageQueueSenderIF.h>
#include <framework/housekeeping/HousekeepingMessage.h>
#include <map>
class LocalDataPoolManager;
class DataSetIF;
/**
* @brief Type definition for local pool entries.
*/
using lp_id_t = uint32_t;
using LocalDataPool = std::map<lp_id_t, PoolEntryIF*>;
using LocalDataPoolMapIter = LocalDataPool::iterator;
/**
* @brief This interface is implemented by classes which posses a local
* data pool (not the managing class). It defines the relationship
* between the local data pool owner and the LocalDataPoolManager.
* @details
* Any class implementing this interface shall also have a LocalDataPoolManager
* member class which contains the actual pool data structure
* and exposes the public interface for it.
* This is required because the pool entries are templates, which makes
* specifying an interface rather difficult. The local data pool can be
* accessed by using the LocalPoolVariable, LocalPoolVector or LocalDataSet
* classes.
*
* Architectural Note:
* This could be circumvented by using a wrapper/accessor function or
* implementing the templated function in this interface..
* The first solution sounds better than the second but
* the LocalPoolVariable classes are templates as well, so this just shifts
* the problem somewhere else. Interfaces are nice, but the most
* pragmatic solution I found was to offer the client the full interface
* of the LocalDataPoolManager.
*/
class HasLocalDataPoolIF {
public:
virtual~ HasLocalDataPoolIF() {};
static constexpr uint8_t INTERFACE_ID = CLASS_ID::LOCAL_POOL_OWNER_IF;
/** Command queue for housekeeping messages. */
virtual MessageQueueId_t getCommandQueue() const = 0;
/** Is used by pool owner to initialize the pool map once */
virtual ReturnValue_t initializePoolEntries(
LocalDataPool& localDataPoolMap) = 0;
/** Can be used to get a handle to the local data pool manager. */
virtual LocalDataPoolManager* getHkManagerHandle() = 0;
/**
* This function is used by the pool manager to get a valid dataset
* from a SID
* @param sid Corresponding structure ID
* @return
*/
virtual DataSetIF* getDataSetHandle(sid_t sid) = 0;
/* These function can be implemented by pool owner, as they are required
* by the housekeeping message interface */
virtual ReturnValue_t addDataSet(sid_t sid) {
return HasReturnvaluesIF::RETURN_FAILED;
};
virtual ReturnValue_t removeDataSet(sid_t sid) {
return HasReturnvaluesIF::RETURN_FAILED;
};
virtual ReturnValue_t changeCollectionInterval(sid_t sid,
dur_seconds_t newInterval) {
return HasReturnvaluesIF::RETURN_FAILED;
};
};
#endif /* FRAMEWORK_DATAPOOL_HASHKPOOLPARAMETERSIF_H_ */

View File

@ -1,218 +0,0 @@
#include <framework/datapoollocal/LocalDataPoolManager.h>
#include <framework/datapoollocal/LocalDataSet.h>
#include <framework/housekeeping/AcceptsHkPacketsIF.h>
#include <framework/ipc/MutexFactory.h>
#include <framework/ipc/MutexHelper.h>
#include <framework/ipc/QueueFactory.h>
#include <array>
LocalDataPoolManager::LocalDataPoolManager(HasLocalDataPoolIF* owner,
MessageQueueIF* queueToUse, bool appendValidityBuffer):
appendValidityBuffer(appendValidityBuffer) {
if(owner == nullptr) {
sif::error << "HkManager: Invalid supplied owner!" << std::endl;
return;
}
this->owner = owner;
mutex = MutexFactory::instance()->createMutex();
if(mutex == nullptr) {
sif::error << "LocalDataPoolManager::LocalDataPoolManager: "
"Could not create mutex." << std::endl;
}
ipcStore = objectManager->get<StorageManagerIF>(objects::IPC_STORE);
if(ipcStore == nullptr) {
sif::error << "LocalDataPoolManager::LocalDataPoolManager: "
"Could not set IPC store." << std::endl;
}
hkQueue = queueToUse;
}
ReturnValue_t LocalDataPoolManager::initialize(MessageQueueIF* queueToUse,
object_id_t hkDestination) {
if(queueToUse == nullptr) {
sif::error << "LocalDataPoolManager::initialize: Supplied queue "
"invalid!" << std::endl;
}
hkQueue = queueToUse;
if(hkDestination == objects::NO_OBJECT) {
return initializeHousekeepingPoolEntriesOnce();
}
AcceptsHkPacketsIF* hkReceiver =
objectManager->get<AcceptsHkPacketsIF>(hkDestination);
if(hkReceiver != nullptr) {
setHkPacketDestination(hkReceiver->getHkQueue());
}
else {
sif::warning << "LocalDataPoolManager::initialize: Could not retrieve"
" queue ID from HK destination object ID. " << std::flush;
sif::warning << "Make sure it exists and the object impements "
"AcceptsHkPacketsIF!" << std::endl;
}
return initializeHousekeepingPoolEntriesOnce();
}
void LocalDataPoolManager::setHkPacketDestination(
MessageQueueId_t hkDestination) {
this->hkDestination = hkDestination;
}
LocalDataPoolManager::~LocalDataPoolManager() {}
ReturnValue_t LocalDataPoolManager::initializeHousekeepingPoolEntriesOnce() {
if(not mapInitialized) {
ReturnValue_t result = owner->initializePoolEntries(localPoolMap);
if(result == HasReturnvaluesIF::RETURN_OK) {
mapInitialized = true;
}
return result;
}
sif::warning << "HousekeepingManager: The map should only be initialized "
"once!" << std::endl;
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t LocalDataPoolManager::handleHousekeepingMessage(
CommandMessage* message) {
Command_t command = message->getCommand();
switch(command) {
// I think those are the only commands which can be handled here..
case(HousekeepingMessage::ADD_HK_REPORT_STRUCT):
case(HousekeepingMessage::ADD_DIAGNOSTICS_REPORT_STRUCT):
// We should use OwnsLocalPoolDataIF to specify those functions..
return HasReturnvaluesIF::RETURN_OK;
case(HousekeepingMessage::REPORT_DIAGNOSTICS_REPORT_STRUCTURES):
case(HousekeepingMessage::REPORT_HK_REPORT_STRUCTURES):
//return generateSetStructurePacket(message->getSid());
case(HousekeepingMessage::GENERATE_ONE_PARAMETER_REPORT):
case(HousekeepingMessage::GENERATE_ONE_DIAGNOSTICS_REPORT):
//return generateHousekeepingPacket(message->getSid());
default:
return CommandMessageIF::UNKNOWN_COMMAND;
}
}
ReturnValue_t LocalDataPoolManager::printPoolEntry(
lp_id_t localPoolId) {
auto poolIter = localPoolMap.find(localPoolId);
if (poolIter == localPoolMap.end()) {
sif::debug << "HousekeepingManager::fechPoolEntry:"
" Pool entry not found." << std::endl;
return POOL_ENTRY_NOT_FOUND;
}
poolIter->second->print();
return HasReturnvaluesIF::RETURN_OK;
}
MutexIF* LocalDataPoolManager::getMutexHandle() {
return mutex;
}
const HasLocalDataPoolIF* LocalDataPoolManager::getOwner() const {
return owner;
}
ReturnValue_t LocalDataPoolManager::generateHousekeepingPacket(sid_t sid,
MessageQueueId_t sendTo) {
LocalDataSet* dataSetToSerialize = dynamic_cast<LocalDataSet*>(
owner->getDataSetHandle(sid));
if(dataSetToSerialize == nullptr) {
sif::warning << "HousekeepingManager::generateHousekeepingPacket:"
" Set ID not found" << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
}
store_address_t storeId;
ReturnValue_t result = serializeHkPacketIntoStore(&storeId,
dataSetToSerialize);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
// and now we set a HK message and send it the HK packet destination.
CommandMessage hkMessage;
HousekeepingMessage::setHkReportMessage(&hkMessage, sid, storeId);
if(hkQueue == nullptr) {
return QUEUE_OR_DESTINATION_NOT_SET;
}
if(sendTo != MessageQueueIF::NO_QUEUE) {
result = hkQueue->sendMessage(sendTo, &hkMessage);
}
else {
if(hkDestination == MessageQueueIF::NO_QUEUE) {
sif::warning << "LocalDataPoolManager::generateHousekeepingPacket:"
" Destination is not set properly!" << std::endl;
return QUEUE_OR_DESTINATION_NOT_SET;
}
else {
result = hkQueue->sendMessage(hkDestination, &hkMessage);
}
}
return result;
}
ReturnValue_t LocalDataPoolManager::generateSetStructurePacket(sid_t sid) {
LocalDataSet* dataSet = dynamic_cast<LocalDataSet*>(
owner->getDataSetHandle(sid));
if(dataSet == nullptr) {
sif::warning << "HousekeepingManager::generateHousekeepingPacket:"
" Set ID not found" << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
}
size_t expectedSize = dataSet->getFillCount() * sizeof(lp_id_t);
uint8_t* storePtr = nullptr;
store_address_t storeId;
ReturnValue_t result = ipcStore->getFreeElement(&storeId,
expectedSize,&storePtr);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "HousekeepingManager::generateHousekeepingPacket: "
"Could not get free element from IPC store." << std::endl;
return result;
}
size_t size = 0;
result = dataSet->serializeLocalPoolIds(&storePtr, &size,
expectedSize, SerializeIF::Endianness::BIG);
if(expectedSize != size) {
sif::error << "HousekeepingManager::generateSetStructurePacket: "
"Expected size is not equal to serialized size" << std::endl;
}
return result;
}
void LocalDataPoolManager::setMinimalSamplingFrequency(float frequencySeconds) {
}
ReturnValue_t LocalDataPoolManager::serializeHkPacketIntoStore(
store_address_t *storeId, LocalDataSet* dataSet) {
size_t hkSize = dataSet->getSerializedSize();
uint8_t* storePtr = nullptr;
ReturnValue_t result = ipcStore->getFreeElement(storeId, hkSize,&storePtr);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "HousekeepingManager::generateHousekeepingPacket: "
"Could not get free element from IPC store." << std::endl;
return result;
}
size_t size = 0;
if(appendValidityBuffer) {
result = dataSet->serializeWithValidityBuffer(&storePtr,
&size, hkSize, SerializeIF::Endianness::MACHINE);
}
else {
result = dataSet->serialize(&storePtr, &size, hkSize,
SerializeIF::Endianness::MACHINE);
}
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "HousekeepingManager::serializeHkPacketIntoStore: "
"Serialization proccess failed!" << std::endl;
}
return result;
}
ReturnValue_t LocalDataPoolManager::performHkOperation() {
return HasReturnvaluesIF::RETURN_OK;
}

View File

@ -1,229 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALDATAPOOLMANAGER_H_
#define FRAMEWORK_DATAPOOLLOCAL_LOCALDATAPOOLMANAGER_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/objectmanager/SystemObjectIF.h>
#include <framework/ipc/MutexIF.h>
#include <framework/housekeeping/HousekeepingMessage.h>
#include <framework/datapool/PoolEntry.h>
#include <framework/datapoollocal/HasLocalDataPoolIF.h>
#include <framework/ipc/CommandMessage.h>
#include <framework/ipc/MessageQueueIF.h>
#include <framework/ipc/MutexHelper.h>
#include <map>
class LocalDataSet;
/**
* @brief This class is the managing instance for local data pool.
* @details
* The actual data pool structure is a member of this class. Any class which
* has a local data pool shall have this class as a member and implement
* the HasLocalDataPoolIF.
*
* Users of the data pool use the helper classes LocalDataSet,
* LocalPoolVariable and LocalPoolVector to access pool entries in
* a thread-safe and efficient way.
*
* The local data pools employ a blackboard logic: Only the most recent
* value is stored. The helper classes offer a read() and commit() interface
* through the PoolVariableIF which is used to read and update values.
* Each pool entry has a valid state too.
*
*/
class LocalDataPoolManager {
template<typename T>
friend class LocalPoolVar;
template<typename T, uint16_t vecSize>
friend class LocalPoolVector;
friend class LocalDataSet;
public:
static constexpr uint8_t INTERFACE_ID = CLASS_ID::HOUSEKEEPING_MANAGER;
static constexpr ReturnValue_t POOL_ENTRY_NOT_FOUND = MAKE_RETURN_CODE(0x0);
static constexpr ReturnValue_t POOL_ENTRY_TYPE_CONFLICT = MAKE_RETURN_CODE(0x1);
static constexpr ReturnValue_t QUEUE_OR_DESTINATION_NOT_SET = MAKE_RETURN_CODE(0x2);
//static constexpr ReturnValue_t SET_NOT_FOUND = MAKE_RETURN_CODE(0x3);
/**
* This constructor is used by a class which wants to implement
* a personal local data pool. The queueToUse can be supplied if it
* is already known.
*
* initialize() has to be called in any case before using the object!
* @param owner
* @param queueToUse
* @param appendValidityBuffer
*/
LocalDataPoolManager(HasLocalDataPoolIF* owner, MessageQueueIF* queueToUse,
bool appendValidityBuffer = true);
virtual~ LocalDataPoolManager();
/**
* Initializes the map by calling the map initialization function of the
* owner and assigns the queue to use.
* @param queueToUse
* @return
*/
ReturnValue_t initialize(MessageQueueIF* queueToUse,
object_id_t hkDestination);
/**
* This should be called in the periodic handler of the owner.
* It performs all the periodic functionalities of the data pool manager.
* @return
*/
ReturnValue_t performHkOperation();
/**
* This function is used to set the default HK packet destination.
* This destination will usually only be set once.
* @param hkDestination
*/
void setHkPacketDestination(MessageQueueId_t hkDestination);
/**
* Generate a housekeeping packet with a given SID.
* @param sid
* @return
*/
ReturnValue_t generateHousekeepingPacket(sid_t sid, MessageQueueId_t sendTo
= MessageQueueIF::NO_QUEUE);
ReturnValue_t generateSetStructurePacket(sid_t sid);
ReturnValue_t handleHousekeepingMessage(CommandMessage* message);
/**
* This function is used to fill the local data pool map with pool
* entries. It should only be called once by the pool owner.
* @param localDataPoolMap
* @return
*/
ReturnValue_t initializeHousekeepingPoolEntriesOnce();
const HasLocalDataPoolIF* getOwner() const;
ReturnValue_t printPoolEntry(lp_id_t localPoolId);
/**
* Different types of housekeeping reporting are possible.
* 1. PERIODIC: HK packets are generated in fixed intervals
* 2. UPDATED: HK packets are generated if a value was updated
* 3. REQUESTED: HK packets are only generated if explicitely requested
*/
enum class ReportingType: uint8_t {
PERIODIC,
ON_UPDATE,
REQUESTED
};
/* Copying forbidden */
LocalDataPoolManager(const LocalDataPoolManager &) = delete;
LocalDataPoolManager operator=(const LocalDataPoolManager&) = delete;
private:
LocalDataPool localPoolMap;
/** Every housekeeping data manager has a mutex to protect access
* to it's data pool. */
MutexIF* mutex = nullptr;
/** The class which actually owns the manager (and its datapool). */
HasLocalDataPoolIF* owner = nullptr;
/**
* The data pool manager will keep an internal map of HK receivers.
*/
struct HkReceiver {
LocalDataSet* dataSet = nullptr;
MessageQueueId_t destinationQueue = MessageQueueIF::NO_QUEUE;
ReportingType reportingType = ReportingType::PERIODIC;
bool reportingStatus = true;
/** Different members of this union will be used depending on reporting
* type */
union hkParameter {
/** This parameter will be used for the PERIODIC type */
dur_seconds_t collectionInterval = 0;
/** This parameter will be used for the ON_UPDATE type */
bool hkDataChanged;
};
};
/** Using a multimap as the same object might request multiple datasets */
using HkReceiversMap = std::multimap<object_id_t, struct HkReceiver>;
HkReceiversMap hkReceiversMap;
/** This is the map holding the actual data. Should only be initialized
* once ! */
bool mapInitialized = false;
/** This specifies whether a validity buffer is appended at the end
* of generated housekeeping packets. */
bool appendValidityBuffer = true;
/**
* @brief Queue used for communication, for example commands.
* Is also used to send messages. Can be set either in the constructor
* or in the initialize() function.
*/
MessageQueueIF* hkQueue = nullptr;
/**
* HK replies will always be a reply to the commander, but HK packet
* can be sent to another destination by specifying this message queue
* ID, for example to a dedicated housekeeping service implementation.
*/
MessageQueueId_t hkDestination = MessageQueueIF::NO_QUEUE;
/** Global IPC store is used to store all packets. */
StorageManagerIF* ipcStore = nullptr;
/**
* Get the pointer to the mutex. Can be used to lock the data pool
* eternally. Use with care and don't forget to unlock locked mutexes!
* For now, only friend classes can accss this function.
* @return
*/
MutexIF* getMutexHandle();
/**
* Read a variable by supplying its local pool ID and assign the pool
* entry to the supplied PoolEntry pointer. The type of the pool entry
* is deduced automatically. This call is not thread-safe!
* For now, only friend classes like LocalPoolVar may access this
* function.
* @tparam T Type of the pool entry
* @param localPoolId Pool ID of the variable to read
* @param poolVar [out] Corresponding pool entry will be assigned to the
* supplied pointer.
* @return
*/
template <class T> ReturnValue_t fetchPoolEntry(lp_id_t localPoolId,
PoolEntry<T> **poolEntry);
void setMinimalSamplingFrequency(float frequencySeconds);
ReturnValue_t serializeHkPacketIntoStore(store_address_t* storeId,
LocalDataSet* dataSet);
};
template<class T> inline
ReturnValue_t LocalDataPoolManager::fetchPoolEntry(lp_id_t localPoolId,
PoolEntry<T> **poolEntry) {
auto poolIter = localPoolMap.find(localPoolId);
if (poolIter == localPoolMap.end()) {
sif::warning << "HousekeepingManager::fechPoolEntry: Pool entry "
"not found." << std::endl;
return POOL_ENTRY_NOT_FOUND;
}
*poolEntry = dynamic_cast< PoolEntry<T>* >(poolIter->second);
if(*poolEntry == nullptr) {
sif::debug << "HousekeepingManager::fetchPoolEntry:"
" Pool entry not found." << std::endl;
return POOL_ENTRY_TYPE_CONFLICT;
}
return HasReturnvaluesIF::RETURN_OK;
}
#endif /* FRAMEWORK_DATAPOOLLOCAL_LOCALDATAPOOLMANAGER_H_ */

View File

@ -1,106 +0,0 @@
#include <framework/datapoollocal/LocalDataPoolManager.h>
#include <framework/datapoollocal/LocalDataSet.h>
#include <framework/serialize/SerializeAdapter.h>
#include <cmath>
#include <cstring>
LocalDataSet::LocalDataSet(HasLocalDataPoolIF *hkOwner,
const size_t maxNumberOfVariables):
DataSetBase(poolVarList.data(), maxNumberOfVariables) {
poolVarList.reserve(maxNumberOfVariables);
poolVarList.resize(maxNumberOfVariables);
if(hkOwner == nullptr) {
sif::error << "LocalDataSet::LocalDataSet: Owner can't be nullptr!"
<< std::endl;
return;
}
hkManager = hkOwner->getHkManagerHandle();
}
LocalDataSet::LocalDataSet(object_id_t ownerId,
const size_t maxNumberOfVariables):
DataSetBase(poolVarList.data(), maxNumberOfVariables) {
poolVarList.reserve(maxNumberOfVariables);
poolVarList.resize(maxNumberOfVariables);
HasLocalDataPoolIF* hkOwner = objectManager->get<HasLocalDataPoolIF>(
ownerId);
if(hkOwner == nullptr) {
sif::error << "LocalDataSet::LocalDataSet: Owner can't be nullptr!"
<< std::endl;
return;
}
hkManager = hkOwner->getHkManagerHandle();
}
LocalDataSet::~LocalDataSet() {
}
ReturnValue_t LocalDataSet::lockDataPool(uint32_t timeoutMs) {
MutexIF* mutex = hkManager->getMutexHandle();
return mutex->lockMutex(timeoutMs);
}
ReturnValue_t LocalDataSet::serializeWithValidityBuffer(uint8_t **buffer,
size_t *size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const {
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
uint8_t validityMaskSize = std::ceil(static_cast<float>(fillCount)/8.0);
uint8_t validityMask[validityMaskSize];
uint8_t validBufferIndex = 0;
uint8_t validBufferIndexBit = 0;
for (uint16_t count = 0; count < fillCount; count++) {
if(registeredVariables[count]->isValid()) {
// set validity buffer here.
this->bitSetter(validityMask + validBufferIndex,
validBufferIndexBit);
if(validBufferIndexBit == 7) {
validBufferIndex ++;
validBufferIndexBit = 0;
}
else {
validBufferIndexBit ++;
}
}
result = registeredVariables[count]->serialize(buffer, size, maxSize,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
}
// copy validity buffer to end
std::memcpy(*buffer, validityMask, validityMaskSize);
*size += validityMaskSize;
return result;
}
ReturnValue_t LocalDataSet::unlockDataPool() {
MutexIF* mutex = hkManager->getMutexHandle();
return mutex->unlockMutex();
}
ReturnValue_t LocalDataSet::serializeLocalPoolIds(uint8_t** buffer,
size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const {
for (uint16_t count = 0; count < fillCount; count++) {
lp_id_t currentPoolId = registeredVariables[count]->getDataPoolId();
auto result = SerializeAdapter::serialize(&currentPoolId, buffer,
size, maxSize, streamEndianness);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "LocalDataSet::serializeLocalPoolIds: Serialization"
" error!" << std::endl;
return result;
}
}
return HasReturnvaluesIF::RETURN_OK;
}
void LocalDataSet::bitSetter(uint8_t* byte, uint8_t position) const {
if(position > 7) {
sif::debug << "Pool Raw Access: Bit setting invalid position" << std::endl;
return;
}
uint8_t shiftNumber = position + (7 - 2 * position);
*byte |= 1 << shiftNumber;
}

View File

@ -1,115 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALDATASET_H_
#define FRAMEWORK_DATAPOOLLOCAL_LOCALDATASET_H_
#include <framework/datapool/DataSetBase.h>
#include <framework/datapool/DataSetIF.h>
#include <framework/datapoollocal/HasLocalDataPoolIF.h>
#include <framework/serialize/SerializeIF.h>
#include <vector>
class LocalDataPoolManager;
/**
* @brief The LocalDataSet class manages a set of locally checked out variables
* for local data pools
* @details
* This class manages a list, where a set of local variables (or pool variables)
* are registered. They are checked-out (i.e. their values are looked
* up and copied) with the read call. After the user finishes working with the
* pool variables, he can write back all variable values to the pool with
* the commit call. The data set manages locking and freeing the local data pools,
* to ensure thread-safety.
*
* An internal state manages usage of this class. Variables may only be
* registered before the read call is made, and the commit call only
* after the read call.
*
* If pool variables are writable and not committed until destruction
* of the set, the DataSet class automatically sets the valid flag in the
* data pool to invalid (without) changing the variable's value.
*
* @ingroup data_pool
*/
class LocalDataSet: public DataSetBase {
public:
/**
* @brief Constructor for the creator of local pool data.
* The constructor simply sets the fill_count to zero and sets
* the state to "uninitialized".
*/
LocalDataSet(HasLocalDataPoolIF *hkOwner,
const size_t maxNumberOfVariables);
/**
* @brief Constructor for users of local pool data. The passed pool
* owner should implement the HasHkPoolParametersIF.
* The constructor simply sets the fill_count to zero and sets
* the state to "uninitialized".
*/
LocalDataSet(object_id_t ownerId,
const size_t maxNumberOfVariables);
/**
* @brief The destructor automatically manages writing the valid
* information of variables.
* @details
* In case the data set was read out, but not committed(indicated by state),
* the destructor parses all variables that are still registered to the set.
* For each, the valid flag in the data pool is set to "invalid".
*/
~LocalDataSet();
/**
* Special version of the serilization function which appends a
* validity buffer at the end. Each bit of this validity buffer
* denotes whether the container data set entries are valid from left
* to right, MSB first.
* @param buffer
* @param size
* @param maxSize
* @param bigEndian
* @param withValidityBuffer
* @return
*/
ReturnValue_t serializeWithValidityBuffer(uint8_t** buffer,
size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const;
ReturnValue_t serializeLocalPoolIds(uint8_t** buffer,
size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const;
protected:
private:
/**
* If the valid state of a dataset is always relevant to the whole
* data set we can use this flag.
*/
bool valid = false;
/**
* @brief This is a small helper function to facilitate locking
* the global data pool.
* @details
* It makes use of the lockDataPool method offered by the DataPool class.
*/
ReturnValue_t lockDataPool(uint32_t timeoutMs) override;
/**
* @brief This is a small helper function to facilitate
* unlocking the global data pool
* @details
* It makes use of the freeDataPoolLock method offered by the DataPool class.
*/
ReturnValue_t unlockDataPool() override;
LocalDataPoolManager* hkManager;
/**
* Set n-th bit of a byte, with n being the position from 0
* (most significant bit) to 7 (least significant bit)
*/
void bitSetter(uint8_t* byte, uint8_t position) const;
std::vector<PoolVariableIF*> poolVarList;
};
#endif /* FRAMEWORK_DATAPOOLLOCAL_LOCALDATASET_H_ */

View File

@ -1,173 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVARIABLE_H_
#define FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVARIABLE_H_
#include <framework/datapool/PoolVariableIF.h>
#include <framework/datapool/DataSetIF.h>
#include <framework/datapoollocal/HasLocalDataPoolIF.h>
#include <framework/datapoollocal/LocalDataPoolManager.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/serialize/SerializeAdapter.h>
/**
* @brief Local Pool Variable class which is used to access the local pools.
* @details
* This class is not stored in the map. Instead, it is used to access
* the pool entries by using a pointer to the map storing the pool
* entries. It can also be used to organize these pool entries into data sets.
*
* @tparam T The template parameter sets the type of the variable. Currently,
* all plain data types are supported, but in principle any type is possible.
* @ingroup data_pool
*/
template<typename T>
class LocalPoolVar: public PoolVariableIF, HasReturnvaluesIF {
public:
//! Default ctor is forbidden.
LocalPoolVar() = delete;
/**
* This constructor is used by the data creators to have pool variable
* instances which can also be stored in datasets.
*
* It does not fetch the current value from the data pool, which
* has to be done by calling the read() operation.
* Datasets can be used to access multiple local pool entries in an
* efficient way. A pointer to a dataset can be passed to register
* the pool variable in that dataset directly.
* @param poolId ID of the local pool entry.
* @param hkOwner Pointer of the owner. This will generally be the calling
* class itself which passes "this".
* @param setReadWriteMode Specify the read-write mode of the pool variable.
* @param dataSet The data set in which the variable shall register itself.
* If nullptr, the variable is not registered.
*/
LocalPoolVar(lp_id_t poolId, HasLocalDataPoolIF* hkOwner,
pool_rwm_t setReadWriteMode = pool_rwm_t::VAR_READ_WRITE,
DataSetIF* dataSet = nullptr);
/**
* This constructor is used by data users like controllers to have
* access to the local pool variables of data creators by supplying
* the respective creator object ID.
*
* It does not fetch the current value from the data pool, which
* has to be done by calling the read() operation.
* Datasets can be used to access multiple local pool entries in an
* efficient way. A pointer to a dataset can be passed to register
* the pool variable in that dataset directly.
* @param poolId ID of the local pool entry.
* @param hkOwner object ID of the pool owner.
* @param setReadWriteMode Specify the read-write mode of the pool variable.
* @param dataSet The data set in which the variable shall register itself.
* If nullptr, the variable is not registered.
*/
LocalPoolVar(lp_id_t poolId, object_id_t poolOwner,
pool_rwm_t setReadWriteMode = pool_rwm_t::VAR_READ_WRITE,
DataSetIF* dataSet = nullptr);
virtual~ LocalPoolVar() {};
/**
* @brief This is the local copy of the data pool entry.
* @details The user can work on this attribute
* just like he would on a simple local variable.
*/
T value = 0;
pool_rwm_t getReadWriteMode() const override;
lp_id_t getDataPoolId() const override;
void setDataPoolId(lp_id_t poolId);
bool isValid() const override;
void setValid(bool validity) override;
uint8_t getValid() const;
ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const override;
virtual size_t getSerializedSize() const override;
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) override;
/**
* @brief This is a call to read the array's values
* from the global data pool.
* @details
* When executed, this operation tries to fetch the pool entry with matching
* data pool id from the data pool and copies all array values and the valid
* information to its local attributes.
* In case of a failure (wrong type, size or pool id not found), the
* variable is set to zero and invalid.
* The read call is protected with a lock.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*
*/
ReturnValue_t read(dur_millis_t lockTimeout = MutexIF::BLOCKING) override;
/**
* @brief The commit call copies the array values back to the data pool.
* @details
* It checks type and size, as well as if the variable is writable. If so,
* the value is copied and the local valid flag is written back as well.
* The read call is protected with a lock.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t commit(dur_millis_t lockTimeout = MutexIF::BLOCKING) override;
protected:
/**
* @brief Like #read, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t readWithoutLock() override;
/**
* @brief Like #commit, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t commitWithoutLock() override;
// std::ostream is the type for object std::cout
template <typename U>
friend std::ostream& operator<< (std::ostream &out,
const LocalPoolVar<U> &var);
private:
//! @brief Pool ID of pool entry inside the used local pool.
lp_id_t localPoolId = PoolVariableIF::NO_PARAMETER;
//! @brief Read-write mode of the pool variable
pool_rwm_t readWriteMode = pool_rwm_t::VAR_READ_WRITE;
//! @brief Specifies whether the entry is valid or invalid.
bool valid = false;
//! Pointer to the class which manages the HK pool.
LocalDataPoolManager* hkManager;
};
#include <framework/datapoollocal/LocalPoolVariable.tpp>
template<class T>
using lp_var_t = LocalPoolVar<T>;
using lp_bool_t = LocalPoolVar<uint8_t>;
using lp_uint8_t = LocalPoolVar<uint8_t>;
using lp_uint16_t = LocalPoolVar<uint16_t>;
using lp_uint32_t = LocalPoolVar<uint32_t>;
using lp_uint64_t = LocalPoolVar<uint64_t>;
using lp_int8_t = LocalPoolVar<int8_t>;
using lp_int16_t = LocalPoolVar<int16_t>;
using lp_int32_t = LocalPoolVar<int32_t>;
using lp_int64_t = LocalPoolVar<int64_t>;
using lp_float_t = LocalPoolVar<float>;
using lp_double_t = LocalPoolVar<double>;
#endif

View File

@ -1,159 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVARIABLE_TPP_
#define FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVARIABLE_TPP_
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVARIABLE_H_
#error Include LocalPoolVariable.h before LocalPoolVariable.tpp!
#endif
template<typename T>
inline LocalPoolVar<T>::LocalPoolVar(lp_id_t poolId,
HasLocalDataPoolIF* hkOwner, pool_rwm_t setReadWriteMode,
DataSetIF* dataSet):
localPoolId(poolId),readWriteMode(setReadWriteMode) {
if(poolId == PoolVariableIF::NO_PARAMETER) {
sif::warning << "LocalPoolVector: 0 passed as pool ID, which is the "
"NO_PARAMETER value!" << std::endl;
}
if(hkOwner == nullptr) {
sif::error << "LocalPoolVariable: The supplied pool owner is a nullptr!"
<< std::endl;
return;
}
hkManager = hkOwner->getHkManagerHandle();
if(dataSet != nullptr) {
dataSet->registerVariable(this);
}
}
template<typename T>
inline LocalPoolVar<T>::LocalPoolVar(lp_id_t poolId, object_id_t poolOwner,
pool_rwm_t setReadWriteMode, DataSetIF *dataSet):
readWriteMode(readWriteMode) {
if(poolId == PoolVariableIF::NO_PARAMETER) {
sif::warning << "LocalPoolVector: 0 passed as pool ID, which is the "
"NO_PARAMETER value!" << std::endl;
}
HasLocalDataPoolIF* hkOwner =
objectManager->get<HasLocalDataPoolIF>(poolOwner);
if(hkOwner == nullptr) {
sif::error << "LocalPoolVariable: The supplied pool owner did not implement"
"the correct interface HasHkPoolParametersIF!" << std::endl;
return;
}
hkManager = hkOwner->getHkManagerHandle();
if(dataSet != nullptr) {
dataSet->registerVariable(this);
}
}
template<typename T>
inline ReturnValue_t LocalPoolVar<T>::read(dur_millis_t lockTimeout) {
MutexHelper(hkManager->getMutexHandle(), lockTimeout);
return readWithoutLock();
}
template<typename T>
inline ReturnValue_t LocalPoolVar<T>::readWithoutLock() {
if(readWriteMode == pool_rwm_t::VAR_WRITE) {
sif::debug << "LocalPoolVar: Invalid read write "
"mode for read() call." << std::endl;
return PoolVariableIF::INVALID_READ_WRITE_MODE;
}
PoolEntry<T>* poolEntry = nullptr;
ReturnValue_t result = hkManager->fetchPoolEntry(localPoolId, &poolEntry);
if(result != RETURN_OK and poolEntry != nullptr) {
sif::error << "PoolVector: Read of local pool variable of object "
"0x" << std::hex << std::setw(8) << std::setfill('0') <<
hkManager->getOwner() << " and lp ID 0x" << localPoolId <<
std::dec << " failed.\n" << std::flush;
return result;
}
this->value = *(poolEntry->address);
this->valid = poolEntry->valid;
return RETURN_OK;
}
template<typename T>
inline ReturnValue_t LocalPoolVar<T>::commit(dur_millis_t lockTimeout) {
MutexHelper(hkManager->getMutexHandle(), lockTimeout);
return commitWithoutLock();
}
template<typename T>
inline ReturnValue_t LocalPoolVar<T>::commitWithoutLock() {
if(readWriteMode == pool_rwm_t::VAR_READ) {
sif::debug << "LocalPoolVar: Invalid read write "
"mode for commit() call." << std::endl;
return PoolVariableIF::INVALID_READ_WRITE_MODE;
}
PoolEntry<T>* poolEntry = nullptr;
ReturnValue_t result = hkManager->fetchPoolEntry(localPoolId, &poolEntry);
if(result != RETURN_OK) {
sif::error << "PoolVector: Read of local pool variable of object "
"0x" << std::hex << std::setw(8) << std::setfill('0') <<
hkManager->getOwner() << " and lp ID 0x" << localPoolId <<
std::dec << " failed.\n" << std::flush;
return result;
}
*(poolEntry->address) = this->value;
poolEntry->valid = this->valid;
return RETURN_OK;
}
template<typename T>
inline pool_rwm_t LocalPoolVar<T>::getReadWriteMode() const {
return readWriteMode;
}
template<typename T>
inline lp_id_t LocalPoolVar<T>::getDataPoolId() const {
return localPoolId;
}
template<typename T>
inline void LocalPoolVar<T>::setDataPoolId(lp_id_t poolId) {
this->localPoolId = poolId;
}
template<typename T>
inline bool LocalPoolVar<T>::isValid() const {
return valid;
}
template<typename T>
inline void LocalPoolVar<T>::setValid(bool validity) {
this->valid = validity;
}
template<typename T>
inline uint8_t LocalPoolVar<T>::getValid() const {
return valid;
}
template<typename T>
inline ReturnValue_t LocalPoolVar<T>::serialize(uint8_t** buffer, size_t* size,
const size_t max_size, SerializeIF::Endianness streamEndianness) const {
return SerializeAdapter::serialize(&value,
buffer, size ,max_size, streamEndianness);
}
template<typename T>
inline size_t LocalPoolVar<T>::getSerializedSize() const {
return SerializeAdapter::getSerializedSize(&value);
}
template<typename T>
inline ReturnValue_t LocalPoolVar<T>::deSerialize(const uint8_t** buffer,
size_t* size, SerializeIF::Endianness streamEndianness) {
return SerializeAdapter::deSerialize(&value, buffer, size, streamEndianness);
}
template<typename T>
inline std::ostream& operator<< (std::ostream &out,
const LocalPoolVar<T> &var) {
out << var.value;
return out;
}
#endif

View File

@ -1,200 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVECTOR_H_
#define FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVECTOR_H_
#include <framework/datapool/DataSetIF.h>
#include <framework/datapool/PoolEntry.h>
#include <framework/datapool/PoolVariableIF.h>
#include <framework/datapoollocal/LocalDataPoolManager.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
/**
* @brief This is the access class for array-type data pool entries.
* @details
* To ensure safe usage of the data pool, operation is not done directly on the
* data pool entries, but on local copies. This class provides simple type-
* and length-safe access to vector-style data pool entries (i.e. entries with
* length > 1). The class can be instantiated as read-write and read only.
*
* It provides a commit-and-roll-back semantic, which means that no array
* entry in the data pool is changed until the commit call is executed.
* There are two template parameters:
* @tparam T
* This template parameter specifies the data type of an array entry. Currently,
* all plain data types are supported, but in principle any type is possible.
* @tparam vector_size
* This template parameter specifies the vector size of this entry. Using a
* template parameter for this is not perfect, but avoids
* dynamic memory allocation.
* @ingroup data_pool
*/
template<typename T, uint16_t vectorSize>
class LocalPoolVector: public PoolVariableIF, public HasReturnvaluesIF {
public:
LocalPoolVector() = delete;
/**
* This constructor is used by the data creators to have pool variable
* instances which can also be stored in datasets.
* It does not fetch the current value from the data pool. This is performed
* by the read() operation (which is not thread-safe).
* Datasets can be used to access local pool entires in a thread-safe way.
* @param poolId ID of the local pool entry.
* @param hkOwner Pointer of the owner. This will generally be the calling
* class itself which passes "this".
* @param setReadWriteMode Specify the read-write mode of the pool variable.
* @param dataSet The data set in which the variable shall register itself.
* If nullptr, the variable is not registered.
*/
LocalPoolVector(lp_id_t poolId, HasLocalDataPoolIF* hkOwner,
pool_rwm_t setReadWriteMode = pool_rwm_t::VAR_READ_WRITE,
DataSetIF* dataSet = nullptr);
/**
* This constructor is used by data users like controllers to have
* access to the local pool variables of data creators by supplying
* the respective creator object ID.
* It does not fetch the current value from the data pool. This is performed
* by the read() operation (which is not thread-safe).
* Datasets can be used to access local pool entires in a thread-safe way.
* @param poolId ID of the local pool entry.
* @param hkOwner Pointer of the owner. This will generally be the calling
* class itself which passes "this".
* @param setReadWriteMode Specify the read-write mode of the pool variable.
* @param dataSet The data set in which the variable shall register itself.
* If nullptr, the variable is not registered.
*/
LocalPoolVector(lp_id_t poolId, object_id_t poolOwner,
pool_rwm_t setReadWriteMode = pool_rwm_t::VAR_READ_WRITE,
DataSetIF* dataSet = nullptr);
/**
* @brief This is the local copy of the data pool entry.
* @details
* The user can work on this attribute just like he would on a local
* array of this type.
*/
T value[vectorSize];
/**
* @brief The classes destructor is empty.
* @details If commit() was not called, the local value is
* discarded and not written back to the data pool.
*/
~LocalPoolVector() {};
/**
* @brief The operation returns the number of array entries
* in this variable.
*/
uint8_t getSize() {
return vectorSize;
}
uint32_t getDataPoolId() const override;
/**
* @brief This operation sets the data pool ID of the variable.
* @details
* The method is necessary to set id's of data pool member variables
* with bad initialization.
*/
void setDataPoolId(uint32_t poolId);
/**
* This method returns if the variable is write-only, read-write or read-only.
*/
pool_rwm_t getReadWriteMode() const;
/**
* @brief With this call, the valid information of the variable is returned.
*/
bool isValid() const override;
void setValid(bool valid) override;
uint8_t getValid() const;
T& operator [](int i);
const T &operator [](int i) const;
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
const size_t maxSize,
SerializeIF::Endianness streamEndiannes) const override;
virtual size_t getSerializedSize() const override;
virtual ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) override;
/**
* @brief This is a call to read the array's values
* from the global data pool.
* @details
* When executed, this operation tries to fetch the pool entry with matching
* data pool id from the data pool and copies all array values and the valid
* information to its local attributes.
* In case of a failure (wrong type, size or pool id not found), the
* variable is set to zero and invalid.
* The read call is protected with a lock.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t read(uint32_t lockTimeout = MutexIF::BLOCKING) override;
/**
* @brief The commit call copies the array values back to the data pool.
* @details
* It checks type and size, as well as if the variable is writable. If so,
* the value is copied and the local valid flag is written back as well.
* The read call is protected with a lock.
* It is recommended to use DataSets to read and commit multiple variables
* at once to avoid the overhead of unnecessary lock und unlock operations.
*/
ReturnValue_t commit(uint32_t lockTimeout = MutexIF::BLOCKING) override;
protected:
/**
* @brief Like #read, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t readWithoutLock() override;
/**
* @brief Like #commit, but without a lock protection of the global pool.
* @details
* The operation does NOT provide any mutual exclusive protection by itself.
* This can be used if the lock is handled externally to avoid the overhead
* of consecutive lock und unlock operations.
* Declared protected to discourage free public usage.
*/
ReturnValue_t commitWithoutLock() override;
private:
/**
* @brief To access the correct data pool entry on read and commit calls,
* the data pool id is stored.
*/
uint32_t localPoolId;
/**
* @brief The valid information as it was stored in the data pool
* is copied to this attribute.
*/
bool valid;
/**
* @brief The information whether the class is read-write or
* read-only is stored here.
*/
ReadWriteMode_t readWriteMode;
//! @brief Pointer to the class which manages the HK pool.
LocalDataPoolManager* hkManager;
// std::ostream is the type for object std::cout
template <typename U, uint16_t otherSize>
friend std::ostream& operator<< (std::ostream &out,
const LocalPoolVector<U, otherSize> &var);
};
#include <framework/datapoollocal/LocalPoolVector.tpp>
template<typename T, uint16_t vectorSize>
using lp_vec_t = LocalPoolVector<T, vectorSize>;
#endif /* FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVECTOR_H_ */

View File

@ -1,206 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVECTOR_TPP_
#define FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVECTOR_TPP_
#ifndef FRAMEWORK_DATAPOOLLOCAL_LOCALPOOLVECTOR_H_
#error Include LocalPoolVector.h before LocalPoolVector.tpp!
#endif
template<typename T, uint16_t vectorSize>
inline LocalPoolVector<T, vectorSize>::LocalPoolVector(lp_id_t poolId,
HasLocalDataPoolIF* hkOwner, pool_rwm_t setReadWriteMode,
DataSetIF* dataSet) :
localPoolId(poolId), valid(false), readWriteMode(setReadWriteMode) {
if(poolId == PoolVariableIF::NO_PARAMETER) {
sif::warning << "LocalPoolVector: 0 passed as pool ID, which is the "
"NO_PARAMETER value!" << std::endl;
}
memset(this->value, 0, vectorSize * sizeof(T));
hkManager = hkOwner->getHkManagerHandle();
if (dataSet != nullptr) {
dataSet->registerVariable(this);
}
}
template<typename T, uint16_t vectorSize>
inline LocalPoolVector<T, vectorSize>::LocalPoolVector(lp_id_t poolId,
object_id_t poolOwner, pool_rwm_t setReadWriteMode, DataSetIF *dataSet):
readWriteMode(readWriteMode) {
if(poolId == PoolVariableIF::NO_PARAMETER) {
sif::warning << "LocalPoolVector: 0 passed as pool ID, which is the "
"NO_PARAMETER value!" << std::endl;
}
HasLocalDataPoolIF* hkOwner =
objectManager->get<HasLocalDataPoolIF>(poolOwner);
if(hkOwner == nullptr) {
sif::error << "LocalPoolVariable: The supplied pool owner did not implement"
"the correct interface HasHkPoolParametersIF!" << std::endl;
return;
}
hkManager = hkOwner->getHkManagerHandle();
if(dataSet != nullptr) {
dataSet->registerVariable(this);
}
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t LocalPoolVector<T, vectorSize>::read(uint32_t lockTimeout) {
MutexHelper(hkManager->getMutexHandle(), lockTimeout);
return readWithoutLock();
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t LocalPoolVector<T, vectorSize>::readWithoutLock() {
if(readWriteMode == pool_rwm_t::VAR_WRITE) {
sif::debug << "LocalPoolVar: Invalid read write "
"mode for read() call." << std::endl;
return PoolVariableIF::INVALID_READ_WRITE_MODE;
}
PoolEntry<T>* poolEntry = nullptr;
ReturnValue_t result = hkManager->fetchPoolEntry(localPoolId, &poolEntry);
memset(this->value, 0, vectorSize * sizeof(T));
if(result != RETURN_OK) {
sif::error << "PoolVector: Read of local pool variable of object "
"0x" << std::hex << std::setw(8) << std::setfill('0') <<
hkManager->getOwner() << "and lp ID 0x" << localPoolId <<
std::dec << " failed." << std::endl;
return result;
}
memcpy(this->value, poolEntry->address, poolEntry->getByteSize());
this->valid = poolEntry->valid;
return RETURN_OK;
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t LocalPoolVector<T, vectorSize>::commit(
uint32_t lockTimeout) {
MutexHelper(hkManager->getMutexHandle(), lockTimeout);
return commitWithoutLock();
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t LocalPoolVector<T, vectorSize>::commitWithoutLock() {
if(readWriteMode == pool_rwm_t::VAR_READ) {
sif::debug << "LocalPoolVar: Invalid read write "
"mode for commit() call." << std::endl;
return PoolVariableIF::INVALID_READ_WRITE_MODE;
}
PoolEntry<T>* poolEntry = nullptr;
ReturnValue_t result = hkManager->fetchPoolEntry(localPoolId, &poolEntry);
if(result != RETURN_OK) {
sif::error << "PoolVector: Read of local pool variable of object "
"0x" << std::hex << std::setw(8) << std::setfill('0') <<
hkManager->getOwner() << " and lp ID 0x" << localPoolId <<
std::dec << " failed.\n" << std::flush;
return result;
}
memcpy(poolEntry->address, this->value, poolEntry->getByteSize());
poolEntry->valid = this->valid;
return RETURN_OK;
}
template<typename T, uint16_t vectorSize>
inline T& LocalPoolVector<T, vectorSize>::operator [](int i) {
if(i <= vectorSize) {
return value[i];
}
// If this happens, I have to set some value. I consider this
// a configuration error, but I wont exit here.
sif::error << "LocalPoolVector: Invalid index. Setting or returning"
" last value!" << std::endl;
return value[i];
}
template<typename T, uint16_t vectorSize>
inline const T& LocalPoolVector<T, vectorSize>::operator [](int i) const {
if(i <= vectorSize) {
return value[i];
}
// If this happens, I have to set some value. I consider this
// a configuration error, but I wont exit here.
sif::error << "LocalPoolVector: Invalid index. Setting or returning"
" last value!" << std::endl;
return value[i];
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t LocalPoolVector<T, vectorSize>::serialize(uint8_t** buffer,
size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const {
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
for (uint16_t i = 0; i < vectorSize; i++) {
result = SerializeAdapter::serialize(&(value[i]), buffer, size,
maxSize, streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
break;
}
}
return result;
}
template<typename T, uint16_t vectorSize>
inline size_t LocalPoolVector<T, vectorSize>::getSerializedSize() const {
return vectorSize * SerializeAdapter::getSerializedSize(value);
}
template<typename T, uint16_t vectorSize>
inline ReturnValue_t LocalPoolVector<T, vectorSize>::deSerialize(
const uint8_t** buffer, size_t* size,
SerializeIF::Endianness streamEndianness) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
for (uint16_t i = 0; i < vectorSize; i++) {
result = SerializeAdapter::deSerialize(&(value[i]), buffer, size,
streamEndianness);
if (result != HasReturnvaluesIF::RETURN_OK) {
break;
}
}
return result;
}
template<typename T, uint16_t vectorSize>
inline pool_rwm_t LocalPoolVector<T, vectorSize>::getReadWriteMode() const {
return this->readWriteMode;
}
template<typename T, uint16_t vectorSize>
inline uint32_t LocalPoolVector<T, vectorSize>::getDataPoolId() const {
return localPoolId;
}
template<typename T, uint16_t vectorSize>
inline void LocalPoolVector<T, vectorSize>::setDataPoolId(uint32_t poolId) {
this->localPoolId = poolId;
}
template<typename T, uint16_t vectorSize>
inline void LocalPoolVector<T, vectorSize>::setValid(bool valid) {
this->valid = valid;
}
template<typename T, uint16_t vectorSize>
inline uint8_t LocalPoolVector<T, vectorSize>::getValid() const {
return valid;
}
template<typename T, uint16_t vectorSize>
inline bool LocalPoolVector<T, vectorSize>::isValid() const {
return valid;
}
template<typename T, uint16_t vectorSize>
inline std::ostream& operator<< (std::ostream &out,
const LocalPoolVector<T, vectorSize> &var) {
out << "Vector: [";
for(int i = 0;i < vectorSize; i++) {
out << var.value[i];
if(i < vectorSize - 1) {
out << ", ";
}
}
out << "]";
return out;
}
#endif

View File

@ -1,6 +0,0 @@
#include <framework/datapoollocal/StaticLocalDataSet.h>

View File

@ -1,11 +0,0 @@
#ifndef FRAMEWORK_DATAPOOLLOCAL_STATICLOCALDATASET_H_
#define FRAMEWORK_DATAPOOLLOCAL_STATICLOCALDATASET_H_
#include <framework/datapool/DataSetBase.h>
class StaticLocalDataSet: public DataSetBase {
};
#endif /* FRAMEWORK_DATAPOOLLOCAL_STATICLOCALDATASET_H_ */

View File

@ -1,132 +0,0 @@
#ifndef ASSEMBLYBASE_H_
#define ASSEMBLYBASE_H_
#include <framework/container/FixedArrayList.h>
#include <framework/devicehandlers/DeviceHandlerBase.h>
#include <framework/subsystem/SubsystemBase.h>
class AssemblyBase: public SubsystemBase {
public:
static const uint8_t INTERFACE_ID = CLASS_ID::ASSEMBLY_BASE;
static const ReturnValue_t NEED_SECOND_STEP = MAKE_RETURN_CODE(0x01);
static const ReturnValue_t NEED_TO_RECONFIGURE = MAKE_RETURN_CODE(0x02);
static const ReturnValue_t MODE_FALLBACK = MAKE_RETURN_CODE(0x03);
static const ReturnValue_t CHILD_NOT_COMMANDABLE = MAKE_RETURN_CODE(0x04);
static const ReturnValue_t NEED_TO_CHANGE_HEALTH = MAKE_RETURN_CODE(0x05);
static const ReturnValue_t NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE =
MAKE_RETURN_CODE(0xa1);
AssemblyBase(object_id_t objectId, object_id_t parentId, uint16_t commandQueueDepth = 8);
virtual ~AssemblyBase();
protected:
enum InternalState {
STATE_NONE,
STATE_OVERWRITE_HEALTH,
STATE_NEED_SECOND_STEP,
STATE_SINGLE_STEP,
STATE_SECOND_STEP,
} internalState;
enum RecoveryState {
RECOVERY_IDLE,
RECOVERY_STARTED,
RECOVERY_ONGOING,
RECOVERY_ONGOING_2,
RECOVERY_WAIT
} recoveryState; //!< Indicates if one of the children requested a recovery.
ChildrenMap::iterator recoveringDevice;
/**
* the mode the current transition is trying to achieve.
* Can be different from the modehelper.commandedMode!
*/
Mode_t targetMode;
/**
* the submode the current transition is trying to achieve.
* Can be different from the modehelper.commandedSubmode!
*/
Submode_t targetSubmode;
Countdown recoveryOffTimer;
static const uint32_t POWER_OFF_TIME_MS = 1000;
virtual ReturnValue_t handleCommandMessage(CommandMessage *message);
virtual ReturnValue_t handleHealthReply(CommandMessage *message);
virtual void performChildOperation();
bool handleChildrenChanged();
/**
* This method is called if the children changed its mode in a way that the current
* mode can't be kept.
* Default behavior is to go to MODE_OFF.
* @param result The failure code which was returned by checkChildrenState.
*/
virtual void handleChildrenLostMode(ReturnValue_t result);
bool handleChildrenChangedHealth();
virtual void handleChildrenTransition();
ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode);
virtual ReturnValue_t isModeCombinationValid(Mode_t mode,
Submode_t submode) = 0;
virtual void startTransition(Mode_t mode, Submode_t submode);
virtual void doStartTransition(Mode_t mode, Submode_t submode);
virtual bool isInTransition();
virtual void handleModeReached();
virtual void handleModeTransitionFailed(ReturnValue_t result);
void sendHealthCommand(MessageQueueId_t sendTo, HealthState health);
//SHOULDDO: Change that OVERWRITE_HEALTH may be returned (or return internalState directly?)
/**
* command children to reach mode,submode
*
* set #commandsOutstanding correctly, or use executeTable()
*
* @param mode
* @param submode
* @return
* - @c RETURN_OK if ok
* - @c NEED_SECOND_STEP if children need to be commanded again
*/
virtual ReturnValue_t commandChildren(Mode_t mode, Submode_t submode) = 0;
//SHOULDDO: Remove wantedMode, wantedSubmode, as targetMode/submode is available?
virtual ReturnValue_t checkChildrenStateOn(Mode_t wantedMode,
Submode_t wantedSubmode) = 0;
virtual ReturnValue_t checkChildrenStateOff();
ReturnValue_t checkChildrenState();
virtual ReturnValue_t checkChildOff(uint32_t objectId);
/**
* Manages recovery of a device
* @return true if recovery is still ongoing, false else.
*/
bool checkAndHandleRecovery();
/**
* Helper method to overwrite health state of one of the children.
* Also sets state to STATE_OVERWRITE_HEATH.
* @param objectId Must be a registered child.
*/
void overwriteDeviceHealth(object_id_t objectId, HasHealthIF::HealthState oldHealth);
};
#endif /* ASSEMBLYBASE_H_ */

View File

@ -1,10 +0,0 @@
#include <framework/devicehandlers/ChildHandlerFDIR.h>
ChildHandlerFDIR::ChildHandlerFDIR(object_id_t owner, object_id_t faultTreeParent, uint32_t recoveryCount) :
DeviceHandlerFailureIsolation(owner, faultTreeParent) {
recoveryCounter.setFailureThreshold(recoveryCount);
}
ChildHandlerFDIR::~ChildHandlerFDIR() {
}

View File

@ -1,201 +0,0 @@
/**
* @file CommunicationMessage.cpp
*
* @date 28.02.2020
*/
#include <framework/devicehandlers/CommunicationMessage.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <cstring>
CommunicationMessage::CommunicationMessage(): uninitialized(true) {
}
CommunicationMessage::~CommunicationMessage() {}
void CommunicationMessage::setSendRequestFromPointer(uint32_t address,
uint32_t dataLen, const uint8_t * data) {
setMessageType(SEND_DATA_FROM_POINTER);
setAddress(address);
setDataLen(dataLen);
setDataPointer(data);
}
void CommunicationMessage::setSendRequestFromIpcStore(uint32_t address, store_address_t storeId) {
setMessageType(SEND_DATA_FROM_IPC_STORE);
setAddress(address);
setStoreId(storeId.raw);
}
void CommunicationMessage::setSendRequestRaw(uint32_t address, uint32_t length,
uint16_t sendBufferPosition) {
setMessageType(SEND_DATA_RAW);
setAddress(address);
setDataLen(length);
if(sendBufferPosition != 0) {
setBufferPosition(sendBufferPosition);
}
}
void CommunicationMessage::setDataReplyFromIpcStore(uint32_t address, store_address_t storeId) {
setMessageType(REPLY_DATA_IPC_STORE);
setAddress(address);
setStoreId(storeId.raw);
}
void CommunicationMessage::setDataReplyFromPointer(uint32_t address,
uint32_t dataLen, uint8_t *data) {
setMessageType(REPLY_DATA_FROM_POINTER);
setAddress(address);
setDataLen(dataLen);
setDataPointer(data);
}
void CommunicationMessage::setDataReplyRaw(uint32_t address,
uint32_t length, uint16_t receiveBufferPosition) {
setMessageType(REPLY_DATA_RAW);
setAddress(address);
setDataLen(length);
if(receiveBufferPosition != 0) {
setBufferPosition(receiveBufferPosition);
}
}
void CommunicationMessage::setMessageType(messageType status) {
uint8_t status_uint8 = status;
memcpy(getData() + sizeof(uint32_t), &status_uint8, sizeof(status_uint8));
}
void CommunicationMessage::setAddress(address_t address) {
memcpy(getData(),&address,sizeof(address));
}
address_t CommunicationMessage::getAddress() const {
address_t address;
memcpy(&address,getData(),sizeof(address));
return address;
}
void CommunicationMessage::setBufferPosition(uint16_t bufferPosition) {
memcpy(getData() + sizeof(uint32_t) + sizeof(uint16_t),
&bufferPosition, sizeof(bufferPosition));
}
uint16_t CommunicationMessage::getBufferPosition() const {
uint16_t bufferPosition;
memcpy(&bufferPosition,
getData() + sizeof(uint32_t) + sizeof(uint16_t), sizeof(bufferPosition));
return bufferPosition;
}
void CommunicationMessage::setDataPointer(const void * data) {
memcpy(getData() + 3 * sizeof(uint32_t), &data, sizeof(uint32_t));
}
void CommunicationMessage::setStoreId(store_address_t storeId) {
memcpy(getData() + 2 * sizeof(uint32_t), &storeId.raw, sizeof(uint32_t));
}
store_address_t CommunicationMessage::getStoreId() const{
store_address_t temp;
memcpy(&temp.raw,getData() + 2 * sizeof(uint32_t), sizeof(uint32_t));
return temp;
}
void CommunicationMessage::setDataLen(uint32_t length) {
memcpy(getData() + 2 * sizeof(uint32_t), &length, sizeof(length));
}
uint32_t CommunicationMessage::getDataLen() const {
uint32_t len;
memcpy(&len, getData() + 2 * sizeof(uint32_t), sizeof(len));
return len;
}
void CommunicationMessage::setUint32Data(uint32_t data) {
memcpy(getData() + 3 * sizeof(uint32_t), &data, sizeof(data));
}
uint32_t CommunicationMessage::getUint32Data() const{
uint32_t data;
memcpy(&data,getData() + 3 * sizeof(uint32_t), sizeof(data));
return data;
}
void CommunicationMessage::setDataByte(uint8_t byte, uint8_t position) {
if(0 <= position && position <= 3) {
memcpy(getData() + 3 * sizeof(uint32_t) + position * sizeof(uint8_t), &byte, sizeof(byte));
}
else {
sif::error << "Comm Message: Invalid byte position" << std::endl;
}
}
uint8_t CommunicationMessage::getDataByte(uint8_t position) const {
if(0 <= position && position <= 3) {
uint8_t byte;
memcpy(&byte, getData() + 3 * sizeof(uint32_t) + position * sizeof(uint8_t), sizeof(byte));
return byte;
}
else {
return 0;
sif::error << "Comm Message: Invalid byte position" << std::endl;
}
}
void CommunicationMessage::setDataUint16(uint16_t data, uint8_t position) {
if(position == 0 || position == 1) {
memcpy(getData() + 3 * sizeof(uint32_t) + position * sizeof(uint16_t), &data, sizeof(data));
}
else {
sif::error << "Comm Message: Invalid byte position" << std::endl;
}
}
uint16_t CommunicationMessage::getDataUint16(uint8_t position) const{
if(position == 0 || position == 1) {
uint16_t data;
memcpy(&data, getData() + 3 * sizeof(uint32_t) + position * sizeof(uint16_t), sizeof(data));
return data;
}
else {
return 0;
sif::error << "Comm Message: Invalid byte position" << std::endl;
}
}
CommunicationMessage::messageType CommunicationMessage::getMessageType() const{
messageType messageType;
memcpy(&messageType, getData() + sizeof(uint32_t),sizeof(uint8_t));
return messageType;
}
void CommunicationMessage::setMessageId(uint8_t messageId) {
memcpy(getData() + sizeof(uint32_t) + sizeof(uint8_t), &messageId, sizeof(messageId));
}
uint8_t CommunicationMessage::getMessageId() const {
uint8_t messageId;
memcpy(&messageId, getData() + sizeof(uint32_t) + sizeof(uint8_t), sizeof(messageId));
return messageId;
}
void CommunicationMessage::clearCommunicationMessage() {
messageType messageType = getMessageType();
switch(messageType) {
case(messageType::REPLY_DATA_IPC_STORE):
case(messageType::SEND_DATA_FROM_IPC_STORE): {
store_address_t storeId = getStoreId();
StorageManagerIF *ipcStore = objectManager->
get<StorageManagerIF>(objects::IPC_STORE);
if (ipcStore != NULL) {
ipcStore->deleteData(storeId);
}
}
/* NO BREAK falls through*/
default:
memset(getData(),0,4*sizeof(uint32_t));
break;
}
}

View File

@ -1,173 +0,0 @@
/**
* @file CommunicationMessage.h
*
* @date 28.02.2020
*/
#ifndef FRAMEWORK_DEVICEHANDLERS_COMMUNICATIONMESSAGE_H_
#define FRAMEWORK_DEVICEHANDLERS_COMMUNICATIONMESSAGE_H_
#include <framework/devicehandlers/CommunicationMessage.h>
#include <framework/ipc/MessageQueueMessage.h>
#include <framework/storagemanager/StorageManagerIF.h>
#include <framework/devicehandlers/DeviceHandlerBase.h>
/**
* @brief Message type to send larger messages
*
* @details
* Can be used to pass information like data pointers and
* data sizes between communication tasks.
*
*/
class CommunicationMessage: public MessageQueueMessage {
public:
enum messageType {
NONE,
SEND_DATA_FROM_POINTER,
SEND_DATA_FROM_IPC_STORE,
SEND_DATA_RAW,
REPLY_DATA_FROM_POINTER,
REPLY_DATA_IPC_STORE,
REPLY_DATA_RAW,
FAULTY,
};
//Add other messageIDs here if necessary.
static const uint8_t COMMUNICATION_MESSAGE_SIZE = HEADER_SIZE + 4 * sizeof(uint32_t);
CommunicationMessage();
virtual ~CommunicationMessage();
/**
* Message Type is stored as the fifth byte of the message data
* @param status
*/
void setMessageType(messageType status);
messageType getMessageType() const;
/**
* This is a unique ID which can be used to handle different kinds of messages.
* For example, the same interface (e.g. SPI) could be used to exchange raw data
* (e.g. sensor values) and data stored in the IPC store.
* The ID can be used to distinguish the messages in child implementations.
* The message ID is stored as the sixth byte of the message data.
* @param messageId
*/
void setMessageId(uint8_t messageId);
uint8_t getMessageId() const;
/**
* Send requests with pointer to the data to be sent and send data length
* @param address Target Address, first four bytes
* @param dataLen Length of data to send, next four bytes
* @param data Pointer to data to send
*
*/
void setSendRequestFromPointer(uint32_t address, uint32_t dataLen, const uint8_t * data);
/**
* Send requests with a store ID, using the IPC store
* @param address Target Address, first four bytes
* @param storeId Store ID in the IPC store
*
*/
void setSendRequestFromIpcStore(uint32_t address, store_address_t storeId);
/**
* Send requests with data length and data in message (max. 4 bytes)
* @param address Target Address, first four bytes
* @param dataLen Length of data to send, next four bytes
* @param data Pointer to data to send
*
*/
void setSendRequestRaw(uint32_t address, uint32_t length,
uint16_t sendBufferPosition = 0);
/**
* Data message with data stored in IPC store
* @param address Target Address, first four bytes
* @param length
* @param storeId
*/
void setDataReplyFromIpcStore(uint32_t address, store_address_t storeId);
/**
* Data reply with data stored in buffer, passing the pointer to
* the buffer and the data size
* @param address Target Address, first four bytes
* @param dataLen Length of data to send, next four bytes
* @param data Pointer to the data
*/
void setDataReplyFromPointer(uint32_t address, uint32_t dataLen, uint8_t * data);
/**
* Data message with data stored in actual message.
* 4 byte datafield is intialized with 0.
* Set data with specific setter functions below.
* Can also be used to supply information at which position the raw data should be stored
* in a receive buffer.
*/
void setDataReplyRaw(uint32_t address, uint32_t length, uint16_t receiveBufferPosition = 0);
/**
* First four bytes of message data
* @param address
*/
void setAddress(address_t address);
address_t getAddress() const;
/**
* Set byte as position of 4 byte data field
* @param byte
* @param position Position, 0 to 3 possible
*/
void setDataByte(uint8_t byte, uint8_t position);
uint8_t getDataByte(uint8_t position) const;
/**
* Set 2 byte value at position 1 or 2 of data field
* @param data
* @param position 0 or 1 possible
*/
void setDataUint16(uint16_t data, uint8_t position);
uint16_t getDataUint16(uint8_t position) const;
void setUint32Data(uint32_t data);
uint32_t getUint32Data() const;
/**
* Stored in Bytes 13-16 of message data
* @param length
*/
void setDataLen(uint32_t length);
uint32_t getDataLen() const;
/**
* Stored in last four bytes (Bytes 17-20) of message data
* @param sendData
*/
void setDataPointer(const void * data);
/**
* In case the send request data or reply data is to be stored in a buffer,
* a buffer Position can be stored here as the seventh and eigth byte of
* the message, so the receive buffer can't be larger than sizeof(uint16_t) for now.
* @param bufferPosition In case the data is stored in a buffer, the position can be supplied here
*/
void setBufferPosition(uint16_t bufferPosition);
uint16_t getBufferPosition() const;
void setStoreId(store_address_t storeId);
store_address_t getStoreId() const;
/**
* Clear the message. Deletes IPC Store data
* and sets all data to 0. Also sets message type to NONE
*/
void clearCommunicationMessage();
private:
bool uninitialized; //!< Could be used to warn if data has not been set.
};
#endif /* FRAMEWORK_DEVICEHANDLERS_COMMUNICATIONMESSAGE_H_ */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,91 +0,0 @@
#ifndef DEVICEHANDLERMESSAGE_H_
#define DEVICEHANDLERMESSAGE_H_
#include <framework/action/ActionMessage.h>
#include <framework/ipc/CommandMessage.h>
#include <framework/objectmanager/SystemObjectIF.h>
#include <framework/storagemanager/StorageManagerIF.h>
//SHOULDDO: rework the static constructors to name the type of command they are building, maybe even hide setting the commandID.
/**
* This is used to uniquely identify commands that are sent to a device
*
* The values are defined in the device-specific implementations
*/
typedef uint32_t DeviceCommandId_t;
/**
* The DeviceHandlerMessage is used to send Commands to a DeviceHandlerIF
*/
class DeviceHandlerMessage {
private:
DeviceHandlerMessage();
public:
/**
* These are the commands that can be sent to a DeviceHandlerBase
*/
static const uint8_t MESSAGE_ID = messagetypes::DEVICE_HANDLER_COMMAND;
static const Command_t CMD_RAW = MAKE_COMMAND_ID( 1 ); //!< Sends a raw command, setParameter is a ::store_id_t containing the raw packet to send
// static const Command_t CMD_DIRECT = MAKE_COMMAND_ID( 2 ); //!< Sends a direct command, setParameter is a ::DeviceCommandId_t, setParameter2 is a ::store_id_t containing the data needed for the command
static const Command_t CMD_SWITCH_ADDRESS = MAKE_COMMAND_ID( 3 ); //!< Requests a IO-Board switch, setParameter() is the IO-Board identifier
static const Command_t CMD_WIRETAPPING = MAKE_COMMAND_ID( 4 ); //!< (De)Activates the monitoring of all raw traffic in DeviceHandlers, setParameter is 0 to deactivate, 1 to activate
/*static const Command_t REPLY_SWITCHED_IOBOARD = MAKE_COMMAND_ID(1 );//!< Reply to a @c CMD_SWITCH_IOBOARD, indicates switch was successful, getParameter() contains the board switched to (0: nominal, 1: redundant)
static const Command_t REPLY_CANT_SWITCH_IOBOARD = MAKE_COMMAND_ID( 2); //!< Reply to a @c CMD_SWITCH_IOBOARD, indicating the switch could not be performed, getParameter() contains the error message
static const Command_t REPLY_WIRETAPPING = MAKE_COMMAND_ID( 3); //!< Reply to a @c CMD_WIRETAPPING, getParameter() is the current state, 1 enabled, 0 disabled
static const Command_t REPLY_COMMAND_WAS_SENT = MAKE_COMMAND_ID(4 );//!< Reply to a @c CMD_RAW or @c CMD_DIRECT, indicates the command was successfully sent to the device, getParameter() contains the ::DeviceCommandId_t
static const Command_t REPLY_COMMAND_NOT_SUPPORTED = MAKE_COMMAND_ID(5 );//!< Reply to a @c CMD_DIRECT, the requested ::DeviceCommand_t is not supported, getParameter() contains the requested ::DeviceCommand_t, getParameter2() contains the ::DeviceCommandId_t
static const Command_t REPLY_COMMAND_WAS_NOT_SENT = MAKE_COMMAND_ID(6 );//!< Reply to a @c CMD_RAW or @c CMD_DIRECT, indicates the command was not sent, getParameter contains the RMAP Return code (@see rmap.h), getParameter2() contains the ::DeviceCommandId_t
static const Command_t REPLY_COMMAND_ALREADY_SENT = MAKE_COMMAND_ID(7 );//!< Reply to a @c CMD_DIRECT, the requested ::DeviceCommand_t has already been sent to the device and not ye been answered
static const Command_t REPLY_WRONG_MODE_FOR_CMD = MAKE_COMMAND_ID(8 );//!< Reply to a @c CMD_RAW or @c CMD_DIRECT, indicates that the requested command can not be sent in the curent mode, getParameter() contains the DeviceHandlerCommand_t
static const Command_t REPLY_NO_DATA = MAKE_COMMAND_ID(9 ); //!< Reply to a CMD_RAW or @c CMD_DIRECT, indicates that the ::store_id_t was invalid, getParameter() contains the ::DeviceCommandId_t, getPrameter2() contains the error code
*/
static const Command_t REPLY_DIRECT_COMMAND_SENT = ActionMessage::STEP_SUCCESS; //!< Signals that a direct command was sent
static const Command_t REPLY_RAW_COMMAND = MAKE_COMMAND_ID(0x11 ); //!< Contains a raw command sent to the Device
static const Command_t REPLY_RAW_REPLY = MAKE_COMMAND_ID( 0x12); //!< Contains a raw reply from the Device, getParameter() is the ObjcetId of the sender, getParameter2() is a ::store_id_t containing the raw packet received
static const Command_t REPLY_DIRECT_COMMAND_DATA = ActionMessage::DATA_REPLY;
/**
* Default Destructor
*/
virtual ~DeviceHandlerMessage() {
}
static store_address_t getStoreAddress(const CommandMessage* message);
static uint32_t getDeviceCommandId(const CommandMessage* message);
static object_id_t getDeviceObjectId(const CommandMessage *message);
static object_id_t getIoBoardObjectId(const CommandMessage* message);
static uint8_t getWiretappingMode(const CommandMessage* message);
// static void setDeviceHandlerDirectCommandMessage(CommandMessage* message,
// DeviceCommandId_t deviceCommand,
// store_address_t commandParametersStoreId);
static void setDeviceHandlerDirectCommandReply(CommandMessage* message,
object_id_t deviceObjectid,
store_address_t commandParametersStoreId);
static void setDeviceHandlerRawCommandMessage(CommandMessage* message,
store_address_t rawPacketStoreId);
static void setDeviceHandlerRawReplyMessage(CommandMessage* message,
object_id_t deviceObjectid, store_address_t rawPacketStoreId,
bool isCommand);
// static void setDeviceHandlerMessage(CommandMessage* message,
// Command_t command, DeviceCommandId_t deviceCommand,
// store_address_t commandParametersStoreId);
// static void setDeviceHandlerMessage(CommandMessage* message,
// Command_t command, store_address_t rawPacketStoreId);
static void setDeviceHandlerWiretappingMessage(CommandMessage* message,
uint8_t wiretappingMode);
static void setDeviceHandlerSwitchIoBoardMessage(CommandMessage* message,
object_id_t ioBoardIdentifier);
static void clear(CommandMessage* message);
};
#endif /* DEVICEHANDLERMESSAGE_H_ */

1
docs/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/_build

66
docs/CMakeLists.txt Normal file
View File

@ -0,0 +1,66 @@
# This is based on this excellent posting provided by Sy:
# https://devblogs.microsoft.com/cppblog/clear-functional-c-documentation-with-sphinx-breathe-doxygen-cmake/
find_package(Doxygen REQUIRED)
find_package(Sphinx REQUIRED)
get_target_property(LIB_FSFW_PUBLIC_HEADER_DIRS ${LIB_FSFW_NAME} INTERFACE_INCLUDE_DIRECTORIES)
# TODO: Add HAL as well
file(GLOB_RECURSE LIB_FSFW_PUBLIC_HEADERS ${PROJECT_SOURCE_DIR}/src/*.h)
file(GLOB_RECURSE RST_DOC_FILES ${PROJECT_SOURCE_DIR}/docs/*.rst)
set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/src)
set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen)
set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/xml/index.xml)
set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
# Replace variables inside @@ with the current values
configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)
# Doxygen won't create this for us
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR})
# Only regenerate Doxygen when the Doxyfile or public headers change
add_custom_command(
OUTPUT ${DOXYGEN_INDEX_FILE}
DEPENDS ${LIB_FSFW_PUBLIC_HEADERS}
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT}
MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN}
COMMENT "Generating docs"
VERBATIM
)
# Nice named target so we can run the job easily
add_custom_target(Doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE})
set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR})
set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/sphinx)
set(SPHINX_INDEX_FILE ${SPHINX_BUILD}/index.html)
# Only regenerate Sphinx when:
# - Doxygen has rerun
# - Our doc files have been updated
# - The Sphinx config has been updated
add_custom_command(
OUTPUT ${SPHINX_INDEX_FILE}
COMMAND
${SPHINX_EXECUTABLE} -b html
# Tell Breathe where to find the Doxygen output
-Dbreathe_projects.fsfw=${DOXYGEN_OUTPUT_DIR}/xml
${SPHINX_SOURCE} ${SPHINX_BUILD}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS
# Other docs files you want to track should go here (or in some variable)
${RST_DOC_FILES}
${DOXYGEN_INDEX_FILE}
MAIN_DEPENDENCY ${SPHINX_SOURCE}/conf.py
COMMENT "Generating documentation with Sphinx"
)
# Nice named target so we can run the job easily
add_custom_target(Sphinx ALL DEPENDS ${SPHINX_INDEX_FILE})
# Add an install target to install the docs
include(GNUInstallDirs)
install(DIRECTORY ${SPHINX_BUILD}
DESTINATION ${CMAKE_INSTALL_DOCDIR})

7
docs/Doxyfile.in Normal file
View File

@ -0,0 +1,7 @@
INPUT = "@DOXYGEN_INPUT_DIR@"
RECURSIVE = YES
OUTPUT_DIRECTORY = "@DOXYGEN_OUTPUT_DIR@"
GENERATE_XML = YES

20
docs/Makefile Normal file
View File

@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

40
docs/README-config.md Normal file
View File

@ -0,0 +1,40 @@
Configuring the FSFW
======
The FSFW can be configured via the `fsfwconfig` folder. A template folder has
been provided to have a starting point for this. The folder should be added
to the include path. The primary configuration file is the `FSFWConfig.h` folder. Some
of the available options will be explained in more detail here.
# Auto-Translation of Events
The FSFW allows the automatic translation of events, which allows developers to track triggered
events directly via console output. Using this feature requires:
1. `FSFW_OBJ_EVENT_TRANSLATION` set to 1 in the configuration file.
2. Special auto-generated translation files which translate event IDs and object IDs into
human readable strings. These files can be generated using the
[modgen Python scripts](https://git.ksat-stuttgart.de/source/modgen.git).
3. The generated translation files for the object IDs should be named `translatesObjects.cpp`
and `translateObjects.h` and should be copied to the `fsfwconfig/objects` folder
4. The generated translation files for the event IDs should be named `translateEvents.cpp` and
`translateEvents.h` and should be copied to the `fsfwconfig/events` folder
An example implementations of these translation file generators can be found as part
of the [SOURCE project here](https://git.ksat-stuttgart.de/source/sourceobsw/-/tree/development/generators)
or the [FSFW example](https://egit.irs.uni-stuttgart.de/fsfw/fsfw_example_public/src/branch/master/generators)
## Configuring the Event Manager
The number of allowed subscriptions can be modified with the following
parameters:
``` c++
namespace fsfwconfig {
//! Configure the allocated pool sizes for the event manager.
static constexpr size_t FSFW_EVENTMGMR_MATCHTREE_NODES = 240;
static constexpr size_t FSFW_EVENTMGMT_EVENTIDMATCHERS = 120;
static constexpr size_t FSFW_EVENTMGMR_RANGEMATCHERS = 120;
}
```

View File

@ -0,0 +1 @@
## Controllers

55
docs/README-core.md Normal file
View File

@ -0,0 +1,55 @@
## FSFW Core Modules
These core modules provide the most important functionalities of the
Flight Software Framework
### Clock
* This is a class of static functions that can be used at anytime
* Leap Seconds must be set if any time conversions from UTC to other times is used
### ObjectManager
* Must be created during program startup
* The component which handles all references. All SystemObjects register at this component.
* Any SystemObject needs to have a unique ObjectId. Those can be managed like objects::framework_objects.
* A reference to an object can be get by calling the following function. T must be the specific Interface you want to call.
A nullptr check of the returning Pointer must be done. This function is based on Run-time type information.
```cpp
template <typename T> T* ObjectManagerIF::get( object_id_t id )
```
* A typical way to create all objects on startup is a handing a static produce function to the
ObjectManager on creation. By calling objectManager->initialize() the produce function will be
called and all SystemObjects will be initialized afterwards.
### Event Manager
* Component which allows routing of events
* Other objects can subscribe to specific events, ranges of events or all events of an object.
* Subscriptions can be done during runtime but should be done during initialization
* Amounts of allowed subscriptions can be configured in `FSFWConfig.h`
### Health Table
* A component which holds every health state
* Provides a thread safe way to access all health states without the need of message exchanges
### Stores
* The message based communication can only exchange a few bytes of information inside the message
itself. Therefore, additional information can be exchanged with Stores. With this, only the
store address must be exchanged in the message.
* Internally, the FSFW uses an IPC Store to exchange data between processes. For incoming TCs a TC
Store is used. For outgoing TM a TM store is used.
* All of them should use the Thread Safe Class storagemanager/PoolManager
### Tasks
There are two different types of tasks:
* The PeriodicTask just executes objects that are of type ExecutableObjectIF in the order of the
insertion to the Tasks.
* FixedTimeslotTask executes a list of calls in the order of the given list. This is intended for
DeviceHandlers, where polling should be in a defined order. An example can be found in
`defaultcfg/fsfwconfig/pollingSequence` folder

View File

@ -0,0 +1 @@
## Device Handlers

135
docs/README-highlevel.md Normal file
View File

@ -0,0 +1,135 @@
High-level overview
======
# Structure
The general structure is driven by the usage of interfaces provided by objects.
The FSFW uses C++11 as baseline. The intention behind this is that this C++ Standard should be
widely available, even with older compilers.
The FSFW uses dynamic allocation during the initialization but provides static containers during runtime.
This simplifies the instantiation of objects and allows the usage of some standard containers.
Dynamic Allocation after initialization is discouraged and different solutions are provided in the
FSFW to achieve that. The fsfw uses run-time type information but exceptions are not allowed.
# Failure Handling
Functions should return a defined `ReturnValue_t` to signal to the caller that something has
gone wrong. Returnvalues must be unique. For this the function `HasReturnvaluesIF::makeReturnCode`
or the macro `MAKE_RETURN` can be used. The `CLASS_ID` is a unique id for that type of object.
See `returnvalues/FwClassIds` folder. The user can add custom `CLASS_ID`s via the
`fsfwconfig` folder.
# OSAL
The FSFW provides operation system abstraction layers for Linux, FreeRTOS and RTEMS.
The OSAL provides periodic tasks, message queues, clocks and semaphores as well as mutexes.
The [OSAL README](doc/README-osal.md#top) provides more detailed information on provided components
and how to use them.
# Core Components
The FSFW has following core components. More detailed informations can be found in the
[core component section](doc/README-core.md#top):
1. Tasks: Abstraction for different (periodic) task types like periodic tasks or tasks
with fixed timeslots
2. ObjectManager: This module stores all `SystemObjects` by mapping a provided unique object ID
to the object handles.
3. Static Stores: Different stores are provided to store data of variable size (like telecommands
or small telemetry) in a pool structure without using dynamic memory allocation.
These pools are allocated up front.
3. Clock: This module provided common time related functions
4. EventManager: This module allows routing of events generated by `SystemObjects`
5. HealthTable: A component which stores the health states of objects
# Static IDs in the framework
Some parts of the framework use a static routing address for communication.
An example setup of ids can be found in the example config in `defaultcft/fsfwconfig/objects`
inside the function `Factory::setStaticFrameworkObjectIds()`.
# Events
Events are tied to objects. EventIds can be generated by calling the Macro MAKE_EVENT.
This works analog to the returnvalues. Every object that needs own EventIds has to get a
unique SUBSYSTEM_ID. Every SystemObject can call triggerEvent from the parent class.
Therefore, event messages contain the specific EventId and the objectId of the object that
has triggered.
# Internal Communication
Components communicate mostly via Messages through Queues.
Those queues are created by calling the singleton `QueueFactory::instance()->create()` which
will create `MessageQueue` instances for the used OSAL.
# External Communication
The external communication with the mission control system is mostly up to the user implementation.
The FSFW provides PUS Services which can be used to but don't need to be used.
The services can be seen as a conversion from a TC to a message based communication and back.
## TMTC Communication
The FSFW provides some components to facilitate TMTC handling via the PUS commands.
For example, a UDP or TCP PUS server socket can be opened on a specific port using the
files located in `osal/common`. The FSFW example uses this functionality to allow sending telecommands
and receiving telemetry using the [TMTC commander application](https://github.com/spacefisch/tmtccmd).
Simple commands like the PUS Service 17 ping service can be tested by simply running the
`tmtc_client_cli.py` or `tmtc_client_gui.py` utility in
the [example tmtc folder](https://egit.irs.uni-stuttgart.de/fsfw/fsfw_example_public/src/branch/master/tmtc)
while the `fsfw_example` application is running.
More generally, any class responsible for handling incoming telecommands and sending telemetry
can implement the generic `TmTcBridge` class located in `tmtcservices`. Many applications
also use a dedicated polling task for reading telecommands which passes telecommands
to the `TmTcBridge` implementation.
## CCSDS Frames, CCSDS Space Packets and PUS
If the communication is based on CCSDS Frames and Space Packets, several classes can be used to
distributed the packets to the corresponding services. Those can be found in `tcdistribution`.
If Space Packets are used, a timestamper has to be provided by the user.
An example can be found in the `timemanager` folder, which uses `CCSDSTime::CDS_short`.
# Device Handlers
DeviceHandlers are another important component of the FSFW.
The idea is, to have a software counterpart of every physical device to provide a simple mode,
health and commanding interface. By separating the underlying Communication Interface with
`DeviceCommunicationIF`, a device handler (DH) can be tested on different hardware.
The DH has mechanisms to monitor the communication with the physical device which allow
for FDIR reaction. Device Handlers can be created by implementing `DeviceHandlerBase`.
A standard FDIR component for the DH will be created automatically but can
be overwritten by the user. More information on DeviceHandlers can be found in the
related [documentation section](doc/README-devicehandlers.md#top).
# Modes and Health
The two interfaces `HasModesIF` and `HasHealthIF` provide access for commanding and monitoring
of components. On-board Mode Management is implement in hierarchy system.
DeviceHandlers and Controllers are the lowest part of the hierarchy.
The next layer are Assemblies. Those assemblies act as a component which handle
redundancies of handlers. Assemblies share a common core with the next level which
are the Subsystems.
Those Assemblies are intended to act as auto-generated components from a database which describes
the subsystem modes. The definitions contain transition and target tables which contain the DH,
Assembly and Controller Modes to be commanded.
Transition tables contain as many steps as needed to reach the mode from any other mode, e.g. a
switch into any higher AOCS mode might first turn on the sensors, than the actuators and the
controller as last component.
The target table is used to describe the state that is checked continuously by the subsystem.
All of this allows System Modes to be generated as Subsystem object as well from the same database.
This System contains list of subsystem modes in the transition and target tables.
Therefore, it allows a modular system to create system modes and easy commanding of those, because
only the highest components must be commanded.
The health state represents if the component is able to perform its tasks.
This can be used to signal the system to avoid using this component instead of a redundant one.
The on-board FDIR uses the health state for isolation and recovery.
# Unit Tests
Unit Tests are provided in the unittest folder. Those use the catch2 framework but do not include
catch2 itself. More information on how to run these tests can be found in the separate
[`fsfw_tests` reposoitory](https://egit.irs.uni-stuttgart.de/fsfw/fsfw_tests)

174
docs/README-localpools.md Normal file
View File

@ -0,0 +1,174 @@
## Local Data Pools Developer Information
The following text is targeted towards mission software developers which would like
to use the local data pools provided by the FSFW to store data like sensor values so they can be
used by other software objects like controllers as well. If a custom class should have a local
pool which can be used by other software objects as well, following steps have to be performed:
1. Create a `LocalDataPoolManager` member object in the custom class
2. Implement the `HasLocalDataPoolIF` with specifies the interface between the local pool manager
and the class owning the local pool.
The local data pool manager is also able to process housekeeping service requests in form
of messages, generate periodic housekeeping packet, generate notification and snapshots of changed
variables and datasets and process notifications and snapshots coming from other objects.
The two former tasks are related to the external interface using telemetry and telecommands (TMTC)
while the later two are related to data consumers like controllers only acting on data change
detected by the data creator instead of checking the data manually each cycle. Two important
framework classes `DeviceHandlerBase` and `ExtendedControllerBase` already perform the two steps
shown above so the steps required are altered slightly.
### Storing and Accessing pool data
The pool manager is responsible for thread-safe access of the pool data, but the actual
access to the pool data from the point of view of a mission software developer happens via proxy
classes like pool variable classes. These classes store a copy
of the pool variable with the matching datatype and copy the actual data from the local pool
on a `read` call. Changed variables can then be written to the local pool with a `commit` call.
The `read` and `commit` calls are thread-safe and can be called concurrently from data creators
and data consumers. Generally, a user will create a dataset class which in turn groups all
cohesive pool variables. These sets simply iterator over the list of variables and call the
`read` and `commit` functions of each variable. The following diagram shows the
high-level architecture of the local data pools.
.. image:: ../misc/logo/FSFW_Logo_V3_bw.png
:alt: FSFW Logo
An example is shown for using the local data pools with a Gyroscope.
For example, the following code shows an implementation to access data from a Gyroscope taken
from the SOURCE CubeSat project:
```cpp
class GyroPrimaryDataset: public StaticLocalDataSet<3 * sizeof(float)> {
public:
/**
* Constructor for data users
* @param gyroId
*/
GyroPrimaryDataset(object_id_t gyroId):
StaticLocalDataSet(sid_t(gyroId, gyrodefs::GYRO_DATA_SET_ID)) {
setAllVariablesReadOnly();
}
lp_var_t<float> angVelocityX = lp_var_t<float>(sid.objectId,
gyrodefs::ANGULAR_VELOCITY_X, this);
lp_var_t<float> angVelocityY = lp_var_t<float>(sid.objectId,
gyrodefs::ANGULAR_VELOCITY_Y, this);
lp_var_t<float> angVelocityZ = lp_var_t<float>(sid.objectId,
gyrodefs::ANGULAR_VELOCITY_Z, this);
private:
friend class GyroHandler;
/**
* Constructor for data creator
* @param hkOwner
*/
GyroPrimaryDataset(HasLocalDataPoolIF* hkOwner):
StaticLocalDataSet(hkOwner, gyrodefs::GYRO_DATA_SET_ID) {}
};
```
There is a public constructor for users which sets all variables to read-only and there is a
constructor for the GyroHandler data creator by marking it private and declaring the `GyroHandler`
as a friend class. Both the atittude controller and the `GyroHandler` can now
use the same class definition to access the pool variables with `read` and `commit` semantics
in a thread-safe way. Generally, each class requiring access will have the set class as a member
class. The data creator will also be generally a `DeviceHandlerBase` subclass and some additional
steps are necessary to expose the set for housekeeping purposes.
### Using the local data pools in a `DeviceHandlerBase` subclass
It is very common to store data generated by devices like a sensor into a pool which can
then be used by other objects. Therefore, the `DeviceHandlerBase` already has a
local pool. Using the aforementioned example, our `GyroHandler` will now have the set class
as a member:
```cpp
class GyroHandler: ... {
public:
...
private:
...
GyroPrimaryDataset gyroData;
...
};
```
The constructor used for the creators expects the owner class as a parameter, so we initialize
the object in the `GyroHandler` constructor like this:
```cpp
GyroHandler::GyroHandler(object_id_t objectId, object_id_t comIF,
CookieIF *comCookie, uint8_t switchId):
DeviceHandlerBase(objectId, comIF, comCookie), switchId(switchId),
gyroData(this) {}
```
We need to assign the set to a reply ID used in the `DeviceHandlerBase`.
The combination of the `GyroHandler` object ID and the reply ID will be the 64-bit structure ID
`sid_t` and is used to globally identify the set, for example when requesting housekeeping data or
generating update messages. We need to assign our custom set class in some way so that the local
pool manager can access the custom data sets as well.
By default, the `getDataSetHandle` will take care of this tasks. The default implementation for a
`DeviceHandlerBase` subclass will use the internal command map to retrieve
a handle to a dataset from a given reply ID. Therefore,
we assign the set in the `fillCommandAndReplyMap` function:
```cpp
void GyroHandler::fillCommandAndReplyMap() {
...
this->insertInCommandAndReplyMap(gyrodefs::GYRO_DATA, 3, &gyroData);
...
}
```
Now, we need to create the actual pool entries as well, using the `initializeLocalDataPool`
function. Here, we also immediately subscribe for periodic housekeeping packets
with an interval of 4 seconds. They are still disabled in this example and can be enabled
with a housekeeping service command.
```cpp
ReturnValue_t GyroHandler::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) {
localDataPoolMap.emplace(gyrodefs::ANGULAR_VELOCITY_X,
new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(gyrodefs::ANGULAR_VELOCITY_Y,
new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(gyrodefs::ANGULAR_VELOCITY_Z,
new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(gyrodefs::GENERAL_CONFIG_REG42,
new PoolEntry<uint8_t>({0}));
localDataPoolMap.emplace(gyrodefs::RANGE_CONFIG_REG43,
new PoolEntry<uint8_t>({0}));
poolManager.subscribeForPeriodicPacket(gyroData.getSid(), false, 4.0, false);
return HasReturnvaluesIF::RETURN_OK;
}
```
Now, if we receive some sensor data and converted them into the right format,
we can write it into the pool like this, using a guard class to ensure the set is commited back
in any case:
```cpp
PoolReadGuard readHelper(&gyroData);
if(readHelper.getReadResult() == HasReturnvaluesIF::RETURN_OK) {
if(not gyroData.isValid()) {
gyroData.setValidity(true, true);
}
gyroData.angVelocityX = angularVelocityX;
gyroData.angVelocityY = angularVelocityY;
gyroData.angVelocityZ = angularVelocityZ;
}
```
The guard class will commit the changed data on destruction automatically.
### Using the local data pools in a `ExtendedControllerBase` subclass
Coming soon

Some files were not shown because too many files have changed in this diff Show More