C++ driver for the ST Teseo-LIV3 GPS module.

goals:
- Teseo lib code does not need to know what the target microcontroller is.
- Teseo lib code does not need to know if the project uses I2C or UART
- controller and protocol functionality is provided by the user's project code. It has to plug in a reader and writer function.
- lean, for embedded evelopment
1: Pico and I2C support
2: Dynamic GPS configuration (and some other things)
Requires a toolchain that supports C++ modules. Tested with CMake 3.26 and GCC 14.2.1
depends on module callbackmanager
cmake example:
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmodules-ts")
add_executable(${CMAKE_PROJECT_NAME})
target_sources(${CMAKE_PROJECT_NAME}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/teseo/teseo.cpp
)
target_sources(${CMAKE_PROJECT_NAME}
PUBLIC
FILE_SET cxx_modules TYPE CXX_MODULES FILES
${CMAKE_CURRENT_SOURCE_DIR}/callbackmanager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/teseo/teseo_iface.cpp
)