98 Commits

Author SHA1 Message Date
Daniel Agar
450229c2a4 dataman operations table is constexpr 2018-04-03 18:37:51 -04:00
Daniel Agar
916d6a15fd Mission merge offboard + onboard and simplify 2018-01-14 12:53:53 +01:00
José Roberto de Souza
239de7191f dataman: Prevent database corruption
The size in g_per_item_size[item] is the real struct size
+ DM_SECTOR_HDR_SIZE bytes of header and the backend functions were
not taking in care it. So a call to dm_write() with more bytes than
the real struct is allowed, causing corruption in the header of the
next item.

Kudos to jeonghwan-lee for finding it. https://github.com/PX4/Firmware/issues/7927
2017-10-16 23:38:03 +02:00
Beat Küng
c82deaf26f dataman: fix test for return value of px4_task_spawn_cmd
And destroy the semaphore if startup fails.

Credits for finding this go to @jeonghwan-lee
2017-09-11 02:04:27 -07:00
Daniel Agar
9b5fe8c476 ignore -Wsign-compare per module 2017-09-07 10:27:36 +02:00
Beat Küng
a2ef611a30 dataman: improve error reporting 2017-08-04 18:08:51 +02:00
Beat Küng
72501df88e dataman: add dm_trylock & add lock for FENCE_POINTS items 2017-08-04 18:08:51 +02:00
Beat Küng
c4cdaa48e0 dataman, mission_feasibility_checker: remove unneeded uorb includes 2017-08-04 18:08:51 +02:00
Beat Küng
b9cddfb75b dataman: account for new geofence & rally point structs 2017-08-04 18:08:51 +02:00
Beat Küng
52ca49c682 geofence: remove fence & fence_vertex messages
- this was never read
- it was implemented wrong, leading to memory access violations in
  publishFence (an integer was passed instead of the fence_s struct)
2017-08-04 18:08:51 +02:00
Beat Küng
0949599f0a dataman: fix compilation error
error: invalid conversion from ‘int’ to ‘dm_item_t’
and
error: no ‘operator++(int)’ declared for postfix ‘++’
2017-07-14 11:57:11 +02:00
Beat Küng
cf5df4489f dataman: extend module documentation 2017-07-14 11:57:11 +02:00
Beat Küng
318c4497bd dataman: fix typo 2017-07-14 11:57:11 +02:00
Beat Küng
28e5268497 dataman: rename to .cpp & add module documentation 2017-07-14 11:57:11 +02:00
José Roberto de Souza
2f2e3a7e7c modules: dataman: ram_flash: No need to write/erase data that do not need to persist
Just update in RAM is enough.
2017-07-13 15:21:26 +02:00
José Roberto de Souza
10f54e718e modules: dataman: Optimize memory usage
Use the size of each item type instead of the biggest one.

In AeroFC that runs is constrained mode it was using 7860 bytes
and now it uses 6930 bytes almost 1KB less.
2017-07-13 15:21:26 +02:00
José Roberto de Souza
e2aae04c95 modules: dataman: Add a ram_flash backend
This backend will keep all updated data in RAM and
persist the data between reboots using flash memory.

Using only flash memory would result in a slow backend that
would decrease the lifetime of the flash memory, using both
we can reduce the several cycles of erase & write into flash
and keep the performance of the backend almost as fast
as the RAM only backend.

Note: Do not use this backend on a sector from the same flash memory
bank as the memory bank that STM32 read instructions or it can block
the CPU from fetching instructions from flash during the erase and
write operations and cause your drone crash.
2017-03-10 11:31:07 +01:00
José Roberto de Souza
a2670bdbc8 modules: dataman: Move backend specific out of main routines 2017-03-10 11:31:07 +01:00
José Roberto de Souza
66d9d56525 modules: dataman: Share memory between backends
Also having just a boolean to track if backend is running.
2017-03-10 11:31:07 +01:00
Julian Oes
8c1e85a65f dataman: don't wrap around at 256
The dataman started overwriting contents after 256 items because the
item index were only uint8_t. This fix allows for more than 256
waypoints.
2017-02-15 22:29:24 -05:00
wangxdflight
b693e29d64 enable px4 flight for excelsior(legacy) 2017-01-16 08:25:58 -08:00
Daniel Agar
751909cd4e clang readability-braces-around-statements (#6298) 2017-01-11 17:01:51 -05:00
Daniel Agar
b4da337cd4 test coverage cleanup
- dataman clean exit code
 - unit test proper cleanup
 - add some level of simulated sensors for tests
 - delete unused test/standard_vtol
2017-01-03 04:00:41 -05:00
Lorenz Meier
78f00368c5 Dataman: Be less verbose on start to clutter shell output less 2017-01-01 13:59:41 +01:00
Lorenz Meier
f72b439fd5 Dataman: Header cleanup 2016-12-27 21:00:51 +01:00
David Sidrane
c9f10107c0 Nuttx Upgrade:Adds sem_setprotocol 2016-12-21 08:34:21 +01:00
Lorenz Meier
5ddd69c872 Dataman: Make versioning define more explicit 2016-10-23 16:26:03 +02:00
Lorenz Meier
c7cdef2a4b Clarify version flag for dataman 2016-10-23 16:26:03 +02:00
Lorenz Meier
0a4fedd778 Dataman: Use single method to infer file compatibility 2016-10-23 16:26:03 +02:00
Lorenz Meier
9e7d5f088e dataman: Ensure compat field is set and read correctly 2016-10-23 16:26:03 +02:00
Lorenz Meier
ff0d7613b1 Add manual seed to dataman hash to allow later incrementing the seed number for incompatible changes 2016-10-23 16:26:03 +02:00
Lorenz Meier
db774798fa Dataman: Store sizes of all containers and reset file if any of them changes. 2016-10-23 16:26:03 +02:00
Lorenz Meier
c2285c84a9 Dataman: Do nnot pack structs to avoid reading back wrong values on existing systems 2016-10-18 00:26:40 +02:00
David Sidrane
ecbe8c2179 Packed union to save more space 2016-10-18 00:23:58 +02:00
David Sidrane
b2bf9e15eb Use union of datatypes supported by dataman to reduce wasted space 2016-10-18 00:23:58 +02:00
David Sidrane
44b5b52bcb Add suport for Memory Constrained systems 2016-10-18 00:23:58 +02:00
David Sidrane
24e20b2cec Changed public interface comments to Doxyagen style 2016-10-18 00:23:58 +02:00
David Sidrane
dce2262243 Add in RAM storage to dataman 2016-10-18 00:23:58 +02:00
Julian Oes
8ff237c69f Remove size optimization for individual modules
It makes more sense to set the optimization flags on a platform basis
instead of individually for each module. This allows for different
optimization options for SITL, NuttX, Snapdragon, etc.
2016-09-30 08:11:51 +02:00
Julian Oes
a39124a10d dataman: make it less chatty
- Removed a couple of unneeded printfs.
- On POSIX it shouldn't warn if it's not a multiple of the
  block size.
2016-06-07 22:10:56 +02:00
Julian Oes
3a8d242576 dataman: get path for Snapdragon right 2016-05-14 11:21:44 +02:00
James Goppert
967e4dd127 Modified cmake to use STACK_MAX and STACK_MAIN 2016-04-14 13:36:36 -04:00
Lorenz Meier
6e8f563d27 dataman: Do not reset mission file on each reboot 2016-02-11 18:40:18 +01:00
Lorenz Meier
b6c4501d0e Adjust data size of dataman to force reset of all existing user data 2015-12-02 09:15:37 +01:00
Lorenz Meier
a0bfd3a5bf Dataman: Remove excessive stack allocation 2015-10-10 22:23:34 +02:00
Lorenz Meier
228cc8844e Dataman: Lower scheduling priority 2015-10-10 16:02:29 +02:00
Lorenz Meier
73fabc2b4d dataman: Limit variable scope 2015-10-07 16:30:24 +02:00
Lorenz Meier
fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
Lorenz Meier
fa27e59ac4 dataman: Move to semaphore abstraction 2015-09-20 00:28:39 +02:00
James Goppert
1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04:00