zephyr/subsys
Luis Ubieda 94a7f028ef ubx: Refactor codebase in order to improve usability
During testing and code inspection, there were various anti-patterns
on this (and U-Blox driver) codebase(s), including obfuscation, and
lack of data validation. This made it increasingly difficult to
introduce further variants of u-blox GNSS modems.

With this patch, both the UBX modem and the M8 driver have been
refactored to ease the reliability and maintainability of these
codebases. Here are some highlights:

WRT UBX modem:
- Helper macros to easily create UBX frames, (including checksum
calculation), at compile time; thus, making it easier to extend UBX
commands.
- Logic validation by the inclusion of the modem_ubx testsuite, used to
refactor the code through TDD.
- Ability to receive unsolicited messages, in order to enable U-Blox
drivers to rely on modem_ubx to transceive all commands, and avoid
hopping between modem_ubx and modem_chat.

WRT M8 driver:
- Remove GNSS specific protocol header files. Instead, unify them under
modem/ubx/protocol.h. Background: After a survey and looking at ubxlib
SDK I conclude the UBX protocol is by definition a GNSS protocol (there
are non-GNSS u-blox modems, but they're not interfaced through UBX
protocol).
- Establish pattern to create and send/receive commands using new
foundations on modem ubx.
- Remove dependency of Modem chat, and instead use UBX unsolicited
messages to get Navigation and Satellites data.
- Switch from the auto-baudrate detection pattern to a pattern of
transitioning between an initial known baudrate to a desired baudrate,
in order to improve initialization time.
- Add dts property to configure default fix-rate.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-30 19:40:19 +02:00
..
bindesc
bluetooth Bluetooth: Classic: L2CAP: Add echo command set 2025-05-29 20:19:38 -04:00
canbus
console
dap
debug debug: ASSERT_VERBOSE depends on PRINTK 2025-05-29 15:16:41 +01:00
demand_paging
dfu
disk
dsp
emul
fb cfb: fix get_glyph_byte for vtiled displays 2025-04-18 12:36:16 +02:00
fs subsys/fs/fuse: Fix adding missing stddef header 2025-05-28 01:48:13 +02:00
input
ipc ipc_service: ipc_icbmsg: Update backend API return values 2025-03-28 12:21:30 +01:00
jwt modules: mbedtls: make key exchange Kconfigs depend on, not select 2025-05-13 22:22:43 -04:00
llext llext: basic x86 support 2025-05-21 19:57:20 +02:00
logging logging: backend: net: use connection mgr 2025-05-10 13:02:21 +02:00
lorawan lorawan: add link check support. 2025-04-17 17:23:12 +02:00
mem_mgmt
mgmt mgmt: hawkbit: do not prepend custom controllerId 2025-05-28 11:09:10 +02:00
modbus
modem ubx: Refactor codebase in order to improve usability 2025-05-30 19:40:19 +02:00
net net: lib: coap: Return an error on removing a non-existing observer 2025-05-30 10:28:02 +02:00
pm pm: Add API to check if a state disables a device 2025-05-30 19:40:11 +02:00
pmci pmci: mctp: Fix No SOURCES CMake warning 2025-04-23 17:55:19 +02:00
portability subsys/portability/cmsis_rtos_v2: Fix code compliance issues 2025-05-21 12:35:28 +02:00
profiling arch: Unify declaration of text region 2025-04-23 02:15:25 +02:00
random
retention
rtio rtio: Introduce OP_DELAY as a valid SQE operation 2025-04-30 09:48:16 +02:00
sd sd: correct mismatched comment for CONFIG_SDMMC_STACK 2025-03-31 21:59:40 +02:00
secure_storage secure_storage: its: transform: improve expandability 2025-05-27 15:46:37 +02:00
sensing
settings settings: replace [[maybe_unused]] by __maybe_unused 2025-05-15 22:13:49 +02:00
shell shell: mqtt: use ring_buf_reset to flush rx_rb 2025-04-09 22:06:05 +02:00
sip_svc
stats
storage storage/flash_map: Fix is_in_flash_area_bounds 2025-05-05 10:57:51 +02:00
task_wdt task_wdt: Add suspend and resume API functions 2025-04-02 13:05:14 +02:00
testsuite Revert "testsuite: ztest: Add validation of zassert strings" 2025-05-22 11:58:43 -04:00
timing
tracing kernel: kheap: decouple simple alloc from aligned_alloc 2025-04-01 22:13:04 +02:00
usb usbc: Enable VBUS measurement before VBUS check level 2025-05-27 11:50:29 +02:00
zbus zbus: Improve consistency with runtime observers 2025-05-16 09:37:20 +02:00
CMakeLists.txt pmci: Move MCTP into the PMCI subsys 2025-04-21 12:43:33 +02:00
Kconfig pmci: Move MCTP into the PMCI subsys 2025-04-21 12:43:33 +02:00