See attached, a nice screenshot of what can happen if you don't limit the unique id to 100 entries (PCDU ID = 193 ; Syrlinks ID = 194. Given that i started the syrlinks unique IDs at 2).
I.e: given any two adjacent subsystem IDs, if the lower one chooses to select a unique ID above 99, it may (based on the selected severity) bleed into the next subsystem IDs namespace.
To at least warn the user of this happening, i've templated the makeEvent function to be truly compile time const, to then be able to static_assert the unique ID.
Please Note, that the generators must also be updated for the export to function properly. See this PR fsfw/fsfwgen#4 for the required adjustment.
I've kept the generator changes minimal and backwards compatible.
This fix as well as backwards compatibility has been tested on
See attached, a nice screenshot of what can happen if you don't limit the unique id to 100 entries (`PCDU ID = 193 ; Syrlinks ID = 194`. Given that i started the syrlinks unique IDs at 2).
I.e: given any two adjacent subsystem IDs, if the lower one chooses to select a unique ID above 99, it may (based on the selected severity) bleed into the next subsystem IDs namespace.
To at least warn the user of this happening, i've templated the `makeEvent` function to be truly compile time const, to then be able to `static_assert` the unique ID.
Please Note, that the generators must also be updated for the export to function properly. See this PR https://egit.irs.uni-stuttgart.de/fsfw/fsfwgen/pulls/4 for the required adjustment.
I've kept the generator changes minimal and backwards compatible.
This *fix* as well as backwards compatibility has been tested on
https://git.ksat-stuttgart.de/source/source-obdh_obsw/sourceobsw/-/merge_requests/220
and
https://git.ksat-stuttgart.de/source/source-obdh_obsw/sourceobsw/-/merge_requests/181
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
See attached, a nice screenshot of what can happen if you don't limit the unique id to 100 entries (
PCDU ID = 193 ; Syrlinks ID = 194. Given that i started the syrlinks unique IDs at 2).I.e: given any two adjacent subsystem IDs, if the lower one chooses to select a unique ID above 99, it may (based on the selected severity) bleed into the next subsystem IDs namespace.
To at least warn the user of this happening, i've templated the
makeEventfunction to be truly compile time const, to then be able tostatic_assertthe unique ID.Please Note, that the generators must also be updated for the export to function properly. See this PR fsfw/fsfwgen#4 for the required adjustment.
I've kept the generator changes minimal and backwards compatible.
This fix as well as backwards compatibility has been tested on
https://git.ksat-stuttgart.de/source/source-obdh_obsw/sourceobsw/-/merge_requests/220
and
https://git.ksat-stuttgart.de/source/source-obdh_obsw/sourceobsw/-/merge_requests/181