Compare commits

..

2488 Commits

Author SHA1 Message Date
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
87fee9bd0e dhb multiple replies support 2021-04-25 11:40:04 +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
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
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
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
38a5e7e618 ctor variable better name 2021-04-20 16:00:01 +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
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
7b29583f8f small improvements 2021-04-20 15:32:12 +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
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
a8b5fec725 Merge branch 'development' into mueller/udp-ai-passive-opt 2021-04-13 10:01:14 +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
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
23e3f2f34f now fixed properly 2021-04-08 15:39:23 +02:00
6983ddc3e0 super evil bugfix 2021-04-08 15:27:03 +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
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
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
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
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
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
e7cd7c8dc3 MSVC FSFW almost compiling 2021-03-07 01:35:55 +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
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
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
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
ce770a67b2 preprocessor define improved 2021-02-23 14:14:23 +01:00
06eadb55ab small stuff 2021-02-23 14:11:53 +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
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
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 27e5254ecd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 13 11:45:47 2021 +0100

    include fixes

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

    relative include

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

    more consistency renamings

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

    renamed to pool manager for consistency

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

    updated template config files

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

    updated defaultconfig

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

    added FSFW verbose level

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

    updated .mk support

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

    cleaned up a bit

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

    fixed annoying bug

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

    source files for attorney

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

    forward declaration correctness

commit 40ae81c4ff
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 71a12792a9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 19:41:47 2021 +0100

    hopefully this fixes circular includes

commit 3242264a77
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 cafc8e4ccb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 14:08:51 2021 +0100

    updated attorneys

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

    fixed warning of static var

commit 7e394ea15f
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 071ce21f09
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jan 12 13:12:44 2021 +0100

    renamed namepsace for printers

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

    introduced new accessor IF

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

    indentation

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

    indentation

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

    minor formatting stuff

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

    using 100 line width now

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

    tab replacement

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

    cleaning up

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

    compiling again

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

    reverted some stuff

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

    trying new interface

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

    stuff

commit 54e97f7bdc
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 217866c042
Author: NguSa1 <sa.nguyen@gmx.de>
Date:   Mon Jan 11 19:44:07 2021 +0100

    SubscriptIF implementation started

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

    doc update

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

    getter function for object iD

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

    some bugfixes

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

    rearchitectured a little bit

commit 2d28f71eca
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 e497c4ab15
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:34:21 2021 +0100

    added new reamde file stubs

commit c956feafd6
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 1f901a14ff
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 17:28:13 2021 +0100

    updated osal readme

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

    formatting improvements

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

    readme update

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

    README

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

    updated README

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

    additional doc

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

    more indentation corrections

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

    ndentiation

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

    more tests

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

    added more tests

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

    important logic fix

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

    updated user folder for unittests

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

    more tests added

commit 918200e88c
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 f8abf3527d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 10 11:51:33 2021 +0100

    fixed indentation

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

    prints added

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

    linux fixes

commit 36bc7609c5
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 dbe326e787
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 9 13:52:47 2021 +0100

    minor tweak

commit f083e83f63
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 57829faa64
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 21:03:47 2021 +0100

    added cast

commit ffb7b41f0a
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 12091ca6ab
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 b59d6d3244
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 7c47b1ce34
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 9f15cd697d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 16:23:57 2021 +0100

    improved includes

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

    small formatting stuff

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

    bugfix

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

    improved DHB error handling

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

    another small improvement

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

    revamed and imroved error handling

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

    better returnvalues etc.

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

    defaultcfg update

commit 2ef3e0aa7b
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 4255176b5c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 8 01:49:00 2021 +0100

    more tests, minor bugfix

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

    small form changes

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

    pool entry doc correction

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

    fixed vector test

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

    whitespace

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

    local pool variable error handling improved

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

    pool vector improvements

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

    improved error handling significantly

commit 007526c050
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 8aaf45049f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 21:49:40 2021 +0100

    major bugfix in rtems osal

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

    fixed linux osal

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

    freertos and pool read helper fix

commit dacdfc62d3
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 91cf5f1764
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 6 19:49:58 2021 +0100

    added way to completely disable printouts

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

    test update

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

    100 % line coverage reached

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

    added more tests

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

    continued tests

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

    local pool variabel tweaks and fixes

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

    continued tests

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

    updated tests

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

    added include

commit fbb063ceda
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 3c041388d6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 4 15:31:06 2021 +0100

    bugfix

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

    clock improvements for rtems

commit 8e3aef5df0
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 49c6cd9473
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 3 23:27:49 2021 +0100

    added local pool owner base

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

    repaired unit tests

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

    updated testcfg

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

    small include fix

commit fd44fb4781
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 3486a04741
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Dec 25 00:37:24 2020 +0100

    renaming for name shadowing

commit ccbbef7778
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 208ad7d479
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 16:24:52 2020 +0100

    fixed timeslot task doc

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

    upstream subsystem taken over

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

    upstream cmakelists f iles taken over

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

    upstream unittest folder adapted

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

    cmake lists form upstream taken over

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

    serviceinterface taken over

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

    power and pus upstream taken over

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

    parameter upstream taken over

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

    osal taken over

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

    upstream stuff

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

    some upstream stuff taken over

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

    taken over upstream defaultcfg

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

    txt is md now

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

    timemanager update

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

    taken over upstream .mk file

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

    taken over changelog

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

    tm storage update

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

    removed comment

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

    service types.h delted

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

    transition delay abstract

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

    updated readme

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

    updated readme

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

    added cmake lists

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

    added gitmodules

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

    unittest update

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

    updated testcfg

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

    updating unittest folder

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

    added ipc cmakelists

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

    typo

commit 38983407fd
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 6abc560094
Author: Spacefish <robin.mueller.m@gmail.com>
Date:   Tue Dec 22 00:55:47 2020 +0100

    feed back include improvements

commit 8dd9d6ad91
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 c2619bf070
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 21 23:39:24 2020 +0100

    transition delay not 0 anymore

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

    clock update

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

    buffer more explicit eof()

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

    better win udp polling task error handling

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

    upstream osal endiness adapted

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

    upstream timeval op

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

    upstream coordinates taken over

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

    address in use handling for socket

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

    some readme improvements

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

    upstream changes taken over

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

    taken over cmake list for storagemanager

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

    deleted archive folder

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

    default cfg update

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

    fsfwconfig update

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

    update

commit 3e41b202a1
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 052e2ed1e8
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 0c3e87f1de
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Dec 14 23:55:54 2020 +0100

    using new xTaskDelayUntil

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

    determination of freeRTOS features from version

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

    freeRTOS version checks

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

    long name

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

    linux changes adapted

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

    ipc changes taken over

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

    taken over cmakelists file

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

    tc distrib changed  taken over

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

    important changes adapted

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

    taken over some tweaks

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

    cast added

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

    removed interrupt class

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

    rtems fixes taken over

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

    catch factory in objects folder again

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

    catch factory fixes

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

    one define now

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

    small fix

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

    event folder taken over

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

    tiny tweak

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

    minor tweaks

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

    changes taken over

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

    tiny format stuff

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

    changes and tweaks taken over

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

    small tweaks

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

    taken over freeRTOS changes

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

    small tweaks

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

    added cmakelistst

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

    internal unittests fixed

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

    taken over upstream fixes

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

    taken over cleaned up branch

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

    taken over cmake lists

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

    taken over unnittest folder from upstream

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

    taken over master

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

    taken over upstream changes

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

    taken over upstream change in ipc

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

    notice taken over

commit 62e16b13d3
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 b7dbdb072d
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 13 21:50:33 2020 +0100

    taken over upstream changes

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

    removed some commented stuff

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

    thermal module set heating repaired

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

    taken over thermal module from thermal-update

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

    tab replacement

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

    small tweak

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

    fixes taken over from master

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

    map packet extract update

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

    event update

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

    task if set now

commit 248ceebf81
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 c5c776e676
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 3 18:57:50 2020 +0100

    rtems changes taken over from upstream

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

    deleted memory proxy file

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

    doc formatting

commit 21c3db4ffc
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 586e8b0347
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 2 23:22:28 2020 +0100

    function more robust now

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

    doc format improvements

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

    added getter function for pending command

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

    fsfw compiles without datapoolglob folder

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

    device handler changes complete

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

    using new device handler thermal set

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

    bugfixes and improvements

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

    minus 1 replacement

commit 0116bb8663
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 84ab5f8318
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 1 17:19:26 2020 +0100

    readme and logo update

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

    added changelog from upstream

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

    comment added

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

    better name for preproc define

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

    updated testcfg

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

    added explicit type conversion operator

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

    some more replacements

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

    local pool replacement

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

    thermal module replacements

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

    compiling again

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

    it compiles again

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

    it doesnt work? comment it !

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

    started replacing local pool vars

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

    added gp_id_t

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

    some improvements taken over from master

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

    fsfw version include removed

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

    moved perform hk op call

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

    form and doc comments

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

    added new cfg option

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

    better naming.. hopefully..

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

    replaced spaces with tab

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

    monitoring changes

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

    parameter small stuff

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

    translation files removed

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

    include corrections

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

    folder config renamed to fsfwconfig

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

    include improvements /factory improvement

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

    message queue depth configurable

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

    preproc define correction

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

    doc improved, some functions virtual now

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

    include fixes

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

    amazing size checks

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

    small bugfix

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

    IT IS DONE

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

    sth with eclipse indentiation

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

    timer stamper in fsfw now

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

    time stamper

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

    size t changes

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

    size_t changes

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

    sizet changes and indentation

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

    some bugfixes

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

    taken over changes from master

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

    comments removed

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

    clock update, definitions file

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

    cstdint include added

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

    defaultcfg changes taken over

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

    upstream time stamper taken over

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

    size check + include guard

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

    some refactoring

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

    fsfw container taken over

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

    master taken over

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

    health changes taken over

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

    include guard update

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

    class IDs moved

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

    config make update

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

    fixes for internal unittest

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

    fsfwconfig update

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

    updates taken over

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

    doc update

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

    added timestamp size

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

    changes from master taken over

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

    static keyword removed

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

    some changes taken over

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

    deleted some sutff

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

    core changes taken over

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

    makefile moved

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

    some config adaptions

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

    config folder renamed

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

    new defines added

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

    include fixes

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

    include fixes

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

    include fix

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

    added new tests

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

    removed catch2

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

    slight improvements

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

    form improvements taken over

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

    tm packet store update

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

    taken over some changes

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

    output tweaked

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

    no command added

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

    takne over defaultcfg

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

    added readme and efaultcfg

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

    defaultcfg folder added

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

    fsfs config update

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

    unittest folder added

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

    some more bugfixes

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

    doc improved, new returnvalue

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

    small form improvements

commit ad9ac7537e
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 8b8324f21c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 23:50:02 2020 +0200

    some stuff renamed

commit 1bddfeb86b
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 88a89d6797
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 18 17:32:10 2020 +0200

    added basic documentation

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

    some adaptions

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

    better naming

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

    HasParametersIF less confusing

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

    returnvalues added

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

    another bugfix

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

    bugfix

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

    fsfw config removed for now

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

    deleted old files

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

    bugfixes

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

    type usage improved, getFillCoutn implemented

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

    line break added

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

    some little formatting stuff

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

    custom cmp operator

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

    small fixes

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

    important bugfixes

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

    important bugfix

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

    better  form

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

    includes reordered

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

    implementation added

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

    add fill count func added

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

    new templateless pool prototype

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

    subscription mechanism almost complete

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

    update notifications working

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

    optimization and printout improvements

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

    update handler continued

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

    its all falling into places

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

    base class extraction complete

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

    added new messages

commit 9917f7126d
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 3af79e572e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 18:19:11 2020 +0200

    default msg size for health device

commit afe5a62789
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 d22c6a5fe9
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 736ce2d5fd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 17:42:30 2020 +0200

    some more form improvements

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

    monitoring form improvements

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

    added todos

commit 8c689751b4
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 b9ebd153a2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 12 16:55:40 2020 +0200

    added action helper function

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

    doc wrong

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

    get command queue override

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

    added extended controller base

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

    CMD/REPLY prefixes added

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

    added health subservices

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

    added announce all subservice

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

    health update

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

    subsystem folder update

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

    include guard replacements

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

    service 1 small improvements

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

    fix for c++11 comformity

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

    form improvements

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

    retval added

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

    better error output

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

    some form stuff

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

    action helper some formatting stuff

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

    CSB fifo depth configurable

commit c17d50bd1e
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 1431116417
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 5 12:11:11 2020 +0200

    NULL exception somewhere

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

    small stuff

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

    made interface more generic

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

    added subservices

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

    using deletei nstead

commit 20c261514b
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 0c1c61558b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Oct 3 03:45:29 2020 +0200

    very important bugfix

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

    typo

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

    master taken over

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

    taken over master

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

    taken over master

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

    taken over master

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

    master taken over

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

    removed tests

commit 5fbb8f8ef0
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 1ecca4b3d8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Oct 1 20:33:50 2020 +0200

    taken over array list

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

    taken over container

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

    tpp extraction

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

    tc distribution equalization

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

    FIFO updates

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

    placement fact update

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

    slight formatting

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

    DH IF and DH message improved

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

    made define more generic

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

    equalization complete

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

    include fixes

commit 4f3cfdcaaf
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 9013ac240f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 29 16:12:01 2020 +0200

    array list taken over

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

    service 200 take over

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

    small tweaks

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

    srv9 fix

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

    service 1 changes taken over

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

    master taken over

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

    changes taken over

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

    merged changes

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

    removed debug outpuzt for missed deadline

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

    include fix

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

    changes taken over

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

    object id names improved

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

    doc & tweaks

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

    bugfix

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

    another small bugfix

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

    added another command

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

    added two new commands

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

    hk messages are cleared properly now

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

    important bugfixes

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

    small improvements

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

    removed clock include

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

    improved doc

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

    bugfixes, owner ptr not const anymore

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

    bugfixes for srv3

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

    has file system IF retvals

commit 6eaade2395
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 c3830da3d0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 17:24:06 2020 +0200

    bugfixes

commit 4a97596030
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 e67b1fce9a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 26 16:38:07 2020 +0200

    added additional include

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

    include guard fix

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

    small include fix

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

    correct function used now

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

    include fix

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

    set struct reporting continued

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

    power equalization

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

    controller base update

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

    taken over convergence changes

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

    make event func changed

commit a65745d037
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 5ca1c7bca2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 19:58:51 2020 +0200

    coutndown update

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

    updated subsystemId ranged

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

    updated framework object list

commit 9ff3a8537c
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 320a5ac355
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 23 17:44:22 2020 +0200

    has health IF improvements

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

    include fix

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

    error code improved

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

    csb hotfix

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

    shared ring buffer extended

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

    file system message getter func

commit 763c52cfca
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 40db85e73f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 21:36:12 2020 +0200

    separate messages for success/failure

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

    error output for failed deletion

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

    some  fixes for sd card handler

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

    srv23 taken over

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

    file system message taken over

commit 718502c04b
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 02f778ea1d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Sep 19 17:14:09 2020 +0200

    new error code added

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

    srv3 continued

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

    hk stuff continued

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

    added periodic helper

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

    huge progress on hk + testing

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

    internal bugfix

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

    several bugfixes amd improvements

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

    changes taken over from pull request

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

    object manager tweaks complete

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

    minor tweaks

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

    added pus services to framework objects

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

    taken over serviceinterface folder

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

    renormalize files

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

    DHB small improvements

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

    quick fix DHB

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

    added uptime seconds functions

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

    linux fixes

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

    fxed linux message queues

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

    taken over stopwatch changes

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

    clock uses getUptime again

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

    queue factory host OS fix

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

    new include used now

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

    include improvements taken over

commit 347d591def
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 7643af8607
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Sep 15 17:15:22 2020 +0200

    include guard fix

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

    include guard fix

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

    header file renamed

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

    fixed some message queue includes

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

    changes taken over from upstream master

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

    fixes taken over

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

    added srv3

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

    hk message continued

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

    added report status toggler

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

    added new setter function

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

    local data pool manager bugfixes

commit d7bbd4b652
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 e4d95a4e09
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 10 16:07:09 2020 +0200

    subsystem changes taken over

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

    fixed ordered multi map changes integrated

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

    array list changes taken over

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

    taken over CSB changes

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

    merged fixed map changes

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

    taken over serialize adapter changes

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

    serialize if update

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

    taken over changes from master

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

    deleted file not needed anymore

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

    changes taken over from master

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

    added compile time check

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

    assignment operator added

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

    assignment operator added

commit 26bb2de050
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 e085deb235
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Sep 7 15:23:27 2020 +0200

    fifo fix

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

    debug output removed

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

    removed comment

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

    rework/restructuring

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

    removed pool raw access helper

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

    minor improvements

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

    added informative comment

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

    some minor tweaks

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

    windows sockets working

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

    some bugfixes

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

    continued win sockets

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

    continued win bridge

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

    added windows udp bridge

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

    removed seconds typedef, confusing

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

    updating and cleaning pool files

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

    task IF is set now

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

    removed comment

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

    some tweaks

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

    queue map manager update

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

    compiling and working again

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

    repairing host osal

commit 05814dc805
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 faeeca8707
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 16:07:54 2020 +0200

    seiralize folder converged

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

    taken over serialize element changes

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

    changes taken over

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

    taken over changes

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

    taken over convergence changes

commit 0d69e9beca
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 37764f7ca7
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:39:17 2020 +0200

    include guard fixed

commit be89e7ebb7
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 cfa952d982
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Sep 4 15:33:36 2020 +0200

    hybrid iterator same to FSFW

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

    taken over changes

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

    include guard improvements

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

    update fw class Ids

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

    changed taken over

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

    changed taken over

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

    added line break

commit 31c16382fc
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 403d83f32c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Sep 3 13:01:14 2020 +0200

    removed commented out code

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

    new member to store last step

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

    separated steps, everything seems to work

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

    doc improved

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

    doc improved

commit 631b2ca705
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 ae9bc39bda
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Sep 2 17:59:26 2020 +0200

    some bugfixes and improvements

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

    include  guard correction

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

    FIFO updates

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

    dynamic fifo update

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

    fifo update

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

    corrections

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

    offsetr update

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

    handler ID cached, debug output improved

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

    added srv9

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

    typo fixes

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

    include guards improved

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

    renormalized line endings

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

    updated map packet extraction

commit 8596810fe2
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 b71cab3993
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:55:13 2020 +0200

    integrated all changes

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

    wrapped info output in additonal ifdef

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

    event git update

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

    taken over datalinklayer form upstream

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

    taken over coordinates  from upstream

commit 2e23fc1201
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 8862f35ad1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 28 17:35:27 2020 +0200

    git is weird

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

    include improvement

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

    fixed some shadowing issues

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

    include improvement

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

    some renaming

commit a6e99e443a
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 4d1b1ba506
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 17:24:40 2020 +0200

    additonal doc for freeRTOS semaphores

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

    small improvements

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

    linux semaph update

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

    periodic task taken over from master

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

    adapted semaphore IF to mutex IF

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

    new initializeSequence func

commit 790e0399b7
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 67ab1f6240
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Aug 27 14:17:13 2020 +0200

    initialize after task crteation moved

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

    some minor improvements

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

    improved tmtc bridge

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

    debug output fix

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

    linebreak changed

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

    form improvements

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

    removed linker forward decl

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

    seriasl buffer update

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

    deserialize improved

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

    serial buffer adapter

commit 3aa6858c93
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 11ce3d025f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Aug 24 22:08:27 2020 +0200

    srv3 received reply now

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

    small fix taken over

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

    first subscriptio nfunction written

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

    sid cached now

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

    doc added

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

    New reporting mode

commit 2f53a3fb1b
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 cdaed4523b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 21 16:15:40 2020 +0200

    tmtc bridge todo added

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

    tm/tc packet stored improvements

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

    assigned read len for decoding error

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

    some bugfixes and improvements

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

    removed pus parser

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

    added srv17 and srv201

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

    error message improvement

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

    added aditional comment

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

    renamed .mk file

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

    include replacements

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

    several simplifications

commit 87eb31b65a
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 9e7d92b387
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Aug 9 19:46:37 2020 +0200

    some renaming , hk packets finished

commit a181f19c02
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 5d09ae3221
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 8 23:47:44 2020 +0200

    additional comment

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

    more simplifications for shared ring buffer

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

    shared ring buffer simplified

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

    internal housekeeping packet finished

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

    continued with local datapool manager

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

    continued with implementation

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

    null initializations in header

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

    local pool var update

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

    additional check for freeRTOS

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

    some renaming

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

    some bugfixes

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

    freeRTOS corrections

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

    local data set fix

commit 4afb19be51
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 979fea3400
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Aug 7 22:15:03 2020 +0200

    mutex helper api change

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

    adapting mutex helper to new interface

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

    little doc correction

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

    linux: removed old static timeout values

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

    empty line removed

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

    implemented new mutex interface

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

    added documentation to assembly base

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

    move group def down

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

    subservice number correction

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

    minor corrections

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

    periodic task if adapted

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

    updated framework subsystem ID ranges

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

    added additional calls

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

    shared ring buffer continued

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

    shared ring buffer continued

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

    getFreeElement implemented

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

    added getFreeElement

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

    parameters IF doc and improvement

commit 7475e6a9b8
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 66eac57e3b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Aug 1 16:54:54 2020 +0200

    csb update

commit 58a4f4f8a1
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 76cc3e96e8
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 18899a4c82
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 29 20:07:24 2020 +0200

    hotfix for deadline checking

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

    better diagnostic warning for DHB

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

    another important bugfix

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

    important bugfix

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

    doc improved

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

    better returnvalue for failed  comIF init

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

    new servicei nterface buffer /stream

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

    better init error output

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

    Fixed spelling mistake in HealthHelper

commit b7411591a1
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 b4d6d970bc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 12:41:05 2020 +0200

    removed HK manager virtual functions

commit aaafed7b28
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 47b3a428c6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 16 12:33:03 2020 +0200

    removed device switch, not necessary anymore

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

    cotinued distir datapool

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

    added new interfaces for datasets

commit e204bd77c6
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 e7b6999c5e
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 15052cb333
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 13 19:54:38 2020 +0200

    singly linked list update

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

    ncreased readability of DHB function

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

    new generic freertos task interface

commit 99aef0cf28
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 7d794c7623
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 799846d89f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 14:29:30 2020 +0200

    little formatting changes

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

    stack high watermark in bytes now

commit ffba664144
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 69946d5276
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 11 11:52:01 2020 +0200

    FIFO hotfix

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

    dynamic fifo bug fixed

commit 6a6395313f
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 444ee80f35
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 3145036210
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 19:34:18 2020 +0200

    getter functions for task handle

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

    removed file header comment

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

    srv8 improved

commit 9716bcdd74
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 a7d68f8c52
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jul 10 13:31:45 2020 +0200

    deleted copy ctor

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

    srv8 improvements

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

    csrv200 improvements

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

    reordered includes

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

    removed old code

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

    bugfix failure isolation base

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

    hk manager initialized now

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

    added srv200, CSB doc

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

    doc for system object IF improved

commit 57418eb877
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 ad049cc634
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 19:41:52 2020 +0200

    tmtc bridge formatting improvements

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

    some minor improvements

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

    readability improvement

commit 0cdce6e327
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 a5d3d9ea80
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 9 16:46:57 2020 +0200

    improved init function

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

    DHB ctor simplified

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

    newline

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

    ring buffer base calls made protected

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

    new shared ring buffer

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

    continued with local data pool manager

commit c8821ae74f
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 64c290ffe4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 18:38:58 2020 +0200

    include guard fix

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

    srv8 added to framework

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

    CSB static framework id setting

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

    a lot of debug output added

commit 5ec78b065c
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 b56aa94f99
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 8 12:54:40 2020 +0200

    additional doc

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

    readability increase

commit 94f9b1e1ef
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 264914e86a
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 2efcda735f
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 399fc0e287
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 17:42:37 2020 +0200

    fifo replacements

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

    some form improvements

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

    increased srv2 readability

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

    srv2 tweak: CSB params now configurable

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

    moved srv2 to framework

commit 359163886b
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 4f1f610ae0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jul 7 16:36:41 2020 +0200

    doc and improvements for DLE encoder

commit e48de981f5
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 cb691db807
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 23:07:38 2020 +0200

    fifo tweaks, pus parser fixes

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

    pus parser fixes

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

    pus parser implemented

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

    pus parser continued

commit 78283ddbee
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 b61e1df8bc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jul 6 13:43:41 2020 +0200

    fifo in namespace now

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

    merged new changes

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

    new pus parser

commit ebec074655
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 2395e487ae
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 20:42:05 2020 +0200

    udp polling taks init

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

    file renamed

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

    new task for tc unix polling

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

    new ports

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

    mq stack error improved

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

    diag output for inits improved

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

    size_t for DataPoolAdmin

commit b86e5664c4
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 1a177d2efa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jul 5 00:28:06 2020 +0200

    integrated pool raw access serialize changes

commit 24240b6c7d
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 c160000027
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Fri Jul 3 12:44:08 2020 +0200

    Corrected filename of EndianConverter.h

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

    formatting

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

    continued new bridge

commit e0a3257f8b
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 72768a6815
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jul 4 00:51:49 2020 +0200

    started unix udp bridge

commit 18173772af
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 099e6281ec
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 3e069c34aa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jul 2 16:29:29 2020 +0200

    datasetbase stays same f or now

commit 8011d49ebc
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 47b8ed2321
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jul 1 14:34:16 2020 +0200

    split up long debug message

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

    compiling again

commit 6802ff7d71
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 837fecf859
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 062ebabb9a
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 1820b5f95c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 30 16:02:07 2020 +0200

    hotfix for copy ctor

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

    const store accessor copy ctor fixx

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

    bit setter correction

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

    added back clear CommandMessage function

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

    csb changes taken over

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

    csb comment improved

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

    dhb doc improvements

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

    dhb cached pst interval now

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

    added task handle member

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

    new initializeAfterTaskCreation()

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

    some more correctioons

commit b81b458ba6
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 71f997888b
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 ba5b8bd682
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 26 13:28:58 2020 +0200

    hybrid iter update

commit 08f25370f3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 12:03:52 2020 +0200

    moved typedefs into namespace

commit 0c32a96452
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 11:54:41 2020 +0200

    some more singly linked list improvements

commit 8d633bf127
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 6f2bb4125d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 02:02:57 2020 +0200

    bugfix

commit 7f3607c3d9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 02:00:26 2020 +0200

    hk service fixed

commit 61370d43da
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 bb9f606ffd
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 16cbbb2693
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 01:11:48 2020 +0200

    linux fixes

commit af24cc7d04
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 00:49:13 2020 +0200

    some bugfixes

commit c7c49b4239
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 00:30:32 2020 +0200

    deleted command messge base

commit 3bf29a7315
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 24 00:24:15 2020 +0200

    removed CommandMessageBase, changed interfaces

commit 905c1a92e3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 21:03:22 2020 +0200

    reverted some changes

commit 56455a5fa2
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 67366c25a0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 13:49:25 2020 +0200

    typo fix

commit 5f16d30d82
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 6f4682e1c8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 12:53:30 2020 +0200

    hasactionsIF include guard and doc

commit 2ecd7c4493
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 11:05:40 2020 +0200

    some minor improvements

commit 446e7d2f82
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 11:00:40 2020 +0200

    const storage accessor improvement

commit 45ffb7549a
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 e27310da40
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 10:47:31 2020 +0200

    updates for tmtcbridge

commit c0beef4463
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 10:27:44 2020 +0200

    some include guards, todo comments

commit 64a02c55ba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 01:37:25 2020 +0200

    linux fixed, size checks added

commit f7d55a8a37
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 01:15:35 2020 +0200

    equal to pull request now

commit 847292ea30
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 23 01:10:19 2020 +0200

    added overflow checking for periodic task

commit a82dbcbd50
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 23:47:18 2020 +0200

    minor doc correction

commit 6a7f47e06d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 23:46:44 2020 +0200

    doc fix

commit dadc867d9e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 20:18:13 2020 +0200

    adapted MessageQueueSenderIF function calls

commit 5734a0a0e9
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 3b2fa978e1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 19:06:10 2020 +0200

    replaced break with continue

commit 109fdad8b3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 22 15:34:35 2020 +0200

    size check for message queue

commit 65c775b83c
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 45a55044dd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:47:36 2020 +0200

    using debug stream now

commit 95b646046b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:43:29 2020 +0200

    debug output working again

commit 3936fe9360
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:34:19 2020 +0200

    linux fix

commit 2c04b87418
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:18:00 2020 +0200

    corrected includes

commit 1b0e7c84c7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 20:15:58 2020 +0200

    linux periodic task improvements

commit 2de811e0af
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 eb4ce980fe
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 14:32:04 2020 +0200

    small fixed

commit 60ae2d4565
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 84b8d733c0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 19 03:03:17 2020 +0200

    hk continued

commit 583efec3f8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:45:44 2020 +0200

    nullptr

commit ed26992d7f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:40:40 2020 +0200

    shoulddo added

commit bb16fd80b8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:37:45 2020 +0200

    singly linked list improvements

commit 259517ac9b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:22:09 2020 +0200

    single linked list improvement

commit d5ae74f860
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 20:21:49 2020 +0200

    bugfix hk message size

commit b68ad9e4f9
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 f8f10a1730
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 19:41:10 2020 +0200

    slight hybrid iter improvements

commit 38676308e3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 17 19:37:55 2020 +0200

    improved array list a bit

commit 813e82415a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 16 11:03:24 2020 +0200

    additional doc info

commit 555b7cc982
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 7871ee7ca8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 17:39:52 2020 +0200

    mutex helper little formatting correction

commit e39d5689e5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 16:56:22 2020 +0200

    device com IF formattign

commit c9d8bd59f0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 15 11:11:42 2020 +0200

    ctor improved

commit 6ecf1cf534
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 14 19:03:28 2020 +0200

    hk message continued

commit 9f69191f23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 14 17:59:14 2020 +0200

    optimized command messages a bit

commit cd424d79e7
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 8c03f6a823
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 13 21:01:01 2020 +0200

    command message only passed IF now

commit 6b67f46c80
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 7b538e9750
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 f578c3ea29
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 60aed39bc5
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 6838a9e768
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 16:19:22 2020 +0200

    serial buffer adapter bugfix

commit 206235ed47
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 11 16:03:09 2020 +0200

    dataset base bugfixes

commit a9c7ad84c8
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 c1fe326f67
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 3268806f75
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 b2ed0edce0
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 bb9a299e33
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 22:19:40 2020 +0200

    added back removed comments

commit 5007041bc8
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 659594bac7
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 606957dc24
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 21:26:45 2020 +0200

    PSB update

commit 8fbd414a86
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 52c887925f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 20:53:28 2020 +0200

    iomanip include

commit b6427d017b
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 20e3b3c0e2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 01:10:16 2020 +0200

    0 replaced by MQIF::NO_QUEUE

commit 3277d199ac
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 10 01:07:50 2020 +0200

    linux mq update

commit 47aa9ddcc3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 9 02:46:19 2020 +0200

    doc for mqm improved

commit 8ff6506ad9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 9 02:18:39 2020 +0200

    MessageQueue refactoring complete

commit b1f91439c6
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 07302e0d2a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 17:44:54 2020 +0200

    removed include

commit b20ba1f938
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 3cb79ebc86
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 0ea249aac4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jun 8 12:25:20 2020 +0200

    messagetype namespace im small letters now

commit 4c41456ddf
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 2649fa1507
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 23:38:15 2020 +0200

    small small command message tweaks

commit e8bc2cec9f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 23:26:52 2020 +0200

    small comment in semaph factory

commit 4a90f41122
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 18:53:55 2020 +0200

    generate HK packet function continued

commit 3b4413a6ee
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 16:12:23 2020 +0200

    added queue lock for  receiveMessage

commit 98e6ca5f78
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 15:22:32 2020 +0200

    removed locks in lockless functions

commit 73932f0349
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 13:58:51 2020 +0200

    object maanager tweaks

commit fe5b50d885
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 02:22:18 2020 +0200

    improved documentation signigicantly

commit d0b218c18e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 01:40:48 2020 +0200

    renaming for host os

commit 3c80bdfefa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 01:18:19 2020 +0200

    some linebreaks

commit 33cc8591dc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jun 7 01:17:24 2020 +0200

    yaaay, hardcoded values

commit c81613690b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:41:54 2020 +0200

    no_queue value is 0xffffffff now

commit 65999ac6d6
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 3d8993b0c5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:23:20 2020 +0200

    new typedef names

commit 9ed92e5e6f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:21:51 2020 +0200

    clock typedefs renamed

commit 70212d9f4e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:15:42 2020 +0200

    slight formatting

commit 8216b26fde
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 23:15:05 2020 +0200

    datapoollocal updates

commit ea548dea5b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 21:16:47 2020 +0200

    map lock init

commit d99be25529
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 262d34174e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 18:56:54 2020 +0200

    using strncat now

commit b79efa6d6c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 16:25:06 2020 +0200

    variable for name len

commit 096fbec156
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:40:10 2020 +0200

    cleaned includesu p a bit

commit dc9ef41bec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:31:45 2020 +0200

    added doc for linux

commit b0634ab0a2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:26:22 2020 +0200

    fixed bug (critical!)

commit ef01b78140
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 15:01:57 2020 +0200

    some issue with stack size ..

commit 212cd58f9a
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 788f7a3745
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 13:59:00 2020 +0200

    better name for mq

commit 95bc5a871b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 13:56:35 2020 +0200

    improved diagnostic messages for linux

commit 04236859da
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 13:03:37 2020 +0200

    slight improvements to diagnostic ouput

commit 5289497ab5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 12:59:43 2020 +0200

    health helper optional, diagnostic output improved

commit d35524ecbc
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 8e7593d68a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 02:10:21 2020 +0200

    removed error handling in separate fnctn

commit b4561465ba
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 6 01:36:07 2020 +0200

    some little form improvements

commit d600d48816
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 87f64d99cd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 23:18:00 2020 +0200

    implemented fixed timeslot task

commit d74f2c7560
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 21:40:06 2020 +0200

    housekeeping folder added to .mk file

commit 579115f904
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 21:36:50 2020 +0200

    adapting host osal

commit 2b646551e9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:40:22 2020 +0200

    mutex helper new output error

commit e9a9a543ce
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:38:59 2020 +0200

    fw message count one line further

commit 0d4d4123ab
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:37:46 2020 +0200

    added new message  type (hk)

commit 7247a1af7e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:36:25 2020 +0200

    new class ids

commit 9ec2283d13
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:35:08 2020 +0200

    hk folder update

commit 319fa9ddb6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:34:34 2020 +0200

    datapoollocal update

commit e04e6a6f15
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:33:57 2020 +0200

    datapoolglob update

commit 9fd5ef0194
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:28:06 2020 +0200

    updated datapool files

commit 8d3ac33b0e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 20:18:38 2020 +0200

    reordering init list for compiler

commit 872c350a92
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 18:36:22 2020 +0200

    another small bugfix (this-> was missing)

commit ef3e5c4582
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 dbeb04895b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 17:55:03 2020 +0200

    added hosted OSAL

commit 4ebd937fe0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 16:47:46 2020 +0200

    deleted old printer file

commit abcd818f2f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 16:44:31 2020 +0200

    printer renamed to arrayprinter

commit 2a632ae711
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 d7036edb94
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 15:53:20 2020 +0200

    hotfix

commit dd210e99af
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 13:45:18 2020 +0200

    additional include which was missing

commit 904721cc36
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 5 13:44:11 2020 +0200

    improved pool entry iF

commit dd193fd64d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:27:37 2020 +0200

    obj manager.cpp improvements

commit e4944a067c
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 d423c00115
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:14:35 2020 +0200

    additional nullptr check

commit 569724843e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:11:49 2020 +0200

    object manager improvements

commit 849053b830
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:04:24 2020 +0200

    small fix for object manager.cpp

commit 71487d60ca
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 21:01:09 2020 +0200

    onj managerIF update

commit 3eca16ff78
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 20:59:52 2020 +0200

    removed exit clause

commit 405e1149e5
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 4d59ddc3db
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 19:50:26 2020 +0200

    some fixes, check for preamble size

commit 6ff1cf46c5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 19:40:43 2020 +0200

    new service interface stream

commit f2a9d29696
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 a115bf1186
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 14:43:33 2020 +0200

    store access improvements

commit 925a54dec9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jun 4 01:06:03 2020 +0200

    more improvements for servicei nterface

commit 17ed9b7796
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 5eb3d77bdb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:29:00 2020 +0200

    clarfiying comment

commit 0a512abc33
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 23:26:27 2020 +0200

    additional clarification comment

commit 5b93799ea6
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 1c0ca4c329
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 3483dff2ab
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jun 3 22:56:03 2020 +0200

    some more interface improvements

commit 5036cdbef3
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 6972e72fbf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 23:52:31 2020 +0200

    fixed order

commit f0be1b1fff
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 54edeacb2d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Jun 2 22:25:28 2020 +0200

    changed names for linux

commit 986dc2047e
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 f0a25b5e2b
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 de6ed5c085
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 42f0687a6b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 31 23:28:51 2020 +0200

    self deletion nullptr

commit c8a36a79de
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 31 00:23:38 2020 +0200

    corrected doc for task factory interface

commit c34c6238c6
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 7a22d12d0f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:48:24 2020 +0200

    removed extern "C", not needed

commit 914bf8b9fc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:45:53 2020 +0200

    seconds_t is double now

commit 4d4ca2f3bd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 17:43:37 2020 +0200

    doc fix for stopwatch

commit f13eff79c9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:51:09 2020 +0200

    another little include guard fix

commit 6b0558d6c7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:49:11 2020 +0200

    added author tag back

commit 3ef939aca8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:46:26 2020 +0200

    fixed inclue protection

commit 5cf9e938cc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 16:45:03 2020 +0200

    added include protection

commit b90492562a
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 f14bacba32
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 6a3dc94108
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:18:27 2020 +0200

    removed extern "C" for freertos includes

commit d5352a9b87
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 e7ae35c659
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:09:47 2020 +0200

    improved structure a bit

commit 5169c09fd8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 13:07:35 2020 +0200

    improved includes

commit 78ae109a08
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 da403c01d0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 03:03:48 2020 +0200

    retval fix, unittest running again

commit 3d2935ac69
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 ccf79ab5b6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 01:55:20 2020 +0200

    output correction for linux

commit 671f298935
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 01:41:16 2020 +0200

    implemented counting semaph for linux

commit 56498e5bc1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 00:50:44 2020 +0200

    linux bin semaph unlocked

commit 8676fcd9a9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 29 00:47:54 2020 +0200

    yay, linux bin semaph finished

commit 60872f936c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 23:43:40 2020 +0200

    some output improvements

commit 08ffe89682
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 23:41:59 2020 +0200

    doc and api improvements

commit 7ce505fdf9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 23:29:06 2020 +0200

    some safety updates and fixes

commit 63dbf99592
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 22:12:52 2020 +0200

    counting semaph implementation finished

commit 95bf5c1071
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 21:33:34 2020 +0200

    improved const correctness

commit c4e60946d3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 21:30:20 2020 +0200

    improved bin semaph implementation

commit 88e3dc15b2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 21:27:31 2020 +0200

    replaced old semaph api

commit 7145982b4a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:59:59 2020 +0200

    improved documentation

commit eabee85ba9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:56:02 2020 +0200

    tweaked factory to have configurability

commit b4065c7764
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:46:56 2020 +0200

    seperation of semaph implementations finished

commit 8a1e0dab03
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 19:03:46 2020 +0200

    continued with task notifications

commit 2d33274c23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 17:42:18 2020 +0200

    implementing new task notifications

commit 968d7fad81
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 17:07:35 2020 +0200

    replaced some timeout values

commit 66b75802b2
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 5b521e039b
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 9b5095e5b8
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 badcacad49
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 11:48:11 2020 +0200

    added new timeout values

commit f6ae0348cb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 11:41:36 2020 +0200

    some linux mutex tweaks

commit be4ac0bc8f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 27 00:28:13 2020 +0200

    added semaph factory to linux

commit f7dd91891a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 16:05:03 2020 +0200

    removed comments

commit 1a623a6a52
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 11:05:49 2020 +0200

    added override

commit a19fa231f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 01:21:48 2020 +0200

    comment improvements

commit 9f2d5b64e0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 01:03:26 2020 +0200

    comment improvements

commit a926312b25
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 242ca355f5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 26 00:01:07 2020 +0200

    removed swappers for arraylist for now

commit 8ddccfe3bd
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 3fd306356a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:43:44 2020 +0200

    fix for dh returnvalues

commit 243ea9cd87
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:38:51 2020 +0200

    improved dhb IF returnvalues

commit eacda67f02
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:36:03 2020 +0200

    added some comments for returnvalues

commit 18d19fbb2c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:12:25 2020 +0200

    < removed

commit a37f01cd0e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 23:11:56 2020 +0200

    improved readability of mode explanations

commit 96462ba8dc
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 7a0cbfb2f5
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 219d85d700
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 d6af9da566
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 f6ec65d35d
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 8eb13ec627
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 723e715022
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 14:01:35 2020 +0200

    consistency fix

commit 2f16b1e733
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 25 13:48:43 2020 +0200

    moved some files

commit d4abfacd27
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 d2d1ef9a85
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 22 00:58:30 2020 +0200

    better include guards

commit aea18c423e
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 f6b17d6e2e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 20 12:50:56 2020 +0200

    deleted copyctor and copy assignment

commit 338651af2f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 23:07:28 2020 +0200

    binary printer added

commit 9b53e2b64f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 22:45:48 2020 +0200

    added informative comment for counting semaphore

commit 7afaa752f3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 20:25:54 2020 +0200

    form improvement

commit 1aef000eff
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 e2418d61a6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 19:53:10 2020 +0200

    improved printer

commit f612b095c1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 19:39:19 2020 +0200

    updated tmtc packet base

commit 2790a40d6c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 19 18:55:13 2020 +0200

    some renamings

commit 3c7e2c7cff
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 066930b110
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 20:39:48 2020 +0200

    improvements

commit 7227c3a866
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 20:35:13 2020 +0200

    implemented semaph factory

commit 067cd95731
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:42:45 2020 +0200

    removed file header

commit b1d9d55f50
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:42:05 2020 +0200

    improved documentation

commit 4dd6594845
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:38:02 2020 +0200

    integrated interface into bin semaphore

commit 9ba21b1e28
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:30:50 2020 +0200

    semaphore if continued

commit 87bf843bef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 19:19:50 2020 +0200

    binary semaphore IF init

commit 45b0193ef3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 18:06:40 2020 +0200

    bin semaph todo

commit b237287315
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:48:16 2020 +0200

    bin semaph sif replacements

commit ec8538b442
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 41c0ca6c52
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:39:10 2020 +0200

    added doc for switchSystemContext

commit f8614e23a8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:38:19 2020 +0200

    deleted copy ans assignment ctor

commit d1500a7868
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 17:31:05 2020 +0200

    mq doc improvements

commit 1d4d01d190
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 b12bace385
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 7e04c055b3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 16:13:46 2020 +0200

    tc packet stored formatting

commit 355bc2b905
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 18 15:42:47 2020 +0200

    improvements

commit 767850e125
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 23:58:57 2020 +0200

    deleted poolvector

commit d1b315c7df
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 23:54:56 2020 +0200

    pool raw access adaptions

commit 1d28e1398e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 23:41:28 2020 +0200

    DataSetBase class finished

commit 71f1722b88
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 22:20:54 2020 +0200

    removed old poolVar file

commit 9da0b0b2b2
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 8b1fef730d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 18:02:58 2020 +0200

    resolved conflict

commit 234fd8e300
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 0467b6a1bf
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 17:53:18 2020 +0200

    slight DHB improvements

commit 7c48274c9b
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 9597a0121b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 15:49:46 2020 +0200

    DHB update

commit da972e1b58
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 15:41:42 2020 +0200

    DHB improvements

commit e9a4056deb
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 9056ad36ed
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 14:13:31 2020 +0200

    object manager better output

commit 5b8a6e35dc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 13:37:50 2020 +0200

    renaming complete, pool in namespace

commit cbfa21d45a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 17 01:17:11 2020 +0200

    merging renaming into main branch

commit b673e13892
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat May 16 20:58:48 2020 +0200

    some refactoring

commit 7d57988979
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat May 16 13:09:50 2020 +0200

    added deadline check

commit 20900227f8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 22:53:01 2020 +0200

    periodic posix task ctor format

commit ebcc4742a9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 21:14:21 2020 +0200

    removed conflict markers

commit abdf04ce79
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 0e2438416d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 20:00:43 2020 +0200

    added comment

commit 5b41f2a6bd
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 19:58:58 2020 +0200

    optimization

commit c77ec9e7fc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 19:56:54 2020 +0200

    uint16_t correction

commit 3f71babfa9
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 24bfbfbd33
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:56:06 2020 +0200

    removed StorageAccessoremoved StorageAccessorr

commit 80cee27429
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 18:53:54 2020 +0200

    printer fixes

commit d48fe8fb09
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 6e1bb16d4e
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 237dd4a256
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 5ac32b14f0
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 684da2b8d5
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 15 15:30:29 2020 +0200

    set application data function added

commit 69237bc2e8
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 14 21:26:04 2020 +0200

    freertos includes adapted

commit 49fa2fe32c
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 50a1b5170a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 13 18:03:09 2020 +0200

    formatting

commit 19e51575cf
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 3122f62b0a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 19:02:59 2020 +0200

    bugfixes for write() call

commit 291710f257
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 17:57:37 2020 +0200

    new ctor and bugfixes

commit d873fcbf8e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 16:47:47 2020 +0200

    added documentation for storage manager IF

commit 6c70abfe16
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 5af0c15dfc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 14:12:39 2020 +0200

    simplified storage accessor

commit 1946af64af
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 12 14:11:00 2020 +0200

    storage accessor mutex lock removed

commit e5c46c5ec1
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 43d3ca7e37
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 10 21:56:21 2020 +0200

    memory message: no retval

    CSB: retval

commit d44a06fafc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 10 12:48:22 2020 +0200

    removed cfg include

commit 2f58c3a305
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 10 00:14:00 2020 +0200

    commented out storage accessor

commit 0f286461d0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat May 9 18:10:26 2020 +0200

    added new storage raw accessor

commit d35a6e6c14
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 9489b7abc1
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 fe9aa46cf8
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 b016f2995a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 6 16:34:43 2020 +0200

    added default vlaue for init function

commit e950051b4a
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 6b205e166b
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 cc0469fef6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 20:09:42 2020 +0200

    return failed insteead of exiting

commit f09836a9eb
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 4695e87cdc
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 160a09790e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 18:53:25 2020 +0200

    removed c omment for now

commit bc17b5a907
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 18:43:28 2020 +0200

    resolved conflict

commit ad31a1b97d
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 399e6b3a09
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 c05b9cbd01
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 1825924b7b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 5 10:16:16 2020 +0200

    abbreviation for resultIF

commit 6817aa4d03
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 4 16:57:08 2020 +0200

    pool manager refactoring

commit b947253ac3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 4 16:49:15 2020 +0200

    local pool neat

commit 4b65d6e847
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon May 4 12:33:57 2020 +0200

    local pool bugfix

commit 3e4263f068
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun May 3 12:27:18 2020 +0200

    freeRTOS task factory fix

commit 35594d4b71
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 281da25bf9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 1 16:47:53 2020 +0200

    extended task management for freeRTOS

commit 15c03863c0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 1 14:49:52 2020 +0200

    additional docmentation for freeRTOS task factory

commit 03333c2af0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 30 21:37:02 2020 +0200

    pool raw acces printout

commit 431709a3ec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 30 15:42:33 2020 +0200

    pool raw acces helper bugfix

commit e1aa285b6d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 29 13:46:30 2020 +0200

    linux osal output in namespace

commit 7ec6d2ceaa
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 28 18:58:55 2020 +0200

    remove dspecial character messing with decoding

commit ecf3b4b535
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 22:05:12 2020 +0200

    stopwatch warning fix

commit a5d2cbd7db
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 21:59:24 2020 +0200

    some more sif replacements

commit 0ea692a5ea
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 20:04:48 2020 +0200

    some more sif changes

commit 01195093e3
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 fc4199c3b1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 18:13:14 2020 +0200

    architecture dependant call delcared external

commit 328737d0ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 18:12:02 2020 +0200

    newer non-deprecated semaphore call used

commit 1415cd2339
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 44d4678089
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 14:06:48 2020 +0200

    fifo features and stopwatch enhancement

commit ee2ee745c7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 12:47:59 2020 +0200

    fifo renamed

commit d546317e6a
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 40d952a349
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:24:34 2020 +0200

    minor form changes

commit e40c9f42c6
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:22:25 2020 +0200

    info output commented out

commit c075e1bf23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 23 10:20:19 2020 +0200

    adapting tmtc bridge

commit db535e25f2
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 2c2ccf8a8d
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 0e6f8d3f82
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:53:06 2020 +0200

    comment adapted

commit 1b5127dc85
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:50:07 2020 +0200

    added task management implementation

commit 6eda5a0838
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:46:49 2020 +0200

    task management header added

commit e26f0d54b2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:44:03 2020 +0200

    binary semaphore init

commit 9f7f8073f1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 19:42:42 2020 +0200

    freertos includes in extern "C"

commit fb9a5678fc
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 10:24:00 2020 +0200

    removed comment belonging in egit

commit 4e76b8133e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 01:08:36 2020 +0200

    uninitialized variable

commit 326e5cf5fe
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 22 01:01:32 2020 +0200

    initialized uninitialized variables

commit 6553450b4b
Author: Uli <uli@vnks.de>
Date:   Tue Apr 21 22:28:43 2020 +0200

    Actually, not that horrible, thanks to sed

commit a42832ca01
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 7e3af7cf83
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 19 21:36:10 2020 +0200

    replaced slotLengthMs with lengthMs

commit 36715e3f4c
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 e77ca55b1d
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 a7d3b4c4a0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 15:05:51 2020 +0200

    added std:: before uint32_t typedef

commit 9580f51c30
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 14:16:46 2020 +0200

    removed self-inclusion

commit e34a438e77
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 13:38:05 2020 +0200

    using size_t

commit 4d8aca8417
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Apr 18 13:32:40 2020 +0200

    message queue adaptation for ISRs

commit a405357578
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 ea1d55b033
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 5595b0f3ce
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 eb362dcad2
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 17:02:04 2020 +0200

    some comment line break

commit f45a8cc171
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 13:17:26 2020 +0200

    fixed slot sequence safety check added

commit 21650b064d
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 33b834ad91
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 10:43:50 2020 +0200

    null replaced by nullptr

commit 7c360be1e0
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 bd0b9cb877
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 16 09:30:02 2020 +0200

    catch example informative comment

commit fc08754b98
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 15 23:28:45 2020 +0200

    some doc unclarities comment added

commit 9284fe81da
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 15 20:53:03 2020 +0200

    added override specifiers, some doc fixes

commit 906f941f32
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 af27a2441a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 16:19:13 2020 +0200

    added catch framework for basic testing

commit c5e5de1530
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 12:24:26 2020 +0200

    deleted example values

commit 2cc4386b4c
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 03b0ae7b68
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 14 11:16:51 2020 +0200

    unit test fixes

commit b48a0a4a4c
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 fe45c7eb8b
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 0d016e5a2b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 13 16:37:25 2020 +0200

    slight formatting

commit a0ee010926
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 13 16:27:05 2020 +0200

    Added test folder.

commit eb2df3d88c
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 69e9710bf1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Apr 10 17:06:06 2020 +0200

    added intial carriage return im preamble

commit 841b28b65d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 9 18:02:10 2020 +0200

    stopwatch ms now working

commit 8a8761ea88
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Apr 9 17:56:48 2020 +0200

    stopwatch bugfix

commit 5582ca278b
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 94137896cc
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 35eff6dfba
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 640cc1ddec
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:30:39 2020 +0200

    some more bugfixes

commit 5b0f80509f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:24:24 2020 +0200

    usec replaced by seconds

commit da9bb97b23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 19:05:21 2020 +0200

    added precision for double output

commit 3dbf353385
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 18:33:38 2020 +0200

    some more refactoring for stopwatch

commit 3af241b9c4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 8 18:27:18 2020 +0200

    stopwatch more lightweight now

commit e0e1e64a09
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 30ed08005f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Apr 7 22:16:43 2020 +0200

    reverted some naming changes

commit c88c6c2a45
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 19:51:45 2020 +0200

    binary semaphore info printout added

commit aaabbe8aef
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 13:59:57 2020 +0200

    DHB fix

commit 78aad91aab
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 12:38:39 2020 +0200

    PSB subservice passed to handleRequest

commit 3654c7bf81
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 6 11:15:44 2020 +0200

    some form stuff

commit e791f44c41
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 42838272a5
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 87852e5f2a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 21:54:11 2020 +0200

    replaced getSerializedSize returnvalue with size_t

commit 7079c9c56d
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 06ae64d59c
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 a65a19f583
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 15:33:24 2020 +0200

    deletd serial buffer adapter2

commit 4a35035b28
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 15:30:31 2020 +0200

    serial buffer adapted improvements

commit 80b1d28bc8
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Apr 5 00:23:29 2020 +0200

    new dvice com IF return value

commit bd468a1b74
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 335df7787a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 17:15:27 2020 +0200

    testing timeslot task 0

commit 8f39820ace
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 17:05:55 2020 +0200

    doc formatting

commit 996dbc9e4b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Apr 1 12:41:54 2020 +0200

    DHB/Cookie refactoring

commit 5218a0d84f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Mar 28 19:42:24 2020 +0100

    doc fix

commit 93678adc5a
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 5d071a1cf1
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 0e56a094d3
Author: jakob.meier <jakob.meier@outlook.de>
Date:   Thu Mar 26 19:43:38 2020 +0100

    merged FwMessageTypes

commit e252a5b795
Author: jakob.meier <jakob.meier@outlook.de>
Date:   Thu Mar 26 19:20:16 2020 +0100

    file system support

commit 093fef5d6f
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 163779622f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Mar 25 02:08:35 2020 +0100

    DHB: replyLen in replyMap now

commit b2b6b8ee23
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 24 15:33:18 2020 +0100

    added initializeInterface for comIF/cookie

commit ea49d88c4b
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 7e8d92f956
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 f7b7e10d05
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 19:14:36 2020 +0100

    date format changed

commit b6bf9d7147
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 19:09:42 2020 +0100

    to avoid dynamic casting, introuced CookieIF

commit f7bd661e69
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 18:08:24 2020 +0100

    small fixes

commit fa058ee602
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 23 18:05:39 2020 +0100

    renamed rmap to com (more generic)

commit d3e2652078
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 c50d9d90d6
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 af6d18d60b
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 52c05e2f3d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 19 12:44:24 2020 +0100

    minor formatting for pull request

commit b7e3449b04
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 19 12:38:11 2020 +0100

    some more doc for containers

commit a3903f80fb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Mar 19 00:49:47 2020 +0100

    typedef address_t moved to deviceComIF

commit b5fe1fa530
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Mar 9 22:15:52 2020 +0100

    dhb virtual function moved to top

commit 6579200f55
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 68cda479d6
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 22e4dabd1b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Mar 6 15:39:42 2020 +0100

    BinSemaphore reset function added

commit 43ac0ec04b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Mar 4 23:07:54 2020 +0100

    Communication Message continued

commit fb6172fdc5
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 dd4a5a45e3
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Mar 3 21:20:08 2020 +0100

    communication message extended

commit 72963f5855
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 d0e8eb386c
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 238892bd66
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 6d6c78b255
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 29 01:21:36 2020 +0100

    task management doc

commit fa38a37604
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 c93ee5c6cd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Feb 27 19:00:51 2020 +0100

    message queue IF return values

commit abccd81fdf
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 083cc7c50a
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Feb 25 17:04:21 2020 +0100

    sempahore wrapper extended

commit 685c18dc4e
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 bfc7a768ce
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 7a426acece
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Feb 21 16:08:43 2020 +0100

    therm sensor doc correction

commit 54eeb71f02
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Feb 17 21:20:51 2020 +0100

    bugfix: added implementation

commit 6ab07aeb19
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 21:04:17 2020 +0100

    valid mask bugfixes

commit 1001c1d48b
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 17:21:06 2020 +0100

    added new IF for thermal messages

commit 99b90e625d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Feb 16 16:14:29 2020 +0100

    refactored: limit type specified separately

commit ddae9ee80f
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 d8ed5bb1c1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Feb 15 18:55:22 2020 +0100

    some comments for missing doc

commit e15839b3a6
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 a7964c7200
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 b3faf1e4ad
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 31 23:42:11 2020 +0100

    old timestring used

commit 5190e4c16e
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 09144b18c4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 29 01:03:20 2020 +0100

    ccsds time changes changed

commit 7dd4694d9d
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 8f17d5147e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 27 00:43:01 2020 +0100

    SerialFixedArrayList constructor bugfix

commit 85048cc9ee
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 26 22:13:56 2020 +0100

    Pool Raw Access change bugfix

commit d9fa13b6eb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 26 18:31:17 2020 +0100

    ADDED old pool entry constructor

commit 6eedb3f097
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 23 15:45:21 2020 +0100

    New Pool List Initializer.

    Needs testing !!!

commit d330958abb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 22 14:27:11 2020 +0100

    Array List endian swapper protected now

commit 1977942c4b
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 3d2bdae14d
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 dba26baee6
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 424c82ce16
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 5cb591a063
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jan 18 18:01:37 2020 +0100

    Array List swapper for SerialFixedArrayList

commit 6fe0f45c27
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 c9e4c73bd2
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 1f4391f56e
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 17 21:11:39 2020 +0100

    Endian Swapper buffer swapper changes reverted

commit 1d1bb88a6f
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 16 19:07:53 2020 +0100

    Merge request check

commit 9bdbc2c380
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 1437f33027
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 9aa57f29b8
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 15 13:52:18 2020 +0100

    basic documentation thermal

commit 9ec0b80497
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 f16cce8be1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 15 13:32:21 2020 +0100

    Basic doc for thermal modules started

commit b0d88129db
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 c747952336
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 01551b8fa5
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 1369e792b4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Jan 13 00:14:14 2020 +0100

    CommandingServiceBase documentation

commit d2325e60b6
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 a8247eb2f0
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 12 14:18:12 2020 +0100

    Some more debugging output switched on

commit 0ce67de8c8
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 59b25bee86
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 0ddc44062d
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 2ec486a880
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Jan 5 18:20:57 2020 +0100

    max number of stored packets lowered

commit 827f185e20
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 a7450144de
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jan 3 15:39:32 2020 +0100

    doxygen group definitions moved to framework

commit 0a57103339
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 f6e88e83db
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 2 21:12:21 2020 +0100

    debug output change

commit e2f07cbcd1
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Thu Jan 2 14:01:21 2020 +0100

    connect and disconnect functions public

commit 831a01e79e
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 1 17:31:17 2020 +0100

    recvBuffer and recvSize initialized

commit c73cb90c36
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Jan 1 16:54:05 2020 +0100

    receiveTc function adapted

commit a762c159fe
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 2425685e44
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 666341d03d
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 79e7fee807
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 22:15:19 2019 +0100

    comment deleted

commit a38a2f4b3a
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 33a7c033a2
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 19e257a90a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 20:35:11 2019 +0100

    tmtc bridge debug output corrected

commit 8397f5b2b1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 20:17:21 2019 +0100

    tmtc bridge bugfix

commit 0066a6b788
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 19:47:46 2019 +0100

    Generic TMTC Bridge added

commit 29b4480fc4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu Dec 26 18:55:31 2019 +0100

    include adapted

commit e24f9b89e4
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 1f1831c4a1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 24 22:15:39 2019 +0100

    pool raw access init

commit f6b9b23287
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 24 01:41:04 2019 +0100

    pool raw access init

commit 89f490ac36
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Fri Dec 20 23:09:35 2019 +0100

    assembly constructor formatting

commit d17146d847
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 fa6cbe7e0c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 23:18:28 2019 +0100

    pool raw access changed reverted

commit 625f3dc79c
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Wed Dec 11 23:15:34 2019 +0100

    local pool modify data doc modifided

commit 9382eb03e6
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 29a15e8154
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 138cac98d1
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 f7d8f0c161
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 10 23:26:48 2019 +0100

    Reverted changed  pool raw access commit

commit 6abb3cc525
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 f33949ba4b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Dec 10 14:54:17 2019 +0100

    doc adapted, merging

commit 356d1d35dc
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 e765f8c99b
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 8168885dd9
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 8 22:57:03 2019 +0100

    Serialization documentation update

commit 3159ccbc40
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Dec 8 22:26:42 2019 +0100

    fixed map and local pool doc

commit d99ed47150
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 950a48078c
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 9c3a9323b7
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 37a70df244
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 10c24e39a3
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 2039aa5665
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 2f14fd5d4d
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 2b44e1c9c4
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 b8af3b5e3d
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 18:15:45 2019 +0100

    debugInterface extended

commit 537e2ceb18
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 13:29:12 2019 +0100

    Getter method for logicalAddress

commit ee765eafc7
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 9 13:17:54 2019 +0100

    ioBoardAddress renamed to logicalAddress

commit 801bd4d7eb
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 bf7bc342ff
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 c6e34cada6.

commit af4e9db9e3
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 b594bc2a97
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Nov 5 19:25:00 2019 +0100

    removed obsolete comment

commit 8a93a873a8
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 e7f7625adf
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Nov 4 11:06:59 2019 +0100

    removed wrong include

commit cb919ada2a
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 12f51575eb
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 8eb1a5b13e
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 46986f69e4
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sat Nov 2 23:30:12 2019 +0100

    serialize tools more documentation

commit d47496db40
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 16af33a7bb
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 19:31:18 2019 +0100

    doc for fifo, device com if..

commit 3887cb8ca1
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 18:22:34 2019 +0100

    removed wrong include in dhb

commit 3f1d68542e
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 e8a16ac59c
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 18:21:01 2019 +0100

    dummy com if sendMessage data const

commit 1ee445ce24
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 29 11:17:07 2019 +0100

    fifo typo

commit b51536c772
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Mon Oct 28 12:48:41 2019 +0100

    CSB doc correction

commit d79f072851
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 27 13:38:08 2019 +0100

    Additional documentation for DHB and CSB

commit 64f84d9d9f
Author: Robin.Mueller <robin.mueller.m@gmail.com>
Date:   Sun Oct 27 03:21:38 2019 +0100

    doc for dhb, serializeIF and SerializeAdapter

commit 8f1517d276
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 1631e739b8
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 07950b0c2b
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 cd1b26b04c
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 c6e34cada6
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 4db655e489
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue Oct 22 14:01:17 2019 +0200

    task priority order comment

commit cbc8012198
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 907664cea9
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 5e3b7c3625
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 743d8abeaf
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
54e97f7bdc Merge branch 'sa/new-if' into mueller/master 2021-01-11 20:18:11 +01:00
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 44dcd3104e.
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 36b76fa07c.
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 adf528fce9.
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 a4d9c761a7.
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
758 changed files with 36956 additions and 21802 deletions

0
.gitmodules vendored Normal file
View File

98
CHANGELOG Normal file
View File

@ -0,0 +1,98 @@
## 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).

206
CMakeLists.txt Normal file
View File

@ -0,0 +1,206 @@
cmake_minimum_required(VERSION 3.13)
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_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON)
# Options to exclude parts of the FSFW from compilation.
option(FSFW_USE_RMAP "Compile with RMAP" ON)
option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON)
set(LIB_FSFW_NAME fsfw)
add_library(${LIB_FSFW_NAME})
set_property(CACHE OS_FSFW PROPERTY STRINGS host linux rtems freertos)
if(NOT OS_FSFW)
message(STATUS "No OS for FSFW via OS_FSFW set. Assuming host OS")
# Assume host OS and autodetermine from OS_FSFW
if(UNIX)
set(OS_FSFW "linux"
CACHE STRING
"OS abstraction layer used in the FSFW"
)
elseif(WIN32)
set(OS_FSFW "host"
CACHE STRING "OS abstraction layer used in the FSFW"
)
endif()
endif()
set(FSFW_OSAL_DEFINITION FSFW_HOST)
if(${OS_FSFW} STREQUAL host)
set(OS_FSFW_NAME "Host")
elseif(${OS_FSFW} STREQUAL linux)
set(OS_FSFW_NAME "Linux")
set(FSFW_OSAL_DEFINITION FSFW_LINUX)
elseif(${OS_FSFW} STREQUAL freertos)
set(OS_FSFW_NAME "FreeRTOS")
set(FSFW_OSAL_DEFINITION FSFW_FREERTOS)
target_link_libraries(${LIB_FSFW_NAME} PRIVATE
${LIB_OS_NAME}
)
elseif(${OS_FSFW} STREQUAL rtems)
set(OS_FSFW_NAME "RTEMS")
set(FSFW_OSAL_DEFINITION FSFW_RTEMS)
else()
message(WARNING
"Invalid operating system for FSFW specified! Setting to host.."
)
set(OS_FSFW_NAME "Host")
set(OS_FSFW "host")
endif()
target_compile_definitions(${LIB_FSFW_NAME} PRIVATE
${FSFW_OSAL_DEFINITION}
)
target_compile_definitions(${LIB_FSFW_NAME} INTERFACE
${FSFW_OSAL_DEFINITION}
)
message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.")
add_subdirectory(action)
add_subdirectory(container)
add_subdirectory(controller)
add_subdirectory(coordinates)
if(FSFW_USE_DATALINKLAYER)
add_subdirectory(datalinklayer)
endif()
add_subdirectory(datapool)
add_subdirectory(datapoollocal)
add_subdirectory(housekeeping)
add_subdirectory(devicehandlers)
add_subdirectory(events)
add_subdirectory(fdir)
add_subdirectory(globalfunctions)
add_subdirectory(health)
add_subdirectory(internalError)
add_subdirectory(ipc)
add_subdirectory(memory)
add_subdirectory(modes)
add_subdirectory(monitoring)
add_subdirectory(objectmanager)
add_subdirectory(osal)
add_subdirectory(parameters)
add_subdirectory(power)
add_subdirectory(pus)
if(FSFW_USE_RMAP)
add_subdirectory(rmap)
endif()
add_subdirectory(serialize)
add_subdirectory(serviceinterface)
add_subdirectory(storagemanager)
add_subdirectory(subsystem)
add_subdirectory(tasks)
add_subdirectory(tcdistribution)
add_subdirectory(thermal)
add_subdirectory(timemanager)
add_subdirectory(tmstorage)
add_subdirectory(tmtcpacket)
add_subdirectory(tmtcservices)
add_subdirectory(unittest)
# 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)
message(WARNING "Flight Software Framework configuration path not set!")
message(WARNING "Setting default configuration!")
add_subdirectory(defaultcfg/fsfwconfig)
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_PATH})
if(IS_ABSOLUTE ${INCLUDE_PATH})
set(CURR_ABS_INC_PATH "${FREERTOS_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_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_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}
)

12
FSFWVersion.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef FSFW_DEFAULTCFG_VERSION_H_
#define FSFW_DEFAULTCFG_VERSION_H_
const char* const FSFW_VERSION_NAME = "ASTP";
#define FSFW_VERSION 1
#define FSFW_SUBVERSION 0
#define FSFW_REVISION 0
#endif /* FSFW_DEFAULTCFG_VERSION_H_ */

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
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.
No copyright assignment is required to contribute to the Flight Software Framework.

48
README.md Normal file
View File

@ -0,0 +1,48 @@
![FSFW Logo](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 [FSFW example](https://egit.irs.uni-stuttgart.de/fsfw/fsfw_example) provides a good starting point and a demo to see the FSFW capabilities and build it with the Make or the CMake build system. It is recommended to evaluate the FSFW by building and playing around with the demo application.
Generally, the FSFW is included in a project by compiling the FSFW sources and providing
a configuration folder and adding it to the include path. 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](doc/README-config.md#top) provides more specific information about the possible options.
## Index
[1. High-level overview](doc/README-highlevel.md#top) <br>
[2. Core components](doc/README-core.md#top) <br>
[3. OSAL overview](doc/README-osal.md#top) <br>
[4. PUS services](doc/README-pus.md#top) <br>
[5. Device Handler overview](doc/README-devicehandlers.md#top) <br>
[6. Controller overview](doc/README-controllers.md#top) <br>
[7. Local Data Pools](doc/README-localpools.md#top) <br>

View File

@ -1,110 +1,167 @@
#include <framework/action/ActionHelper.h>
#include <framework/action/HasActionsIF.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include "ActionHelper.h"
#include "HasActionsIF.h"
ActionHelper::ActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue) :
owner(setOwner), queueToUse(useThisQueue), ipcStore(nullptr) {
#include "../ipc/MessageQueueSenderIF.h"
#include "../objectmanager/ObjectManagerIF.h"
#include "../serviceinterface/ServiceInterface.h"
ActionHelper::ActionHelper(HasActionsIF* setOwner,
MessageQueueIF* useThisQueue) :
owner(setOwner), queueToUse(useThisQueue) {
}
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;
}
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_);
}
ipcStore = objectManager->get<StorageManagerIF>(objects::IPC_STORE);
if (ipcStore == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
}
if(queueToUse_ != nullptr) {
setQueueToUse(queueToUse_);
}
return HasReturnvaluesIF::RETURN_OK;
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::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::finish(bool success, MessageQueueId_t reportTo, ActionId_t commandId,
ReturnValue_t result) {
CommandMessage reply;
ActionMessage::setCompletionReply(&reply, commandId, success, result);
queueToUse->sendMessage(reportTo, &reply);
}
void ActionHelper::setQueueToUse(MessageQueueIF* queue) {
queueToUse = 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;
}
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 == HasActionsIF::EXECUTION_FINISHED) {
CommandMessage reply;
ActionMessage::setCompletionReply(&reply, actionId, true, result);
queueToUse->sendMessage(commandedBy, &reply);
}
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);
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) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "ActionHelper::reportData: Getting free element from IPC store failed!" <<
std::endl;
#else
sif::printWarning("ActionHelper::reportData: Getting free element from IPC "
"store failed!\n");
#endif
return result;
}
result = data->serialize(&dataPtr, &size, maxSize,
SerializeIF::Endianness::BIG);
if (result != HasReturnvaluesIF::RETURN_OK) {
ipcStore->deleteData(storeAddress);
return result;
}
//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;
/* 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);
/* If the sender needs to be hidden, for example to handle packet
as unrequested reply, this will be done here. */
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() {
}
ReturnValue_t ActionHelper::reportData(MessageQueueId_t reportTo,
ActionId_t replyId, const uint8_t *data, size_t dataSize,
bool hideSender) {
CommandMessage reply;
store_address_t storeAddress;
ReturnValue_t result = ipcStore->addData(&storeAddress, data, dataSize);
if (result != HasReturnvaluesIF::RETURN_OK) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "ActionHelper::reportData: Adding data to IPC store failed!" << std::endl;
#else
sif::printWarning("ActionHelper::reportData: Adding data to IPC store failed!\n");
#endif
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);
/* If the sender needs to be hidden, for example to handle packet
as unrequested reply, this will be done here. */
if (hideSender) {
result = MessageQueueSenderIF::sendMessage(reportTo, &reply);
}
else {
result = queueToUse->sendMessage(reportTo, &reply);
}
if (result != HasReturnvaluesIF::RETURN_OK) {
ipcStore->deleteData(storeAddress);
}
return result;
}

View File

@ -1,93 +1,126 @@
#ifndef ACTIONHELPER_H_
#define ACTIONHELPER_H_
#ifndef FSFW_ACTION_ACTIONHELPER_H_
#define FSFW_ACTION_ACTIONHELPER_H_
#include <framework/action/ActionMessage.h>
#include <framework/serialize/SerializeIF.h>
#include <framework/ipc/MessageQueueIF.h>
#include "ActionMessage.h"
#include "../serialize/SerializeIF.h"
#include "../ipc/MessageQueueIF.h"
/**
* \brief Action Helper is a helper class which handles action messages
* @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!
* 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 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);
/**
* 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);
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, optional
* if queue was set in constructor
* @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 success Specify whether action was completed successfully or not.
* @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(bool success, 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.
* Takes a SerializeIF* pointer and serializes it into the IPC store.
* @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 be called by the owner if an action does report data.
* Takes the raw data and writes it into the IPC store.
* @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,
const uint8_t* data, size_t dataSize, 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();
//! Increase of value of this per step
static const uint8_t STEP_OFFSET = 1;
//! Pointer to the owner
HasActionsIF* owner;
//! Queue to be used as response sender, has to be set in ctor or with
//! setQueueToUse
MessageQueueIF* queueToUse;
//! Pointer to an IPC Store, initialized during construction or
StorageManagerIF* ipcStore = nullptr;
/**
* Internal function called by handleActionMessage
* @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);
/**
* @brief Default implementation is empty.
*/
virtual void resetHelper();
};
#endif /* ACTIONHELPER_H_ */
#endif /* FSFW_ACTION_ACTIONHELPER_H_ */

View File

@ -1,6 +1,8 @@
#include <framework/action/ActionMessage.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/storagemanager/StorageManagerIF.h>
#include "ActionMessage.h"
#include "HasActionsIF.h"
#include "../objectmanager/ObjectManagerIF.h"
#include "../storagemanager/StorageManagerIF.h"
ActionMessage::ActionMessage() {
}
@ -9,71 +11,72 @@ 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);
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());
return ActionId_t(message->getParameter());
}
store_address_t ActionMessage::getStoreId(const CommandMessage* message) {
store_address_t temp;
temp.raw = message->getParameter2();
return temp;
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);
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);
return uint8_t((message->getParameter2() >> 16) & 0xFF);
}
ReturnValue_t ActionMessage::getReturnCode(const CommandMessage* message) {
return message->getParameter2() & 0xFFFF;
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);
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);
ActionId_t fid, bool success, ReturnValue_t result) {
if (success) {
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;
}
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 +1,47 @@
#ifndef ACTIONMESSAGE_H_
#define ACTIONMESSAGE_H_
#ifndef FSFW_ACTION_ACTIONMESSAGE_H_
#define FSFW_ACTION_ACTIONMESSAGE_H_
#include <framework/ipc/CommandMessage.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/storagemanager/StorageManagerIF.h>
typedef uint32_t ActionId_t;
#include "../ipc/CommandMessage.h"
#include "../objectmanager/ObjectManagerIF.h"
#include "../storagemanager/StorageManagerIF.h"
using ActionId_t = uint32_t;
/**
* @brief These messages are part of the action module of the FSFW.
* @details
* These messages are sent amongst objects implementing the HasActionsIF. Classes like the
* ActionHelper are able to process these messages.
*/
class ActionMessage {
private:
ActionMessage();
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);
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,
bool success, ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
static void clear(CommandMessage* message);
};
#endif /* ACTIONMESSAGE_H_ */
#endif /* FSFW_ACTION_ACTIONMESSAGE_H_ */

7
action/CMakeLists.txt Normal file
View File

@ -0,0 +1,7 @@
target_sources(${LIB_FSFW_NAME}
PRIVATE
ActionHelper.cpp
ActionMessage.cpp
CommandActionHelper.cpp
SimpleActionHelper.cpp
)

View File

@ -1,127 +1,127 @@
#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>
#include "ActionMessage.h"
#include "CommandActionHelper.h"
#include "CommandsActionsIF.h"
#include "HasActionsIF.h"
#include "../objectmanager/ObjectManagerIF.h"
CommandActionHelper::CommandActionHelper(CommandsActionsIF *setOwner) :
owner(setOwner), queueToUse(NULL), ipcStore(
NULL), commandCount(0), lastTarget(0) {
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);
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);
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;
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;
}
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;
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;
}
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;
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);
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 +1,36 @@
#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>
#include "ActionMessage.h"
#include "../objectmanager/ObjectManagerIF.h"
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../serialize/SerializeIF.h"
#include "../storagemanager/StorageManagerIF.h"
#include "../ipc/MessageQueueIF.h"
class CommandsActionsIF;
class CommandActionHelper {
friend class CommandsActionsIF;
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;
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);
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,9 +1,9 @@
#ifndef COMMANDSACTIONSIF_H_
#define COMMANDSACTIONSIF_H_
#ifndef FSFW_ACTION_COMMANDSACTIONSIF_H_
#define FSFW_ACTION_COMMANDSACTIONSIF_H_
#include <framework/action/CommandActionHelper.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/ipc/MessageQueueIF.h>
#include "CommandActionHelper.h"
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../ipc/MessageQueueIF.h"
/**
* Interface to separate commanding actions of other objects.
@ -15,20 +15,23 @@
* - replyReceived(id, step, cause) (if cause == OK, it's a success).
*/
class CommandsActionsIF {
friend class CommandActionHelper;
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;
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;
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_ */
#endif /* FSFW_ACTION_COMMANDSACTIONSIF_H_ */

View File

@ -1,11 +1,12 @@
#ifndef FRAMEWORK_ACTION_HASACTIONSIF_H_
#define FRAMEWORK_ACTION_HASACTIONSIF_H_
#ifndef FSFW_ACTION_HASACTIONSIF_H_
#define FSFW_ACTION_HASACTIONSIF_H_
#include "ActionHelper.h"
#include "ActionMessage.h"
#include "SimpleActionHelper.h"
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../ipc/MessageQueueIF.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
@ -34,27 +35,29 @@
*/
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;
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.
* The ActionHelpers will execute this function and behave differently
* depending on the returnvalue.
*
* @return
* -@c EXECUTION_FINISHED Finish reply will be generated
* -@c Not RETURN_OK Step failure reply will be generated
*/
virtual ReturnValue_t executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t* data, size_t size) = 0;
};
#endif /* FRAMEWORK_ACTION_HASACTIONSIF_H_ */
#endif /* FSFW_ACTION_HASACTIONSIF_H_ */

View File

@ -1,74 +1,75 @@
#include <framework/action/HasActionsIF.h>
#include <framework/action/SimpleActionHelper.h>
#include "HasActionsIF.h"
#include "SimpleActionHelper.h"
SimpleActionHelper::SimpleActionHelper(HasActionsIF* setOwner,
MessageQueueIF* useThisQueue) :
ActionHelper(setOwner, useThisQueue), isExecuting(false), lastCommander(
0), lastAction(0), stepCount(0) {
MessageQueueIF* useThisQueue) :
ActionHelper(setOwner, useThisQueue), isExecuting(false) {
}
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();
}
// 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();
ActionHelper::finish(lastCommander, lastAction, result);
resetHelper();
}
ReturnValue_t SimpleActionHelper::reportData(SerializeIF* data) {
return ActionHelper::reportData(lastCommander, lastAction, data);
return ActionHelper::reportData(lastCommander, lastAction, data);
}
void SimpleActionHelper::resetHelper() {
stepCount = 0;
isExecuting = false;
lastAction = 0;
lastCommander = 0;
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;
}
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,
true, HasReturnvaluesIF::RETURN_OK);
queueToUse->sendMessage(commandedBy, &reply);
break;
default:
ActionMessage::setStepReply(&reply, actionId, 0, result);
queueToUse->sendMessage(commandedBy, &reply);
break;
}
}

View File

@ -1,24 +1,30 @@
#ifndef SIMPLEACTIONHELPER_H_
#define SIMPLEACTIONHELPER_H_
#ifndef FSFW_ACTION_SIMPLEACTIONHELPER_H_
#define FSFW_ACTION_SIMPLEACTIONHELPER_H_
#include <framework/action/ActionHelper.h>
#include "ActionHelper.h"
/**
* @brief This is an action helper which is only able to service one action
* at a time but remembers last commander and last action which
* simplifies usage
*/
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);
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();
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;
bool isExecuting;
MessageQueueId_t lastCommander = MessageQueueIF::NO_QUEUE;
ActionId_t lastAction = 0;
uint8_t stepCount = 0;
};
#endif /* SIMPLEACTIONHELPER_H_ */

View File

@ -1,12 +1,12 @@
#ifndef FRAMEWORK_CONTAINER_ARRAYLIST_H_
#define FRAMEWORK_CONTAINER_ARRAYLIST_H_
#ifndef FSFW_CONTAINER_ARRAYLIST_H_
#define FSFW_CONTAINER_ARRAYLIST_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/serialize/SerializeAdapter.h>
#include <framework/serialize/SerializeIF.h>
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../serialize/SerializeAdapter.h"
#include "../serialize/SerializeIF.h"
/**
* @brief A List that stores its values in an array.
* @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.
@ -15,57 +15,57 @@
*/
template<typename T, typename count_t = uint8_t>
class ArrayList {
template<typename U, typename count> friend class SerialArrayListAdapter;
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);
static const uint8_t INTERFACE_ID = CLASS_ID::ARRAY_LIST;
static const ReturnValue_t FULL = MAKE_RETURN_CODE(0x01);
/**
* 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) {
}
/**
* 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;
ArrayList(const ArrayList& other) = delete;
const ArrayList& operator=(const ArrayList& other) = delete;
/**
* Number of Elements stored in this List
*/
count_t size;
/**
* 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;
}
}
/**
* Destructor, if the allocating constructor was used, it deletes the array.
*/
virtual ~ArrayList() {
if (allocated) {
delete[] entries;
}
}
/**
* An Iterator to go trough an ArrayList
@ -116,7 +116,11 @@ public:
return tmp;
}
T operator*() {
T& operator*() {
return *value;
}
const T& operator*() const {
return *value;
}
@ -124,124 +128,126 @@ public:
return value;
}
const T *operator->() const{
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]);
}
friend bool operator==(const ArrayList::Iterator& lhs,
const ArrayList::Iterator& rhs) {
return (lhs.value == rhs.value);
}
/**
* 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]);
}
friend bool operator!=(const ArrayList::Iterator& lhs,
const ArrayList::Iterator& rhs) {
return not (lhs.value == rhs.value);
}
T & operator[](count_t i) const {
return entries[i];
}
/**
* Iterator pointing to the first stored elmement
*
* @return Iterator to the first element
*/
Iterator begin() const {
return Iterator(&entries[0]);
}
/**
* The first element
*
* @return pointer to the first stored element
*/
T *front() {
return entries;
}
/**
* 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]);
}
/**
* 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());
}
T & operator[](count_t i) const {
return entries[i];
}
const T* back() const{
return &entries[size-1];
}
/**
* The first element
*
* @return pointer to the first stored element
*/
T *front() {
return entries;
}
/**
* The maximum number of elements this List can contain
*
* @return maximum number of elements
*/
uint32_t maxSize() const {
return this->maxSize_;
}
/**
* 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());
}
/**
* 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;
}
const T* back() const{
return &entries[size-1];
}
/**
* clear the List
*
* This does not actually clear all entries, it only sets the size to 0.
*/
void clear() {
size = 0;
}
/**
* The maximum number of elements this List can contain
*
* @return maximum number of elements
*/
size_t maxSize() const {
return this->maxSize_;
}
count_t remaining() {
return (maxSize_ - size);
}
/**
* 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_;
/**
* pointer to the array in which the entries are stored
*/
T *entries;
/**
* remembering the maximum size
*/
size_t maxSize_;
/**
* true if the array was allocated and needs to be deleted in the destructor.
*/
bool allocated;
/**
* true if the array was allocated and needs to be deleted in the destructor.
*/
bool allocated;
};
#endif /* ARRAYLIST_H_ */
#endif /* FSFW_CONTAINER_ARRAYLIST_H_ */

View File

@ -7,65 +7,65 @@
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;
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);
}
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);
}
}
_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;
}
}
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;
}
if (element != NULL) {
return element->value;
} else {
return NULL;
}
}
pointer operator*() const {
return this->operator->();
return this->operator->();
}
};
@ -75,77 +75,77 @@ public:
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;
}
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;
Node* rootNode;
};

5
container/CMakeLists.txt Normal file
View File

@ -0,0 +1,5 @@
target_sources(${LIB_FSFW_NAME}
PRIVATE
SharedRingBuffer.cpp
SimpleRingBuffer.cpp
)

View File

@ -1,12 +1,12 @@
#ifndef FRAMEWORK_CONTAINER_DYNAMICFIFO_H_
#define FRAMEWORK_CONTAINER_DYNAMICFIFO_H_
#ifndef FSFW_CONTAINER_DYNAMICFIFO_H_
#define FSFW_CONTAINER_DYNAMICFIFO_H_
#include <framework/container/FIFOBase.h>
#include "FIFOBase.h"
#include <vector>
/**
* @brief Simple First-In-First-Out data structure. The maximum size
* can be set in the constructor.
* @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!
@ -17,26 +17,39 @@
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());
}
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->setContainer(fifoVector.data());
};
/**
* @brief Custom copy constructor which prevents setting the
* underlying pointer wrong. This function allocates memory!
* @details This is a very heavy operation so try to avoid this!
*
*/
DynamicFIFO(const DynamicFIFO& other): FIFOBase<T>(other),
fifoVector(other.maxCapacity) {
this->fifoVector = other.fifoVector;
this->setContainer(fifoVector.data());
}
/**
* @brief Custom assignment operator
* @details This is a very heavy operation so try to avoid this!
* @param other DyamicFIFO to copy from
*/
DynamicFIFO& operator=(const DynamicFIFO& other){
FIFOBase<T>::operator=(other);
this->fifoVector = other.fifoVector;
this->setContainer(fifoVector.data());
return *this;
}
private:
std::vector<T> fifoVector;
std::vector<T> fifoVector;
};
#endif /* FRAMEWORK_CONTAINER_DYNAMICFIFO_H_ */
#endif /* FSFW_CONTAINER_DYNAMICFIFO_H_ */

View File

@ -1,13 +1,12 @@
#ifndef FRAMEWORK_CONTAINER_FIFO_H_
#define FRAMEWORK_CONTAINER_FIFO_H_
#ifndef FSFW_CONTAINER_FIFO_H_
#define FSFW_CONTAINER_FIFO_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/container/FIFOBase.h>
#include "FIFOBase.h"
#include <array>
/**
* @brief Simple First-In-First-Out data structure with size fixed at
* compile time
* @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.
@ -17,18 +16,32 @@
template<typename T, size_t capacity>
class FIFO: public FIFOBase<T> {
public:
FIFO(): FIFOBase<T>(fifoArray.data(), capacity) {};
FIFO(): FIFOBase<T>(nullptr, capacity) {
this->setContainer(fifoArray.data());
};
/**
* @brief Custom copy constructor to set pointer correctly.
* @param other
*/
FIFO(const FIFO& other): FIFOBase<T>(other) {
this->setData(fifoArray.data());
}
/**
* @brief Custom copy constructor to set pointer correctly.
* @param other
*/
FIFO(const FIFO& other): FIFOBase<T>(other) {
this->fifoArray = other.fifoArray;
this->setContainer(fifoArray.data());
}
/**
* @brief Custom assignment operator
* @param other
*/
FIFO& operator=(const FIFO& other){
FIFOBase<T>::operator=(other);
this->fifoArray = other.fifoArray;
this->setContainer(fifoArray.data());
return *this;
}
private:
std::array<T, capacity> fifoArray;
std::array<T, capacity> fifoArray;
};
#endif /* FRAMEWORK_CONTAINERS_STATICFIFO_H_ */
#endif /* FSFW_CONTAINER_FIFO_H_ */

View File

@ -1,65 +1,79 @@
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_H_
#define FRAMEWORK_CONTAINER_FIFOBASE_H_
#ifndef FSFW_CONTAINER_FIFOBASE_H_
#define FSFW_CONTAINER_FIFOBASE_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include "../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);
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);
/** 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();
/**
* Insert value into FIFO
* @param value
* @return RETURN_OK on success, FULL if full
*/
ReturnValue_t insert(T value);
/**
* Retrieve item from FIFO. This removes the item from the FIFO.
* @param value Must point to a valid T
* @return RETURN_OK on success, EMPTY if empty and FAILED if nullptr check failed
*/
ReturnValue_t retrieve(T *value);
/**
* Retrieve item from FIFO without removing it from FIFO.
* @param value Must point to a valid T
* @return RETURN_OK on success, EMPTY if empty and FAILED if nullptr check failed
*/
ReturnValue_t peek(T * value);
/**
* Remove item from FIFO.
* @return RETURN_OK on success, EMPTY if empty
*/
ReturnValue_t pop();
bool empty();
bool full();
size_t size();
size_t getMaxCapacity() const;
/***
* Check if FIFO is empty
* @return True if empty, False if not
*/
bool empty();
/***
* Check if FIFO is Full
* @return True if full, False if not
*/
bool full();
/***
* Current used size (elements) used
* @return size_t in elements
*/
size_t size();
/***
* Get maximal capacity of fifo
* @return size_t with max capacity of this fifo
*/
size_t getMaxCapacity() const;
protected:
void setData(T* data);
size_t maxCapacity = 0;
void setContainer(T* data);
size_t maxCapacity = 0;
T* values;
T* values;
size_t readIndex = 0;
size_t writeIndex = 0;
size_t currentSize = 0;
size_t readIndex = 0;
size_t writeIndex = 0;
size_t currentSize = 0;
size_t next(size_t current);
size_t next(size_t current);
};
#include <framework/container/FIFOBase.tpp>
#include "FIFOBase.tpp"
#endif /* FRAMEWORK_CONTAINER_FIFOBASE_H_ */
#endif /* FSFW_CONTAINER_FIFOBASE_H_ */

View File

@ -1,87 +1,93 @@
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_TPP_
#define FRAMEWORK_CONTAINER_FIFOBASE_TPP_
#ifndef FSFW_CONTAINER_FIFOBASE_TPP_
#define FSFW_CONTAINER_FIFOBASE_TPP_
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_H_
#ifndef FSFW_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){};
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;
}
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;
}
if (empty()) {
return EMPTY;
} else {
if (value == nullptr){
return HasReturnvaluesIF::RETURN_FAILED;
}
*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;
}
if(empty()) {
return EMPTY;
} else {
if (value == nullptr){
return HasReturnvaluesIF::RETURN_FAILED;
}
*value = values[readIndex];
return HasReturnvaluesIF::RETURN_OK;
}
};
template<typename T>
inline ReturnValue_t FIFOBase<T>::pop() {
T value;
return this->retrieve(&value);
T value;
return this->retrieve(&value);
};
template<typename T>
inline bool FIFOBase<T>::empty() {
return (currentSize == 0);
return (currentSize == 0);
};
template<typename T>
inline bool FIFOBase<T>::full() {
return (currentSize == maxCapacity);
return (currentSize == maxCapacity);
}
template<typename T>
inline size_t FIFOBase<T>::size() {
return currentSize;
return currentSize;
}
template<typename T>
inline size_t FIFOBase<T>::next(size_t current) {
++current;
if (current == maxCapacity) {
current = 0;
}
return current;
++current;
if (current == maxCapacity) {
current = 0;
}
return current;
}
template<typename T>
inline size_t FIFOBase<T>::getMaxCapacity() const {
return maxCapacity;
return maxCapacity;
}
template<typename T>
inline void FIFOBase<T>::setData(T *data) {
this->values = data;
inline void FIFOBase<T>::setContainer(T *data) {
this->values = data;
}
#endif

View File

@ -1,56 +1,39 @@
#ifndef FIXEDARRAYLIST_H_
#define FIXEDARRAYLIST_H_
#include <framework/container/ArrayList.h>
#include "ArrayList.h"
#include <cmath>
/**
* @brief Array List with a fixed maximum size
* @ingroup container
* \ingroup container
*/
template<typename T, uint32_t MAX_SIZE, typename count_t = uint8_t>
template<typename T, size_t MAX_SIZE, typename count_t = uint8_t>
class FixedArrayList: public ArrayList<T, count_t> {
#if !defined(_MSC_VER)
static_assert(MAX_SIZE <= (std::pow(2,sizeof(count_t)*8)-1), "count_t is not large enough to hold MAX_SIZE");
#endif
private:
T data[MAX_SIZE];
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) {
}
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;
this->size = other.size;
}
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;
this->size = other.size;
return *this;
}
FixedArrayList& operator=(FixedArrayList other) {
memcpy(this->data, other.data, sizeof(this->data));
this->entries = data;
return *this;
}
virtual ~FixedArrayList() {
}
virtual ~FixedArrayList() {
}
};

View File

@ -1,225 +1,230 @@
#ifndef FIXEDMAP_H_
#define FIXEDMAP_H_
#ifndef FSFW_CONTAINER_FIXEDMAP_H_
#define FSFW_CONTAINER_FIXEDMAP_H_
#include <framework/container/ArrayList.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include "ArrayList.h"
#include "../returnvalues/HasReturnvaluesIF.h"
#include <utility>
#include <type_traits>
/**
* @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).
* @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).
* @warning Iterators return a non-const key_t in the pair.
* @warning A User is not allowed to change the key, otherwise the map is corrupted.
* @ingroup container
*/
template<typename key_t, typename T>
class FixedMap: public SerializeIF {
static_assert (std::is_trivially_copyable<T>::value or
std::is_base_of<SerializeIF, T>::value,
"Types used in FixedMap must either be trivial copy-able or a "
"derived class from SerializeIF to be serialize-able");
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);
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;
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;
}
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) {
}
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() {
}
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) {
}
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;
}
friend bool operator==(const typename FixedMap::Iterator& lhs,
const typename FixedMap::Iterator& rhs) {
return (lhs.value == rhs.value);
}
// -> operator overloaded, can be used to access value
T *operator->() {
return &ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
friend bool operator!=(const typename FixedMap::Iterator& lhs,
const typename FixedMap::Iterator& rhs) {
return not (lhs.value == rhs.value);
}
// 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;
}
Iterator begin() const {
return Iterator(&theMap[0]);
}
// Alternative to access value, similar to std::map implementation
T second() {
return ArrayList<std::pair<key_t, T>, uint32_t>::Iterator::value->second;
}
};
Iterator end() const {
return Iterator(&theMap[_size]);
}
uint32_t size() const {
return _size;
}
ReturnValue_t insert(key_t key, T value, Iterator *storedValue = nullptr) {
if (exists(key) == HasReturnvaluesIF::RETURN_OK) {
return KEY_ALREADY_EXISTS;
}
if (_size == theMap.maxSize()) {
return MAP_FULL;
}
theMap[_size].first = key;
theMap[_size].second = value;
if (storedValue != nullptr) {
*storedValue = Iterator(&theMap[_size]);
}
++_size;
return HasReturnvaluesIF::RETURN_OK;
}
Iterator begin() const {
return Iterator(&theMap[0]);
}
ReturnValue_t insert(std::pair<key_t, T> pair) {
return insert(pair.first, pair.second);
}
Iterator end() const {
return Iterator(&theMap[_size]);
}
ReturnValue_t exists(key_t key) const {
ReturnValue_t result = KEY_DOES_NOT_EXIST;
if (findIndex(key) < _size) {
result = HasReturnvaluesIF::RETURN_OK;
}
return result;
}
uint32_t size() const {
return _size;
}
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 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 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;
}
ReturnValue_t insert(std::pair<key_t, T> pair) {
return insert(pair.first, pair.second);
}
T *findValue(key_t key) const {
return &theMap[findIndex(key)].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;
}
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 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 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;
}
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;
}
bool empty() {
if(_size == 0) {
return true;
}
else {
return false;
}
}
T *findValue(key_t key) const {
return &theMap[findIndex(key)].second;
}
bool full() {
if(_size >= theMap.maxSize()) {
return true;
}
else {
return false;
}
}
Iterator find(key_t key) const {
ReturnValue_t result = exists(key);
if (result != HasReturnvaluesIF::RETURN_OK) {
return end();
}
return Iterator(&theMap[findIndex(key)]);
}
void clear() {
_size = 0;
}
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;
}
uint32_t maxSize() const {
return theMap.maxSize();
}
void clear() {
_size = 0;
}
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;
}
uint32_t maxSize() const {
return theMap.maxSize();
}
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);
}
bool full() {
if(_size == theMap.maxSize()) {
return true;
}
else {
return false;
}
}
return printSize;
}
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;
}
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_ */
#endif /* FSFW_CONTAINER_FIXEDMAP_H_ */

View File

@ -1,181 +1,207 @@
#ifndef FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_H_
#define FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_H_
#ifndef FSFW_CONTAINER_FIXEDORDEREDMULTIMAP_H_
#define FSFW_CONTAINER_FIXEDORDEREDMULTIMAP_H_
#include <framework/container/ArrayList.h>
#include "ArrayList.h"
#include <cstring>
#include <set>
#include <functional>
/**
* @brief An associative container which allows multiple entries of the same key.
* @details
* Same keys are ordered by KEY_COMPARE function which is std::less<key_t> > by default.
*
* It uses the ArrayList, so technically this is not a real map, it is an array of pairs
* of type key_t, T. It is ordered by key_t as FixedMap but allows same keys. Thus it has a linear
* complexity O(n). As long as the number of entries remains low, this
* should not be an issue.
* The number of insertion and deletion operation should be minimized
* as those incur extensive memory move operations (the underlying container
* is not node based).
*
* Its of fixed size so no allocations are performed after the construction.
*
* The maximum size is given as first parameter of the constructor.
*
* It provides an iterator to do list iterations.
*
* The type T must have a copy constructor if it is not trivial copy-able.
*
* @warning Iterators return a non-const key_t in the pair.
* @warning A User is not allowed to change the key, otherwise the map is corrupted.
*
* \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);
static const uint8_t INTERFACE_ID = CLASS_ID::FIXED_MULTIMAP;
static const ReturnValue_t MAP_FULL = MAKE_RETURN_CODE(0x01);
static const ReturnValue_t KEY_DOES_NOT_EXIST = MAKE_RETURN_CODE(0x02);
/***
* Constructor which needs a size_t for the maximum allowed size
*
* Can not be resized during runtime
*
* Allocates memory at construction
* @param maxSize size_t of Maximum allowed size
*/
FixedOrderedMultimap(size_t maxSize):theMap(maxSize), _size(0){
}
/***
* Virtual destructor frees Memory by deleting its member
*/
virtual ~FixedOrderedMultimap() {
}
/***
* Special iterator for FixedOrderedMultimap
*/
class Iterator: public ArrayList<std::pair<key_t, T>, size_t>::Iterator {
public:
Iterator() :
ArrayList<std::pair<key_t, T>, size_t>::Iterator() {
}
Iterator(std::pair<key_t, T> *pair) :
ArrayList<std::pair<key_t, T>, size_t>::Iterator(pair) {
}
};
/***
* Returns an iterator pointing to the first element
* @return Iterator pointing to first element
*/
Iterator begin() const {
return Iterator(&theMap[0]);
}
/**
* Returns an iterator pointing to one element past the end
* @return Iterator pointing to one element past the end
*/
Iterator end() const {
return Iterator(&theMap[_size]);
}
/***
* Returns the current size of the map (not maximum size!)
* @return Current size
*/
size_t size() const{
return _size;
}
/**
* Clears the map, does not deallocate any memory
*/
void clear(){
_size = 0;
}
/**
* Returns the maximum size of the map
* @return Maximum size of the map
*/
size_t maxSize() const{
return theMap.maxSize();
}
/***
* Used to insert a key and value separately.
*
* @param[in] key Key of the new element
* @param[in] value Value of the new element
* @param[in/out] (optional) storedValue On success this points to the new value, otherwise a nullptr
* @return RETURN_OK if insert was successful, MAP_FULL if no space is available
*/
ReturnValue_t insert(key_t key, T value, Iterator *storedValue = nullptr);
/***
* Used to insert new pair instead of single values
*
* @param pair Pair to be inserted
* @return RETURN_OK if insert was successful, MAP_FULL if no space is available
*/
ReturnValue_t insert(std::pair<key_t, T> pair);
/***
* Can be used to check if a certain key is in the map
* @param key Key to be checked
* @return RETURN_OK if the key exists KEY_DOES_NOT_EXIST otherwise
*/
ReturnValue_t exists(key_t key) const;
/***
* Used to delete the element in the iterator
*
* The iterator will point to the element before or begin(),
* but never to one element in front of the map.
*
* @warning The iterator needs to be valid and dereferenceable
* @param[in/out] iter Pointer to iterator to the element that needs to be ereased
* @return RETURN_OK if erased, KEY_DOES_NOT_EXIST if the there is no element like this
*/
ReturnValue_t erase(Iterator *iter);
/***
* Used to erase by key
* @param key Key to be erased
* @return RETURN_OK if erased, KEY_DOES_NOT_EXIST if the there is no element like this
*/
ReturnValue_t erase(key_t key);
/***
* Find returns the first appearance of the key
*
* If the key does not exist, it points to end()
*
* @param key Key to search for
* @return Iterator pointing to the first entry of key
*/
Iterator find(key_t key) const{
ReturnValue_t result = exists(key);
if (result != HasReturnvaluesIF::RETURN_OK) {
return end();
}
return Iterator(&theMap[findFirstIndex(key)]);
};
/***
* Finds first entry of the given key and returns a
* pointer to the value
*
* @param key Key to search for
* @param value Found value
* @return RETURN_OK if it points to the value,
* KEY_DOES_NOT_EXIST if the key is not in the map
*/
ReturnValue_t find(key_t key, T **value) const;
friend bool operator==(const typename FixedOrderedMultimap::Iterator& lhs,
const typename FixedOrderedMultimap::Iterator& rhs) {
return (lhs.value == rhs.value);
}
friend bool operator!=(const typename FixedOrderedMultimap::Iterator& lhs,
const typename FixedOrderedMultimap::Iterator& rhs) {
return not (lhs.value == rhs.value);
}
private:
typedef KEY_COMPARE compare;
compare myComp;
ArrayList<std::pair<key_t, T>, uint32_t> theMap;
uint32_t _size;
typedef KEY_COMPARE compare;
compare myComp;
ArrayList<std::pair<key_t, T>, size_t> theMap;
size_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;
}
size_t findFirstIndex(key_t key, size_t startAt = 0) const;
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();
}
size_t findNicePlace(key_t key) const;
void removeFromPosition(size_t position);
};
#endif /* FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_H_ */
#include "FixedOrderedMultimap.tpp"
#endif /* FSFW_CONTAINER_FIXEDORDEREDMULTIMAP_H_ */

View File

@ -0,0 +1,109 @@
#ifndef FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_TPP_
#define FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_TPP_
template<typename key_t, typename T, typename KEY_COMPARE>
inline ReturnValue_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::insert(key_t key, T value, Iterator *storedValue) {
if (_size == theMap.maxSize()) {
return MAP_FULL;
}
size_t position = findNicePlace(key);
memmove(static_cast<void*>(&theMap[position + 1]),static_cast<void*>(&theMap[position]),
(_size - position) * sizeof(std::pair<key_t,T>));
theMap[position].first = key;
theMap[position].second = value;
++_size;
if (storedValue != nullptr) {
*storedValue = Iterator(&theMap[position]);
}
return HasReturnvaluesIF::RETURN_OK;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline ReturnValue_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::insert(std::pair<key_t, T> pair) {
return insert(pair.first, pair.second);
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline ReturnValue_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::exists(key_t key) const {
ReturnValue_t result = KEY_DOES_NOT_EXIST;
if (findFirstIndex(key) < _size) {
result = HasReturnvaluesIF::RETURN_OK;
}
return result;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline ReturnValue_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::erase(Iterator *iter) {
size_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;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline ReturnValue_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::erase(key_t key) {
size_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;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline ReturnValue_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::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;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline size_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::findFirstIndex(key_t key, size_t startAt) const {
if (startAt >= _size) {
return startAt + 1;
}
size_t i = startAt;
for (i = startAt; i < _size; ++i) {
if (theMap[i].first == key) {
return i;
}
}
return i;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline size_t FixedOrderedMultimap<key_t, T, KEY_COMPARE>::findNicePlace(key_t key) const {
size_t i = 0;
for (i = 0; i < _size; ++i) {
if (myComp(key, theMap[i].first)) {
return i;
}
}
return i;
}
template<typename key_t, typename T, typename KEY_COMPARE>
inline void FixedOrderedMultimap<key_t, T, KEY_COMPARE>::removeFromPosition(size_t position) {
if (_size <= position) {
return;
}
memmove(static_cast<void*>(&theMap[position]), static_cast<void*>(&theMap[position + 1]),
(_size - position - 1) * sizeof(std::pair<key_t,T>));
--_size;
}
#endif /* FRAMEWORK_CONTAINER_FIXEDORDEREDMULTIMAP_TPP_ */

View File

@ -1,90 +1,90 @@
#ifndef FRAMEWORK_CONTAINER_HYBRIDITERATOR_H_
#define FRAMEWORK_CONTAINER_HYBRIDITERATOR_H_
#include <framework/container/ArrayList.h>
#include <framework/container/SinglyLinkedList.h>
#include "ArrayList.h"
#include "SinglyLinkedList.h"
template<typename T, typename count_t = uint8_t>
class HybridIterator: public LinkedElement<T>::Iterator,
public ArrayList<T, count_t>::Iterator {
public ArrayList<T, count_t>::Iterator {
public:
HybridIterator() {}
HybridIterator() {}
HybridIterator(typename LinkedElement<T>::Iterator *iter) :
LinkedElement<T>::Iterator(*iter), value(iter->value),
linked(true) {
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(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(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(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;
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;
}
if (value == end) {
value = nullptr;
}
}
return *this;
}
HybridIterator operator++(int) {
HybridIterator tmp(*this);
operator++();
return tmp;
}
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 value == other.value;
}
bool operator!=(const HybridIterator& other) const {
return !(*this == other);
}
bool operator!=(const HybridIterator& other) const {
return !(*this == other);
}
T operator*() {
return *value;
}
T operator*() {
return *value;
}
T *operator->() {
return value;
}
T *operator->() {
return value;
}
T* value = nullptr;
T* value = nullptr;
private:
bool linked = false;
T *end = nullptr;
bool linked = false;
T *end = nullptr;
};
#endif /* FRAMEWORK_CONTAINER_HYBRIDITERATOR_H_ */

File diff suppressed because it is too large Load Diff

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 +1,71 @@
#ifndef FRAMEWORK_CONTAINER_PLACEMENTFACTORY_H_
#define FRAMEWORK_CONTAINER_PLACEMENTFACTORY_H_
#include <framework/storagemanager/StorageManagerIF.h>
#include "../storagemanager/StorageManagerIF.h"
#include <utility>
/**
* The Placement Factory is used to create objects at runtime in a specific pool.
* In general, this should be avoided and it should only be used if you know what you are doing.
* You are not allowed to use this container with a type that allocates memory internally like ArrayList.
*
* Also, you have to check the returned pointer in generate against nullptr!
*
* A backend of Type StorageManagerIF must be given as a place to store the new objects.
* Therefore ThreadSafety is only provided by your StorageManager Implementation.
*
* Objects must be destroyed by the user with "destroy"! Otherwise the pool will not be cleared.
*
* The concept is based on the placement new operator.
*
* @warning Do not use with any Type that allocates memory internally!
* @ingroup container
*/
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));
}
PlacementFactory(StorageManagerIF* backend) :
dataBackend(backend) {
}
/***
* Generates an object of type T in the backend storage.
*
* @warning Do not use with any Type that allocates memory internally!
*
* @tparam T Type of Object
* @param args Constructor Arguments to be passed
* @return A pointer to the new object or a nullptr in case of failure
*/
template<typename T, typename ... Args>
T* generate(Args&&... args) {
store_address_t tempId;
uint8_t* pData = nullptr;
ReturnValue_t result = dataBackend->getFreeElement(&tempId, sizeof(T),
&pData);
if (result != HasReturnvaluesIF::RETURN_OK) {
return nullptr;
}
T* temp = new (pData) T(std::forward<Args>(args)...);
return temp;
}
/***
* Function to destroy the object allocated with generate and free space in backend.
* This must be called by the user.
*
* @param thisElement Element to be destroyed
* @return RETURN_OK if the element was destroyed, different errors on failure
*/
template<typename T>
ReturnValue_t destroy(T* thisElement) {
if (thisElement == nullptr){
return HasReturnvaluesIF::RETURN_FAILED;
}
//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;
StorageManagerIF* dataBackend;
};
#endif /* FRAMEWORK_CONTAINER_PLACEMENTFACTORY_H_ */

View File

@ -1,113 +1,113 @@
#ifndef FRAMEWORK_CONTAINER_RINGBUFFERBASE_H_
#define FRAMEWORK_CONTAINER_RINGBUFFERBASE_H_
#ifndef FSFW_CONTAINER_RINGBUFFERBASE_H_
#define FSFW_CONTAINER_RINGBUFFERBASE_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include "../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;
}
}
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() {}
virtual ~RingBufferBase() {}
bool isFull(uint8_t n = 0) {
return (availableWriteSpace(n) == 0);
}
bool isEmpty(uint8_t n = 0) {
return (availableReadData(n) == 0);
}
bool isFull(uint8_t n = 0) {
return (availableWriteSpace(n) == 0);
}
bool isEmpty(uint8_t n = 0) {
return (getAvailableReadData(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);
}
size_t getAvailableReadData(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;
}
bool overwritesOld() const {
return overwriteOld;
}
size_t maxSize() const {
return size - 1;
}
size_t getMaxSize() const {
return size - 1;
}
void clear() {
write = start;
for (uint8_t count = 0; count < N_READ_PTRS; count++) {
read[count] = start;
}
}
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 writeTillWrap() {
return (start + size) - write;
}
size_t readTillWrap(uint8_t n = 0) {
return (start + size) - read[n];
}
size_t readTillWrap(uint8_t n = 0) {
return (start + size) - read[n];
}
size_t getStart() const {
return start;
}
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;
}
const size_t start;
size_t write;
size_t read[N_READ_PTRS];
const size_t size;
const bool overwriteOld;
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;
}
}
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 writeData(uint32_t amount) {
if (availableWriteSpace() >= amount or overwriteOld) {
incrementWrite(amount);
return HasReturnvaluesIF::RETURN_OK;
} else {
return HasReturnvaluesIF::RETURN_FAILED;
}
}
ReturnValue_t readData(uint32_t amount, uint8_t n = 0) {
if (getAvailableReadData(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];
}
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;
}
}
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;
}
uint32_t getWrite() const {
return write;
}
void setWrite(uint32_t write) {
this->write = write;
}
void setWrite(uint32_t write) {
this->write = write;
}
};
#endif /* FRAMEWORK_CONTAINER_RINGBUFFERBASE_H_ */
#endif /* FSFW_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 +1,60 @@
#include <framework/container/SharedRingBuffer.h>
#include <framework/ipc/MutexFactory.h>
#include <framework/ipc/MutexHelper.h>
#include "SharedRingBuffer.h"
#include "../ipc/MutexFactory.h"
#include "../ipc/MutexGuard.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();
bool overwriteOld, size_t maxExcessBytes):
SystemObject(objectId), SimpleRingBuffer(size, overwriteOld,
maxExcessBytes) {
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();
const size_t size, bool overwriteOld, size_t maxExcessBytes):
SystemObject(objectId), SimpleRingBuffer(buffer, size, overwriteOld,
maxExcessBytes) {
mutex = MutexFactory::instance()->createMutex();
}
ReturnValue_t SharedRingBuffer::getFreeElementProtected(uint8_t** writePtr,
size_t amount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::getFreeElement(writePtr,amount);
SharedRingBuffer::~SharedRingBuffer() {
MutexFactory::instance()->deleteMutex(mutex);
}
ReturnValue_t SharedRingBuffer::writeDataProtected(const uint8_t *data,
size_t amount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::writeData(data,amount);
void SharedRingBuffer::setToUseReceiveSizeFIFO(size_t fifoDepth) {
this->fifoDepth = fifoDepth;
}
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::lockRingBufferMutex(
MutexIF::TimeoutType timeoutType, dur_millis_t timeout) {
return mutex->lockMutex(timeoutType, timeout);
}
ReturnValue_t SharedRingBuffer::deleteDataProtected(size_t amount,
bool deleteRemaining, size_t *trueAmount) {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::deleteData(amount, deleteRemaining, trueAmount);
ReturnValue_t SharedRingBuffer::unlockRingBufferMutex() {
return mutex->unlockMutex();
}
size_t SharedRingBuffer::getExcessBytes() const {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::getExcessBytes();
MutexIF* SharedRingBuffer::getMutexHandle() const {
return mutex;
}
void SharedRingBuffer::moveExcessBytesToStart() {
MutexHelper(mutex, mutexTimeout);
return SimpleRingBuffer::moveExcessBytesToStart();
ReturnValue_t SharedRingBuffer::initialize() {
if(fifoDepth > 0) {
receiveSizesFIFO = new DynamicFIFO<size_t>(fifoDepth);
}
return SystemObject::initialize();
}
size_t SharedRingBuffer::getAvailableReadDataProtected(uint8_t n) const {
MutexHelper(mutex, mutexTimeout);
return ((write + size) - read[n]) % size;
DynamicFIFO<size_t>* SharedRingBuffer::getReceiveSizesFIFO() {
if(receiveSizesFIFO == nullptr) {
// Configuration error.
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "SharedRingBuffer::getReceiveSizesFIFO: Ring buffer"
<< " was not configured to have sizes FIFO, returning nullptr!"
<< std::endl;
#endif
}
return receiveSizesFIFO;
}

View File

@ -1,68 +1,95 @@
#ifndef FRAMEWORK_CONTAINER_SHAREDRINGBUFFER_H_
#define FRAMEWORK_CONTAINER_SHAREDRINGBUFFER_H_
#ifndef FSFW_CONTAINER_SHAREDRINGBUFFER_H_
#define FSFW_CONTAINER_SHAREDRINGBUFFER_H_
#include <framework/container/SimpleRingBuffer.h>
#include <framework/ipc/MutexIF.h>
#include <framework/objectmanager/SystemObject.h>
#include <framework/timemanager/Clock.h>
#include "SimpleRingBuffer.h"
#include "DynamicFIFO.h"
#include "../ipc/MutexIF.h"
#include "../objectmanager/SystemObject.h"
#include "../timemanager/Clock.h"
/**
* @brief Ring buffer which can be shared among multiple objects
* @details
* This class offers a mutex to perform thread-safe operation on the ring
* buffer. It is still up to the developer to actually perform the lock
* and unlock operations.
*/
class SharedRingBuffer: public SystemObject,
public SimpleRingBuffer {
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 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);
/**
* 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);
/**
* 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);
virtual~ SharedRingBuffer();
void setMutexTimeout(dur_millis_t newTimeout);
/**
* @brief This function can be used to add an optional FIFO to the class
* @details
* This FIFO will be allocated in the initialize function (and will
* have a fixed maximum size after that). It can be used to store
* values like packet sizes, for example for a shared ring buffer
* used by producer/consumer tasks.
*/
void setToUseReceiveSizeFIFO(size_t fifoDepth);
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);
/**
* Unless a read-only constant value is read, all operations on the
* shared ring buffer should be protected by calling this function.
* @param timeoutType
* @param timeout
* @return
*/
virtual ReturnValue_t lockRingBufferMutex(MutexIF::TimeoutType timeoutType,
dur_millis_t timeout);
/**
* Any locked mutex also has to be unlocked, otherwise, access to the
* shared ring buffer will be blocked.
* @return
*/
virtual ReturnValue_t unlockRingBufferMutex();
/** 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);
/**
* The mutex handle can be accessed directly, for example to perform
* the lock with the #MutexGuard for a RAII compliant lock operation.
* @return
*/
MutexIF* getMutexHandle() const;
/** Performs mutex protected SimpleRingBuffer::deleteData call */
ReturnValue_t deleteDataProtected(size_t amount,
bool deleteRemaining = false, size_t* trueAmount = nullptr);
ReturnValue_t initialize() override;
size_t getAvailableReadDataProtected (uint8_t n = 0) const;
/**
* If the shared ring buffer was configured to have a sizes FIFO, a handle
* to that FIFO can be retrieved with this function.
* Do not forget to protect access with a lock if required!
* @return
*/
DynamicFIFO<size_t>* getReceiveSizesFIFO();
private:
dur_millis_t mutexTimeout;
MutexIF* mutex = nullptr;
MutexIF* mutex = nullptr;
size_t fifoDepth = 0;
DynamicFIFO<size_t>* receiveSizesFIFO = nullptr;
};
#endif /* FRAMEWORK_CONTAINER_SHAREDRINGBUFFER_H_ */
#endif /* FSFW_CONTAINER_SHAREDRINGBUFFER_H_ */

View File

@ -1,36 +1,34 @@
#include <framework/container/SimpleRingBuffer.h>
#include "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];
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):
bool overwriteOld, size_t maxExcessBytes):
RingBufferBase<>(0, size, overwriteOld), buffer(buffer) {
if(maxExcessBytes > size) {
this->maxExcessBytes = size;
}
else {
this->maxExcessBytes = maxExcessBytes;
}
if(maxExcessBytes > size) {
this->maxExcessBytes = size;
}
else {
this->maxExcessBytes = maxExcessBytes;
}
}
SimpleRingBuffer::~SimpleRingBuffer() {
delete[] buffer;
delete[] buffer;
}
ReturnValue_t SimpleRingBuffer::getFreeElement(uint8_t **writePointer,
size_t amount) {
if (availableWriteSpace() >= amount or overwriteOld) {
@ -42,7 +40,6 @@ ReturnValue_t SimpleRingBuffer::getFreeElement(uint8_t **writePointer,
excessBytes = amount - amountTillWrap;
}
*writePointer = &buffer[write];
incrementWrite(amount);
return HasReturnvaluesIF::RETURN_OK;
}
else {
@ -50,51 +47,59 @@ ReturnValue_t SimpleRingBuffer::getFreeElement(uint8_t **writePointer,
}
}
void SimpleRingBuffer::confirmBytesWritten(size_t amount) {
if(getExcessBytes() > 0) {
moveExcessBytesToStart();
}
incrementWrite(amount);
}
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;
}
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);
}
bool incrementReadPtr, bool readRemaining, size_t* trueAmount) {
size_t availableData = getAvailableReadData(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;
if(incrementReadPtr) {
deleteData(amount, readRemaining);
}
return HasReturnvaluesIF::RETURN_OK;
}
size_t SimpleRingBuffer::getExcessBytes() const {
@ -109,19 +114,18 @@ void SimpleRingBuffer::moveExcessBytesToStart() {
}
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;
bool deleteRemaining, size_t* trueAmount) {
size_t availableData = getAvailableReadData(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,11 +1,11 @@
#ifndef FRAMEWORK_CONTAINER_SIMPLERINGBUFFER_H_
#define FRAMEWORK_CONTAINER_SIMPLERINGBUFFER_H_
#ifndef FSFW_CONTAINER_SIMPLERINGBUFFER_H_
#define FSFW_CONTAINER_SIMPLERINGBUFFER_H_
#include <framework/container/RingBufferBase.h>
#include "RingBufferBase.h"
#include <cstddef>
/**
* @brief Circular buffer implementation, useful for buffering
* @brief Circular buffer implementation, useful for buffering
* into data streams.
* @details
* Note that the deleteData() has to be called to increment the read pointer.
@ -25,95 +25,105 @@ public:
* 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
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);
* @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();
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);
/**
* 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);
/**
* 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. This function
* does not increment the write pointer!
* @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();
/**
* This increments the write pointer and also copies the excess bytes
* to the beginning. It should be called if the write operation
* conducted after calling getFreeElement() was performed.
* @return
*/
void confirmBytesWritten(size_t amount);
/**
* 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);
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);
/**
* 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;
static const uint8_t READ_PTR = 0;
uint8_t* buffer = nullptr;
size_t maxExcessBytes;
size_t excessBytes = 0;
};
#endif /* FRAMEWORK_CONTAINER_SIMPLERINGBUFFER_H_ */
#endif /* FSFW_CONTAINER_SIMPLERINGBUFFER_H_ */

View File

@ -5,71 +5,71 @@
#include <cstdint>
/**
* @brief Linked list data structure,
* each entry has a pointer to the next entry (singly)
* @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() {}
T *value;
class Iterator {
public:
LinkedElement<T> *value = nullptr;
Iterator() {}
Iterator(LinkedElement<T> *element) :
value(element) {
}
Iterator(LinkedElement<T> *element) :
value(element) {
}
Iterator& operator++() {
value = value->getNext();
return *this;
}
Iterator& operator++() {
value = value->getNext();
return *this;
}
Iterator operator++(int) {
Iterator tmp(*this);
operator++();
return tmp;
}
Iterator operator++(int) {
Iterator tmp(*this);
operator++();
return tmp;
}
bool operator==(Iterator other) {
return value == other.value;
}
bool operator==(Iterator other) {
return value == other.value;
}
bool operator!=(Iterator other) {
return !(*this == other);
}
T *operator->() {
return value->value;
}
};
bool operator!=(Iterator other) {
return !(*this == other);
}
T *operator->() {
return value->value;
}
};
LinkedElement(T* setElement, LinkedElement<T>* setNext = nullptr):
value(setElement), next(setNext) {}
LinkedElement(T* setElement, LinkedElement<T>* setNext = nullptr):
value(setElement), next(setNext) {}
virtual ~LinkedElement(){}
virtual ~LinkedElement(){}
virtual LinkedElement* getNext() const {
return next;
}
virtual LinkedElement* getNext() const {
return next;
}
virtual void setNext(LinkedElement* next) {
this->next = next;
}
virtual void setNext(LinkedElement* next) {
this->next = next;
}
virtual void setEnd() {
this->next = nullptr;
}
virtual void setEnd() {
this->next = nullptr;
}
LinkedElement* begin() {
return this;
}
LinkedElement* end() {
return nullptr;
}
LinkedElement* begin() {
return this;
}
LinkedElement* end() {
return nullptr;
}
private:
LinkedElement *next;
LinkedElement *next;
};
template<typename T>
@ -77,52 +77,52 @@ class SinglyLinkedList {
public:
using ElementIterator = typename LinkedElement<T>::Iterator;
SinglyLinkedList() {}
SinglyLinkedList() {}
SinglyLinkedList(ElementIterator start) :
start(start.value) {}
SinglyLinkedList(ElementIterator start) :
start(start.value) {}
SinglyLinkedList(LinkedElement<T>* startElement) :
start(startElement) {}
SinglyLinkedList(LinkedElement<T>* startElement) :
start(startElement) {}
ElementIterator begin() const {
return ElementIterator::Iterator(start);
}
ElementIterator begin() const {
return ElementIterator::Iterator(start);
}
/** Returns iterator to nulltr */
ElementIterator end() const {
return ElementIterator::Iterator();
}
/** 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);
}
/**
* Returns last element in singly linked list.
* @return
*/
ElementIterator back() const {
LinkedElement<T> *element = start;
while (element->getNext() != 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;
}
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 setNext(LinkedElement<T>* currentElement,
LinkedElement<T>* nextElement) {
currentElement->setNext(nextElement);
}
void setLast(LinkedElement<T>* lastElement) {
lastElement->setEnd();
@ -148,7 +148,7 @@ public:
}
protected:
LinkedElement<T> *start = nullptr;
LinkedElement<T> *start = nullptr;
};
#endif /* SINGLYLINKEDLIST_H_ */

View File

@ -4,9 +4,11 @@
/**
* @defgroup container Container
*
* General Purpose Containers to store various elements.
* As opposed to the STL library implementation, these implementations
* don't allocate memory dynamically.
* General Purpose Container to store various elements.
*
* Also contains Adapter classes to print elements to a
* bytestream and to read them from a bytestream, as well
* as an Adapter to swap the endianness.
*/

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;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,117 +1,117 @@
#ifndef _sgp4unit_
#define _sgp4unit_
/* ----------------------------------------------------------------
*
* sgp4unit.h
*
* this file contains the sgp4 procedures for analytical propagation
* of a satellite. the code was originally released in the 1980 and 1986
* spacetrack papers. a detailed discussion of the theory and history
* may be found in the 2006 aiaa paper by vallado, crawford, hujsak,
* and kelso.
*
* companion code for
* fundamentals of astrodynamics and applications
* 2007
* by david vallado
*
* (w) 719-573-2600, email dvallado@agi.com
*
* current :
* 20 apr 07 david vallado
* misc fixes for constants
* changes :
* 11 aug 06 david vallado
* chg lyddane choice back to strn3, constants, misc doc
* 15 dec 05 david vallado
* misc fixes
* 26 jul 05 david vallado
* fixes for paper
* note that each fix is preceded by a
* comment with "sgp4fix" and an explanation of
* what was changed
* 10 aug 04 david vallado
* 2nd printing baseline working
* 14 may 01 david vallado
* 2nd edition baseline
* 80 norad
* original baseline
* ---------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
// -------------------------- structure declarations ----------------------------
typedef enum
{
wgs72old,
wgs72,
wgs84
} gravconsttype;
typedef struct elsetrec
{
long int satnum;
int epochyr, epochtynumrev;
int error;
char init, method;
/* Near Earth */
int isimp;
double aycof , con41 , cc1 , cc4 , cc5 , d2 , d3 , d4 ,
delmo , eta , argpdot, omgcof , sinmao , t , t2cof, t3cof ,
t4cof , t5cof , x1mth2 , x7thm1 , mdot , nodedot, xlcof , xmcof ,
nodecf;
/* Deep Space */
int irez;
double d2201 , d2211 , d3210 , d3222 , d4410 , d4422 , d5220 , d5232 ,
d5421 , d5433 , dedt , del1 , del2 , del3 , didt , dmdt ,
dnodt , domdt , e3 , ee2 , peo , pgho , pho , pinco ,
plo , se2 , se3 , sgh2 , sgh3 , sgh4 , sh2 , sh3 ,
si2 , si3 , sl2 , sl3 , sl4 , gsto , xfact , xgh2 ,
xgh3 , xgh4 , xh2 , xh3 , xi2 , xi3 , xl2 , xl3 ,
xl4 , xlamo , zmol , zmos , atime , xli , xni;
double a , altp , alta , epochdays, jdsatepoch , nddot , ndot ,
bstar , rcse , inclo , nodeo , ecco , argpo , mo ,
no;
} elsetrec;
// --------------------------- function declarations ----------------------------
int sgp4init
(
gravconsttype whichconst, const int satn, const double epoch,
const double xbstar, const double xecco, const double xargpo,
const double xinclo, const double xmo, const double xno,
const double xnodeo,
elsetrec& satrec
);
int sgp4
(
gravconsttype whichconst,
elsetrec& satrec, double tsince,
double r[], double v[]
);
double gstime
(
double
);
void getgravconst
(
gravconsttype,
double&,
double&,
double&,
double&,
double&,
double&,
double&,
double&
);
#endif
#ifndef _sgp4unit_
#define _sgp4unit_
/* ----------------------------------------------------------------
*
* sgp4unit.h
*
* this file contains the sgp4 procedures for analytical propagation
* of a satellite. the code was originally released in the 1980 and 1986
* spacetrack papers. a detailed discussion of the theory and history
* may be found in the 2006 aiaa paper by vallado, crawford, hujsak,
* and kelso.
*
* companion code for
* fundamentals of astrodynamics and applications
* 2007
* by david vallado
*
* (w) 719-573-2600, email dvallado@agi.com
*
* current :
* 20 apr 07 david vallado
* misc fixes for constants
* changes :
* 11 aug 06 david vallado
* chg lyddane choice back to strn3, constants, misc doc
* 15 dec 05 david vallado
* misc fixes
* 26 jul 05 david vallado
* fixes for paper
* note that each fix is preceded by a
* comment with "sgp4fix" and an explanation of
* what was changed
* 10 aug 04 david vallado
* 2nd printing baseline working
* 14 may 01 david vallado
* 2nd edition baseline
* 80 norad
* original baseline
* ---------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
// -------------------------- structure declarations ----------------------------
typedef enum
{
wgs72old,
wgs72,
wgs84
} gravconsttype;
typedef struct elsetrec
{
long int satnum;
int epochyr, epochtynumrev;
int error;
char init, method;
/* Near Earth */
int isimp;
double aycof , con41 , cc1 , cc4 , cc5 , d2 , d3 , d4 ,
delmo , eta , argpdot, omgcof , sinmao , t , t2cof, t3cof ,
t4cof , t5cof , x1mth2 , x7thm1 , mdot , nodedot, xlcof , xmcof ,
nodecf;
/* Deep Space */
int irez;
double d2201 , d2211 , d3210 , d3222 , d4410 , d4422 , d5220 , d5232 ,
d5421 , d5433 , dedt , del1 , del2 , del3 , didt , dmdt ,
dnodt , domdt , e3 , ee2 , peo , pgho , pho , pinco ,
plo , se2 , se3 , sgh2 , sgh3 , sgh4 , sh2 , sh3 ,
si2 , si3 , sl2 , sl3 , sl4 , gsto , xfact , xgh2 ,
xgh3 , xgh4 , xh2 , xh3 , xi2 , xi3 , xl2 , xl3 ,
xl4 , xlamo , zmol , zmos , atime , xli , xni;
double a , altp , alta , epochdays, jdsatepoch , nddot , ndot ,
bstar , rcse , inclo , nodeo , ecco , argpo , mo ,
no;
} elsetrec;
// --------------------------- function declarations ----------------------------
int sgp4init
(
gravconsttype whichconst, const int satn, const double epoch,
const double xbstar, const double xecco, const double xargpo,
const double xinclo, const double xmo, const double xno,
const double xnodeo,
elsetrec& satrec
);
int sgp4
(
gravconsttype whichconst,
elsetrec& satrec, double tsince,
double r[], double v[]
);
double gstime
(
double
);
void getgravconst
(
gravconsttype,
double&,
double&,
double&,
double&,
double&,
double&,
double&,
double&
);
#endif

View File

@ -0,0 +1,4 @@
target_sources(${LIB_FSFW_NAME} PRIVATE
ControllerBase.cpp
ExtendedControllerBase.cpp
)

View File

@ -1,137 +1,137 @@
#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>
#include "ControllerBase.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);
#include "../subsystem/SubsystemBase.h"
#include "../ipc/QueueFactory.h"
#include "../action/HasActionsIF.h"
ControllerBase::ControllerBase(object_id_t setObjectId, object_id_t parentId,
size_t commandQueueDepth) :
SystemObject(setObjectId), parentId(parentId), mode(MODE_OFF),
submode(SUBMODE_NONE), modeHelper(this),
healthHelper(this, setObjectId) {
commandQueue = QueueFactory::instance()->createMessageQueue(
commandQueueDepth);
}
ControllerBase::~ControllerBase() {
QueueFactory::instance()->deleteMessageQueue(commandQueue);
QueueFactory::instance()->deleteMessageQueue(commandQueue);
}
ReturnValue_t ControllerBase::initialize() {
ReturnValue_t result = SystemObject::initialize();
if (result != RETURN_OK) {
return result;
}
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();
MessageQueueId_t parentQueue = 0;
if (parentId != objects::NO_OBJECT) {
SubsystemBase *parent = objectManager->get<SubsystemBase>(parentId);
if (parent == nullptr) {
return RETURN_FAILED;
}
parentQueue = parent->getCommandQueue();
parent->registerChild(getObjectId());
}
parent->registerChild(getObjectId());
}
result = healthHelper.initialize(parentQueue);
if (result != RETURN_OK) {
return result;
}
result = healthHelper.initialize(parentQueue);
if (result != RETURN_OK) {
return result;
}
result = modeHelper.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;
return RETURN_OK;
}
MessageQueueId_t ControllerBase::getCommandQueue() const {
return commandQueue->getId();
return commandQueue->getId();
}
void ControllerBase::handleQueue() {
CommandMessage command;
ReturnValue_t result;
for (result = commandQueue->receiveMessage(&command); result == RETURN_OK;
result = commandQueue->receiveMessage(&command)) {
CommandMessage command;
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
for (result = commandQueue->receiveMessage(&command);
result == RETURN_OK;
result = commandQueue->receiveMessage(&command)) {
result = modeHelper.handleModeCommand(&command);
if (result == RETURN_OK) {
continue;
}
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);
}
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);
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;
*mode = this->mode;
*submode = this->submode;
}
void ControllerBase::setToExternalControl() {
healthHelper.setHealth(EXTERNAL_CONTROL);
healthHelper.setHealth(EXTERNAL_CONTROL);
}
void ControllerBase::announceMode(bool recursive) {
triggerEvent(MODE_INFO, mode, submode);
triggerEvent(MODE_INFO, mode, submode);
}
ReturnValue_t ControllerBase::performOperation(uint8_t opCode) {
handleQueue();
hkSwitcher.performOperation();
performControlOperation();
return RETURN_OK;
handleQueue();
performControlOperation();
return RETURN_OK;
}
void ControllerBase::modeChanged(Mode_t mode, Submode_t submode) {
return;
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;
}
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();
return healthHelper.getHealth();
}
void ControllerBase::setTaskIF(PeriodicTaskIF* task_){
executingTask = task_;
executingTask = task_;
}
void ControllerBase::changeHK(Mode_t mode, Submode_t submode, bool enable) {
}
ReturnValue_t ControllerBase::initializeAfterTaskCreation() {
return HasReturnvaluesIF::RETURN_OK;
}

View File

@ -1,79 +1,94 @@
#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>
#ifndef FSFW_CONTROLLER_CONTROLLERBASE_H_
#define FSFW_CONTROLLER_CONTROLLERBASE_H_
#include "../health/HasHealthIF.h"
#include "../health/HealthHelper.h"
#include "../modes/HasModesIF.h"
#include "../modes/ModeHelper.h"
#include "../objectmanager/SystemObject.h"
#include "../tasks/ExecutableObjectIF.h"
#include "../tasks/PeriodicTaskIF.h"
#include "../datapool/HkSwitchHelper.h"
/**
* @brief Generic base class for controller classes
* @details
* Implements common interfaces for controllers, which generally have
* a mode and a health state. This avoids boilerplate code.
*/
class ControllerBase: public HasModesIF,
public HasHealthIF,
public ExecutableObjectIF,
public SystemObject,
public HasReturnvaluesIF {
public HasHealthIF,
public ExecutableObjectIF,
public SystemObject,
public HasReturnvaluesIF {
public:
static const Mode_t MODE_NORMAL = 2;
static const Mode_t MODE_NORMAL = 2;
ControllerBase(object_id_t setObjectId, object_id_t parentId,
size_t commandQueueDepth = 3);
virtual ~ControllerBase();
ControllerBase(uint32_t setObjectId, uint32_t parentId,
size_t commandQueueDepth = 3);
virtual ~ControllerBase();
/** SystemObject override */
virtual ReturnValue_t initialize() override;
ReturnValue_t initialize();
virtual MessageQueueId_t getCommandQueue() const override;
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_);
/** HasHealthIF overrides */
virtual ReturnValue_t setHealth(HealthState health) override;
virtual HasHealthIF::HealthState getHealth() override;
/** ExecutableObjectIF overrides */
virtual ReturnValue_t performOperation(uint8_t opCode) override;
virtual void setTaskIF(PeriodicTaskIF* task) override;
virtual ReturnValue_t initializeAfterTaskCreation() override;
protected:
const uint32_t parentId;
Mode_t mode;
/**
* Implemented by child class. Handle command messages which are not
* mode or health messages.
* @param message
* @return
*/
virtual ReturnValue_t handleCommandMessage(CommandMessage *message) = 0;
Submode_t submode;
/**
* Periodic helper, implemented by child class.
*/
virtual void performControlOperation() = 0;
MessageQueueIF* commandQueue;
virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode) = 0;
ModeHelper modeHelper;
const object_id_t parentId;
HealthHelper healthHelper;
Mode_t mode;
HkSwitchHelper hkSwitcher;
Submode_t submode;
/**
* Pointer to the task which executes this component, is invalid before setTaskIF was called.
*/
PeriodicTaskIF* executingTask;
MessageQueueIF* commandQueue = nullptr;
void handleQueue();
ModeHelper modeHelper;
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);
HealthHelper healthHelper;
/**
* Pointer to the task which executes this component,
* is invalid before setTaskIF was called.
*/
PeriodicTaskIF* executingTask = nullptr;
/** Handle mode and health messages */
virtual void handleQueue();
/** Mode helpers */
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);
/** HK helpers */
virtual void changeHK(Mode_t mode, Submode_t submode, bool enable);
};
#endif /* CONTROLLERBASE_H_ */
#endif /* FSFW_CONTROLLER_CONTROLLERBASE_H_ */

View File

@ -0,0 +1,104 @@
#include "ExtendedControllerBase.h"
ExtendedControllerBase::ExtendedControllerBase(object_id_t objectId,
object_id_t parentId, size_t commandQueueDepth):
ControllerBase(objectId, parentId, commandQueueDepth),
poolManager(this, commandQueue),
actionHelper(this, commandQueue) {
}
ExtendedControllerBase::~ExtendedControllerBase() {
}
ReturnValue_t ExtendedControllerBase::executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t *data, size_t size) {
/* Needs to be overriden and implemented by child class. */
return HasReturnvaluesIF::RETURN_OK;
}
object_id_t ExtendedControllerBase::getObjectId() const {
return SystemObject::getObjectId();
}
uint32_t ExtendedControllerBase::getPeriodicOperationFrequency() const {
return this->executingTask->getPeriodMs();
}
ReturnValue_t ExtendedControllerBase::handleCommandMessage(
CommandMessage *message) {
ReturnValue_t result = actionHelper.handleActionMessage(message);
if(result == HasReturnvaluesIF::RETURN_OK) {
return result;
}
return poolManager.handleHousekeepingMessage(message);
}
void ExtendedControllerBase::handleQueue() {
CommandMessage command;
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
for (result = commandQueue->receiveMessage(&command);
result == RETURN_OK;
result = commandQueue->receiveMessage(&command)) {
result = actionHelper.handleActionMessage(&command);
if (result == RETURN_OK) {
continue;
}
result = modeHelper.handleModeCommand(&command);
if (result == RETURN_OK) {
continue;
}
result = healthHelper.handleHealthCommand(&command);
if (result == RETURN_OK) {
continue;
}
result = poolManager.handleHousekeepingMessage(&command);
if (result == RETURN_OK) {
continue;
}
result = handleCommandMessage(&command);
if (result == RETURN_OK) {
continue;
}
command.setToUnknownCommand();
commandQueue->reply(&command);
}
}
ReturnValue_t ExtendedControllerBase::initialize() {
ReturnValue_t result = ControllerBase::initialize();
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
result = actionHelper.initialize(commandQueue);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
return poolManager.initialize(commandQueue);
}
ReturnValue_t ExtendedControllerBase::initializeAfterTaskCreation() {
return poolManager.initializeAfterTaskCreation();
}
ReturnValue_t ExtendedControllerBase::performOperation(uint8_t opCode) {
handleQueue();
performControlOperation();
/* We do this after performing control operation because variables will be set changed
in this function. */
poolManager.performHkOperation();
return RETURN_OK;
}
MessageQueueId_t ExtendedControllerBase::getCommandQueue() const {
return commandQueue->getId();
}
LocalDataPoolManager* ExtendedControllerBase::getHkManagerHandle() {
return &poolManager;
}

View File

@ -0,0 +1,73 @@
#ifndef FSFW_CONTROLLER_EXTENDEDCONTROLLERBASE_H_
#define FSFW_CONTROLLER_EXTENDEDCONTROLLERBASE_H_
#include "ControllerBase.h"
#include "../action/HasActionsIF.h"
#include "../datapoollocal/HasLocalDataPoolIF.h"
#include "../action/ActionHelper.h"
#include "../datapoollocal/LocalDataPoolManager.h"
/**
* @brief Extendes the basic ControllerBase with the common components
* HasActionsIF for commandability and HasLocalDataPoolIF to keep
* a pool of local data pool variables.
* @details
* Default implementations required for the interfaces will be empty and have
* to be implemented by child class.
*/
class ExtendedControllerBase: public ControllerBase,
public HasActionsIF,
public HasLocalDataPoolIF {
public:
ExtendedControllerBase(object_id_t objectId, object_id_t parentId,
size_t commandQueueDepth = 3);
virtual ~ExtendedControllerBase();
/* SystemObjectIF overrides */
virtual ReturnValue_t initialize() override;
virtual MessageQueueId_t getCommandQueue() const override;
/* ExecutableObjectIF overrides */
virtual ReturnValue_t performOperation(uint8_t opCode) override;
virtual ReturnValue_t initializeAfterTaskCreation() override;
protected:
LocalDataPoolManager poolManager;
ActionHelper actionHelper;
/**
* Implemented by child class. Handle all command messages which are
* not health, mode, action or housekeeping messages.
* @param message
* @return
*/
virtual ReturnValue_t handleCommandMessage(CommandMessage *message) = 0;
/**
* Periodic helper from ControllerBase, implemented by child class.
*/
virtual void performControlOperation() = 0;
/* Handle the four messages mentioned above */
void handleQueue() override;
/* HasActionsIF overrides */
virtual ReturnValue_t executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t* data,
size_t size) override;
/* HasLocalDatapoolIF overrides */
virtual LocalDataPoolManager* getHkManagerHandle() override;
virtual object_id_t getObjectId() const override;
virtual uint32_t getPeriodicOperationFrequency() const override;
virtual ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
LocalDataPoolManager& poolManager) override = 0;
virtual LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override = 0;
};
#endif /* FSFW_CONTROLLER_EXTENDEDCONTROLLERBASE_H_ */

View File

@ -0,0 +1,5 @@
target_sources(${LIB_FSFW_NAME}
PRIVATE
CoordinateTransformations.cpp
Sgp4Propagator.cpp
)

View File

@ -1,7 +1,7 @@
#include <framework/coordinates/CoordinateTransformations.h>
#include <framework/globalfunctions/constants.h>
#include <framework/globalfunctions/math/MatrixOperations.h>
#include <framework/globalfunctions/math/VectorOperations.h>
#include "CoordinateTransformations.h"
#include "../globalfunctions/constants.h"
#include "../globalfunctions/math/MatrixOperations.h"
#include "../globalfunctions/math/VectorOperations.h"
#include <stddef.h>
#include <cmath>

View File

@ -1,7 +1,7 @@
#ifndef COORDINATETRANSFORMATIONS_H_
#define COORDINATETRANSFORMATIONS_H_
#include <framework/timemanager/Clock.h>
#include "../timemanager/Clock.h"
#include <cstring>
class CoordinateTransformations {

View File

@ -2,10 +2,10 @@
#define FRAMEWORK_COORDINATES_JGM3MODEL_H_
#include <stdint.h>
#include <framework/coordinates/CoordinateTransformations.h>
#include <framework/globalfunctions/math/VectorOperations.h>
#include <framework/globalfunctions/timevalOperations.h>
#include <framework/globalfunctions/constants.h>
#include "CoordinateTransformations.h"
#include "../globalfunctions/math/VectorOperations.h"
#include "../globalfunctions/timevalOperations.h"
#include "../globalfunctions/constants.h"
#include <memory.h>

View File

@ -1,9 +1,9 @@
#include <framework/coordinates/CoordinateTransformations.h>
#include <framework/coordinates/Sgp4Propagator.h>
#include <framework/globalfunctions/constants.h>
#include <framework/globalfunctions/math/MatrixOperations.h>
#include <framework/globalfunctions/math/VectorOperations.h>
#include <framework/globalfunctions/timevalOperations.h>
#include "CoordinateTransformations.h"
#include "Sgp4Propagator.h"
#include "../globalfunctions/constants.h"
#include "../globalfunctions/math/MatrixOperations.h"
#include "../globalfunctions/math/VectorOperations.h"
#include "../globalfunctions/timevalOperations.h"
#include <cstring>
Sgp4Propagator::Sgp4Propagator() :
initialized(false), epoch({0, 0}), whichconst(wgs84) {

View File

@ -1,9 +1,11 @@
#ifndef SGP4PROPAGATOR_H_
#define SGP4PROPAGATOR_H_
#ifndef WIN32
#include <sys/time.h>
#endif
#include "../contrib/sgp4/sgp4unit.h"
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include "../returnvalues/HasReturnvaluesIF.h"
class Sgp4Propagator {
public:

View File

@ -8,7 +8,7 @@
#ifndef BCFRAME_H_
#define BCFRAME_H_
#include <framework/datalinklayer/CCSDSReturnValuesIF.h>
#include "CCSDSReturnValuesIF.h"
/**
* Small helper class to identify a BcFrame.

View File

@ -8,7 +8,7 @@
#ifndef CCSDSRETURNVALUESIF_H_
#define CCSDSRETURNVALUESIF_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include "../returnvalues/HasReturnvaluesIF.h"
/**
* This is a helper class to collect special return values that come up during CCSDS Handling.
* @ingroup ccsds_handling

View File

@ -0,0 +1,12 @@
target_sources(${LIB_FSFW_NAME}
PRIVATE
Clcw.cpp
DataLinkLayer.cpp
Farm1StateLockout.cpp
Farm1StateOpen.cpp
Farm1StateWait.cpp
MapPacketExtraction.cpp
TcTransferFrame.cpp
TcTransferFrameLocal.cpp
VirtualChannelReception.cpp
)

View File

@ -7,8 +7,8 @@
#include <framework/datalinklayer/Clcw.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include "Clcw.h"
#include "../serviceinterface/ServiceInterfaceStream.h"
Clcw::Clcw() {
content.raw = 0;
@ -55,7 +55,9 @@ void Clcw::setBitLock(bool bitLock) {
}
void Clcw::print() {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::debug << "Clcw::print: Clcw is: " << std::hex << getAsWhole() << std::dec << std::endl;
#endif
}
void Clcw::setWhole(uint32_t rawClcw) {

View File

@ -8,7 +8,7 @@
#ifndef CLCW_H_
#define CLCW_H_
#include <framework/datalinklayer/ClcwIF.h>
#include "ClcwIF.h"
/**
* Small helper method to handle the Clcw values.
* It has a content struct that manages the register and can be set externally.

View File

@ -1,6 +1,6 @@
#include <framework/datalinklayer/DataLinkLayer.h>
#include <framework/globalfunctions/CRC.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include "DataLinkLayer.h"
#include "../globalfunctions/CRC.h"
#include "../serviceinterface/ServiceInterfaceStream.h"
DataLinkLayer::DataLinkLayer(uint8_t* set_frame_buffer, ClcwIF* setClcw,
uint8_t set_start_sequence_length, uint16_t set_scid) :
@ -98,8 +98,10 @@ ReturnValue_t DataLinkLayer::processFrame(uint16_t length) {
receivedDataLength = length;
ReturnValue_t status = allFramesReception();
if (status != RETURN_OK) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "DataLinkLayer::processFrame: frame reception failed. "
"Error code: " << std::hex << status << std::dec << std::endl;
#endif
// currentFrame.print();
return status;
} else {
@ -124,7 +126,9 @@ ReturnValue_t DataLinkLayer::initialize() {
if ( virtualChannels.begin() != virtualChannels.end() ) {
clcw->setVirtualChannel( virtualChannels.begin()->second->getChannelId() );
} else {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "DataLinkLayer::initialize: No VC assigned to this DLL instance! " << std::endl;
#endif
return RETURN_FAILED;
}

View File

@ -1,11 +1,11 @@
#ifndef DATALINKLAYER_H_
#define DATALINKLAYER_H_
#include <framework/datalinklayer/CCSDSReturnValuesIF.h>
#include <framework/datalinklayer/ClcwIF.h>
#include <framework/datalinklayer/TcTransferFrame.h>
#include <framework/datalinklayer/VirtualChannelReceptionIF.h>
#include <framework/events/Event.h>
#include "CCSDSReturnValuesIF.h"
#include "ClcwIF.h"
#include "TcTransferFrame.h"
#include "VirtualChannelReceptionIF.h"
#include "../events/Event.h"
#include <map>
@ -19,12 +19,12 @@ class VirtualChannelReception;
class DataLinkLayer : public CCSDSReturnValuesIF {
public:
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::SYSTEM_1;
static const Event RF_AVAILABLE = MAKE_EVENT(0, SEVERITY::INFO); //!< A RF available signal was detected. P1: raw RFA state, P2: 0
static const Event RF_LOST = MAKE_EVENT(1, SEVERITY::INFO); //!< A previously found RF available signal was lost. P1: raw RFA state, P2: 0
static const Event BIT_LOCK = MAKE_EVENT(2, SEVERITY::INFO); //!< A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0
static const Event BIT_LOCK_LOST = MAKE_EVENT(3, SEVERITY::INFO); //!< A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0
// static const Event RF_CHAIN_LOST = MAKE_EVENT(4, SEVERITY::INFO); //!< The CCSDS Board detected that either bit lock or RF available or both are lost. No parameters.
static const Event FRAME_PROCESSING_FAILED = MAKE_EVENT(5, SEVERITY::LOW); //!< The CCSDS Board could not interpret a TC
static const Event RF_AVAILABLE = MAKE_EVENT(0, severity::INFO); //!< A RF available signal was detected. P1: raw RFA state, P2: 0
static const Event RF_LOST = MAKE_EVENT(1, severity::INFO); //!< A previously found RF available signal was lost. P1: raw RFA state, P2: 0
static const Event BIT_LOCK = MAKE_EVENT(2, severity::INFO); //!< A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0
static const Event BIT_LOCK_LOST = MAKE_EVENT(3, severity::INFO); //!< A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0
// static const Event RF_CHAIN_LOST = MAKE_EVENT(4, severity::INFO); //!< The CCSDS Board detected that either bit lock or RF available or both are lost. No parameters.
static const Event FRAME_PROCESSING_FAILED = MAKE_EVENT(5, severity::LOW); //!< The CCSDS Board could not interpret a TC
/**
* The Constructor sets the passed parameters and nothing else.
* @param set_frame_buffer The buffer in which incoming frame candidates are stored.

View File

@ -8,7 +8,7 @@
#ifndef FARM1STATEIF_H_
#define FARM1STATEIF_H_
#include <framework/datalinklayer/CCSDSReturnValuesIF.h>
#include "CCSDSReturnValuesIF.h"
class VirtualChannelReception;
class TcTransferFrame;
class ClcwIF;

View File

@ -7,10 +7,10 @@
#include <framework/datalinklayer/ClcwIF.h>
#include <framework/datalinklayer/Farm1StateLockout.h>
#include <framework/datalinklayer/TcTransferFrame.h>
#include <framework/datalinklayer/VirtualChannelReception.h>
#include "ClcwIF.h"
#include "Farm1StateLockout.h"
#include "TcTransferFrame.h"
#include "VirtualChannelReception.h"
Farm1StateLockout::Farm1StateLockout(VirtualChannelReception* setMyVC) : myVC(setMyVC) {
}

View File

@ -8,7 +8,7 @@
#ifndef FARM1STATELOCKOUT_H_
#define FARM1STATELOCKOUT_H_
#include <framework/datalinklayer/Farm1StateIF.h>
#include "Farm1StateIF.h"
/**
* This class represents the FARM-1 "Lockout" State.

View File

@ -8,10 +8,10 @@
#include <framework/datalinklayer/ClcwIF.h>
#include <framework/datalinklayer/Farm1StateOpen.h>
#include <framework/datalinklayer/TcTransferFrame.h>
#include <framework/datalinklayer/VirtualChannelReception.h>
#include "ClcwIF.h"
#include "Farm1StateOpen.h"
#include "TcTransferFrame.h"
#include "VirtualChannelReception.h"
Farm1StateOpen::Farm1StateOpen(VirtualChannelReception* setMyVC) : myVC(setMyVC) {
}

View File

@ -8,7 +8,7 @@
#ifndef FARM1STATEOPEN_H_
#define FARM1STATEOPEN_H_
#include <framework/datalinklayer/Farm1StateIF.h>
#include "Farm1StateIF.h"
/**
* This class represents the FARM-1 "Open" State.

View File

@ -6,10 +6,10 @@
*/
#include <framework/datalinklayer/ClcwIF.h>
#include <framework/datalinklayer/Farm1StateWait.h>
#include <framework/datalinklayer/TcTransferFrame.h>
#include <framework/datalinklayer/VirtualChannelReception.h>
#include "ClcwIF.h"
#include "Farm1StateWait.h"
#include "TcTransferFrame.h"
#include "VirtualChannelReception.h"
Farm1StateWait::Farm1StateWait(VirtualChannelReception* setMyVC) : myVC(setMyVC) {
}

View File

@ -8,7 +8,7 @@
#ifndef FARM1STATEWAIT_H_
#define FARM1STATEWAIT_H_
#include <framework/datalinklayer/Farm1StateIF.h>
#include "Farm1StateIF.h"
/**
* This class represents the FARM-1 "Wait" State.

View File

@ -1,25 +1,18 @@
/**
* @file MapPacketExtraction.cpp
* @brief This file defines the MapPacketExtraction class.
* @date 26.03.2013
* @author baetz
*/
#include <framework/datalinklayer/MapPacketExtraction.h>
#include <framework/ipc/QueueFactory.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <framework/storagemanager/StorageManagerIF.h>
#include <framework/tmtcpacket/SpacePacketBase.h>
#include <framework/tmtcservices/AcceptsTelecommandsIF.h>
#include <framework/tmtcservices/TmTcMessage.h>
#include <string.h>
#include "MapPacketExtraction.h"
#include "../ipc/QueueFactory.h"
#include "../serviceinterface/ServiceInterfaceStream.h"
#include "../storagemanager/StorageManagerIF.h"
#include "../tmtcpacket/SpacePacketBase.h"
#include "../tmtcservices/AcceptsTelecommandsIF.h"
#include "../tmtcservices/TmTcMessage.h"
#include <cstring>
MapPacketExtraction::MapPacketExtraction(uint8_t setMapId,
object_id_t setPacketDestination) :
lastSegmentationFlag(NO_SEGMENTATION), mapId(setMapId), packetLength(0),
lastSegmentationFlag(NO_SEGMENTATION), mapId(setMapId),
bufferPosition(packetBuffer), packetDestination(setPacketDestination),
packetStore(nullptr), tcQueueId(MessageQueueMessageIF::NO_QUEUE) {
memset(packetBuffer, 0, sizeof(packetBuffer));
tcQueueId(MessageQueueIF::NO_QUEUE) {
std::memset(packetBuffer, 0, sizeof(packetBuffer));
}
ReturnValue_t MapPacketExtraction::extractPackets(TcTransferFrame* frame) {
@ -36,9 +29,11 @@ ReturnValue_t MapPacketExtraction::extractPackets(TcTransferFrame* frame) {
bufferPosition = &packetBuffer[packetLength];
status = RETURN_OK;
} else {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error
<< "MapPacketExtraction::extractPackets. Packet too large! Size: "
<< packetLength << std::endl;
#endif
clearBuffers();
status = CONTENT_TOO_LARGE;
}
@ -58,24 +53,30 @@ ReturnValue_t MapPacketExtraction::extractPackets(TcTransferFrame* frame) {
}
status = RETURN_OK;
} else {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error
<< "MapPacketExtraction::extractPackets. Packet too large! Size: "
<< packetLength << std::endl;
#endif
clearBuffers();
status = CONTENT_TOO_LARGE;
}
} else {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error
<< "MapPacketExtraction::extractPackets. Illegal segment! Last flag: "
<< (int) lastSegmentationFlag << std::endl;
#endif
clearBuffers();
status = ILLEGAL_SEGMENTATION_FLAG;
}
break;
default:
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error
<< "MapPacketExtraction::extractPackets. Illegal segmentationFlag: "
<< (int) segmentationFlag << std::endl;
#endif
clearBuffers();
status = DATA_CORRUPTED;
break;
@ -142,10 +143,14 @@ ReturnValue_t MapPacketExtraction::initialize() {
}
void MapPacketExtraction::printPacketBuffer(void) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::debug << "DLL: packet_buffer contains: " << std::endl;
#endif
for (uint32_t i = 0; i < this->packetLength; ++i) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::debug << "packet_buffer[" << std::dec << i << "]: 0x" << std::hex
<< (uint16_t) this->packetBuffer[i] << std::endl;
#endif
}
}

View File

@ -1,17 +1,10 @@
/**
* @file MapPacketExtraction.h
* @brief This file defines the MapPacketExtraction class.
* @date 26.03.2013
* @author baetz
*/
#ifndef FSFW_DATALINKLAYER_MAPPACKETEXTRACTION_H_
#define FSFW_DATALINKLAYER_MAPPACKETEXTRACTION_H_
#ifndef MAPPACKETEXTRACTION_H_
#define MAPPACKETEXTRACTION_H_
#include <framework/datalinklayer/MapPacketExtractionIF.h>
#include <framework/objectmanager/ObjectManagerIF.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/ipc/MessageQueueSenderIF.h>
#include "MapPacketExtractionIF.h"
#include "../objectmanager/ObjectManagerIF.h"
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../ipc/MessageQueueSenderIF.h"
class StorageManagerIF;
@ -20,17 +13,19 @@ class StorageManagerIF;
* The class implements the full MAP Packet Extraction functionality as described in the CCSDS
* TC Space Data Link Protocol. It internally stores incomplete segmented packets until they are
* fully received. All found packets are forwarded to a single distribution entity.
* @author B. Baetz
*/
class MapPacketExtraction: public MapPacketExtractionIF {
private:
static const uint32_t MAX_PACKET_SIZE = 4096;
uint8_t lastSegmentationFlag; //!< The segmentation flag of the last received frame.
uint8_t mapId; //!< MAP ID of this MAP Channel.
uint32_t packetLength; //!< Complete length of the current Space Packet.
uint32_t packetLength = 0; //!< Complete length of the current Space Packet.
uint8_t* bufferPosition; //!< Position to write to in the internal Packet buffer.
uint8_t packetBuffer[MAX_PACKET_SIZE]; //!< The internal Space Packet Buffer.
object_id_t packetDestination;
StorageManagerIF* packetStore; //!< Pointer to the store where full TC packets are stored.
//!< Pointer to the store where full TC packets are stored.
StorageManagerIF* packetStore = nullptr;
MessageQueueId_t tcQueueId; //!< QueueId to send found packets to the distributor.
/**
* Debug method to print the packet Buffer's content.
@ -75,4 +70,4 @@ public:
uint8_t getMapId() const;
};
#endif /* MAPPACKETEXTRACTION_H_ */
#endif /* FSFW_DATALINKLAYER_MAPPACKETEXTRACTION_H_ */

View File

@ -8,8 +8,8 @@
#ifndef MAPPACKETEXTRACTIONIF_H_
#define MAPPACKETEXTRACTIONIF_H_
#include <framework/datalinklayer/CCSDSReturnValuesIF.h>
#include <framework/datalinklayer/TcTransferFrame.h>
#include "CCSDSReturnValuesIF.h"
#include "TcTransferFrame.h"
/**
* This is the interface for MAP Packet Extraction classes.

View File

@ -7,8 +7,8 @@
#include <framework/datalinklayer/TcTransferFrame.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include "TcTransferFrame.h"
#include "../serviceinterface/ServiceInterfaceStream.h"
TcTransferFrame::TcTransferFrame() {
frame = NULL;
@ -87,16 +87,25 @@ uint8_t* TcTransferFrame::getFullDataField() {
}
void TcTransferFrame::print() {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::debug << "Raw Frame: " << std::hex << std::endl;
for (uint16_t count = 0; count < this->getFullSize(); count++ ) {
sif::debug << (uint16_t)this->getFullFrame()[count] << " ";
}
sif::debug << std::dec << std::endl;
// debug << "Frame Header:" << std::endl;
// debug << "Version Number: " << std::hex << (uint16_t)this->current_frame.getVersionNumber() << std::endl;
// debug << "Bypass Flag set?| Ctrl Cmd Flag set?: " << (uint16_t)this->current_frame.bypassFlagSet() << " | " << (uint16_t)this->current_frame.controlCommandFlagSet() << std::endl;
// debug << "SCID : " << this->current_frame.getSpacecraftId() << std::endl;
// debug << "VCID : " << (uint16_t)this->current_frame.getVirtualChannelId() << std::endl;
// debug << "Frame length: " << std::dec << this->current_frame.getFrameLength() << std::endl;
// debug << "Sequence Number: " << (uint16_t)this->current_frame.getSequenceNumber() << std::endl;
sif::debug << "Frame Header:" << std::endl;
sif::debug << "Version Number: " << std::hex
<< (uint16_t)this->getVersionNumber() << std::endl;
sif::debug << "Bypass Flag set?| Ctrl Cmd Flag set?: "
<< (uint16_t)this->bypassFlagSet() << " | "
<< (uint16_t)this->controlCommandFlagSet() << std::endl;
sif::debug << "SCID : " << this->getSpacecraftId() << std::endl;
sif::debug << "VCID : " << (uint16_t)this->getVirtualChannelId()
<< std::endl;
sif::debug << "Frame length: " << std::dec << this->getFrameLength()
<< std::endl;
sif::debug << "Sequence Number: " << (uint16_t)this->getSequenceNumber()
<< std::endl;
#endif
}

View File

@ -5,9 +5,9 @@
* @author baetz
*/
#include <framework/datalinklayer/TcTransferFrameLocal.h>
#include <framework/globalfunctions/CRC.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include "TcTransferFrameLocal.h"
#include "../globalfunctions/CRC.h"
#include "../serviceinterface/ServiceInterfaceStream.h"
#include <string.h>
TcTransferFrameLocal::TcTransferFrameLocal(bool bypass, bool controlCommand, uint16_t scid,
@ -37,7 +37,9 @@ TcTransferFrameLocal::TcTransferFrameLocal(bool bypass, bool controlCommand, uin
this->getFullFrame()[getFullSize()-2] = (crc & 0xFF00) >> 8;
this->getFullFrame()[getFullSize()-1] = (crc & 0x00FF);
} else {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::debug << "TcTransferFrameLocal: dataSize too large: " << dataSize << std::endl;
#endif
}
} else {
//No data in frame

View File

@ -8,7 +8,7 @@
#ifndef TCTRANSFERFRAMELOCAL_H_
#define TCTRANSFERFRAMELOCAL_H_
#include <framework/datalinklayer/TcTransferFrame.h>
#include "TcTransferFrame.h"
/**
* This is a helper class to locally create TC Transfer Frames.

View File

@ -5,9 +5,9 @@
* @author baetz
*/
#include <framework/datalinklayer/BCFrame.h>
#include <framework/datalinklayer/VirtualChannelReception.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include "BCFrame.h"
#include "VirtualChannelReception.h"
#include "../serviceinterface/ServiceInterfaceStream.h"
VirtualChannelReception::VirtualChannelReception(uint8_t setChannelId,
uint8_t setSlidingWindowWidth) :
@ -102,8 +102,10 @@ uint8_t VirtualChannelReception::getChannelId() const {
ReturnValue_t VirtualChannelReception::initialize() {
ReturnValue_t returnValue = RETURN_FAILED;
if ((slidingWindowWidth > 254) || (slidingWindowWidth % 2 != 0)) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "VirtualChannelReception::initialize: Illegal sliding window width: "
<< (int) slidingWindowWidth << std::endl;
#endif
return RETURN_FAILED;
}
for (mapChannelIterator iterator = mapChannels.begin(); iterator != mapChannels.end();

View File

@ -8,14 +8,14 @@
#ifndef VIRTUALCHANNELRECEPTION_H_
#define VIRTUALCHANNELRECEPTION_H_
#include <framework/datalinklayer/CCSDSReturnValuesIF.h>
#include <framework/datalinklayer/Clcw.h>
#include <framework/datalinklayer/Farm1StateIF.h>
#include <framework/datalinklayer/Farm1StateLockout.h>
#include <framework/datalinklayer/Farm1StateOpen.h>
#include <framework/datalinklayer/Farm1StateWait.h>
#include <framework/datalinklayer/MapPacketExtractionIF.h>
#include <framework/datalinklayer/VirtualChannelReceptionIF.h>
#include "CCSDSReturnValuesIF.h"
#include "Clcw.h"
#include "Farm1StateIF.h"
#include "Farm1StateLockout.h"
#include "Farm1StateOpen.h"
#include "Farm1StateWait.h"
#include "MapPacketExtractionIF.h"
#include "VirtualChannelReceptionIF.h"
#include <map>
/**
* Implementation of a TC Virtual Channel.

View File

@ -8,9 +8,9 @@
#ifndef VIRTUALCHANNELRECEPTIONIF_H_
#define VIRTUALCHANNELRECEPTIONIF_H_
#include <framework/datalinklayer/ClcwIF.h>
#include <framework/datalinklayer/TcTransferFrame.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include "ClcwIF.h"
#include "TcTransferFrame.h"
#include "../returnvalues/HasReturnvaluesIF.h"
/**
* This is the interface for Virtual Channel reception classes.

6
datapool/CMakeLists.txt Normal file
View File

@ -0,0 +1,6 @@
target_sources(${LIB_FSFW_NAME}
PRIVATE
HkSwitchHelper.cpp
PoolDataSetBase.cpp
PoolEntry.cpp
)

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,8 +1,8 @@
#ifndef DATASETIF_H_
#define DATASETIF_H_
#ifndef FSFW_DATAPOOL_DATASETIF_H_
#define FSFW_DATAPOOL_DATASETIF_H_
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/timemanager/Clock.h>
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../timemanager/Clock.h"
class PoolVariableIF;
/**
@ -18,15 +18,13 @@ class PoolVariableIF;
class DataSetIF {
public:
static constexpr uint8_t INTERFACE_ID = CLASS_ID::DATA_SET_CLASS;
static constexpr ReturnValue_t INVALID_PARAMETER_DEFINITION =
MAKE_RETURN_CODE( 0x01 );
static constexpr ReturnValue_t SET_WAS_ALREADY_READ = MAKE_RETURN_CODE( 0x02 );
static constexpr ReturnValue_t COMMITING_WITHOUT_READING =
MAKE_RETURN_CODE(0x03);
static constexpr ReturnValue_t INVALID_PARAMETER_DEFINITION = MAKE_RETURN_CODE(1);
static constexpr ReturnValue_t SET_WAS_ALREADY_READ = MAKE_RETURN_CODE(2);
static constexpr ReturnValue_t COMMITING_WITHOUT_READING = MAKE_RETURN_CODE(3);
static constexpr ReturnValue_t DATA_SET_UNINITIALISED = MAKE_RETURN_CODE( 0x04 );
static constexpr ReturnValue_t DATA_SET_FULL = MAKE_RETURN_CODE( 0x05 );
static constexpr ReturnValue_t POOL_VAR_NULL = MAKE_RETURN_CODE( 0x06 );
static constexpr ReturnValue_t DATA_SET_UNINITIALISED = MAKE_RETURN_CODE(4);
static constexpr ReturnValue_t DATA_SET_FULL = MAKE_RETURN_CODE(5);
static constexpr ReturnValue_t POOL_VAR_NULL = MAKE_RETURN_CODE(6);
/**
* @brief This is an empty virtual destructor,
@ -34,8 +32,6 @@ public:
*/
virtual ~DataSetIF() {}
virtual ReturnValue_t read(uint32_t lockTimeout) = 0;
virtual ReturnValue_t commit(uint32_t lockTimeout) = 0;
/**
* @brief This operation provides a method to register local data pool
* variables to register in a data set by passing itself
@ -44,19 +40,6 @@ public:
virtual ReturnValue_t registerVariable(PoolVariableIF* variable) = 0;
virtual uint16_t getFillCount() const = 0;
private:
/**
* @brief Most underlying data structures will have a pool like structure
* and will require a lock and unlock mechanism to ensure
* thread-safety
* @return Lock operation result
*/
virtual ReturnValue_t lockDataPool(uint32_t timeoutMs) = 0;
/**
* @brief Unlock call corresponding to the lock call.
* @return Unlock operation result
*/
virtual ReturnValue_t unlockDataPool() = 0;
};
#endif /* DATASETIF_H_ */
#endif /* FSFW_DATAPOOL_DATASETIF_H_ */

View File

@ -1,5 +1,5 @@
#include <framework/datapool/HkSwitchHelper.h>
#include <framework/ipc/QueueFactory.h>
#include "../datapool/HkSwitchHelper.h"
#include "../ipc/QueueFactory.h"
HkSwitchHelper::HkSwitchHelper(EventReportingProxyIF* eventProxy) :
commandActionHelper(this), eventProxy(eventProxy) {
@ -7,7 +7,7 @@ HkSwitchHelper::HkSwitchHelper(EventReportingProxyIF* eventProxy) :
}
HkSwitchHelper::~HkSwitchHelper() {
// TODO Auto-generated destructor stub
QueueFactory::instance()->deleteMessageQueue(actionQueue);
}
ReturnValue_t HkSwitchHelper::initialize() {

View File

@ -1,9 +1,9 @@
#ifndef FRAMEWORK_DATAPOOL_HKSWITCHHELPER_H_
#define FRAMEWORK_DATAPOOL_HKSWITCHHELPER_H_
#include <framework/tasks/ExecutableObjectIF.h>
#include <framework/action/CommandsActionsIF.h>
#include <framework/events/EventReportingProxyIF.h>
#include "../tasks/ExecutableObjectIF.h"
#include "../action/CommandsActionsIF.h"
#include "../events/EventReportingProxyIF.h"
//TODO this class violations separation between mission and framework
//but it is only a transitional solution until the Datapool is
@ -13,7 +13,7 @@ class HkSwitchHelper: public ExecutableObjectIF, public CommandsActionsIF {
public:
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::HK;
static const Event SWITCHING_TM_FAILED = MAKE_EVENT(1, SEVERITY::LOW); //!< Commanding the HK Service failed, p1: error code, p2 action: 0 disable / 1 enable
static const Event SWITCHING_TM_FAILED = MAKE_EVENT(1, severity::LOW); //!< Commanding the HK Service failed, p1: error code, p2 action: 0 disable / 1 enable
HkSwitchHelper(EventReportingProxyIF *eventProxy);
virtual ~HkSwitchHelper();

View File

@ -0,0 +1,233 @@
#include "PoolDataSetBase.h"
#include "ReadCommitIFAttorney.h"
#include "../serviceinterface/ServiceInterface.h"
#include <cstring>
PoolDataSetBase::PoolDataSetBase(PoolVariableIF** registeredVariablesArray,
const size_t maxFillCount):
registeredVariables(registeredVariablesArray),
maxFillCount(maxFillCount) {}
PoolDataSetBase::~PoolDataSetBase() {}
ReturnValue_t PoolDataSetBase::registerVariable(PoolVariableIF *variable) {
if(registeredVariables == nullptr) {
/* Underlying container invalid */
return HasReturnvaluesIF::RETURN_FAILED;
}
if (state != States::STATE_SET_UNINITIALISED) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "DataSet::registerVariable: Call made in wrong position." << std::endl;
#else
sif::printError("DataSet::registerVariable: Call made in wrong position.");
#endif
return DataSetIF::DATA_SET_UNINITIALISED;
}
if (variable == nullptr) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "DataSet::registerVariable: Pool variable is nullptr." << std::endl;
#else
sif::printError("DataSet::registerVariable: Pool variable is nullptr.\n");
#endif
return DataSetIF::POOL_VAR_NULL;
}
if (fillCount >= maxFillCount) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "DataSet::registerVariable: DataSet is full." << std::endl;
#else
sif::printError("DataSet::registerVariable: DataSet is full.\n");
#endif
return DataSetIF::DATA_SET_FULL;
}
registeredVariables[fillCount] = variable;
fillCount++;
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t PoolDataSetBase::read(MutexIF::TimeoutType timeoutType,
uint32_t lockTimeout) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
ReturnValue_t error = result;
if (state == States::STATE_SET_UNINITIALISED) {
lockDataPool(timeoutType, lockTimeout);
for (uint16_t count = 0; count < fillCount; count++) {
result = readVariable(count);
if(result != RETURN_OK) {
error = result;
}
}
state = States::STATE_SET_WAS_READ;
unlockDataPool();
}
else {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "PoolDataSetBase::read: Call made in wrong position. Don't forget to "
"commit member datasets!" << std::endl;
#else
sif::printWarning("PoolDataSetBase::read: Call made in wrong position. Don't forget to "
"commit member datasets!\n");
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
result = SET_WAS_ALREADY_READ;
}
if(error != HasReturnvaluesIF::RETURN_OK) {
result = error;
}
return result;
}
uint16_t PoolDataSetBase::getFillCount() const {
return fillCount;
}
ReturnValue_t PoolDataSetBase::readVariable(uint16_t count) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
if(registeredVariables[count] == nullptr) {
/* Configuration error. */
return HasReturnvaluesIF::RETURN_FAILED;
}
/* 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) {
if(protectEveryReadCommitCall) {
result = registeredVariables[count]->read(timeoutTypeForSingleVars,
mutexTimeoutForSingleVars);
}
else {
/* The readWithoutLock function is protected, so we use the attorney here */
result = ReadCommitIFAttorney::readWithoutLock(registeredVariables[count]);
}
if(result != HasReturnvaluesIF::RETURN_OK) {
result = INVALID_PARAMETER_DEFINITION;
}
}
return result;
}
ReturnValue_t PoolDataSetBase::commit(MutexIF::TimeoutType timeoutType,
uint32_t lockTimeout) {
if (state == States::STATE_SET_WAS_READ) {
handleAlreadyReadDatasetCommit(timeoutType, lockTimeout);
return HasReturnvaluesIF::RETURN_OK;
}
else {
return handleUnreadDatasetCommit(timeoutType, lockTimeout);
}
}
void PoolDataSetBase::handleAlreadyReadDatasetCommit(
MutexIF::TimeoutType timeoutType, uint32_t lockTimeout) {
lockDataPool(timeoutType, lockTimeout);
for (uint16_t count = 0; count < fillCount; count++) {
if ((registeredVariables[count]->getReadWriteMode() != PoolVariableIF::VAR_READ) and
(registeredVariables[count]->getDataPoolId() != PoolVariableIF::NO_PARAMETER)) {
if(protectEveryReadCommitCall) {
registeredVariables[count]->commit(timeoutTypeForSingleVars,
mutexTimeoutForSingleVars);
}
else {
/* The commitWithoutLock function is protected, so we use the attorney here */
ReadCommitIFAttorney::commitWithoutLock(registeredVariables[count]);
}
}
}
state = States::STATE_SET_UNINITIALISED;
unlockDataPool();
}
ReturnValue_t PoolDataSetBase::handleUnreadDatasetCommit(
MutexIF::TimeoutType timeoutType, uint32_t lockTimeout) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
lockDataPool(timeoutType, lockTimeout);
for (uint16_t count = 0; count < fillCount; count++) {
if ((registeredVariables[count]->getReadWriteMode() == PoolVariableIF::VAR_WRITE) and
(registeredVariables[count]->getDataPoolId() != PoolVariableIF::NO_PARAMETER)) {
if(protectEveryReadCommitCall) {
result = registeredVariables[count]->commit(timeoutTypeForSingleVars,
mutexTimeoutForSingleVars);
}
else {
/* The commitWithoutLock function is protected, so we use the attorney here */
ReadCommitIFAttorney::commitWithoutLock(registeredVariables[count]);
}
} else if (registeredVariables[count]->getDataPoolId()
!= PoolVariableIF::NO_PARAMETER) {
if (result != COMMITING_WITHOUT_READING) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "DataSet::commit(): commit-without-read call made "
"with non write-only variable." << std::endl;
#endif
result = COMMITING_WITHOUT_READING;
}
}
}
state = States::STATE_SET_UNINITIALISED;
unlockDataPool();
return result;
}
ReturnValue_t PoolDataSetBase::lockDataPool(MutexIF::TimeoutType timeoutType,
uint32_t lockTimeout) {
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t PoolDataSetBase::unlockDataPool() {
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t PoolDataSetBase::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 PoolDataSetBase::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 PoolDataSetBase::getSerializedSize() const {
uint32_t size = 0;
for (uint16_t count = 0; count < fillCount; count++) {
size += registeredVariables[count]->getSerializedSize();
}
return size;
}
void PoolDataSetBase::setContainer(PoolVariableIF **variablesContainer) {
this->registeredVariables = variablesContainer;
}
PoolVariableIF** PoolDataSetBase::getContainer() const {
return registeredVariables;
}
void PoolDataSetBase::setReadCommitProtectionBehaviour(
bool protectEveryReadCommit, MutexIF::TimeoutType timeoutType,
uint32_t mutexTimeout) {
this->protectEveryReadCommitCall = protectEveryReadCommit;
this->timeoutTypeForSingleVars = timeoutType;
this->mutexTimeoutForSingleVars = mutexTimeout;
}

180
datapool/PoolDataSetBase.h Normal file
View File

@ -0,0 +1,180 @@
#ifndef FSFW_DATAPOOL_POOLDATASETBASE_H_
#define FSFW_DATAPOOL_POOLDATASETBASE_H_
#include "PoolDataSetIF.h"
#include "PoolVariableIF.h"
#include "../serialize/SerializeIF.h"
#include "../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 PoolDataSetBase:
public PoolDataSetIF,
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.
*/
PoolDataSetBase(PoolVariableIF** registeredVariablesArray, const size_t maxFillCount);
/* Forbidden for now */
PoolDataSetBase(const PoolDataSetBase& otherSet) = delete;
const PoolDataSetBase& operator=(const PoolDataSetBase& otherSet) = delete;
virtual~ PoolDataSetBase();
/**
* @brief The read call initializes reading out all registered variables.
* It is mandatory to call commit after every read call!
* @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. It is mandatory to call commit after a read call,
* even if the read operation is not successful!
* @return
* - @c RETURN_OK if all variables were read successfully.
* - @c INVALID_PARAMETER_DEFINITION if a pool entry does not exist or there
* is a type conflict.
* - @c SET_WAS_ALREADY_READ if read() is called twice without calling
* commit() in between
*/
virtual ReturnValue_t read(MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t lockTimeout = 20) 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. Every read call must be followed by a commit 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(MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t lockTimeout = 20) 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(
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t timeoutMs = 20) 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;
/**
* Can be used to individually protect every read and commit call.
* @param protectEveryReadCommit
* @param mutexTimeout
*/
void setReadCommitProtectionBehaviour(bool protectEveryReadCommit,
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t mutexTimeout = 20);
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 {
STATE_SET_UNINITIALISED, //!< DATA_SET_UNINITIALISED
STATE_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::STATE_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;
void setContainer(PoolVariableIF** variablesContainer);
PoolVariableIF** getContainer() const;
private:
bool protectEveryReadCommitCall = false;
MutexIF::TimeoutType timeoutTypeForSingleVars = MutexIF::TimeoutType::WAITING;
uint32_t mutexTimeoutForSingleVars = 20;
ReturnValue_t readVariable(uint16_t count);
void handleAlreadyReadDatasetCommit(
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t timeoutMs = 20);
ReturnValue_t handleUnreadDatasetCommit(
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t timeoutMs = 20);
};
#endif /* FSFW_DATAPOOL_POOLDATASETBASE_H_ */

36
datapool/PoolDataSetIF.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef FSFW_DATAPOOL_POOLDATASETIF_H_
#define FSFW_DATAPOOL_POOLDATASETIF_H_
#include "ReadCommitIF.h"
#include "DataSetIF.h"
/**
* @brief Extendes the DataSetIF by adding abstract functions to lock
* and unlock a data pool and read/commit semantics.
*/
class PoolDataSetIF:
virtual public DataSetIF,
virtual public ReadCommitIF {
public:
virtual~ PoolDataSetIF() {};
/**
* @brief Most underlying data structures will have a pool like structure
* and will require a lock and unlock mechanism to ensure
* thread-safety
* @return Lock operation result
*/
virtual ReturnValue_t lockDataPool(
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t timeoutMs = 20) = 0;
/**
* @brief Unlock call corresponding to the lock call.
* @return Unlock operation result
*/
virtual ReturnValue_t unlockDataPool() = 0;
virtual bool isValid() const = 0;
};
#endif /* FSFW_DATAPOOL_POOLDATASETIF_H_ */

View File

@ -1,28 +1,24 @@
#include <framework/datapool/PoolEntry.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <framework/globalfunctions/arrayprinter.h>
#include "PoolEntry.h"
#include "../serviceinterface/ServiceInterface.h"
#include "../globalfunctions/arrayprinter.h"
#include <cstring>
#include <algorithm>
template <typename T>
PoolEntry<T>::PoolEntry(std::initializer_list<T> initValue, uint8_t setLength,
bool setValid ) : length(setLength), valid(setValid) {
PoolEntry<T>::PoolEntry(std::initializer_list<T> initValue, bool setValid ):
length(static_cast<uint8_t>(initValue.size())), valid(setValid) {
this->address = new T[this->length];
if(initValue.size() == 0) {
std::memset(this->address, 0, this->getByteSize());
}
else if (initValue.size() != setLength){
sif::warning << "PoolEntry: setLength is not equal to initializer list"
"length! Performing zero initialization with given setLength"
<< std::endl;
std::memset(this->address, 0, this->getByteSize());
}
else {
std::copy(initValue.begin(), initValue.end(), this->address);
}
}
template <typename T>
PoolEntry<T>::PoolEntry( T* initValue, uint8_t setLength, bool setValid ) :
PoolEntry<T>::PoolEntry(T* initValue, uint8_t setLength, bool setValid):
length(setLength), valid(setValid) {
this->address = new T[this->length];
if (initValue != nullptr) {
@ -66,10 +62,26 @@ bool PoolEntry<T>::getValid() {
template <typename T>
void PoolEntry<T>::print() {
sif::debug << "Pool Entry Validity: " <<
(this->valid? " (valid) " : " (invalid) ") << std::endl;
arrayprinter::print(reinterpret_cast<uint8_t*>(address), length);
sif::debug << std::dec << std::endl;
const char* validString = nullptr;
if(valid) {
validString = "Valid";
}
else {
validString = "Invalid";
}
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::info << "PoolEntry information." << std::endl;
sif::info << "PoolEntry validity: " << validString << std::endl;
#else
sif::printInfo("PoolEntry information.\n");
sif::printInfo("PoolEntry validity: %s\n", validString);
#endif
arrayprinter::print(reinterpret_cast<uint8_t*>(address), getByteSize());
}
template<typename T>
inline T* PoolEntry<T>::getDataPtr() {
return this->address;
}
template<typename T>
@ -80,8 +92,10 @@ Type PoolEntry<T>::getType() {
template class PoolEntry<uint8_t>;
template class PoolEntry<uint16_t>;
template class PoolEntry<uint32_t>;
template class PoolEntry<uint64_t>;
template class PoolEntry<int8_t>;
template class PoolEntry<int16_t>;
template class PoolEntry<int32_t>;
template class PoolEntry<int64_t>;
template class PoolEntry<float>;
template class PoolEntry<double>;

View File

@ -1,7 +1,7 @@
#ifndef FRAMEWORK_DATAPOOL_POOLENTRY_H_
#define FRAMEWORK_DATAPOOL_POOLENTRY_H_
#ifndef FSFW_DATAPOOL_POOLENTRY_H_
#define FSFW_DATAPOOL_POOLENTRY_H_
#include <framework/datapool/PoolEntryIF.h>
#include "PoolEntryIF.h"
#include <initializer_list>
#include <type_traits>
@ -35,24 +35,22 @@ public:
"uint8_t");
/**
* @brief In the classe's constructor, space is allocated on the heap and
* potential init values are copied to that space.
* potential initialization values are copied to that space.
* @details
* Not passing any arguments will initialize an non-array pool entry
* (setLength = 1) with an initial invalid state.
* Please note that if an initializer list is passed, the correct
* corresponding length should be passed too, otherwise a zero
* initialization will be performed with the given setLength.
* with an initial invalid state and the value 0.
* Please note that if an initializer list is passed, the length of the
* initializer list needs to be correct for vector entries because
* required allocated space will be deduced from the initializer list length
* and the pool entry type.
* @param initValue
* Initializer list with values to initialize with, for example {0,0} to
* initialize the two entries to zero.
* @param setLength
* Defines the array length of this entry. Should be equal to the
* intializer list length.
* Initializer list with values to initialize with, for example {0, 0} to
* initialize the a pool entry of a vector with two entries to 0.
* @param setValid
* Sets the initialization flag. It is invalid by default.
*/
PoolEntry(std::initializer_list<T> initValue = {}, uint8_t setLength = 1,
bool setValid = false);
PoolEntry(std::initializer_list<T> initValue = {0}, bool setValid = false);
/**
* @brief In the classe's constructor, space is allocated on the heap and
* potential init values are copied to that space.
@ -66,9 +64,9 @@ public:
*/
PoolEntry(T* initValue, uint8_t setLength = 1, bool setValid = false);
//! Explicitely deleted copy ctor, copying is not allowed!
//! Explicitely deleted copy ctor, copying is not allowed.
PoolEntry(const PoolEntry&) = delete;
//! Explicitely deleted copy assignment, copying is not allowed!
//! Explicitely deleted copy assignment, copying is not allowed.
PoolEntry& operator=(const PoolEntry&) = delete;
/**
@ -82,21 +80,16 @@ public:
~PoolEntry();
/**
* @brief This is the address pointing to the allocated memory.
* Return typed pointer to start of data.
* @return
*/
T* address;
/**
* @brief This attribute stores the length information.
*/
uint8_t length;
/**
* @brief Here, the validity information for a variable is stored.
* Every entry (single variable or vector) has one valid flag.
*/
uint8_t valid;
T* getDataPtr();
/**
* @brief getSize returns the array size of the entry.
* @details A single parameter has size 1.
* @details
* For non-array pool entries return type size, for vector entries
* return type size times the number of entries.
*/
uint8_t getSize();
/**
@ -123,8 +116,22 @@ public:
* information to the screen. It prints all array entries in a row.
*/
void print();
Type getType();
private:
/**
* @brief This attribute stores the length information.
*/
uint8_t length;
/**
* @brief Here, the validity information for a variable is stored.
* Every entry (single variable or vector) has one valid flag.
*/
uint8_t valid;
/**
* @brief This is the address pointing to the allocated memory.
*/
T* address;
};
#endif /* POOLENTRY_H_ */
#endif /* FSFW_DATAPOOL_POOLENTRY_H_ */

View File

@ -1,7 +1,7 @@
#ifndef FRAMEWORK_DATAPOOL_POOLENTRYIF_H_
#define FRAMEWORK_DATAPOOL_POOLENTRYIF_H_
#ifndef FSFW_DATAPOOL_POOLENTRYIF_H_
#define FSFW_DATAPOOL_POOLENTRYIF_H_
#include <framework/globalfunctions/Type.h>
#include "../globalfunctions/Type.h"
#include <cstdint>
/**
@ -60,4 +60,4 @@ public:
virtual Type getType() = 0;
};
#endif /* POOLENTRYIF_H_ */
#endif /* FSFW_DATAPOOL_POOLENTRYIF_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_ */

62
datapool/PoolReadGuard.h Normal file
View File

@ -0,0 +1,62 @@
#ifndef FSFW_DATAPOOL_POOLREADHELPER_H_
#define FSFW_DATAPOOL_POOLREADHELPER_H_
#include "ReadCommitIF.h"
#include "../serviceinterface/ServiceInterface.h"
#include <FSFWConfig.h>
/**
* @brief Helper class to read data sets or pool variables
*/
class PoolReadGuard {
public:
PoolReadGuard(ReadCommitIF* readObject,
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING,
uint32_t mutexTimeout = 20):
readObject(readObject), mutexTimeout(mutexTimeout) {
if(readObject != nullptr) {
readResult = readObject->read(timeoutType, mutexTimeout);
if(readResult != HasReturnvaluesIF::RETURN_OK) {
#if FSFW_VERBOSE_LEVEL == 1
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "PoolReadHelper: Read failed!" << std::endl;
#else
sif::printError("PoolReadHelper: Read failed!\n");
#endif /* FSFW_PRINT_VERBOSITY_LEVEL == 1 */
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
}
}
}
ReturnValue_t getReadResult() const {
return readResult;
}
/**
* @brief Can be used to suppress commit on destruction.
*/
void setNoCommitMode(bool commit) {
this->noCommit = commit;
}
/**
* @brief Default destructor which will take care of commiting changed values.
*/
~PoolReadGuard() {
if(readObject != nullptr and not noCommit) {
readObject->commit(timeoutType, mutexTimeout);
}
}
private:
ReadCommitIF* readObject = nullptr;
ReturnValue_t readResult = HasReturnvaluesIF::RETURN_OK;
bool noCommit = false;
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING;
uint32_t mutexTimeout = 20;
};
#endif /* FSFW_DATAPOOL_POOLREADHELPER_H_ */

View File

@ -1,14 +1,15 @@
#ifndef POOLVARLIST_H_
#define POOLVARLIST_H_
#ifndef FSFW_DATAPOOL_POOLVARLIST_H_
#define FSFW_DATAPOOL_POOLVARLIST_H_
#include <framework/datapool/PoolVariableIF.h>
#include <framework/datapoolglob/GlobalPoolVariable.h>
#include "../datapool/PoolVariableIF.h"
#include "../datapoolglob/GlobalPoolVariable.h"
template <class T, uint8_t n_var>
class PoolVarList {
private:
GlobPoolVar<T> variables[n_var];
public:
PoolVarList( const uint32_t set_id[n_var], DataSetIF* dataSet, PoolVariableIF::ReadWriteMode_t setReadWriteMode ) {
PoolVarList( const uint32_t set_id[n_var], DataSetIF* dataSet,
PoolVariableIF::ReadWriteMode_t setReadWriteMode ) {
//I really should have a look at the new init list c++ syntax.
if (dataSet == NULL) {
return;
@ -25,4 +26,4 @@ public:
#endif /* POOLVARLIST_H_ */
#endif /* FSFW_DATAPOOL_POOLVARLIST_H_ */

View File

@ -1,8 +1,10 @@
#ifndef FRAMEWORK_DATAPOOL_POOLVARIABLEIF_H_
#define FRAMEWORK_DATAPOOL_POOLVARIABLEIF_H_
#ifndef FSFW_DATAPOOL_POOLVARIABLEIF_H_
#define FSFW_DATAPOOL_POOLVARIABLEIF_H_
#include "ReadCommitIF.h"
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../serialize/SerializeIF.h"
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/serialize/SerializeIF.h>
/**
* @brief This interface is used to control data pool
@ -17,83 +19,50 @@
* @author Bastian Baetz
* @ingroup data_pool
*/
class PoolVariableIF : public SerializeIF {
friend class DataSetBase;
friend class GlobDataSet;
friend class LocalDataSet;
class PoolVariableIF :
public SerializeIF,
public ReadCommitIF {
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 uint8_t INTERFACE_ID = CLASS_ID::POOL_VARIABLE_IF;
static constexpr ReturnValue_t INVALID_READ_WRITE_MODE = MAKE_RETURN_CODE(0xA0);
static constexpr ReturnValue_t INVALID_POOL_ENTRY = MAKE_RETURN_CODE(0xA1);
static constexpr bool VALID = 1;
static constexpr bool INVALID = 0;
static constexpr uint32_t NO_PARAMETER = 0xffffffff;
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
};
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 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;
virtual void setReadWriteMode(ReadWriteMode_t newMode) = 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;
/**
* @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;
};
using pool_rwm_t = PoolVariableIF::ReadWriteMode_t;
#endif /* POOLVARIABLEIF_H_ */
#endif /* FSFW_DATAPOOL_POOLVARIABLEIF_H_ */

34
datapool/ReadCommitIF.h Normal file
View File

@ -0,0 +1,34 @@
#ifndef FSFW_DATAPOOL_READCOMMITIF_H_
#define FSFW_DATAPOOL_READCOMMITIF_H_
#include "../returnvalues/HasReturnvaluesIF.h"
#include "../ipc/MutexIF.h"
/**
* @brief Common interface for all software objects which employ read-commit
* semantics.
*/
class ReadCommitIF {
friend class ReadCommitIFAttorney;
public:
virtual ~ReadCommitIF() {}
virtual ReturnValue_t read(MutexIF::TimeoutType timeoutType,
uint32_t timeoutMs) = 0;
virtual ReturnValue_t commit(MutexIF::TimeoutType timeoutType,
uint32_t timeoutMs) = 0;
protected:
/* Optional and protected because this is interesting for classes grouping members with commit
and read semantics where the lock is only necessary once. */
virtual ReturnValue_t readWithoutLock() {
return read(MutexIF::TimeoutType::WAITING, 20);
}
virtual ReturnValue_t commitWithoutLock() {
return commit(MutexIF::TimeoutType::WAITING, 20);
}
};
#endif /* FSFW_DATAPOOL_READCOMMITIF_H_ */

View File

@ -0,0 +1,32 @@
#ifndef FSFW_DATAPOOL_READCOMMITIFATTORNEY_H_
#define FSFW_DATAPOOL_READCOMMITIFATTORNEY_H_
#include <fsfw/datapool/ReadCommitIF.h>
#include <fsfw/returnvalues/HasReturnvaluesIF.h>
/**
* @brief This class determines which members are allowed to access protected members
* of the ReadCommitIF.
*/
class ReadCommitIFAttorney {
private:
static ReturnValue_t readWithoutLock(ReadCommitIF* readCommitIF) {
if(readCommitIF == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
}
return readCommitIF->readWithoutLock();
}
static ReturnValue_t commitWithoutLock(ReadCommitIF* readCommitIF) {
if(readCommitIF == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
}
return readCommitIF->commitWithoutLock();
}
friend class PoolDataSetBase;
};
#endif /* FSFW_DATAPOOL_READCOMMITIFATTORNEY_H_ */

View File

@ -0,0 +1,16 @@
#ifndef FRAMEWORK_DATAPOOL_SHAREDDATASETIF_H_
#define FRAMEWORK_DATAPOOL_SHAREDDATASETIF_H_
#include "PoolDataSetIF.h"
class SharedDataSetIF {
public:
virtual ~SharedDataSetIF() {};
private:
virtual ReturnValue_t lockDataset(MutexIF::TimeoutType timeoutType,
dur_millis_t mutexTimeout) = 0;
virtual ReturnValue_t unlockDataset() = 0;
};
#endif /* FRAMEWORK_DATAPOOL_SHAREDDATASETIF_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);
}

Some files were not shown because too many files have changed in this diff Show More