fsfw/CHANGELOG.md

806 lines
32 KiB
Markdown
Raw Normal View History

2022-02-02 10:40:00 +01:00
Change Log
=======
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
# [unreleased]
2023-03-15 12:27:39 +01:00
## Fixes
2024-03-27 12:14:19 +01:00
- FreshDeviceHandlerBase did not initialize the fdirInstance
2023-07-10 17:45:02 +02:00
- The `PusTmCreator` API only accepted 255 bytes of source data. It can now accept source
data with a size limited only by the size of `size_t`.
2023-05-15 16:14:36 +02:00
- Important bugfix in CFDP PDU header format: The entity length field and the transaction sequence
number fields stored the actual length of the field instead of the length minus 1 like specified
in the CFDP standard.
2023-03-15 12:27:39 +01:00
- PUS Health Service: Size check for set health command.
Perform operation completion for announce health command.
2023-05-08 15:25:47 +02:00
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/746
- Linux OSAL `getUptime` fix: Check validity of `/proc/uptime` file before reading uptime.
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/745
- Small tweak for version getter
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/744
2023-05-15 16:14:36 +02:00
2023-05-08 15:25:47 +02:00
## Added
2023-04-04 01:52:26 +02:00
2023-05-08 15:25:47 +02:00
- add CFDP subsystem ID
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/742
2023-06-25 12:35:50 +02:00
- `PusTmZcWriter` now exposes API to set message counter field.
2024-04-08 13:26:55 +02:00
- Relative timeshift in the PUS time service.
2024-05-24 14:29:42 +02:00
- CFDP support for PDU checksums
2023-05-08 15:25:47 +02:00
## Changed
2023-07-10 14:14:31 +02:00
2024-05-24 14:29:42 +02:00
- Improved File System Abstraction to be more in line with normal filesystems.
- CFDP implementation was improved, has now even less dependencies on other FSFW components
and allows one inserted packet per state machine call.
2024-04-08 13:26:55 +02:00
- The PUS time service now dumps the time before setting a new time and after having set the
time.
2023-07-10 14:14:31 +02:00
- HK generation is now countdown based.
2023-05-08 15:25:47 +02:00
- Bump ETL version to 20.35.14
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/748
2023-03-15 12:15:21 +01:00
- Renamed `PCDU_2` subsystem ID to `POWER_SWITCH_IF`.
2023-05-08 15:25:47 +02:00
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/743
2023-03-15 12:15:21 +01:00
- Add new `PowerSwitchIF::SWITCH_UNKNOWN` returnvalue.
2023-05-08 15:25:47 +02:00
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/743
2023-03-15 11:53:12 +01:00
- Assert that `FixedArrayList` is larger than 0 at compile time.
2023-05-08 15:25:47 +02:00
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/740
2023-04-04 01:52:26 +02:00
- Health functions are virtual now.
- PUS Service Base request queue depth and maximum number of handled packets per cycle is now
configurable.
2024-10-29 10:49:46 +01:00
- Switched to vendored versions for both the Embedded Template Library (ETL) and the
Catch2 unittesting library.
2023-04-04 01:52:26 +02:00
2023-03-15 12:06:13 +01:00
## Added
- `EventManager`: Add function to print all listeners.
## Changed
- `EventManager`: Queue depth is configurable now
2023-03-15 12:06:13 +01:00
2023-02-09 17:00:44 +01:00
# [v6.0.0] 2023-02-10
2022-08-16 17:23:10 +02:00
2022-09-15 10:42:35 +02:00
## Fixes
2023-02-23 13:38:24 +01:00
- Mode Service: Add allowed subservice
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/739
2023-02-08 01:31:32 +01:00
- `CService200ModeManagement`: Various bugfixes which lead to now execution complete being generated
on mode announcements, duplicate mode reply generated on announce commands, and the mode read
subservice not working properly.
2023-02-09 17:00:44 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/736
2023-02-08 21:24:00 +01:00
- Memory leak fixes for the TCP/IP TMTC bridge.
2023-02-08 21:26:37 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/737
2023-02-07 12:31:19 +01:00
- `Service9TimeManagement`: Fix the time dump at the `SET_TIME` subservice: Include clock timeval
seconds instead of uptime.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/726
2023-01-30 14:20:28 +01:00
- HAL MGM3100 Handler: Use axis specific gain/scaling factors. Previously,
only the X scaling factor was used.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/724
2023-02-09 17:00:44 +01:00
- HAL MGM3100 Handler: Z value was previously calculated with bytes of the X value.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/733
2023-02-03 16:01:56 +01:00
- DHB `setNormalDatapoolEntriesInvalid`: The default implementation did not set the validity
to false correctly because the `read` and `write` calls were missing.
2023-02-09 17:00:44 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/728
2023-02-01 20:49:53 +01:00
- PUS TMTC creator module: Sequence flags were set to continuation segment (0b00) instead
of the correct unsegmented flags (0b11) as specified in the standard.
2023-02-09 17:00:44 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/727
2023-01-13 10:53:36 +01:00
- TC Scheduler Service 11: Add size and CRC check for contained TC.
2023-02-09 17:00:44 +01:00
Bug: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/issues/719
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/720
2022-11-15 11:46:43 +01:00
- Only delete health table entry in `HealthHelper` destructor if
health table was set.
2023-02-09 17:00:44 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/710
2022-10-24 14:30:14 +02:00
- I2C Bugfixes: Do not keep iterator as member and fix some incorrect handling with the iterator.
Also properly reset the reply size for successfull transfers and erroneous transfers.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/700
2022-09-15 10:42:35 +02:00
- Bugfix for Serial Buffer Stream: Setting `doActive` to false now
actually fully disables printing.
2022-09-15 10:43:45 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/680
2022-09-15 10:54:45 +02:00
- `TcpTmTcServer.cpp`: The server was actually not able to handle
CCSDS packets which were clumped together. This has been fixed now.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/673
2023-02-01 17:41:47 +01:00
- `CServiceHealthCommanding`: Add announce all health info implementation
2023-02-23 13:38:24 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/725
2023-02-10 11:06:46 +01:00
- various fixes related to linux Unittests and memory leaks
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/715
- small fix to allow teardown handling
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/713
- fix compiler warning for fixed array list copy ctor
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/704
- missing include
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/703
- defaultconfig did not build anymore
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/702
- hotfix
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/699
- small fix for helper
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/698
- missing retval conv
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/697
- DHB Countdown Bug
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/693
- doc corrections
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/687
- better error printout
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/686
- include correction
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/683
- better warning for missing include paths
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/676
- Service 11 regression
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/670
2022-09-15 10:42:35 +02:00
2022-08-15 15:02:39 +02:00
## Added
2023-02-07 12:31:19 +01:00
- `CServiceHealthCommanding`: Add announce all health info implementation
PR: https://egit.irs.uni-stuttgart.de/eive/fsfw/pulls/122
2023-02-07 12:10:11 +01:00
- Empty constructor for `CdsShortTimeStamper` which does not do an object manager registration.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/730
- `Service9TimeManagement`: Add `DUMP_TIME` (129) subservice.
2023-01-30 14:11:00 +01:00
- `TcpTmTcServer`: Allow setting the `SO_REUSEADDR` and `SO_REUSEPORT`
option on the TCP server. CTOR prototype has changed and expects an explicit
TCP configuration struct to be passed.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/722
2022-11-15 11:45:39 +01:00
- `DleParser` helper class to parse DLE encoded packets from a byte stream.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/711
2022-11-15 11:47:26 +01:00
- `UioMapper` is able to resolve symlinks now.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/709
2022-08-15 15:02:39 +02:00
- Add new `UnsignedByteField` class
2022-08-16 01:08:26 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/660
2023-02-10 11:06:46 +01:00
- publish documentation for development and master branch
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/681
- Add Linux HAL options
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/663
- Expand SerializeIF
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/656
- PUS Service 11: Additional Safety Check
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/666
- improvements for auto-formatter script
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/665
- provide a weak print char impl
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/674
## Removed
- now that doc server is up, remove markdown files
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/688
- remove bsp specific code
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/679
2022-08-15 15:02:39 +02:00
2022-08-16 17:23:10 +02:00
## Changes
2023-02-01 17:41:47 +01:00
- `CService201HealthCommanding` renamed to `CServiceHealthCommanding`,
service ID customizable now. `CServiceHealthCommanding` expects configuration struct
`HealthServiceCfg` now
2023-02-23 13:38:24 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/725
2022-11-15 11:44:45 +01:00
- `AcceptsTelemetryIF`: `getReportReceptionQueue` is const now
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/712
2022-11-15 11:48:28 +01:00
- Moved some container returnvalues to dedicated header and namespace
2023-02-09 17:00:44 +01:00
so they can be used without template specification.
2022-11-15 11:48:28 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/707
2022-09-16 18:24:23 +02:00
- Remove default secondary header argument for
`uint16_t getTcSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)` and
`uint16_t getTmSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)`
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/689
- Removed `HasReturnvaluesIF` class in favor of `returnvalue` namespace with `OK` and `FAILED`
constants.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/659
2022-08-16 17:23:10 +02:00
- Overhaul of the TMTC stack, including various changes and improvements
for other modules
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/655
which also includes a migration guide
2022-09-15 10:43:45 +02:00
- Bump Catch2 dependency to regular version `v3.1.0`
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/678
2022-09-15 10:45:35 +02:00
- `SerialBufferAdapter`: Rename `setBuffer` to `setConstBuffer` and update
API to expect `const uint8_t*` accordingly.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/677
2022-09-15 10:47:50 +02:00
- Remove the following user includes from `fsfw/events/Event.h` and
`fsfw/returnvalues/returnvalue.h`:
- `#include "events/subsystemIdRanges.h"`
- `#include "returnvalues/classIds.h"`
The user has to include those themselves now
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/675
2022-09-15 10:56:52 +02:00
- `DeviceHandlerBase`: Set command sender before calling `buildCommandFromCommand`.
This allows finishing action commands immediately inside the function.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/672
2022-09-15 10:59:10 +02:00
- `DeviceHandlerBase`: New signature of `handleDeviceTm` which expects
a `const SerializeIF&` and additional helper variant which expects `const uint8_t*`
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/671
2022-09-15 10:38:40 +02:00
- Improvements for `AcceptsTelemetryIF` and `AcceptsTelecommandsIF`:
- Make functions `const` where it makes sense
- Add `const char* getName const` abstract function
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/684
2023-02-10 11:06:46 +01:00
- Generic TMTC Bridge Update
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/734
- comment tweak to event parser can read everything
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/732
- CMakeLists file updates
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/731
- improve srv20 error messages
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/723
- I2C Linux: remove duplicate printout
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/718
- printout handling improvements
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/717
- vec getter, reset for content
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/716
- updates for source sequence counter
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/714
- SP reader getPacketData is const now
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/708
- refactoring of serial drivers for linux
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/705
- Local Pool Update Remove Add Data Ignore Fault Argument
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/701
- Switch to new documentation server
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/694
- Windows Tweaks
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/691
- Refactor Local Pool API
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/667
- group MGM data in local pool vectors
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/664
2022-08-16 17:23:10 +02:00
2022-09-14 19:26:07 +02:00
## CFDP
- Refactoring of CFDP stack which was done during implementation of the CFDP source and destination
handlers.
- New filesystem module, changes for filesystem abstraction `HasFileSystemIF` to better
fit requirements of CFDP
- New `HostFilesystem` implementation of the `HasFileSystemIF`
- New `cfdp::UserBase` class which is the abstraction for the CFDP user in an OBSW context.
- mib module for the CFDP stack
- PDU classes renamed from `...Serializer`/`...Deserializer` to `...Creator`/`...Reader`
respetively
2022-09-14 19:52:33 +02:00
- Renamed `TcDistributor` to `TcDistributorBase` to prevent confusion
- Refactored `TcDisitributorBase` to be more flexible and usable for CFDP distribution
- Renamed `CCSDSDistributor` to `CcsdsDistributor` and add feature which allows it
to remove the CCSDS header when routing a packet. This allows CCSDS agnostic receiver
implementation without an extra component
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/682
2022-08-16 17:23:10 +02:00
2023-02-09 17:00:44 +01:00
# [v5.0.0] 2022-07-25
2022-02-22 11:37:38 +01:00
## Changes
2022-05-13 13:46:54 +02:00
- Renamed auto-formatting script to `auto-formatter.sh` and made it more robust.
If `cmake-format` is installed, it will also auto-format the `CMakeLists.txt` files now.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/625
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/626
2022-05-09 15:07:46 +02:00
- Bump C++ required version to C++17. Every project which uses the FSFW and every modern
compiler supports it
2022-05-09 15:09:07 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/622
2022-03-08 09:01:23 +01:00
- New CMake option `FSFW_HAL_LINUX_ADD_LIBGPIOD` to specifically exclude `gpiod` code.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/572
2022-02-22 11:37:38 +01:00
- HAL Devicehandlers: Periodic printout is run-time configurable now
2022-02-22 11:29:23 +01:00
- `oneShotAction` flag in the `TestTask` class is not static anymore
2022-03-25 15:27:22 +01:00
- `SimpleRingBuffer::writeData` now checks if the amount is larger than the total size of the
2022-08-16 12:12:21 +02:00
Buffer and rejects such writeData calls with `returnvalue::FAILED`
2022-03-25 15:27:22 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/586
2022-04-22 14:52:55 +02:00
- Major update for version handling, using `git describe` to fetch version information with git.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/601
2022-04-22 14:53:12 +02:00
- Add helper functions provided by [`cmake-modules`](https://github.com/bilke/cmake-modules)
manually now. Those should not change too often and only a small subset is needed
2022-04-22 15:37:14 +02:00
- Separate folder for easier update and for distinction
2022-04-22 14:52:55 +02:00
- LICENSE file included
- use `int` for version numbers to allow unset or uninitialized version
- Initialize Version object with numbers set to -1
- Instead of hardcoding the git hash, it is now retrieved from git
2022-04-22 14:53:12 +02:00
- `Version` now allows specifying additional version information like the git SHA1 hash and the
versions since the last tag
2022-04-22 14:52:55 +02:00
- Additional information is set to the last part of the git describe output for `FSFW_VERSION` now.
- Version still need to be hand-updated if the FSFW is not included as a submodule for now.
2022-04-11 16:13:47 +02:00
- IPC Message Queue Handling: Allow passing an optional `MqArgs` argument into the MessageQueue
creation call. It allows passing context information and an arbitrary user argument into
the message queue. Also streamlined and simplified `MessageQueue` implementation for all OSALs
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/583
2022-07-18 14:58:47 +02:00
- Internal API change: Moved the `fsfw_hal` to the `src` folder and integration and internal
2022-07-18 15:00:40 +02:00
tests part of `fsfw_tests` to `src`. Unittests are now in a dedicated folder called `unittests`
2022-07-18 14:58:47 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/653
2022-04-25 15:42:44 +02:00
2022-05-30 10:52:23 +02:00
### Task Module Refactoring
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/636
2022-05-30 11:31:07 +02:00
**Refactoring general task code**
- There was a lot of duplicate/boilerplate code inside the individual task IF OSAL implementations.
Remove it by introducing base classes `PeriodicTaskBase` and `FixedTimeslotTaskBase`.
**Refactor PeriodicTaskIF**
2022-05-30 10:52:23 +02:00
- Convert `virtual ReturnValue_t addComponent(object_id_t object)` to
`virtual ReturnValue_t addComponent(object_id_t object, uint8_t opCode = 0)`, allowing to pass
the operation code passed to `performOperation`. Updated API taking
an `ExecutableObjectIF` accordingly
2022-05-30 11:31:07 +02:00
**Refactor FixedTimeslotTaskIF**
- Add additional `addSlot` function which takes an `ExecutableObjectIF` pointer and its Object ID
**Refactor FixedSequenceSlot**
- Introduce typedef `CustomCheckFunc` for `ReturnValue_t (*customCheckFunction)(const SlotList&)`.
- Convert `ReturnValue_t (*customCheckFunction)(const SlotList&)` to
`ReturnValue_t (*customCheckFunction)(const SlotList&, void*)`, allowing arbitrary user arguments
for the custom checker
**Linux Task Module**
- Use composition instead of inheritance for the `PeriodicPosixTask` and make the `PosixTask` a
member of the class
2022-05-30 10:52:23 +02:00
2022-04-25 15:42:44 +02:00
### HAL
- HAL Linux Uart: Baudrate and bits per word are enums now, avoiding misconfigurations
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/585
2022-04-25 15:42:44 +02:00
- HAL Linux SPI: Set the Clock Default State when setting new SPI speed
and mode
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/573
- GPIO HAL: `Direction`, `GpioOperation` and `Levels` are enum classes now, which prevents
name clashes with Windows defines.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/572
- HAL Linux Uart: Baudrate and bits per word are enums now, avoiding misconfigurations
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/585
### Time
2022-04-25 15:44:46 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/584 and
https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/593
2022-04-25 15:42:44 +02:00
- `timeval` to `TimeOfDay_t`
- Added Mutex for gmtime calls: (compare http://www.opengate.at/blog/2020/01/timeless/)
- Moved the statics used by Clock in ClockCommon.cpp to this file
- Better check for leap seconds
- Added Unittests for Clock (only getter)
### Power
- `PowerSwitchIF`: Remove `const` specifier from `sendSwitchCommand` and `sendFuseOnCommand` and
also specify a `ReturnValue_t` return type
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/590
- Extend `PowerSwitcher` module to optionally check current state when calling `turnOn` or
`turnOff`. Tis can be helpful to avoid commanding switches which do not need commanding
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/590
2022-02-22 11:37:38 +01:00
2022-02-22 11:23:29 +01:00
## Removed
- Removed the `HkSwitchHelper`. This module should not be needed anymore, now that the local
2022-03-07 16:17:33 +01:00
datapools have been implemented.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/557
2022-02-22 11:23:29 +01:00
2022-02-22 11:22:20 +01:00
## Additions
2022-07-08 17:59:43 +02:00
- New constructor for PoolEntry which allows to simply specify the length of the pool entry.
This is also the new default constructor for scalar value with 0 as an initial value
2022-05-09 15:33:03 +02:00
- Added options for CI/CD builds: `FSFW_CICD_BUILD`. This allows the source code to know
whether it is running in CI/CD
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/623
2022-05-13 13:46:54 +02:00
- Basic `clion` support: Update `.gitignore` and add some basic run configurations
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/625
2022-05-09 10:31:03 +02:00
- LTO support: Allow using LTO/IPO by setting `FSFW_ENABLE_LTO=1`. CMake is able to detect whether
2022-05-09 10:34:14 +02:00
the user compiler supports IPO/LPO. LTO is on by default now. Most modern compilers support it,
can make good use of it and it usually makes the code faster and/or smaller.
2022-05-10 11:19:29 +02:00
After some more research:
Enabling LTO will actually cause the compiler to only produce thin LTO by adding
`-flto -fno-fat-lto-objects` to the compiler options. I am not sure this is an ideal choice
because if an application linking against the FSFW does not use LTO, there can be compile
issues (e.g. observed when compiling the FSFW tests without LTO). This is a known issue as
can be seen in the multiple CMake issues for it:
- https://gitlab.kitware.com/cmake/cmake/-/issues/22913,
- https://gitlab.kitware.com/cmake/cmake/-/issues/16808,
- https://gitlab.kitware.com/cmake/cmake/-/issues/21696
Easiest solution for now: Keep this option OFF by default.
2022-05-09 10:31:03 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/616
2023-02-07 12:31:19 +01:00
- Linux HAL: Add wiretapping option for I2C. Enabled with `FSFW_HAL_I2C_WIRETAPPING` defined to 1
2022-03-10 09:36:36 +01:00
- Dedicated Version class and constant `fsfw::FSFW_VERSION` containing version information
inside `fsfw/version.h`
2022-03-07 16:17:33 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/559
2022-04-11 16:16:56 +02:00
- Added generic PUS TC Scheduler Service 11. It depends on the new added Emebeded Template Library
(ETL) dependency.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/594
2022-03-28 20:57:30 +02:00
- Added ETL dependency and improved library dependency management
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/592
2022-04-25 15:42:44 +02:00
- Add a `DummyPowerSwitcher` module which can be useful for test setups when no PCDU is available
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/590
- New typedef for switcher type
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/590
2022-04-28 14:37:21 +02:00
- `Subsystem`: New API to add table and sequence entries
2022-02-22 11:22:20 +01:00
2022-04-11 17:30:27 +02:00
## Fixed
2022-05-09 11:00:31 +02:00
- TCP TMTC Server: `MutexGuard` was not created properly in
`TcpTmTcServer::handleTmSending(socket_t connSocket, bool& tmSent)` call.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/618
2022-05-09 10:50:29 +02:00
- Fix infinite recursion in `prepareHealthSetReply` of PUS Health Service 201.
Is not currently used right now but might be used in the future
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/617
2022-05-09 14:58:39 +02:00
- Move some CMake directives further up top so they are not ignored
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/621
2022-04-11 17:30:27 +02:00
- Small bugfix in STM32 HAL for SPI
2022-04-11 17:32:01 +02:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/599
2022-04-27 08:39:21 +02:00
- HAL GPIO: Improved error checking in `LinuxLibgpioIF::configureGpios(...)`. If a GPIO
configuration fails, the function will exit prematurely with a dedicated error code
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/602
2022-04-11 17:30:27 +02:00
2022-02-02 10:40:00 +01:00
# [v4.0.0]
## Additions
- CFDP Packet Stack and related tests added. It also refactors the existing TMTC infastructure to
allow sending of CFDP packets to the CCSDS handlers.
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/528
2022-02-07 13:44:25 +01:00
- added virtual function to print datasets
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/544
- doSendRead Hook
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/545
2022-02-14 16:42:40 +01:00
- Dockumentation for DHB
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/551
### HAL additions
- Linux Command Executor, which can execute shell commands in blocking and non-blocking mode
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/536
- uio Mapper
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/543
2022-02-02 10:40:00 +01:00
## Changes
- Applied the `clang-format` auto-formatter to all source code
2022-02-07 13:44:25 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/534
- Updated Catch2 to v3.0.0-preview4
2022-02-07 13:44:25 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/538
2022-02-07 17:11:04 +01:00
- Changed CI to use prebuilt docker image
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/549
2022-02-02 10:40:00 +01:00
## Bugfix
- CMake fixes in PR https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/533 , was problematic
if the uppermost user `CMakeLists.txt` did not have the include paths set up properly, which
could lead to compile errors that `#include "fsfw/FSFW.h"` was not found.
2022-02-07 17:11:04 +01:00
- Fix for build regression in Catch2 v3.0.0-preview4
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/548
2022-02-14 16:42:40 +01:00
- Fix in unittest which failed on CI
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/552
- Fix in helper script
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/553
2022-02-02 10:40:00 +01:00
## API Changes
- Aforementioned changes to existing TMTC stack
2022-02-07 13:44:25 +01:00
## Known bugs
-
2022-02-07 13:44:25 +01:00
2022-02-04 13:45:09 +01:00
# [v3.0.1]
## API Changes
*
## Bugfixes
* Version number was not updated for v3.0.0 #542
## Enhancement
*
## Known bugs
*
2022-02-02 10:40:00 +01:00
# [v3.0.0]
## API Changes
#### TCP Socket Changes
* Keep Open TCP Implementation #496
* The socket will now kept open after disconnect. This allows reconnecting.
* Only one connection is allowed
* No internal influence but clients need to change their Code.
### GPIO IF
* Add feature to open GPIO by line name #506
### Bitutil
* Unittests for Op Divider and Bitutility #510
### Filesystem IF changed
* Filesystem Base Interface: Use IF instead of void pointer #511
### STM32
* STM32 SPI Updates #518
## Bugfixes
* Small bugfix for LIS3 handler #504
* Spelling fixed for function names #509
* CMakeLists fixes #517
* Out of bound reads and writes in unittests #519
* Bug in TmPacketStoredPusC (#478)
* Windows ifdef fixed #529
## Enhancement
* FSFW.h.in more default values #491
* Minor updates for PUS services #498
* HasReturnvaluesIF naming for parameter #499
* Tests can now be built as part of FSFW and versioning moved to CMake #500
* Added integration test code #508
* More printouts for rejected TC packets #505
* Arrayprinter format improvements #514
* Adding code for CI with docker and jenkins #520
* Added new function in SerializeAdapter #513
* Enables simple deSerialize if you keep track of the buffer position yourself
* `` static ReturnValue_t deSerialize(T *object, const uint8_t* buffer,
size_t* deserSize, SerializeIF::Endianness streamEndianness) ``
* Unittest helper scripts has a new Parameter to open the coverage html in the webrowser #525
* ``'-o', '--open', Open coverage data in webbrowser``
* Documentation updated. Sphinx Documentation can now be build with python script #526
## Known bugs
2022-02-04 13:45:09 +01:00
* Version number was not updated for v3.0.0 #542
2022-02-02 10:40:00 +01:00
All Pull Requests:
Milestone: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/milestone/19
# [v2.0.0]
## API Changes
### File Structure changed to fit more common structure
* See pull request (#445)
* HAL is now part of the main project
* **See Instructions below:**
#### Instruction how to update existing / user code
* Changes in `#include`:
* Rename `internalError` in includes to `internalerror`
* Rename `fsfw/hal` to `fsfw_hal`
* Rename `fsfw/tests` to `fsfw_tests`
* Rename `osal/FreeRTOS` to `osal/freertos`
* Changes in `CMakeLists.txt`:
* Rename `OS_FSFW` to `FSFW_OSAL`
* Changes in `DleEncoder.cpp`
* Create an instance of the `DleEncoder` first before calling the `encode` and `decode` functions
### Removed osal/linux/Timer (#486)
* Was redundant to timemanager/Countdown
#### Instruction how to update existing / user code
* Use timemanager/Countdown instead
## Bugfixes
### TM Stack
* Increased TM stack robustness by introducing `nullptr` checks and more printouts (#483)
#### Host OSAL / FreeRTOS
* QueueMapManager Bugfix (NO_QUEUE was used as MessageQueueId) (#444)
#### Events
* Event output is now consistent (#447)
#### DLE Encoder
* Fixed possible out of bounds access in DLE Encoder (#492)
## Enhancment
* HAL as major new feature, also includes three MEMS devicehandlers as part of #481
* Linux HAL updates (#456)
* FreeRTOS Header cleaning update and Cmake tweaks (#442)
* Printer updates (#453)
* New returnvalue for for empty PST (#485)
* TMTC Bridge: Increase limit of packets stored (#484)
## Known bugs
* Bug in TmPacketStoredPusC (#478)
All Pull Requests:
Milestone: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/milestone/5
# [v1.2.0]
2021-07-14 11:14:25 +02:00
## API Changes
### FSFW Architecture
2021-07-19 18:35:16 +02:00
- New src folder which contains all source files except the HAL, contributed code and test code
- External and internal API mostly stayed the same
2021-07-14 11:14:25 +02:00
- Folder names are now all smaller case: internalError was renamed to internalerror and
FreeRTOS was renamed to freertos
2021-07-19 18:35:16 +02:00
- Warning if optional headers are used but the modules was not added to the source files to compile
2021-07-14 11:14:25 +02:00
### HAL
- HAL added back into FSFW. It is tightly bound to the FSFW, and compiling it as a static library
made using it more complicated than necessary
## Bugfixes
### FreeRTOS QueueMapManager
- Fixed a bug which causes the first generated Queue ID to be invalid
## Enhancements
### FSFW Architecture
- See API changes chapter. This change will keep the internal API consistent in the future
2022-02-02 10:40:00 +01:00
# [v1.1.0]
2021-07-14 11:14:25 +02:00
## API Changes
2021-06-15 14:21:46 +02:00
### PUS
- Added PUS C support
2021-07-14 11:14:25 +02:00
- SUBSYSTEM_IDs added for PUS Services
- Added new Parameter which must be defined in config: fsfwconfig::FSFW_MAX_TM_PACKET_SIZE
### ObjectManager
- ObjectManager is now a singelton
2021-06-15 14:21:46 +02:00
### Configuration
- Additional configuration option fsfwconfig::FSFW_MAX_TM_PACKET_SIZE which
need to be specified in FSFWConfig.h
2021-07-14 11:14:25 +02:00
### CMake
- Changed Cmake FSFW_ADDITIONAL_INC_PATH to FSFW_ADDITIONAL_INC_PATHS
## Bugfixes
- timemanager/TimeStamperIF.h: Timestamp config was not used correctly, leading to different timestamp sizes than configured in fsfwconfig::FSFW_MISSION_TIMESTAMP_SIZE
- TCP server fixes
## Enhancements
### FreeRTOS Queue Handles
- Fixed an internal issue how FreeRTOS MessageQueues were handled
### Linux OSAL
- Better printf error messages
### CMake
- Check for C++11 as mininimum required Version
### Debug Output
- Changed Warning color to magenta, which is well readable on both dark and light mode IDEs
2021-06-15 14:21:46 +02:00
2021-07-14 11:14:25 +02:00
# Changes from ASTP 0.0.1 to 1.0.0
2020-11-24 13:45:34 +01:00
2020-12-05 10:41:37 +01:00
### Host OSAL
- Bugfix in MessageQueue, which caused the sender not to be set properly
2020-11-24 13:45:34 +01:00
### FreeRTOS OSAL
- vRequestContextSwitchFromISR is declared extern "C" so it can be defined in
a C file without issues
2020-12-01 14:01:04 +01:00
### PUS Services
2020-12-01 15:10:23 +01:00
- It is now possible to change the message queue depth for the telecommand verification service (PUS1)
2020-12-01 15:26:06 +01:00
- The same is possible for the event reporting service (PUS5)
2020-12-01 15:03:49 +01:00
- PUS Health Service added, which allows to command and retrieve health via PUS packets
2020-12-01 14:01:04 +01:00
### EnhancedControllerBase
- New base class for a controller which also implements HasActionsIF and HasLocalDataPoolIF
2020-12-01 13:52:40 +01:00
### Local Pool
2021-03-04 16:48:21 +01:00
- 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
2021-03-04 16:46:39 +01:00
two ctor arguments and a template parameter
2020-12-03 13:10:33 +01:00
### Parameter Service
2020-12-03 13:11:52 +01:00
- The API of the parameter service has been changed to prevent inconsistencies
between documentation and actual code and to clarify usage.
2020-12-03 13:10:33 +01:00
- 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)
2020-12-01 17:17:53 +01:00
### File System Interface
2021-03-04 16:48:21 +01:00
- A new interfaces specifies the functions for a software object which exposes the file system of
2021-03-04 16:46:39 +01:00
a given hardware to use message based file handling (e.g. PUS commanding)
2020-12-03 13:26:50 +01:00
### 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.
2020-12-01 15:22:18 +01:00
### Device Handler Base
- There is an additional `PERFORM_OPERATION` step for the device handler base. It is important
2021-03-04 16:46:39 +01:00
that DHB users adapt their polling sequence tables to perform this step. This steps allows for
a clear distinction between operation and communication steps
2020-12-22 12:53:03 +01:00
- setNormalDatapoolEntriesInvalid is not an abstract method and a default implementation was provided
2020-12-22 14:26:42 +01:00
- getTransitionDelayMs is now an abstract method
2020-12-22 12:53:03 +01:00
### DeviceHandlerIF
- Typo for UNKNOWN_DEVICE_REPLY
2020-12-01 17:45:23 +01:00
### Events
2020-12-08 14:51:36 +01:00
- 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
2020-12-15 15:20:08 +01:00
### Commanding Service Base
2021-03-04 16:46:39 +01:00
- 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
2021-01-03 15:31:44 +01:00
### 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.
2021-02-09 14:57:14 +01:00
2021-03-04 16:46:39 +01:00
### ActionHelper and ActionMessage
2021-03-04 16:45:35 +01:00
2021-03-04 16:46:39 +01:00
- 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
2021-03-04 16:45:35 +01:00
2021-02-09 14:57:14 +01:00
### PUS Parameter Service 20
2021-03-04 16:45:35 +01:00
Added PUS parameter service 20 (only custom subservices available).