diff --git a/apps/data_logger/src/main.c b/apps/data_logger/src/main.c index 427e74782..b4e5785eb 100644 --- a/apps/data_logger/src/main.c +++ b/apps/data_logger/src/main.c @@ -54,7 +54,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 5 * SEC_PER_MIN, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_UDP, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE | TASK_TDF_LOGGER_LOG_BATTERY | @@ -69,7 +69,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 2, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV | TDF_DATA_LOGGER_SERIAL, .random_delay_ms = 1000, @@ -89,7 +89,7 @@ static const struct task_schedule schedules[] = { .tdf_mask = TASK_IMU_LOG_ACC | TASK_IMU_LOG_GYR, }, }, - .task_args.infuse.imu = + .task_args.imu = { .accelerometer = { @@ -117,7 +117,7 @@ static const struct task_schedule schedules[] = { .tdf_mask = TASK_GNSS_LOG_PVT, }, }, - .task_args.infuse.gnss = + .task_args.gnss = { .flags = TASK_GNSS_FLAGS_RUN_FOREVER | TASK_GNSS_FLAGS_PERFORMANCE_MODE, diff --git a/apps/gateway_lte/src/main.c b/apps/gateway_lte/src/main.c index d9743f213..a08916dd8 100644 --- a/apps/gateway_lte/src/main.c +++ b/apps/gateway_lte/src/main.c @@ -50,7 +50,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 5 * SEC_PER_MIN, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_UDP, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE | TASK_TDF_LOGGER_LOG_BATTERY | @@ -62,7 +62,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER_ALT1, .validity = TASK_VALID_PERMANENTLY_RUNS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 1000, @@ -103,14 +103,14 @@ static const struct task_schedule schedules[] = { .tdf_mask = TASK_GNSS_LOG_LLHA | TASK_GNSS_LOG_FIX_INFO, }, }, - .task_args.infuse.gnss = + .task_args.gnss = { .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX | TASK_GNSS_FLAGS_PERFORMANCE_MODE, /* FIX_OK: 1m accuracy, 10.0 PDOP */ .accuracy_m = 1, .position_dop = 100, - .run_to_fix = + .mode.run_to_fix = { /* 1 minute to get some location knowledge */ .any_fix_timeout = SEC_PER_MIN, @@ -133,7 +133,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .timeout_s = 2 * SEC_PER_MIN, .states_start = TASK_STATES_DEFINE(APP_STATES_GNSS_TRIGGER), - .task_args.infuse.gnss = + .task_args.gnss = { .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX | TASK_GNSS_FLAGS_PERFORMANCE_MODE, diff --git a/apps/gateway_usb/src/main.c b/apps/gateway_usb/src/main.c index 7f1d99c90..c7ad1dbce 100644 --- a/apps/gateway_usb/src/main.c +++ b/apps/gateway_usb/src/main.c @@ -32,7 +32,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = SEC_PER_MIN, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_SERIAL, .random_delay_ms = 1000, diff --git a/apps/gateway_wifi/src/main.c b/apps/gateway_wifi/src/main.c index 36fc5cb13..96e516c36 100644 --- a/apps/gateway_wifi/src/main.c +++ b/apps/gateway_wifi/src/main.c @@ -44,7 +44,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 5, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_UDP, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE | TASK_TDF_LOGGER_LOG_NET_CONN, @@ -53,7 +53,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER_ALT1, .validity = TASK_VALID_PERMANENTLY_RUNS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 4500, diff --git a/apps/lte_tracker/src/main.c b/apps/lte_tracker/src/main.c index f34c3b7d6..d654dccd1 100644 --- a/apps/lte_tracker/src/main.c +++ b/apps/lte_tracker/src/main.c @@ -31,7 +31,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 5 * SEC_PER_MIN, - .task_args.infuse.network_scan = + .task_args.network_scan = { #ifdef CONFIG_WIFI .flags = TASK_NETWORK_SCAN_FLAGS_LTE_CELLS | @@ -72,7 +72,7 @@ static const struct task_schedule schedules[] = { .periodicity_type = TASK_PERIODICITY_AFTER, .periodicity.after.schedule_idx = 0, .periodicity.after.duration_s = 0, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_SERIAL | TDF_DATA_LOGGER_UDP, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE | TASK_TDF_LOGGER_LOG_BATTERY | @@ -85,7 +85,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 2, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_SERIAL, .random_delay_ms = 1000, @@ -111,7 +111,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER_ALT1, .validity = TASK_VALID_PERMANENTLY_RUNS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/doc/embedded/app_features/task_runner.rst b/doc/embedded/app_features/task_runner.rst index 1c67286ee..3f08ca6dc 100644 --- a/doc/embedded/app_features/task_runner.rst +++ b/doc/embedded/app_features/task_runner.rst @@ -72,7 +72,7 @@ need to be tweaked after deployment. { .task_id = TASK_ID_IMU, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.imu = + .task_args.imu = { .accelerometer = { @@ -89,9 +89,29 @@ need to be tweaked after deployment. }, }; -Arguments for custom task implementations can be inserted into -:c:struct:`task_schedule` with the -:kconfig:option:`CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS` option. +Task argument structures, task IDs, and task logging masks are generated from +``scripts/west_commands/cloud_definitions/tasks.json`` by ``west cloudgen``. +Generated headers are written under +``generated/include/infuse/task_runner/tasks``. The task-specific argument +headers define the ``struct task__args`` types and constants such as +``TASK__LOG_*``. The common +``generated/include/infuse/task_runner/tasks/infuse_task_args.h`` header +combines them into :c:union:`task_arguments`, which is embedded directly +as :c:member:`task_schedule.task_args`. + +Downstream applications can add task definitions by providing an extension +``tasks.json`` to ``west cloudgen``: + +.. code-block:: console + + west cloudgen -d path/to/extensions -o path/to/application + +Extension task definitions are merged with the built-in definitions. + +When a downstream task should be included by the generated +``infuse_tasks.h`` aggregate header, the application should provide a matching +task API header such as ``include/infuse/task_runner/tasks/.h``. That +header typically declares the task implementation entry points or helper macros. Updating Task Schedules *********************** diff --git a/generated/include/infuse/task_runner/tasks/audio_dmic_args.h b/generated/include/infuse/task_runner/tasks/audio_dmic_args.h new file mode 100644 index 000000000..1a98766a9 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/audio_dmic_args.h @@ -0,0 +1,43 @@ +/** + * @file + * @brief Autogenerated AUDIO_DMIC task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_AUDIO_DMIC_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_AUDIO_DMIC_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log audio metadata */ + TASK_AUDIO_DMIC_LOG_METADATA = BIT(0), + /** Log raw audio samples */ + TASK_AUDIO_DMIC_LOG_SAMPLES = BIT(1), +}; + +/** Digital microphone task arguments (@ref task_audio_dmic_args) */ +struct task_audio_dmic_args { + /** Requested sample rate in Hz */ + uint32_t sample_rate_hz; + /** Sample gain in dB */ + int8_t gain_db; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_AUDIO_DMIC_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/battery_args.h b/generated/include/infuse/task_runner/tasks/battery_args.h new file mode 100644 index 000000000..471e8d918 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/battery_args.h @@ -0,0 +1,43 @@ +/** + * @file + * @brief Autogenerated BATTERY task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_BATTERY_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_BATTERY_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log battery voltage, charge current and charge percentage */ + TASK_BATTERY_LOG_COMPLETE = BIT(0), + /** Log battery voltage */ + TASK_BATTERY_LOG_VOLTAGE = BIT(1), + /** Log battery charge percentage */ + TASK_BATTERY_LOG_SOC = BIT(2), +}; + +/** Battery task arguments (@ref task_battery_args) */ +struct task_battery_args { + /** Period between measurements, 0 for single shot mode */ + uint16_t repeat_interval_ms; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_BATTERY_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/bt_scanner_args.h b/generated/include/infuse/task_runner/tasks/bt_scanner_args.h new file mode 100644 index 000000000..f45f51b90 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/bt_scanner_args.h @@ -0,0 +1,53 @@ +/** + * @file + * @brief Autogenerated BT_SCANNER task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_BT_SCANNER_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_BT_SCANNER_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log Infuse-IoT Bluetooth packets */ + TASK_BT_SCANNER_LOG_INFUSE_BT = BIT(0), +}; + +/** Bluetooth scanner task operation flags */ +enum task_bt_scanner_flags { + /** Log packets that failed to decrypt */ + TASK_BT_SCANNER_FLAGS_LOG_ENCRYPTED = BIT(0), + /** Only log each device once */ + TASK_BT_SCANNER_FLAGS_FILTER_DUPLICATES = BIT(1), + /** Log observed devices at task termination */ + TASK_BT_SCANNER_FLAGS_DEFER_LOGGING = BIT(2), +}; + +/** Bluetooth scanner task arguments (@ref task_bt_scanner_args) */ +struct task_bt_scanner_args { + /** Scan duration in milliseconds */ + uint32_t duration_ms; + /** Maximum number of packets to log */ + uint8_t max_logs; + /** Operation flags */ + uint8_t flags; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_BT_SCANNER_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/environmental_args.h b/generated/include/infuse/task_runner/tasks/environmental_args.h new file mode 100644 index 000000000..e29ab77e9 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/environmental_args.h @@ -0,0 +1,41 @@ +/** + * @file + * @brief Autogenerated ENVIRONMENTAL task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_ENVIRONMENTAL_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_ENVIRONMENTAL_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log temperature, pressure and humidity */ + TASK_ENVIRONMENTAL_LOG_TPH = BIT(0), + /** Log temperature */ + TASK_ENVIRONMENTAL_LOG_T = BIT(1), + /** Log pressure */ + TASK_ENVIRONMENTAL_LOG_P = BIT(2), +}; + +/** Environmental task arguments (@ref task_environmental_args) */ +struct task_environmental_args { +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_ENVIRONMENTAL_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/gnss_args.h b/generated/include/infuse/task_runner/tasks/gnss_args.h new file mode 100644 index 000000000..bc5a13f20 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/gnss_args.h @@ -0,0 +1,123 @@ +/** + * @file + * @brief Autogenerated GNSS task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_GNSS_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_GNSS_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log latitude, longitude, height and accuracy */ + TASK_GNSS_LOG_LLHA = BIT(0), + /** Log fix information */ + TASK_GNSS_LOG_FIX_INFO = BIT(1), + /** Log maximum information position, velocity and time */ + TASK_GNSS_LOG_PVT = BIT(7), +}; + +/** GNSS constellation mask */ +enum task_gnss_constellations { + /** GPS constellation */ + TASK_GNSS_CONSTELLATIONS_GPS = BIT(0), + /** GLONASS constellation */ + TASK_GNSS_CONSTELLATIONS_GLONASS = BIT(1), + /** Galileo constellation */ + TASK_GNSS_CONSTELLATIONS_GALILEO = BIT(2), + /** BeiDou constellation */ + TASK_GNSS_CONSTELLATIONS_BEIDOU = BIT(3), + /** QZSS constellation */ + TASK_GNSS_CONSTELLATIONS_QZSS = BIT(4), + /** IRNSS constellation */ + TASK_GNSS_CONSTELLATIONS_IRNSS = BIT(5), + /** SBAS constellation */ + TASK_GNSS_CONSTELLATIONS_SBAS = BIT(6), + /** IMES constellation */ + TASK_GNSS_CONSTELLATIONS_IMES = BIT(7), +}; + +/** GNSS task operation flags */ +enum task_gnss_flags { + /** Runs until terminated by the scheduler */ + TASK_GNSS_FLAGS_RUN_FOREVER = 0, + /** Terminates when the location is known to specified accuracy */ + TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX = 1, + /** Terminates when the time has been synced */ + TASK_GNSS_FLAGS_RUN_TO_TIME_SYNC = 2, + /** Run-until mask */ + TASK_GNSS_FLAGS_RUN_MASK = 3, + /** Run GNSS in low power mode */ + TASK_GNSS_FLAGS_LOW_POWER_MODE = 0, + /** Run GNSS in performance mode */ + TASK_GNSS_FLAGS_PERFORMANCE_MODE = BIT(7), +}; + +/** GNSS fix plateau detection arguments */ +struct schedule_struct_task_gnss_plateau_args { + /** Plateau detection only enabled once accuracy reaches this level */ + uint8_t min_accuracy_m; + /** Location accuracy must improve by at least this many meters */ + uint8_t min_accuracy_improvement_m; + /** Timeout for accuracy to improve by min_accuracy_improvement_m */ + uint8_t timeout; +} __packed; + +/** GNSS run-to-location-fix specific arguments */ +struct schedule_struct_task_gnss_run_to_fix_args { + /** Terminate fix if this duration passes without any location information */ + uint8_t any_fix_timeout; + /** Plateau detection configuration */ + struct schedule_struct_task_gnss_plateau_args fix_plateau; +} __packed; + +/** GNSS low-power-mode specific arguments */ +struct schedule_struct_task_gnss_low_power_args { + /** Duration to search for any GNSS signals, 0 for no timeout */ + uint16_t acquisition_timeout; + /** Period between acquisition searches on timeout */ + uint16_t search_period; +} __packed; + +/** GNSS mode-specific argument overlay */ +union schedule_union_task_gnss_mode_args { + /** TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX specific arguments */ + struct schedule_struct_task_gnss_run_to_fix_args run_to_fix; + /** TASK_GNSS_FLAGS_LOW_POWER_MODE specific arguments */ + struct schedule_struct_task_gnss_low_power_args low_power; +}; + +/** GNSS task arguments (@ref task_gnss_args) */ +struct task_gnss_args { + /** Constellations GNSS_SYSTEM_*, 0 for receiver default */ + uint8_t constellations; + /** Operational flags */ + uint8_t flags; + /** Accuracy in meters */ + uint16_t accuracy_m; + /** Dilution of precision, scaled by 0.1 */ + uint16_t position_dop; + /** Mode-specific arguments selected by flags */ + union schedule_union_task_gnss_mode_args mode; + /** Dynamic model from ubx_cfg_key_navspg_dynmodel */ + uint8_t dynamic_model; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_GNSS_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/imu_args.h b/generated/include/infuse/task_runner/tasks/imu_args.h new file mode 100644 index 000000000..d2a99d126 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/imu_args.h @@ -0,0 +1,89 @@ +/** + * @file + * @brief Autogenerated IMU task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_IMU_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_IMU_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log accelerometer samples */ + TASK_IMU_LOG_ACC = BIT(0), + /** Log gyroscope samples */ + TASK_IMU_LOG_GYR = BIT(1), + /** Log magnetometer samples */ + TASK_IMU_LOG_MAG = BIT(2), +}; + +/** IMU task operation flags */ +enum task_imu_flags { + /** Run IMU in low power mode */ + TASK_IMU_FLAGS_LOW_POWER_MODE = BIT(0), +}; + +/** IMU accelerometer configuration */ +struct schedule_struct_task_imu_accelerometer { + /** Sample rate in Hz */ + uint16_t rate_hz; + /** Accelerometer measurement range in g */ + uint8_t range_g; + /** Structure padding */ + uint8_t pad; +} __packed; + +/** IMU gyroscope configuration */ +struct schedule_struct_task_imu_gyroscope { + /** Sample rate in Hz */ + uint16_t rate_hz; + /** Gyroscope measurement range in degrees per second */ + uint16_t range_dps; + /** Structure padding */ + uint8_t pad; +} __packed; + +/** IMU magnetometer configuration */ +struct schedule_struct_task_imu_magnetometer { + /** Sample rate in Hz */ + uint16_t rate_hz; + /** Magnetometer measurement range in gauss */ + uint8_t range_gauss; + /** Structure padding */ + uint8_t pad; +} __packed; + +/** IMU task arguments (@ref task_imu_args) */ +struct task_imu_args { + /** Accelerometer configuration */ + struct schedule_struct_task_imu_accelerometer accelerometer; + /** Gyroscope configuration */ + struct schedule_struct_task_imu_gyroscope gyroscope; + /** Magnetometer configuration */ + struct schedule_struct_task_imu_magnetometer magnetometer; + /** Requested number of samples to buffer in FIFO */ + uint16_t fifo_sample_buffer; + /** Run for this many buffers then terminate */ + uint8_t num_buffers; + /** Operational flags */ + uint8_t flags; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_IMU_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/infuse_task_args.h b/generated/include/infuse/task_runner/tasks/infuse_task_args.h similarity index 73% rename from include/infuse/task_runner/tasks/infuse_task_args.h rename to generated/include/infuse/task_runner/tasks/infuse_task_args.h index 3ff80550a..c58ff1544 100644 --- a/include/infuse/task_runner/tasks/infuse_task_args.h +++ b/generated/include/infuse/task_runner/tasks/infuse_task_args.h @@ -1,24 +1,26 @@ /** * @file - * @brief Task Runner Infuse-IoT task arguments + * @brief Autogenerated Task Runner Infuse-IoT task arguments * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED * * SPDX-License-Identifier: FSL-1.1-ALv2 */ -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ -#include +#include +#include #include -#include #include #include -#include -#include #include +#include #include +#include #ifdef __cplusplus extern "C" { @@ -30,8 +32,8 @@ extern "C" { * @{ */ -union infuse_task_arguments { - struct task_audio_dmic_args audio_dmic; +union task_arguments { + uint8_t raw[17]; struct task_tdf_logger_args tdf_logger; struct task_imu_args imu; struct task_battery_args battery; @@ -40,6 +42,7 @@ union infuse_task_arguments { struct task_network_scan_args network_scan; struct task_bt_scanner_args bt_scanner; struct task_soc_temperature_args soc_temperature; + struct task_audio_dmic_args audio_dmic; }; /** @@ -50,4 +53,4 @@ union infuse_task_arguments { } #endif -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ */ +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/infuse_task_ids.h b/generated/include/infuse/task_runner/tasks/infuse_task_ids.h new file mode 100644 index 000000000..05597e399 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/infuse_task_ids.h @@ -0,0 +1,58 @@ +/** + * @file + * @brief Autogenerated task runner task IDs + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief infuse_task_ids API + * @defgroup infuse_task_ids_apis infuse_task_ids APIs + * @{ + */ + +enum infuse_task_ids { + /** TDF logger task arguments (@ref task_tdf_logger_args) */ + TASK_ID_TDF_LOGGER = 0, + /** IMU task arguments (@ref task_imu_args) */ + TASK_ID_IMU = 1, + /** Battery task arguments (@ref task_battery_args) */ + TASK_ID_BATTERY = 2, + /** Environmental task arguments (@ref task_environmental_args) */ + TASK_ID_ENVIRONMENTAL = 3, + /** GNSS task arguments (@ref task_gnss_args) */ + TASK_ID_GNSS = 4, + /** Network scan task arguments (@ref task_network_scan_args) */ + TASK_ID_NETWORK_SCAN = 5, + /** Bluetooth scanner task arguments (@ref task_bt_scanner_args) */ + TASK_ID_BT_SCANNER = 6, + /** TDF logger alternate instance 1 task ID */ + TASK_ID_TDF_LOGGER_ALT1 = 7, + /** TDF logger alternate instance 2 task ID */ + TASK_ID_TDF_LOGGER_ALT2 = 8, + /** SoC temperature task arguments (@ref task_soc_temperature_args) */ + TASK_ID_SOC_TEMPERATURE = 9, + /** Digital microphone task arguments (@ref task_audio_dmic_args) */ + TASK_ID_AUDIO_DMIC = 10, +}; + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ */ diff --git a/include/infuse/task_runner/tasks/infuse_tasks.h b/generated/include/infuse/task_runner/tasks/infuse_tasks.h similarity index 63% rename from include/infuse/task_runner/tasks/infuse_tasks.h rename to generated/include/infuse/task_runner/tasks/infuse_tasks.h index bb3a24caa..75308fb6e 100644 --- a/include/infuse/task_runner/tasks/infuse_tasks.h +++ b/generated/include/infuse/task_runner/tasks/infuse_tasks.h @@ -1,24 +1,26 @@ /** * @file - * @brief Task Runner Infuse-IoT tasks + * @brief Autogenerated Task Runner Infuse-IoT tasks * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED * * SPDX-License-Identifier: FSL-1.1-ALv2 */ -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ /* Simple list of infuse tasks to simplify application includes */ -#include +#include +#include #include -#include #include -#include #include #include -#include +#include #include +#include -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ */ +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/network_scan_args.h b/generated/include/infuse/task_runner/tasks/network_scan_args.h new file mode 100644 index 000000000..b68888df9 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/network_scan_args.h @@ -0,0 +1,85 @@ +/** + * @file + * @brief Autogenerated NETWORK_SCAN task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_NETWORK_SCAN_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_NETWORK_SCAN_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log LTE TAC cells */ + TASK_NETWORK_SCAN_LOG_LTE_CELLS = BIT(0), + /** Log Wi-Fi access point information */ + TASK_NETWORK_SCAN_LOG_WIFI_AP = BIT(1), + /** Log network scan count */ + TASK_NETWORK_SCAN_LOG_COUNT = BIT(2), +}; + +/** Network scan task operation flags */ +enum task_network_scan_flags { + /** Scan nearby LTE cells */ + TASK_NETWORK_SCAN_FLAGS_LTE_CELLS = BIT(0), + /** Scan nearby Wi-Fi access points */ + TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS = BIT(1), + /** Skip LTE scan if desired_aps Wi-Fi access points are found */ + TASK_NETWORK_SCAN_FLAGS_SKIP_LTE_IF_WIFI_GOOD = BIT(7), +}; + +/** Network scan Wi-Fi operation flags */ +enum task_network_scan_wifi_flags { + /** Report multiple networks from the same access point */ + TASK_NETWORK_SCAN_WIFI_FLAGS_INCLUDE_DUPLICATES = BIT(0), + /** Scan Wi-Fi channels over multiple calls in order of most to least common */ + TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_PROGRESSIVE = BIT(1), + /** Use active scanning */ + TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_ACTIVE = BIT(2), + /** Report networks using locally administered BSSIDs */ + TASK_NETWORK_SCAN_WIFI_FLAGS_INCLUDE_LOCALLY_ADMINISTERED = BIT(3), +}; + +/** Network scan Wi-Fi access point scanning arguments */ +struct schedule_struct_task_network_scan_wifi_args { + /** TASK_NETWORK_SCAN_WIFI_FLAGS_* value */ + uint8_t flags; + /** Number of unique access points wanted */ + uint8_t desired_aps; + /** Maximum number of access points to report */ + uint8_t max_aps; +} __packed; + +/** Network scan LTE cell scanning arguments */ +struct schedule_struct_task_network_scan_lte_args { + /** Number of LTE cells wanted */ + uint8_t desired_cells; +} __packed; + +/** Network scan task arguments (@ref task_network_scan_args) */ +struct task_network_scan_args { + /** Meta operation flags */ + uint8_t flags; + /** Wi-Fi AP scanning arguments */ + struct schedule_struct_task_network_scan_wifi_args wifi; + /** LTE cell scanning arguments */ + struct schedule_struct_task_network_scan_lte_args lte; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_NETWORK_SCAN_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/soc_temperature_args.h b/generated/include/infuse/task_runner/tasks/soc_temperature_args.h new file mode 100644 index 000000000..92e6bea59 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/soc_temperature_args.h @@ -0,0 +1,37 @@ +/** + * @file + * @brief Autogenerated SOC_TEMPERATURE task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_SOC_TEMPERATURE_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_SOC_TEMPERATURE_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log SoC temperature */ + TASK_SOC_TEMPERATURE_LOG_T = BIT(0), +}; + +/** SoC temperature task arguments (@ref task_soc_temperature_args) */ +struct task_soc_temperature_args { +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_SOC_TEMPERATURE_ARGS_H_ */ diff --git a/generated/include/infuse/task_runner/tasks/tdf_logger_args.h b/generated/include/infuse/task_runner/tasks/tdf_logger_args.h new file mode 100644 index 000000000..8711a3675 --- /dev/null +++ b/generated/include/infuse/task_runner/tasks/tdf_logger_args.h @@ -0,0 +1,89 @@ +/** + * @file + * @brief Autogenerated TDF_LOGGER task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_TDF_LOGGER_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_TDF_LOGGER_ARGS_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + /** Log announcement TDFs */ + TASK_TDF_LOGGER_LOG_ANNOUNCE = BIT(0), + /** Log battery TDFs */ + TASK_TDF_LOGGER_LOG_BATTERY = BIT(1), + /** Log ambient environmental TDFs */ + TASK_TDF_LOGGER_LOG_AMBIENT_ENV = BIT(2), + /** Log location TDFs */ + TASK_TDF_LOGGER_LOG_LOCATION = BIT(3), + /** Log accelerometer TDFs */ + TASK_TDF_LOGGER_LOG_ACCEL = BIT(4), + /** Log network connection TDFs */ + TASK_TDF_LOGGER_LOG_NET_CONN = BIT(5), + /** Log custom TDFs */ + TASK_TDF_LOGGER_LOG_CUSTOM = BIT(6), + /** Log SoC temperature TDFs */ + TASK_TDF_LOGGER_LOG_SOC_TEMPERATURE = BIT(7), +}; + +/** TDF logger task TDF mask */ +enum task_tdf_logger_logs { + /** Log announcement TDFs */ + TASK_TDF_LOGGER_LOGS_ANNOUNCE = BIT(0), + /** Log battery TDFs */ + TASK_TDF_LOGGER_LOGS_BATTERY = BIT(1), + /** Log ambient environmental TDFs */ + TASK_TDF_LOGGER_LOGS_AMBIENT_ENV = BIT(2), + /** Log location TDFs */ + TASK_TDF_LOGGER_LOGS_LOCATION = BIT(3), + /** Log accelerometer TDFs */ + TASK_TDF_LOGGER_LOGS_ACCEL = BIT(4), + /** Log network connection TDFs */ + TASK_TDF_LOGGER_LOGS_NET_CONN = BIT(5), + /** Log custom TDFs */ + TASK_TDF_LOGGER_LOGS_CUSTOM = BIT(6), + /** Log SoC temperature TDFs */ + TASK_TDF_LOGGER_LOGS_SOC_TEMPERATURE = BIT(7), +}; + +/** TDF logger task operation flags */ +enum task_tdf_logger_flags { + /** Do not flush logger after logging */ + TASK_TDF_LOGGER_FLAGS_NO_FLUSH = BIT(0), +}; + +/** TDF logger task arguments (@ref task_tdf_logger_args) */ +struct task_tdf_logger_args { + /** Mask of TDF_DATA_LOGGER_* to log to */ + uint8_t loggers; + /** Reschedule next log in this many milliseconds */ + uint16_t logging_period_ms; + /** Randomise delay before logging */ + uint16_t random_delay_ms; + /** TDFs to log */ + uint16_t tdfs; + /** Operation flags */ + uint8_t flags; + /** Only log this many TDFs per run */ + uint8_t per_run; +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_TDF_LOGGER_ARGS_H_ */ diff --git a/include/infuse/task_runner/schedule.h b/include/infuse/task_runner/schedule.h index 3b95d6698..179028c15 100644 --- a/include/infuse/task_runner/schedule.h +++ b/include/infuse/task_runner/schedule.h @@ -18,10 +18,6 @@ #include -#ifdef CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS -#include CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS_PATH -#endif /* CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS */ - #ifdef __cplusplus extern "C" { #endif @@ -229,15 +225,12 @@ struct task_schedule { /** Task logging configuration */ struct task_schedule_tdf_logging task_logging[2]; /** Task specific arguments */ - union task_args { - uint8_t raw[16]; - union infuse_task_arguments infuse; -#ifdef CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS - union custom_task_arguments custom; -#endif /* CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS */ - } task_args; + union task_arguments task_args; } __packed; +/** Validate argument union hasn't expanded */ +BUILD_ASSERT(sizeof(union task_arguments) == 17); + /** Events that can trigger callbacks */ enum task_schedule_event { /** Task associated with the schedule has been started */ diff --git a/include/infuse/task_runner/tasks/audio_dmic_args.h b/include/infuse/task_runner/tasks/audio_dmic_args.h deleted file mode 100644 index e573aa659..000000000 --- a/include/infuse/task_runner/tasks/audio_dmic_args.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file - * @brief Digital microphone task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_AUDIO_DMIC_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_AUDIO_DMIC_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - /* Log audio metadata (sample rate) */ - TASK_AUDIO_DMIC_LOG_METADATA = BIT(0), - /* Log raw audio samples */ - TASK_AUDIO_DMIC_LOG_SAMPLES = BIT(1), -}; - -/** @brief AUDIO_DMIC task arguments */ -struct task_audio_dmic_args { - /* Requested sample rate in Hz */ - uint32_t sample_rate_hz; - /* Sample gain */ - int8_t gain_db; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_AUDIO_DMIC_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/battery.h b/include/infuse/task_runner/tasks/battery.h index 84e24fb44..ec939b192 100644 --- a/include/infuse/task_runner/tasks/battery.h +++ b/include/infuse/task_runner/tasks/battery.h @@ -18,7 +18,6 @@ #include #include -#include #ifdef __cplusplus extern "C" { diff --git a/include/infuse/task_runner/tasks/battery_args.h b/include/infuse/task_runner/tasks/battery_args.h deleted file mode 100644 index d077e63cf..000000000 --- a/include/infuse/task_runner/tasks/battery_args.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file - * @brief Battery task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_BATTERY_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_BATTERY_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - /* Battery voltage, charge current, charge percentage */ - TASK_BATTERY_LOG_COMPLETE = BIT(0), - /* Battery voltage */ - TASK_BATTERY_LOG_VOLTAGE = BIT(1), - /* Battery charge percentage */ - TASK_BATTERY_LOG_SOC = BIT(2), -}; - -/** @brief Battery task arguments */ -struct task_battery_args { - /* Period between measurements (0 for single shot mode) */ - uint16_t repeat_interval_ms; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_BATTERY_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/bt_scanner_args.h b/include/infuse/task_runner/tasks/bt_scanner_args.h deleted file mode 100644 index 3d1b4a096..000000000 --- a/include/infuse/task_runner/tasks/bt_scanner_args.h +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file - * @brief Bluetooth scanner task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_BT_SCANNER_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_BT_SCANNER_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - TASK_BT_SCANNER_LOG_INFUSE_BT = BIT(0), -}; - -enum { - /* Log packets that failed to decrypt */ - TASK_BT_SCANNER_FLAGS_LOG_ENCRYPTED = BIT(0), - /* Only log each device once */ - TASK_BT_SCANNER_FLAGS_FILTER_DUPLICATES = BIT(1), - /* Log observed devices at task termination */ - TASK_BT_SCANNER_FLAGS_DEFER_LOGGING = BIT(2), -}; - -/** @brief Bluetooth scanner task arguments */ -struct task_bt_scanner_args { - uint32_t duration_ms; - uint8_t max_logs; - uint8_t flags; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_BT_SCANNER_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/environmental_args.h b/include/infuse/task_runner/tasks/environmental_args.h deleted file mode 100644 index b0bfdf244..000000000 --- a/include/infuse/task_runner/tasks/environmental_args.h +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @file - * @brief Environmental task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_ENVIRONMENTAL_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_ENVIRONMENTAL_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - /* Temperature, Pressure, Humidity */ - TASK_ENVIRONMENTAL_LOG_TPH = BIT(0), - /* Temperature */ - TASK_ENVIRONMENTAL_LOG_T = BIT(1), - /* Pressure */ - TASK_ENVIRONMENTAL_LOG_P = BIT(2), -}; - -/** @brief Environmental task arguments */ -struct task_environmental_args { -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_ENVIRONMENTAL_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/gnss.h b/include/infuse/task_runner/tasks/gnss.h index cb1caae5a..e94d5ba44 100644 --- a/include/infuse/task_runner/tasks/gnss.h +++ b/include/infuse/task_runner/tasks/gnss.h @@ -11,16 +11,30 @@ #define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_H_ #include +#include #include #include +#include #include +/* UBLOX definitions are used since they are more specific than generic Zephyr */ +#include + #ifdef __cplusplus extern "C" { #endif +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_GPS == (uint32_t)GNSS_SYSTEM_GPS); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_GLONASS == (uint32_t)GNSS_SYSTEM_GLONASS); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_GALILEO == (uint32_t)GNSS_SYSTEM_GALILEO); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_BEIDOU == (uint32_t)GNSS_SYSTEM_BEIDOU); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_QZSS == (uint32_t)GNSS_SYSTEM_QZSS); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_IRNSS == (uint32_t)GNSS_SYSTEM_IRNSS); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_SBAS == (uint32_t)GNSS_SYSTEM_SBAS); +BUILD_ASSERT((uint32_t)TASK_GNSS_CONSTELLATIONS_IMES == (uint32_t)GNSS_SYSTEM_IMES); + #ifdef CONFIG_TASK_RUNNER_TASK_GNSS_THREAD /** diff --git a/include/infuse/task_runner/tasks/gnss_args.h b/include/infuse/task_runner/tasks/gnss_args.h deleted file mode 100644 index b1e9ed742..000000000 --- a/include/infuse/task_runner/tasks/gnss_args.h +++ /dev/null @@ -1,110 +0,0 @@ -/** - * @file - * @brief GNSS task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_ARGS_H_ - -#include - -#include - -/* UBLOX definitions are used since they are more specific than generic Zephyr */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - TASK_GNSS_LOG_LLHA = BIT(0), - TASK_GNSS_LOG_FIX_INFO = BIT(1), - /* Maximum information Position-Velocity-Time */ - TASK_GNSS_LOG_PVT = BIT(7), -}; - -enum { - /** Runs until terminated by the scheduler */ - TASK_GNSS_FLAGS_RUN_FOREVER = 0, - /** Terminates when the location is known to specified accuracy, implies performance mode */ - TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX = 1, - /** Terminates when the time has been synced, implies performance mode */ - TASK_GNSS_FLAGS_RUN_TO_TIME_SYNC = 2, - /** Bits 1-0: Run until */ - TASK_GNSS_FLAGS_RUN_MASK = 0x3, - /** Bit 7: Performance mode */ - TASK_GNSS_FLAGS_PERFORMANCE_MODE = BIT(7), - /** - * Note that the configured accuracy and position values for this mode do not equate to - * targeted or expected accuracies. Instead they specify thresholds for checking whether - * a fix has been obtained or if the modem should stop and try again later. - */ - TASK_GNSS_FLAGS_LOW_POWER_MODE = 0x00, -}; - -/** @brief GNSS task arguments */ -struct task_gnss_args { - /** Constellations `GNSS_SYSTEM_*` (0 == receiver default) */ - uint8_t constellations; - /** Operational flags */ - uint8_t flags; - /** - * Accuracy (meters) - * - * For Microntroller based checks (@a TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX) this is the - * horizontal accuracy. For GNSS modem implemented functionality, this may be 3D accuracy. - * - * In @a TASK_GNSS_FLAGS_LOW_POWER_MODE, sets accuracy to transition to low power mode. - * In @a TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, sets accuracy to terminate at. - */ - uint16_t accuracy_m; - /** - * Diluation of precision (0.1) - * - * For Microntroller based checks (@a TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX) this is the - * horizontal DOP. For GNSS modem implemented functionality, this may be 3D DOP. - * - * In @a TASK_GNSS_FLAGS_LOW_POWER_MODE, sets accuracy to transition to low power mode. - * In @a TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, sets PDOP to terminate at. - */ - uint16_t position_dop; - union { - /** @a TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX specific arguments */ - struct { - /** Terminate fix if this duration passes without any location information - */ - uint8_t any_fix_timeout; - /** Terminate fix if the accuracy plateaus */ - struct task_gnss_plateau_args { - /** Plateau detection only enabled once accuracy reaches this level - */ - uint8_t min_accuracy_m; - /** Location accuracy must improve by at least this many meters */ - uint8_t min_accuracy_improvement_m; - /** Timeout for accuracy to improve by @a min_accuracy_improvement - */ - uint8_t timeout; - } fix_plateau; - } run_to_fix; - /** @a TASK_GNSS_FLAGS_LOW_POWER_MODE specific arguments */ - struct { - /** Duration to search for any GNSS signals (0 == no timeout) */ - uint16_t acquisition_timeout; - /** Period between acquisition searches on timeout */ - uint16_t search_period; - } low_power; - }; - /** Dynamic model from @ref ubx_cfg_key_navspg_dynmodel */ - uint8_t dynamic_model; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/imu_args.h b/include/infuse/task_runner/tasks/imu_args.h deleted file mode 100644 index 2a50a2d56..000000000 --- a/include/infuse/task_runner/tasks/imu_args.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - * @file - * @brief IMU task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_IMU_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_IMU_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - TASK_IMU_LOG_ACC = BIT(0), - TASK_IMU_LOG_GYR = BIT(1), - TASK_IMU_LOG_MAG = BIT(2), -}; - -enum { - TASK_IMU_FLAGS_LOW_POWER_MODE = BIT(0), -}; - -/** @brief IMU task arguments */ -struct task_imu_args { - /** Accelerometer configuration */ - struct { - uint16_t rate_hz; - uint8_t range_g; - uint8_t pad; - } __packed accelerometer; - /** Gyroscope configuration */ - struct { - uint16_t rate_hz; - uint16_t range_dps; - uint8_t pad; - } __packed gyroscope; - /** Magnetometer configuration */ - struct { - uint16_t rate_hz; - uint8_t range_gauss; - uint8_t pad; - } __packed magnetometer; - /** Requested number of samples to buffer in FIFO */ - uint16_t fifo_sample_buffer; - /** Run for this many buffers then terminate */ - uint8_t num_buffers; - /** Operational flags */ - uint8_t flags; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_IMU_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/infuse_task_ids.h b/include/infuse/task_runner/tasks/infuse_task_ids.h deleted file mode 100644 index 4dbb0aee6..000000000 --- a/include/infuse/task_runner/tasks/infuse_task_ids.h +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file - * @brief - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief infuse_task_ids API - * @defgroup infuse_task_ids_apis infuse_task_ids APIs - * @{ - */ - -enum infuse_task_ids { - TASK_ID_TDF_LOGGER = 0, - TASK_ID_IMU = 1, - TASK_ID_BATTERY = 2, - TASK_ID_ENVIRONMENTAL = 3, - TASK_ID_GNSS = 4, - TASK_ID_NETWORK_SCAN = 5, - TASK_ID_BT_SCANNER = 6, - TASK_ID_TDF_LOGGER_ALT1 = 7, - TASK_ID_TDF_LOGGER_ALT2 = 8, - TASK_ID_SOC_TEMPERATURE = 9, - TASK_ID_AUDIO_DMIC = 10, -}; - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ */ diff --git a/include/infuse/task_runner/tasks/network_scan_args.h b/include/infuse/task_runner/tasks/network_scan_args.h deleted file mode 100644 index 71305dcd1..000000000 --- a/include/infuse/task_runner/tasks/network_scan_args.h +++ /dev/null @@ -1,91 +0,0 @@ -/** - * @file - * @brief Network scan task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_NETWORK_SCAN_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_NETWORK_SCAN_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - /** @ref TDF_LTE_TAC_CELLS */ - TASK_NETWORK_SCAN_LOG_LTE_CELLS = BIT(0), - /** @ref TDF_WIFI_AP_INFO */ - TASK_NETWORK_SCAN_LOG_WIFI_AP = BIT(1), - /** @ref TDF_NETWORK_SCAN_COUNT */ - TASK_NETWORK_SCAN_LOG_COUNT = BIT(2), -}; - -enum { - /** Scan nearby LTE cells */ - TASK_NETWORK_SCAN_FLAGS_LTE_CELLS = BIT(0), - /** Scan nearby Wi-Fi access points */ - TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS = BIT(1), - /** Skip LTE scan if @a desired_aps Wi-Fi access points found */ - TASK_NETWORK_SCAN_FLAGS_SKIP_LTE_IF_WIFI_GOOD = BIT(7), -}; - -enum { - /** - * A single access point can broadcast multiple networks simultaneously. - * This can usually be detected through the BSSID, which is the same for all networks - * being broadcast except the least significant nibble (4 bits). - * Reporting multiple networks from the same AP is generally not useful for localisation - * purposes. When set, multiple networks from the same AP will be reported anyway. - */ - TASK_NETWORK_SCAN_WIFI_FLAGS_INCLUDE_DUPLICATES = BIT(0), - /** If enabled, scan Wi-Fi channels over multiple calls in order of most to least - * common. Scanning terminates as soon as @a desired_aps is reached. - */ - TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_PROGRESSIVE = BIT(1), - /** Active scanning, default is passive */ - TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_ACTIVE = BIT(2), - /** - * Reporting networks that use a locally administered BSSID is generally not useful for - * localisation purposes. When set, locally administered BSSIDs' are reported anyway. - */ - TASK_NETWORK_SCAN_WIFI_FLAGS_INCLUDE_LOCALLY_ADMINISTERED = BIT(3), -}; - -/** @brief Network scan task arguments */ -struct task_network_scan_args { - /** Meta operation flags */ - uint8_t flags; - /** Wi-Fi AP scanning arguments */ - struct { - /** Wi-Fi scanning flags */ - uint8_t flags; - /** Number of unique access-points we want */ - uint8_t desired_aps; - /** Maximum number of access-points to report */ - uint8_t max_aps; - } __packed wifi; - /** LTE Cell scanning arguments */ - struct { - /** - * Number of LTE cells we want to report. - * Searching expands to more energy intensive methods until this number is found. - * Value is the summation of the current serving cell, neighbour cells and GCI - * cells. - */ - uint8_t desired_cells; - } __packed lte; - -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_NETWORK_SCAN_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/soc_temperature_args.h b/include/infuse/task_runner/tasks/soc_temperature_args.h deleted file mode 100644 index 0f7b41f5a..000000000 --- a/include/infuse/task_runner/tasks/soc_temperature_args.h +++ /dev/null @@ -1,34 +0,0 @@ -/** - * @file - * @brief SoC temperature task arguments - * @copyright 2025 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_SOC_TEMPERATURE_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_SOC_TEMPERATURE_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - /* Temperature */ - TASK_SOC_TEMPERATURE_LOG_T = BIT(0), -}; - -/** @brief SoC temperature task arguments */ -struct task_soc_temperature_args { -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_SOC_TEMPERATURE_ARGS_H_ */ diff --git a/include/infuse/task_runner/tasks/tdf_logger.h b/include/infuse/task_runner/tasks/tdf_logger.h index 081fc9a43..b98abcfb7 100644 --- a/include/infuse/task_runner/tasks/tdf_logger.h +++ b/include/infuse/task_runner/tasks/tdf_logger.h @@ -14,7 +14,6 @@ #include #include -#include #ifdef __cplusplus extern "C" { diff --git a/include/infuse/task_runner/tasks/tdf_logger_args.h b/include/infuse/task_runner/tasks/tdf_logger_args.h deleted file mode 100644 index 925f3c074..000000000 --- a/include/infuse/task_runner/tasks/tdf_logger_args.h +++ /dev/null @@ -1,61 +0,0 @@ -/** - * @file - * @brief TDF logger task arguments - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_TDF_LOGGER_ARGS_H_ -#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_TDF_LOGGER_ARGS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - TASK_TDF_LOGGER_LOG_ANNOUNCE = BIT(0), - TASK_TDF_LOGGER_LOG_BATTERY = BIT(1), - TASK_TDF_LOGGER_LOG_AMBIENT_ENV = BIT(2), - TASK_TDF_LOGGER_LOG_LOCATION = BIT(3), - TASK_TDF_LOGGER_LOG_ACCEL = BIT(4), - TASK_TDF_LOGGER_LOG_NET_CONN = BIT(5), - TASK_TDF_LOGGER_LOG_CUSTOM = BIT(6), - TASK_TDF_LOGGER_LOG_SOC_TEMPERATURE = BIT(7), -}; - -enum { - /** Don't flush logger after logging (Logs with timestamp) */ - TASK_TDF_LOGGER_FLAGS_NO_FLUSH = BIT(0), -}; - -/** @brief TDF logger task arguments - * - * When @a logging_period_ms is set, the reschedule period is equal to - * @a logging_period_ms plus the random delay from @a random_delay_ms - */ -struct task_tdf_logger_args { - /** Mask of `TDF_DATA_LOGGER_*` to log to */ - uint8_t loggers; - /* Reschedule next log in this many milliseconds */ - uint16_t logging_period_ms; - /* Randomise delay before logging */ - uint16_t random_delay_ms; - /* TDFs to log */ - uint16_t tdfs; - /* Operation flags */ - uint8_t flags; - /* Only log this many TDFs per run */ - uint8_t per_run; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_TDF_LOGGER_ARGS_H_ */ diff --git a/samples/audio/bluetooth_stream/src/main.c b/samples/audio/bluetooth_stream/src/main.c index f73054c8e..c9cc995c4 100644 --- a/samples/audio/bluetooth_stream/src/main.c +++ b/samples/audio/bluetooth_stream/src/main.c @@ -28,7 +28,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/samples/lora_ranging/src/main.c b/samples/lora_ranging/src/main.c index cb90972fd..7b1b69130 100644 --- a/samples/lora_ranging/src/main.c +++ b/samples/lora_ranging/src/main.c @@ -71,7 +71,7 @@ static const struct task_schedule schedules[] = { .tdf_mask = TASK_GNSS_LOG_PVT, }, }, - .task_args.infuse.gnss = + .task_args.gnss = { .constellations = GNSS_SYSTEM_GPS | GNSS_SYSTEM_QZSS | GNSS_SYSTEM_SBAS, @@ -85,7 +85,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/samples/releases/serial/src/main.c b/samples/releases/serial/src/main.c index 6dcb6e51f..f95c446c6 100644 --- a/samples/releases/serial/src/main.c +++ b/samples/releases/serial/src/main.c @@ -31,7 +31,7 @@ static const struct task_schedule schedules[] = { .validity = TASK_VALID_ALWAYS, .periodicity_type = TASK_PERIODICITY_LOCKOUT, .periodicity.lockout.lockout_s = 10, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_SERIAL, .random_delay_ms = 1000, diff --git a/samples/task_runner/audio_dmic/src/main.c b/samples/task_runner/audio_dmic/src/main.c index 5bdd30f15..37f2bc3be 100644 --- a/samples/task_runner/audio_dmic/src/main.c +++ b/samples/task_runner/audio_dmic/src/main.c @@ -31,7 +31,7 @@ static const struct task_schedule schedules[] = { /* Run for 8 seconds every 10 seconds */ .periodicity.lockout.lockout_s = TASK_RUNNER_LOCKOUT_IGNORE_FIRST | 10, .timeout_s = 8, - .task_args.infuse.audio_dmic = + .task_args.audio_dmic = { .sample_rate_hz = 16000, .gain_db = 20, @@ -49,7 +49,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/samples/task_runner/gnss/src/main.c b/samples/task_runner/gnss/src/main.c index b83d3d7e9..60c8bf4af 100644 --- a/samples/task_runner/gnss/src/main.c +++ b/samples/task_runner/gnss/src/main.c @@ -42,7 +42,7 @@ static const struct task_schedule schedules[] = { .tdf_mask = TASK_GNSS_LOG_PVT, }, }, - .task_args.infuse.gnss = + .task_args.gnss = { .constellations = GNSS_SYSTEM_GPS | GNSS_SYSTEM_QZSS | GNSS_SYSTEM_SBAS, @@ -72,7 +72,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/samples/task_runner/gnss_low_power/src/main.c b/samples/task_runner/gnss_low_power/src/main.c index 9685b77e3..b781fac90 100644 --- a/samples/task_runner/gnss_low_power/src/main.c +++ b/samples/task_runner/gnss_low_power/src/main.c @@ -39,7 +39,7 @@ static const struct task_schedule schedules[] = { .periodicity_type = TASK_PERIODICITY_FIXED, .timeout_s = 180, .periodicity.fixed.period_s = 30, - .task_args.infuse.gnss = + .task_args.gnss = { .constellations = GNSS_SYSTEM_GPS | GNSS_SYSTEM_QZSS, .flags = TASK_GNSS_FLAGS_LOW_POWER_MODE | @@ -47,7 +47,7 @@ static const struct task_schedule schedules[] = { .accuracy_m = 100, .position_dop = 250, .dynamic_model = UBX_CFG_NAVSPG_DYNMODEL_AUTOMOTIVE, - .low_power = + .mode.low_power = { .acquisition_timeout = 45, .search_period = 60, @@ -73,7 +73,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/samples/task_runner/imu/src/main.c b/samples/task_runner/imu/src/main.c index a16de88e3..42f21409c 100644 --- a/samples/task_runner/imu/src/main.c +++ b/samples/task_runner/imu/src/main.c @@ -41,7 +41,7 @@ static const struct task_schedule schedules[] = { .tdf_mask = TASK_IMU_LOG_ACC | TASK_IMU_LOG_GYR, }, }, - .task_args.infuse.imu = + .task_args.imu = { .accelerometer = { @@ -60,7 +60,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/samples/task_runner/power/src/main.c b/samples/task_runner/power/src/main.c index a3a9af409..051a63fcb 100644 --- a/samples/task_runner/power/src/main.c +++ b/samples/task_runner/power/src/main.c @@ -41,7 +41,7 @@ static const struct task_schedule schedules[] = { { .task_id = TASK_ID_TDF_LOGGER, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.tdf_logger = + .task_args.tdf_logger = { .loggers = TDF_DATA_LOGGER_BT_ADV, .logging_period_ms = 900, diff --git a/scripts/west_commands/cloud_definitions/tasks.json b/scripts/west_commands/cloud_definitions/tasks.json new file mode 100644 index 000000000..04de9bb8f --- /dev/null +++ b/scripts/west_commands/cloud_definitions/tasks.json @@ -0,0 +1,315 @@ +{ + "structs": { + "schedule_struct_task_imu_accelerometer": { + "description": "IMU accelerometer configuration", + "fields": [ + {"name": "rate_hz", "type": "uint16_t", "description": "Sample rate in Hz"}, + {"name": "range_g", "type": "uint8_t", "description": "Accelerometer measurement range in g"}, + {"name": "pad", "type": "uint8_t", "description": "Structure padding"} + ] + }, + "schedule_struct_task_imu_magnetometer": { + "description": "IMU magnetometer configuration", + "fields": [ + {"name": "rate_hz", "type": "uint16_t", "description": "Sample rate in Hz"}, + {"name": "range_gauss", "type": "uint8_t", "description": "Magnetometer measurement range in gauss"}, + {"name": "pad", "type": "uint8_t", "description": "Structure padding"} + ] + }, + "schedule_struct_task_imu_gyroscope": { + "description": "IMU gyroscope configuration", + "fields": [ + {"name": "rate_hz", "type": "uint16_t", "description": "Sample rate in Hz"}, + {"name": "range_dps", "type": "uint16_t", "description": "Gyroscope measurement range in degrees per second"}, + {"name": "pad", "type": "uint8_t", "description": "Structure padding"} + ] + }, + "schedule_struct_task_gnss_plateau_args": { + "description": "GNSS fix plateau detection arguments", + "fields": [ + {"name": "min_accuracy_m", "type": "uint8_t", "description": "Plateau detection only enabled once accuracy reaches this level"}, + {"name": "min_accuracy_improvement_m", "type": "uint8_t", "description": "Location accuracy must improve by at least this many meters"}, + {"name": "timeout", "type": "uint8_t", "description": "Timeout for accuracy to improve by min_accuracy_improvement_m"} + ] + }, + "schedule_struct_task_gnss_run_to_fix_args": { + "description": "GNSS run-to-location-fix specific arguments", + "fields": [ + {"name": "any_fix_timeout", "type": "uint8_t", "description": "Terminate fix if this duration passes without any location information"}, + {"name": "fix_plateau", "type": "struct schedule_struct_task_gnss_plateau_args", "description": "Plateau detection configuration"} + ] + }, + "schedule_struct_task_gnss_low_power_args": { + "description": "GNSS low-power-mode specific arguments", + "fields": [ + {"name": "acquisition_timeout", "type": "uint16_t", "description": "Duration to search for any GNSS signals, 0 for no timeout"}, + {"name": "search_period", "type": "uint16_t", "description": "Period between acquisition searches on timeout"} + ] + }, + "schedule_struct_task_network_scan_wifi_args": { + "description": "Network scan Wi-Fi access point scanning arguments", + "fields": [ + {"name": "flags", "type": "enum schedule_enum_task_network_scan_wifi_flags", "description": "TASK_NETWORK_SCAN_WIFI_FLAGS_* value"}, + {"name": "desired_aps", "type": "uint8_t", "description": "Number of unique access points wanted"}, + {"name": "max_aps", "type": "uint8_t", "description": "Maximum number of access points to report"} + ] + }, + "schedule_struct_task_network_scan_lte_args": { + "description": "Network scan LTE cell scanning arguments", + "fields": [ + {"name": "desired_cells", "type": "uint8_t", "description": "Number of LTE cells wanted"} + ] + } + }, + "unions": { + "schedule_union_task_gnss_mode_args": { + "description": "GNSS mode-specific argument overlay", + "fields": [ + {"name": "run_to_fix", "type": "struct schedule_struct_task_gnss_run_to_fix_args", "description": "TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX specific arguments"}, + {"name": "low_power", "type": "struct schedule_struct_task_gnss_low_power_args", "description": "TASK_GNSS_FLAGS_LOW_POWER_MODE specific arguments"} + ] + } + }, + "enums": { + "schedule_enum_task_audio_dmic_logs": { + "description": "Digital microphone task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "METADATA", "bit": 0, "description": "Log audio metadata"}, + {"name": "SAMPLES", "bit": 1, "description": "Log raw audio samples"} + ] + }, + "schedule_enum_task_tdf_logger_logs": { + "description": "TDF logger task TDF mask", + "type": "uint16_t", + "values": [ + {"name": "ANNOUNCE", "bit": 0, "description": "Log announcement TDFs"}, + {"name": "BATTERY", "bit": 1, "description": "Log battery TDFs"}, + {"name": "AMBIENT_ENV", "bit": 2, "description": "Log ambient environmental TDFs"}, + {"name": "LOCATION", "bit": 3, "description": "Log location TDFs"}, + {"name": "ACCEL", "bit": 4, "description": "Log accelerometer TDFs"}, + {"name": "NET_CONN", "bit": 5, "description": "Log network connection TDFs"}, + {"name": "CUSTOM", "bit": 6, "description": "Log custom TDFs"}, + {"name": "SOC_TEMPERATURE", "bit": 7, "description": "Log SoC temperature TDFs"} + ] + }, + "schedule_enum_task_tdf_logger_flags": { + "description": "TDF logger task operation flags", + "type": "uint8_t", + "values": [ + {"name": "NO_FLUSH", "bit": 0, "description": "Do not flush logger after logging"} + ] + }, + "schedule_enum_task_imu_flags": { + "description": "IMU task operation flags", + "type": "uint8_t", + "values": [ + {"name": "LOW_POWER_MODE", "bit": 0, "description": "Run IMU in low power mode"} + ] + }, + "schedule_enum_task_imu_logs": { + "description": "IMU task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "ACC", "bit": 0, "description": "Log accelerometer samples"}, + {"name": "GYR", "bit": 1, "description": "Log gyroscope samples"}, + {"name": "MAG", "bit": 2, "description": "Log magnetometer samples"} + ] + }, + "schedule_enum_task_battery_logs": { + "description": "Battery task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "COMPLETE", "bit": 0, "description": "Log battery voltage, charge current and charge percentage"}, + {"name": "VOLTAGE", "bit": 1, "description": "Log battery voltage"}, + {"name": "SOC", "bit": 2, "description": "Log battery charge percentage"} + ] + }, + "schedule_enum_task_environmental_logs": { + "description": "Environmental task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "TPH", "bit": 0, "description": "Log temperature, pressure and humidity"}, + {"name": "T", "bit": 1, "description": "Log temperature"}, + {"name": "P", "bit": 2, "description": "Log pressure"} + ] + }, + "schedule_enum_task_gnss_logs": { + "description": "GNSS task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "LLHA", "bit": 0, "description": "Log latitude, longitude, height and accuracy"}, + {"name": "FIX_INFO", "bit": 1, "description": "Log fix information"}, + {"name": "PVT", "bit": 7, "description": "Log maximum information position, velocity and time"} + ] + }, + "schedule_enum_task_gnss_constellations": { + "description": "GNSS constellation mask", + "type": "uint8_t", + "values": [ + {"name": "GPS", "bit": 0, "description": "GPS constellation"}, + {"name": "GLONASS", "bit": 1, "description": "GLONASS constellation"}, + {"name": "GALILEO", "bit": 2, "description": "Galileo constellation"}, + {"name": "BEIDOU", "bit": 3, "description": "BeiDou constellation"}, + {"name": "QZSS", "bit": 4, "description": "QZSS constellation"}, + {"name": "IRNSS", "bit": 5, "description": "IRNSS constellation"}, + {"name": "SBAS", "bit": 6, "description": "SBAS constellation"}, + {"name": "IMES", "bit": 7, "description": "IMES constellation"} + ] + }, + "schedule_enum_task_gnss_flags": { + "description": "GNSS task operation flags", + "type": "uint8_t", + "values": [ + {"name": "RUN_FOREVER", "value": 0, "description": "Runs until terminated by the scheduler"}, + {"name": "RUN_TO_LOCATION_FIX", "value": 1, "description": "Terminates when the location is known to specified accuracy"}, + {"name": "RUN_TO_TIME_SYNC", "value": 2, "description": "Terminates when the time has been synced"}, + {"name": "RUN_MASK", "value": 3, "description": "Run-until mask"}, + {"name": "LOW_POWER_MODE", "value": 0, "description": "Run GNSS in low power mode"}, + {"name": "PERFORMANCE_MODE", "bit": 7, "description": "Run GNSS in performance mode"} + ] + }, + "schedule_enum_task_network_scan_logs": { + "description": "Network scan task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "LTE_CELLS", "bit": 0, "description": "Log LTE TAC cells"}, + {"name": "WIFI_AP", "bit": 1, "description": "Log Wi-Fi access point information"}, + {"name": "COUNT", "bit": 2, "description": "Log network scan count"} + ] + }, + "schedule_enum_task_network_scan_flags": { + "description": "Network scan task operation flags", + "type": "uint8_t", + "values": [ + {"name": "LTE_CELLS", "bit": 0, "description": "Scan nearby LTE cells"}, + {"name": "WIFI_CELLS", "bit": 1, "description": "Scan nearby Wi-Fi access points"}, + {"name": "SKIP_LTE_IF_WIFI_GOOD", "bit": 7, "description": "Skip LTE scan if desired_aps Wi-Fi access points are found"} + ] + }, + "schedule_enum_task_network_scan_wifi_flags": { + "description": "Network scan Wi-Fi operation flags", + "type": "uint8_t", + "values": [ + {"name": "INCLUDE_DUPLICATES", "bit": 0, "description": "Report multiple networks from the same access point"}, + {"name": "SCAN_PROGRESSIVE", "bit": 1, "description": "Scan Wi-Fi channels over multiple calls in order of most to least common"}, + {"name": "SCAN_ACTIVE", "bit": 2, "description": "Use active scanning"}, + {"name": "INCLUDE_LOCALLY_ADMINISTERED", "bit": 3, "description": "Report networks using locally administered BSSIDs"} + ] + }, + "schedule_enum_task_bt_scanner_flags": { + "description": "Bluetooth scanner task operation flags", + "type": "uint8_t", + "values": [ + {"name": "LOG_ENCRYPTED", "bit": 0, "description": "Log packets that failed to decrypt"}, + {"name": "FILTER_DUPLICATES", "bit": 1, "description": "Only log each device once"}, + {"name": "DEFER_LOGGING", "bit": 2, "description": "Log observed devices at task termination"} + ] + }, + "schedule_enum_task_bt_scanner_logs": { + "description": "Bluetooth scanner task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "INFUSE_BT", "bit": 0, "description": "Log Infuse-IoT Bluetooth packets"} + ] + }, + "schedule_enum_task_soc_temperature_logs": { + "description": "SoC temperature task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "T", "bit": 0, "description": "Log SoC temperature"} + ] + } + }, + "definitions": { + "0": { + "name": "TDF_LOGGER", + "description": "TDF logger task arguments (@ref task_tdf_logger_args)", + "alternate_ids": { + "7": { + "name": "TDF_LOGGER_ALT1", + "description": "TDF logger alternate instance 1 task ID" + }, + "8": { + "name": "TDF_LOGGER_ALT2", + "description": "TDF logger alternate instance 2 task ID" + } + }, + "fields": [ + {"name": "loggers", "type": "uint8_t", "description": "Mask of TDF_DATA_LOGGER_* to log to"}, + {"name": "logging_period_ms", "type": "uint16_t", "description": "Reschedule next log in this many milliseconds"}, + {"name": "random_delay_ms", "type": "uint16_t", "description": "Randomise delay before logging"}, + {"name": "tdfs", "type": "enum schedule_enum_task_tdf_logger_logs", "description": "TDFs to log"}, + {"name": "flags", "type": "enum schedule_enum_task_tdf_logger_flags", "description": "Operation flags"}, + {"name": "per_run", "type": "uint8_t", "description": "Only log this many TDFs per run"} + ] + }, + "1": { + "name": "IMU", + "description": "IMU task arguments (@ref task_imu_args)", + "fields": [ + {"name": "accelerometer", "type": "struct schedule_struct_task_imu_accelerometer", "description": "Accelerometer configuration"}, + {"name": "gyroscope", "type": "struct schedule_struct_task_imu_gyroscope", "description": "Gyroscope configuration"}, + {"name": "magnetometer", "type": "struct schedule_struct_task_imu_magnetometer", "description": "Magnetometer configuration"}, + {"name": "fifo_sample_buffer", "type": "uint16_t", "description": "Requested number of samples to buffer in FIFO"}, + {"name": "num_buffers", "type": "uint8_t", "description": "Run for this many buffers then terminate"}, + {"name": "flags", "type": "enum schedule_enum_task_imu_flags", "description": "Operational flags"} + ] + }, + "2": { + "name": "BATTERY", + "description": "Battery task arguments (@ref task_battery_args)", + "fields": [ + {"name": "repeat_interval_ms", "type": "uint16_t", "description": "Period between measurements, 0 for single shot mode"} + ] + }, + "3": { + "name": "ENVIRONMENTAL", + "description": "Environmental task arguments (@ref task_environmental_args)", + "fields": [] + }, + "4": { + "name": "GNSS", + "description": "GNSS task arguments (@ref task_gnss_args)", + "fields": [ + {"name": "constellations", "type": "enum schedule_enum_task_gnss_constellations", "description": "Constellations GNSS_SYSTEM_*, 0 for receiver default"}, + {"name": "flags", "type": "enum schedule_enum_task_gnss_flags", "description": "Operational flags"}, + {"name": "accuracy_m", "type": "uint16_t", "description": "Accuracy in meters"}, + {"name": "position_dop", "type": "uint16_t", "description": "Dilution of precision, scaled by 0.1"}, + {"name": "mode", "type": "union schedule_union_task_gnss_mode_args", "description": "Mode-specific arguments selected by flags"}, + {"name": "dynamic_model", "type": "uint8_t", "description": "Dynamic model from ubx_cfg_key_navspg_dynmodel"} + ] + }, + "5": { + "name": "NETWORK_SCAN", + "description": "Network scan task arguments (@ref task_network_scan_args)", + "fields": [ + {"name": "flags", "type": "enum schedule_enum_task_network_scan_flags", "description": "Meta operation flags"}, + {"name": "wifi", "type": "struct schedule_struct_task_network_scan_wifi_args", "description": "Wi-Fi AP scanning arguments"}, + {"name": "lte", "type": "struct schedule_struct_task_network_scan_lte_args", "description": "LTE cell scanning arguments"} + ] + }, + "6": { + "name": "BT_SCANNER", + "description": "Bluetooth scanner task arguments (@ref task_bt_scanner_args)", + "fields": [ + {"name": "duration_ms", "type": "uint32_t", "description": "Scan duration in milliseconds"}, + {"name": "max_logs", "type": "uint8_t", "description": "Maximum number of packets to log"}, + {"name": "flags", "type": "enum schedule_enum_task_bt_scanner_flags", "description": "Operation flags"} + ] + }, + "9": { + "name": "SOC_TEMPERATURE", + "description": "SoC temperature task arguments (@ref task_soc_temperature_args)", + "fields": [] + }, + "10": { + "name": "AUDIO_DMIC", + "description": "Digital microphone task arguments (@ref task_audio_dmic_args)", + "fields": [ + {"name": "sample_rate_hz", "type": "uint32_t", "description": "Requested sample rate in Hz"}, + {"name": "gain_db", "type": "int8_t", "description": "Sample gain in dB"} + ] + } + } +} diff --git a/scripts/west_commands/cloudgen.py b/scripts/west_commands/cloudgen.py index c04de9860..5fbc24d9d 100644 --- a/scripts/west_commands/cloudgen.py +++ b/scripts/west_commands/cloudgen.py @@ -2,6 +2,7 @@ # Copyright (c) 2024 Embeint Holdings Pty Ltd import argparse +import copy import importlib import json import pathlib @@ -41,11 +42,18 @@ def do_add_parser(self, parser_adder): help="Output module for the generated files", ) parser.add_argument("--defs", "-d", type=str, help="Folder containing extentsion definitions") + parser.add_argument( + "--skip-python-generation", + "--skip-python", + action="store_true", + help="Skip generation of Python definition files", + ) return parser def do_run(self, args, unknown_args): self.extra_defs_base = pathlib.Path(args.defs) if args.defs else None self.output_base = pathlib.Path(args.output) + self.skip_python_generation = args.skip_python_generation self.generate_base = self.output_base / "generated" self.definition_dir = pathlib.Path(__file__).parent / "cloud_definitions" self.template_dir = pathlib.Path(__file__).parent / "templates" @@ -64,6 +72,7 @@ def do_run(self, args, unknown_args): self.tdfgen() self.kvgen() self.rpcgen() + self.tasksgen() print(f"Outputs written to '{self.generate_base.absolute()}'") @@ -120,15 +129,207 @@ def _array_postfix(self, d, field): else: field["array"] = f"[{field['num']}]" + def _task_type_name(self, ctype: str, kind: str): + prefix = f"{kind} " + return ctype.removeprefix(prefix) if ctype.startswith(prefix) else None + + def _task_enum_local_name(self, task_name: str, enum_name: str): + prefix = "schedule_enum_task_" + suffix = enum_name.removeprefix(prefix) if enum_name.startswith(prefix) else enum_name + task_prefix = f"{task_name.lower()}_" + if suffix.startswith(task_prefix): + suffix = suffix.removeprefix(task_prefix) + return f"task_{task_name.lower()}_{suffix}" + + def _task_value_expr(self, value): + if "bit" in value: + return f"BIT({value['bit']})" + return value["value"] + + def _task_prepare_enum(self, enum_info): + for value in enum_info["values"]: + value["value_expr"] = self._task_value_expr(value) + + def _task_log_enum_name(self, task_name: str, task_defs): + task_base = task_name.lower() + enum_name = f"schedule_enum_task_{task_base}_logs" + if enum_name in task_defs["enums"]: + return enum_name + + if "_alt" in task_base: + task_base = task_base.rsplit("_alt", 1)[0] + enum_name = f"schedule_enum_task_{task_base}_logs" + if enum_name in task_defs["enums"]: + return enum_name + + return None + + def _task_log_defines(self, task_name: str, task_defs): + enum_name = self._task_log_enum_name(task_name, task_defs) + if enum_name is None: + return [] + + return [ + { + "name": f"TASK_{task_name.upper()}_LOG_{value['name']}", + "value": self._task_value_expr(value), + "description": value.get("description", ""), + } + for value in task_defs["enums"][enum_name]["values"] + ] + + def _task_flag_defines(self, task_name: str, task_defs, skip_enums): + prefix = f"schedule_enum_task_{task_name.lower()}_" + defines = [] + for enum_name, enum_info in task_defs["enums"].items(): + if not enum_name.startswith(prefix) or enum_name.endswith("_logs") or enum_name in skip_enums: + continue + local_name = self._task_enum_local_name(task_name, enum_name) + value_prefix = local_name.upper() + for value in enum_info["values"]: + defines.append( + { + "name": f"{value_prefix}_{value['name']}", + "value": self._task_value_expr(value), + "description": value.get("description", ""), + } + ) + return defines + + def _task_prepare_field(self, field, task_name: str, task_defs, task_enums): + field["render_type"] = field["type"] + self._array_postfix({}, field) + + enum_name = self._task_type_name(field["type"], "enum") + if enum_name: + enum_info = task_defs["enums"][enum_name] + field["render_type"] = enum_info["type"] + if enum_name not in task_enums: + local_name = self._task_enum_local_name(task_name, enum_name) + task_enums[enum_name] = copy.deepcopy(enum_info) + task_enums[enum_name]["local_name"] = local_name + task_enums[enum_name]["value_prefix"] = local_name.upper() + self._task_prepare_enum(task_enums[enum_name]) + + def tasksgen(self): + task_def_file = self.definition_dir / "tasks.json" + task_args_template = self.env.get_template("task_args.h.jinja") + task_ids_template = self.env.get_template("task_ids.h.jinja") + infuse_task_args_template = self.env.get_template("infuse_task_args.h.jinja") + infuse_tasks_template = self.env.get_template("infuse_tasks.h.jinja") + task_args_output_base = self.generate_base / "include" / "infuse" / "task_runner" / "tasks" + task_args_output_base.mkdir(parents=True, exist_ok=True) + task_ids_output = task_args_output_base / "infuse_task_ids.h" + infuse_task_args_output = task_args_output_base / "infuse_task_args.h" + infuse_tasks_output = task_args_output_base / "infuse_tasks.h" + + with task_def_file.open("r") as f: + task_defs = json.load(f) + + task_defs.setdefault("structs", {}) + task_defs.setdefault("unions", {}) + task_defs.setdefault("enums", {}) + task_defs.setdefault("definitions", {}) + + if self.extra_defs_base: + task_def_file_ext = self.extra_defs_base / "tasks.json" + if task_def_file_ext.exists(): + with task_def_file_ext.open("r") as f: + task_defs_ext = json.load(f) + for key in ["structs", "unions", "enums", "definitions"]: + task_defs_ext.setdefault(key, {}) + for name in task_defs_ext[key]: + assert name not in task_defs[key] + for key in ["structs", "unions", "enums", "definitions"]: + task_defs[key].update(task_defs_ext[key]) + + task_defs["definitions"] = dict(sorted((int(k), v) for k, v in task_defs["definitions"].items())) + task_ids = {} + for task_id, task in task_defs["definitions"].items(): + assert task_id not in task_ids, f"Duplicate task ID {task_id}" + task_ids[task_id] = task + for alt_id, alt in task.get("alternate_ids", {}).items(): + alt_id = int(alt_id) + assert alt_id not in task_ids, f"Duplicate task ID {alt_id}" + task_ids[alt_id] = alt + task_ids = dict(sorted(task_ids.items())) + + with task_ids_output.open("w") as f: + f.write(task_ids_template.render(tasks=task_ids)) + self.clang_format(task_ids_output) + + with infuse_task_args_output.open("w") as f: + f.write(infuse_task_args_template.render(tasks=task_defs["definitions"])) + self.clang_format(infuse_task_args_output) + + with infuse_tasks_output.open("w") as f: + f.write(infuse_tasks_template.render(tasks=task_defs["definitions"])) + self.clang_format(infuse_tasks_output) + + def collect_type(ctype, task_name, task_structs, task_unions, task_enums): + struct_name = self._task_type_name(ctype, "struct") + if struct_name: + if struct_name in task_structs: + return + struct_info = copy.deepcopy(task_defs["structs"][struct_name]) + for field in struct_info["fields"]: + collect_type(field["type"], task_name, task_structs, task_unions, task_enums) + self._task_prepare_field(field, task_name, task_defs, task_enums) + task_structs[struct_name] = struct_info + return + + union_name = self._task_type_name(ctype, "union") + if union_name: + if union_name in task_unions: + return + union_info = copy.deepcopy(task_defs["unions"][union_name]) + for field in union_info["fields"]: + collect_type(field["type"], task_name, task_structs, task_unions, task_enums) + self._task_prepare_field(field, task_name, task_defs, task_enums) + task_unions[union_name] = union_info + return + + enum_name = self._task_type_name(ctype, "enum") + if enum_name and enum_name not in task_enums: + enum_info = copy.deepcopy(task_defs["enums"][enum_name]) + local_name = self._task_enum_local_name(task_name, enum_name) + enum_info["local_name"] = local_name + enum_info["value_prefix"] = local_name.upper() + self._task_prepare_enum(enum_info) + task_enums[enum_name] = enum_info + + for task in task_defs["definitions"].values(): + task = copy.deepcopy(task) + task_structs = {} + task_unions = {} + task_enums = {} + + for field in task["fields"]: + collect_type(field["type"], task["name"], task_structs, task_unions, task_enums) + self._task_prepare_field(field, task["name"], task_defs, task_enums) + + output = task_args_output_base / f"{task['name'].lower()}_args.h" + include_guard = f"INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_{task['name'].upper()}_ARGS_H_" + with output.open("w") as f: + f.write( + task_args_template.render( + task=task, + structs=task_structs, + unions=task_unions, + enums=task_enums.values(), + log_defines=self._task_log_defines(task["name"], task_defs), + flag_defines=self._task_flag_defines(task["name"], task_defs, task_enums), + include_guard=include_guard, + ) + ) + self.clang_format(output) + def tdfgen(self): tdf_def_file = self.definition_dir / "tdf.json" tdf_template = self.env.get_template("tdf_definitions.h.jinja") tdf_output = self.generate_base / "include" / "infuse" / "tdf" / "definitions.h" tdf_output.parent.mkdir(parents=True, exist_ok=True) - loader = importlib.util.find_spec("infuse_iot.generated.tdf_definitions") - tdf_definitions_template = self.env.get_template("tdf_definitions.py.jinja") - tdf_definitions_output = pathlib.Path(loader.origin) tdf_extensions_exist = False with tdf_def_file.open("r") as f: @@ -162,6 +363,11 @@ def tdfgen(self): with tdf_output.open("w") as f: f.write(tdf_template.render(structs=tdf_defs["structs"], definitions=tdf_defs["definitions"])) + self.clang_format(tdf_output) + + if self.skip_python_generation: + return + def conv_formula(f): conv = f"self._{f['name']}" h = f["conversion"].get("hex", None) @@ -195,6 +401,10 @@ def display_format(f): p = d.get("postfix", "") return {"name": f["name"], "fmt": fmt, "postfix": f'"{p}"'} + loader = importlib.util.find_spec("infuse_iot.generated.tdf_definitions") + tdf_definitions_template = self.env.get_template("tdf_definitions.py.jinja") + tdf_definitions_output = pathlib.Path(loader.origin) + for x in ["structs", "definitions"]: for s in tdf_defs[x].values(): s["conversions"] = [] @@ -224,7 +434,6 @@ def generate(output: pathlib.Path, extensions: bool): generate(py_extensions, True) self.ruff_format(py_extensions) - self.clang_format(tdf_output) self.ruff_format(tdf_definitions_output) def kvgen(self): @@ -237,10 +446,6 @@ def kvgen(self): kv_kconfig_template = self.env.get_template("Kconfig.keys.jinja") kv_kconfig_output = self.generate_base / "Kconfig.kv_keys" - loader = importlib.util.find_spec("infuse_iot.generated.kv_definitions") - kv_py_template = self.env.get_template("kv_definitions.py.jinja") - kv_py_output = pathlib.Path(loader.origin) - with kv_def_file.open("r") as f: kv_defs = json.load(f) if self.extra_defs_base: @@ -313,6 +518,15 @@ def array_postfix(name, d, field): f.write(kv_defs_template.render(structs=kv_defs["structs"], definitions=kv_defs["definitions"])) + self.clang_format(kv_defs_output) + + if self.skip_python_generation: + return + + loader = importlib.util.find_spec("infuse_iot.generated.kv_definitions") + kv_py_template = self.env.get_template("kv_definitions.py.jinja") + kv_py_output = pathlib.Path(loader.origin) + for x in ["structs", "definitions"]: for s in kv_defs[x].values(): for f in s["fields"]: @@ -334,7 +548,6 @@ def generate(output: pathlib.Path, extensions: bool): generate(py_extensions, True) self.ruff_format(py_extensions) - self.clang_format(kv_defs_output) self.ruff_format(kv_py_output) def rpcgen(self): @@ -353,10 +566,6 @@ def rpcgen(self): rpc_runner_template = self.env.get_template("rpc_runner.c.jinja") rpc_runner_output = self.generate_base / "rpc_command_runner.c" - loader = importlib.util.find_spec("infuse_iot.generated.rpc_definitions") - rpc_defs_py_template = self.env.get_template("rpc_definitions.py.jinja") - rpc_defs_py_output = pathlib.Path(loader.origin) - with rpc_def_file.open("r") as f: rpc_defs = json.load(f) if self.extra_defs_base: @@ -401,19 +610,6 @@ def enum_type_replace(field): for field in c["response_params"]: enum_type_replace(field) - # Python type generation - for s in rpc_defs["structs"].values(): - for field in s["fields"]: - field["py_name"] = field["name"] - field["py_type"] = self._py_type(field, False) - for e in rpc_defs["enums"].values(): - for value in e["values"]: - value["py_name"] = value["name"] - for c in rpc_defs["commands"].values(): - for sub in ["request_params", "response_params"]: - for field in c[sub]: - field["py_type"] = self._py_type(field, False) - with rpc_kconfig_output.open("w") as f: f.write(rpc_kconfig_template.render(commands=rpc_defs["commands"])) @@ -432,6 +628,30 @@ def enum_type_replace(field): ) ) + self.clang_format(rpc_defs_output) + self.clang_format(rpc_commands_output) + self.clang_format(rpc_runner_output) + + if self.skip_python_generation: + return + + # Python type generation + for s in rpc_defs["structs"].values(): + for field in s["fields"]: + field["py_name"] = field["name"] + field["py_type"] = self._py_type(field, False) + for e in rpc_defs["enums"].values(): + for value in e["values"]: + value["py_name"] = value["name"] + for c in rpc_defs["commands"].values(): + for sub in ["request_params", "response_params"]: + for field in c[sub]: + field["py_type"] = self._py_type(field, False) + + loader = importlib.util.find_spec("infuse_iot.generated.rpc_definitions") + rpc_defs_py_template = self.env.get_template("rpc_definitions.py.jinja") + rpc_defs_py_output = pathlib.Path(loader.origin) + def generate(output: pathlib.Path, extensions: bool): any_enums = any([e.get("extension", False) == extensions for e in rpc_defs["enums"].values()]) with output.open("w") as f: @@ -451,7 +671,4 @@ def generate(output: pathlib.Path, extensions: bool): generate(py_extensions, True) self.ruff_format(py_extensions) - self.clang_format(rpc_defs_output) - self.clang_format(rpc_commands_output) - self.clang_format(rpc_runner_output) self.ruff_format(rpc_defs_py_output) diff --git a/scripts/west_commands/templates/infuse_task_args.h.jinja b/scripts/west_commands/templates/infuse_task_args.h.jinja new file mode 100644 index 000000000..9eaf3ffc2 --- /dev/null +++ b/scripts/west_commands/templates/infuse_task_args.h.jinja @@ -0,0 +1,44 @@ +/** + * @file + * @brief Autogenerated Task Runner Infuse-IoT task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ + +{% for task in tasks.values() %} +#include +{% endfor %} + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief infuse_task_args API + * @defgroup infuse_task_args_apis infuse_task_args APIs + * @{ + */ + +union task_arguments { + uint8_t raw[17]; +{% for task in tasks.values() %} + struct task_{{ task['name'] | lower }}_args {{ task['name'] | lower }}; +{% endfor %} +}; + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_ARGS_H_ */ diff --git a/scripts/west_commands/templates/infuse_tasks.h.jinja b/scripts/west_commands/templates/infuse_tasks.h.jinja new file mode 100644 index 000000000..bafd66af6 --- /dev/null +++ b/scripts/west_commands/templates/infuse_tasks.h.jinja @@ -0,0 +1,20 @@ +/** + * @file + * @brief Autogenerated Task Runner Infuse-IoT tasks + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ + +/* Simple list of infuse tasks to simplify application includes */ +{% for task in tasks.values() %} +#include +{% endfor %} + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASKS_H_ */ diff --git a/scripts/west_commands/templates/task_args.h.jinja b/scripts/west_commands/templates/task_args.h.jinja new file mode 100644 index 000000000..152ac53b6 --- /dev/null +++ b/scripts/west_commands/templates/task_args.h.jinja @@ -0,0 +1,98 @@ +/** + * @file + * @brief Autogenerated {{ task['name'] }} task arguments + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef {{ include_guard }} +#define {{ include_guard }} + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +{% if log_defines %} +enum { +{% for define in log_defines %} + /** {{ define['description'] }} */ + {{ define['name'] }} = {{ define['value'] }}, +{% endfor %} +}; + +{% endif %} +{% for define in flag_defines %} +/** {{ define['description'] }} */ +#define {{ define['name'] }} {{ define['value'] }} +{% endfor %} +{% if flag_defines %} + +{% endif %} +{% for enum in enums %} +/** {{ enum['description'] }} */ +enum {{ enum['local_name'] }} { +{% for value in enum['values'] %} +{% if 'description' in value %} + /** {{ value['description'] }} */ +{% endif %} + {{ enum['value_prefix'] }}_{{ value['name'] }} = {{ value['value_expr'] }}, +{% endfor %} +}; + +{% endfor %} +{% for name, info in structs.items() %} +/** {{ info['description'] }} */ +struct {{ name }} { +{% for field in info['fields'] %} +{% if 'description' in field %} + /** {{ field['description'] }} */ +{% endif %} +{% if field.get('anonymous', false) %} + {{ field['render_type'] }}; +{% else %} + {{ field['render_type'] }} {{ field['name'] }}{{ field['array'] }}; +{% endif %} +{% endfor %} +} __packed; + +{% endfor %} +{% for name, info in unions.items() %} +/** {{ info['description'] }} */ +union {{ name }} { +{% for field in info['fields'] %} +{% if 'description' in field %} + /** {{ field['description'] }} */ +{% endif %} + {{ field['render_type'] }} {{ field['name'] }}{{ field['array'] }}; +{% endfor %} +}; + +{% endfor %} +/** {{ task['description'] }} */ +struct task_{{ task['name'] | lower }}_args { +{% for field in task['fields'] %} +{% if 'description' in field %} + /** {{ field['description'] }} */ +{% endif %} +{% if field.get('anonymous', false) %} + {{ field['render_type'] }}; +{% else %} + {{ field['render_type'] }} {{ field['name'] }}{{ field['array'] }}; +{% endif %} +{% endfor %} +} __packed; + +#ifdef __cplusplus +} +#endif + +#endif /* {{ include_guard }} */ diff --git a/scripts/west_commands/templates/task_ids.h.jinja b/scripts/west_commands/templates/task_ids.h.jinja new file mode 100644 index 000000000..0e7af6e3a --- /dev/null +++ b/scripts/west_commands/templates/task_ids.h.jinja @@ -0,0 +1,40 @@ +/** + * @file + * @brief Autogenerated task runner task IDs + * @copyright 2024 Embeint Holdings Pty Ltd + * @author scripts/west_commands/cloudgen.py + * + * INFUSE-IOT-AUTOGENERATED + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ +#define INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief infuse_task_ids API + * @defgroup infuse_task_ids_apis infuse_task_ids APIs + * @{ + */ + +enum infuse_task_ids { +{% for task_id, task in tasks.items() %} + /** {{ task['description'] }} */ + TASK_ID_{{ task['name'] | upper }} = {{ task_id }}, +{% endfor %} +}; + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* INFUSE_SDK_INCLUDE_GENERATED_TASK_RUNNER_TASKS_INFUSE_TASK_IDS_H_ */ diff --git a/subsys/task_runner/Kconfig b/subsys/task_runner/Kconfig index ca1237ec8..e81ef1789 100644 --- a/subsys/task_runner/Kconfig +++ b/subsys/task_runner/Kconfig @@ -14,16 +14,6 @@ config TASK_RUNNER_DEFAULT_SCHEDULES_ID default 0 depends on KV_STORE -config TASK_RUNNER_CUSTOM_TASK_DEFINITIONS - bool "Enable custom task definitions in `struct task_schedule`" - -config TASK_RUNNER_CUSTOM_TASK_DEFINITIONS_PATH - string "Path to custom task definition header" - depends on TASK_RUNNER_CUSTOM_TASK_DEFINITIONS - help - Path to a `.h` file that defines a type `union custom_task_arguments` - compatible with `union infuse_task_arguments`. - config TASK_RUNNER_INFUSE_WATCHDOG bool "Install watchdog on the Task Runner iteration function" depends on INFUSE_WATCHDOG diff --git a/subsys/task_runner/schedule.c b/subsys/task_runner/schedule.c index 2c2e92374..f749e1386 100644 --- a/subsys/task_runner/schedule.c +++ b/subsys/task_runner/schedule.c @@ -14,15 +14,6 @@ #define TASK_RUNNER_LOCKOUT_VALUE_MASK ~TASK_RUNNER_LOCKOUT_IGNORE_FIRST -#ifdef CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS - -/* Validation of custom arguments */ -BUILD_ASSERT(sizeof(union custom_task_arguments) <= 16, "Custom arguments too large"); -BUILD_ASSERT(__alignof(union custom_task_arguments) == 1, - "Custom arguments require unsupported alignment"); - -#endif /* CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS */ - static bool task_schedule_states_eval(const struct task_schedule_state_conditions *states, atomic_t *app_states, bool fallthrough) { diff --git a/subsys/task_runner/tasks/task_audio_dmic.c b/subsys/task_runner/tasks/task_audio_dmic.c index 980911400..7dbb5ab2b 100644 --- a/subsys/task_runner/tasks/task_audio_dmic.c +++ b/subsys/task_runner/tasks/task_audio_dmic.c @@ -47,7 +47,7 @@ void dmic_task_fn(const struct task_schedule *schedule, struct k_poll_signal *te void *dmic_config) { const struct task_audio_dmic_config *config = dmic_config; - const struct task_audio_dmic_args *args = &schedule->task_args.infuse.audio_dmic; + const struct task_audio_dmic_args *args = &schedule->task_args.audio_dmic; struct pcm_stream_cfg stream = { .pcm_width = 16, .mem_slab = &mem_slab, diff --git a/subsys/task_runner/tasks/task_battery.c b/subsys/task_runner/tasks/task_battery.c index 175b7bf60..84ce134c5 100644 --- a/subsys/task_runner/tasks/task_battery.c +++ b/subsys/task_runner/tasks/task_battery.c @@ -87,7 +87,7 @@ void battery_task_fn(struct k_work *work) { struct task_data *task = task_data_from_work(work); const struct task_schedule *sch = task_schedule_from_data(task); - const struct task_battery_args *args = &sch->task_args.infuse.battery; + const struct task_battery_args *args = &sch->task_args.battery; const struct device *fuel_gauge = task->executor.workqueue.task_arg.const_arg; struct tdf_battery_state tdf_battery = {0}; struct tdf_battery_voltage tdf_voltage; @@ -101,7 +101,7 @@ void battery_task_fn(struct k_work *work) return; } - rc = task_battery_manual_run(fuel_gauge, &sch->task_args.infuse.battery, &tdf_battery); + rc = task_battery_manual_run(fuel_gauge, &sch->task_args.battery, &tdf_battery); if (rc == 0) { tdf_voltage.voltage = tdf_battery.voltage_mv; tdf_soc.soc = tdf_battery.soc; diff --git a/subsys/task_runner/tasks/task_bt_scanner.c b/subsys/task_runner/tasks/task_bt_scanner.c index 510e8e4a1..c559d755c 100644 --- a/subsys/task_runner/tasks/task_bt_scanner.c +++ b/subsys/task_runner/tasks/task_bt_scanner.c @@ -29,7 +29,7 @@ static struct task_bt_scanner_mem { static bool bt_received(struct net_buf *buf, bool decrypted, void *user_ctx) { - const struct task_bt_scanner_args *args = &state.schedule->task_args.infuse.bt_scanner; + const struct task_bt_scanner_args *args = &state.schedule->task_args.bt_scanner; struct epacket_rx_metadata *meta = net_buf_user_data(buf); LOG_DBG("%llx: %012llx RSSI: %d dBm", meta->packet_device_id, @@ -87,7 +87,7 @@ void task_bt_scanner_fn(struct k_work *work) const struct device *interface = DEVICE_DT_GET_ANY(embeint_epacket_bt_adv); struct task_data *task = task_data_from_work(work); const struct task_schedule *sch = task_schedule_from_data(task); - const struct task_bt_scanner_args *args = &sch->task_args.infuse.bt_scanner; + const struct task_bt_scanner_args *args = &sch->task_args.bt_scanner; int rc; if (task->executor.workqueue.reschedule_counter > 0) { diff --git a/subsys/task_runner/tasks/task_gnss_common.c b/subsys/task_runner/tasks/task_gnss_common.c index 891932d4f..acea78b12 100644 --- a/subsys/task_runner/tasks/task_gnss_common.c +++ b/subsys/task_runner/tasks/task_gnss_common.c @@ -17,13 +17,14 @@ LOG_MODULE_DECLARE(task_gnss, CONFIG_TASK_GNSS_LOG_LEVEL); bool gnss_run_to_fix_timeout(const struct task_gnss_args *args, struct gnss_fix_timeout_state *state, uint32_t h_acc, uint32_t runtime) { - const struct task_gnss_plateau_args *p_args = &args->run_to_fix.fix_plateau; + const struct schedule_struct_task_gnss_plateau_args *p_args = + &args->mode.run_to_fix.fix_plateau; int32_t required_next_accuracy; bool plateau_valid; - if (args->run_to_fix.any_fix_timeout) { + if (args->mode.run_to_fix.any_fix_timeout) { /* Terminate if fix hasn't reached 10km accuracy by the initial timeout */ - if ((h_acc > (10 * KM)) && (runtime >= args->run_to_fix.any_fix_timeout)) { + if ((h_acc > (10 * KM)) && (runtime >= args->mode.run_to_fix.any_fix_timeout)) { LOG_INF("Terminating due to %s", "any fix timeout"); return true; } diff --git a/subsys/task_runner/tasks/task_gnss_nrf9x.c b/subsys/task_runner/tasks/task_gnss_nrf9x.c index 1573b6b1f..80d9292e0 100644 --- a/subsys/task_runner/tasks/task_gnss_nrf9x.c +++ b/subsys/task_runner/tasks/task_gnss_nrf9x.c @@ -344,7 +344,7 @@ void gnss_task_fn(struct k_work *work) { struct task_data *task = task_data_from_work(work); const struct task_schedule *sch = task_schedule_from_data(task); - const struct task_gnss_args *args = &sch->task_args.infuse.gnss; + const struct task_gnss_args *args = &sch->task_args.gnss; uint8_t run_target = (args->flags & TASK_GNSS_FLAGS_RUN_MASK); bool terminate = false; int rc; diff --git a/subsys/task_runner/tasks/task_gnss_ubx.c b/subsys/task_runner/tasks/task_gnss_ubx.c index 7b159d2bc..42369ee84 100644 --- a/subsys/task_runner/tasks/task_gnss_ubx.c +++ b/subsys/task_runner/tasks/task_gnss_ubx.c @@ -379,14 +379,14 @@ static int gnss_configure(const struct device *gnss, const struct task_gnss_args UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_NAVSPG_OUTFIL_PDOP, args->position_dop); UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_ONTIME, 0); UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_UPDATEEPH, true); - if (args->low_power.acquisition_timeout == 0) { + if (args->mode.low_power.acquisition_timeout == 0) { UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_MAXACQTIME, 0); UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_DONOTENTEROFF, true); } else { UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_MAXACQTIME, - args->low_power.acquisition_timeout); + args->mode.low_power.acquisition_timeout); UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_ACQPERIOD, - args->low_power.search_period); + args->mode.low_power.search_period); UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_DONOTENTEROFF, false); /* Force the modem out of backup mode when EXTINT is "high" so we can @@ -396,7 +396,7 @@ static int gnss_configure(const struct device *gnss, const struct task_gnss_args *extint_force_active = true; /* Modem can sleep for up to `search_period` seconds */ - *max_sleep_s = args->low_power.search_period + 2; + *max_sleep_s = args->mode.low_power.search_period + 2; } UBX_CFG_VALUE_APPEND(&cfg_buf, UBX_CFG_KEY_PM_OPERATEMODE, @@ -503,7 +503,7 @@ void gnss_task_fn(const struct task_schedule *schedule, struct k_poll_signal *te void *gnss_dev) { const struct device *gnss = gnss_dev; - const struct task_gnss_args *args = &schedule->task_args.infuse.gnss; + const struct task_gnss_args *args = &schedule->task_args.gnss; uint8_t run_target = (args->flags & TASK_GNSS_FLAGS_RUN_MASK); struct gnss_run_state run_state = {0}; struct ubx_message_handler_ctx pvt_handler_ctx = { diff --git a/subsys/task_runner/tasks/task_gnss_zephyr.c b/subsys/task_runner/tasks/task_gnss_zephyr.c index 67a432583..86f39c6b2 100644 --- a/subsys/task_runner/tasks/task_gnss_zephyr.c +++ b/subsys/task_runner/tasks/task_gnss_zephyr.c @@ -222,7 +222,7 @@ void gnss_task_fn(const struct task_schedule *schedule, struct k_poll_signal *te void *gnss_dev) { const struct device *gnss = gnss_dev; - const struct task_gnss_args *args = &schedule->task_args.infuse.gnss; + const struct task_gnss_args *args = &schedule->task_args.gnss; uint8_t run_target = (args->flags & TASK_GNSS_FLAGS_RUN_MASK); struct gnss_run_state run_state = {0}; gnss_systems_t constellations; diff --git a/subsys/task_runner/tasks/task_imu.c b/subsys/task_runner/tasks/task_imu.c index d8e594d9b..6ffbebce8 100644 --- a/subsys/task_runner/tasks/task_imu.c +++ b/subsys/task_runner/tasks/task_imu.c @@ -180,7 +180,7 @@ void imu_task_fn(const struct task_schedule *schedule, struct k_poll_signal *ter void *imu_dev) { const struct device *imu = imu_dev; - const struct task_imu_args *args = &schedule->task_args.infuse.imu; + const struct task_imu_args *args = &schedule->task_args.imu; bool low_power_mode = args->flags & TASK_IMU_FLAGS_LOW_POWER_MODE; struct imu_config config = { .accelerometer = diff --git a/subsys/task_runner/tasks/task_network_scan.c b/subsys/task_runner/tasks/task_network_scan.c index 218f53406..c495d7ac9 100644 --- a/subsys/task_runner/tasks/task_network_scan.c +++ b/subsys/task_runner/tasks/task_network_scan.c @@ -330,7 +330,7 @@ void network_scan_task_fn(struct k_work *work) { struct task_data *task = task_data_from_work(work); const struct task_schedule *sch = task_schedule_from_data(task); - const struct task_network_scan_args *args = &sch->task_args.infuse.network_scan; + const struct task_network_scan_args *args = &sch->task_args.network_scan; uint64_t epoch_time; __maybe_unused size_t len; int rc = 0; diff --git a/subsys/task_runner/tasks/task_tdf_logger.c b/subsys/task_runner/tasks/task_tdf_logger.c index b01eb11d2..a1246b0c3 100644 --- a/subsys/task_runner/tasks/task_tdf_logger.c +++ b/subsys/task_runner/tasks/task_tdf_logger.c @@ -262,7 +262,7 @@ void task_tdf_logger_fn(struct k_work *work) { struct task_data *task = task_data_from_work(work); const struct task_schedule *sch = task_schedule_from_data(task); - const struct task_tdf_logger_args *args = &sch->task_args.infuse.tdf_logger; + const struct task_tdf_logger_args *args = &sch->task_args.tdf_logger; uint8_t *persistent = task_schedule_persistent_storage(task); uint64_t log_timestamp; uint32_t delay_ms; diff --git a/tests/bsim/bluetooth/task_runner/src/main.c b/tests/bsim/bluetooth/task_runner/src/main.c index 375931e25..e99637e5d 100644 --- a/tests/bsim/bluetooth/task_runner/src/main.c +++ b/tests/bsim/bluetooth/task_runner/src/main.c @@ -137,7 +137,7 @@ static void main_bt_scanner_self_duration(void) int logged = 0; /* Set this tests parameters and run the task */ - schedules[0].task_args.infuse.bt_scanner.duration_ms = 5000; + schedules[0].task_args.bt_scanner.duration_ms = 5000; task_run(); /* Flush all logged data and get the packet */ @@ -178,7 +178,7 @@ static void main_bt_scanner_scan_4(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.max_logs = 4; + schedules[0].task_args.bt_scanner.max_logs = 4; task_run(); /* Flush all logged data and get the packet */ @@ -219,7 +219,7 @@ static void main_bt_scanner_filter_duplicates(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_FILTER_DUPLICATES; + schedules[0].task_args.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_FILTER_DUPLICATES; task_run(); /* Flush all logged data and get the packet */ @@ -259,7 +259,7 @@ static void main_bt_scanner_defer_logging(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_DEFER_LOGGING; + schedules[0].task_args.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_DEFER_LOGGING; task_run(); /* Flush all logged data and get the packet */ @@ -301,7 +301,7 @@ static void main_bt_scanner_defer_filter(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.flags = + schedules[0].task_args.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_DEFER_LOGGING | TASK_BT_SCANNER_FLAGS_FILTER_DUPLICATES; task_run(); @@ -344,8 +344,8 @@ static void main_bt_scanner_defer_filter_limit(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.max_logs = 3; - schedules[0].task_args.infuse.bt_scanner.flags = + schedules[0].task_args.bt_scanner.max_logs = 3; + schedules[0].task_args.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_DEFER_LOGGING | TASK_BT_SCANNER_FLAGS_FILTER_DUPLICATES; task_run(); @@ -386,7 +386,7 @@ static void main_bt_scanner_defer_no_logs(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_DEFER_LOGGING; + schedules[0].task_args.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_DEFER_LOGGING; task_run(); /* Flush all logged data and get the packet */ @@ -409,7 +409,7 @@ static void main_bt_scanner_encrypted_log(void) /* Set this tests parameters and run the task */ schedules[0].timeout_s = 5; - schedules[0].task_args.infuse.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_LOG_ENCRYPTED; + schedules[0].task_args.bt_scanner.flags = TASK_BT_SCANNER_FLAGS_LOG_ENCRYPTED; task_run(); /* Flush all logged data and get the packet */ diff --git a/tests/subsys/algorithm/algorithms/demo/src/main.c b/tests/subsys/algorithm/algorithms/demo/src/main.c index 3d9f85aaa..525dd01dc 100644 --- a/tests/subsys/algorithm/algorithms/demo/src/main.c +++ b/tests/subsys/algorithm/algorithms/demo/src/main.c @@ -100,7 +100,7 @@ ZTEST(alg_demo, test_event_generator) k_tid_t imu_thread; int tdfs_logged = 0; - schedule[0].task_args.infuse.imu = (struct task_imu_args){ + schedule[0].task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 4, @@ -142,7 +142,7 @@ ZTEST(alg_demo, test_state_generator) k_tid_t imu_thread; int tdfs_logged; - schedule[0].task_args.infuse.imu = (struct task_imu_args){ + schedule[0].task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 4, @@ -182,7 +182,7 @@ ZTEST(alg_demo, test_metric_generator) k_tid_t imu_thread; int tdfs_logged; - schedule[0].task_args.infuse.imu = (struct task_imu_args){ + schedule[0].task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 4, diff --git a/tests/subsys/algorithm/algorithms/movement_threshold/src/main.c b/tests/subsys/algorithm/algorithms/movement_threshold/src/main.c index 5e113954b..7891ae1ba 100644 --- a/tests/subsys/algorithm/algorithms/movement_threshold/src/main.c +++ b/tests/subsys/algorithm/algorithms/movement_threshold/src/main.c @@ -90,7 +90,7 @@ ZTEST(alg_movement_threshold, test_impl) }; k_tid_t imu_thread; - schedule[0].task_args.infuse.imu = (struct task_imu_args){ + schedule[0].task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 4, diff --git a/tests/subsys/algorithm/algorithms/stationary_windowed/src/main.c b/tests/subsys/algorithm/algorithms/stationary_windowed/src/main.c index c18e57bc9..b8abf9724 100644 --- a/tests/subsys/algorithm/algorithms/stationary_windowed/src/main.c +++ b/tests/subsys/algorithm/algorithms/stationary_windowed/src/main.c @@ -118,7 +118,7 @@ ZTEST(alg_stationary, test_send) }; k_tid_t imu_thread; - schedule[0].task_args.infuse.imu = (struct task_imu_args){ + schedule[0].task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 4, @@ -173,8 +173,8 @@ ZTEST(alg_stationary, test_send) k_sleep(K_SECONDS(30)); task_terminate(0); zassert_equal(0, k_thread_join(imu_thread, K_SECONDS(2))); - schedule[0].task_args.infuse.imu.accelerometer.rate_hz = 10; - schedule[0].task_args.infuse.imu.fifo_sample_buffer = 10; + schedule[0].task_args.imu.accelerometer.rate_hz = 10; + schedule[0].task_args.imu.fifo_sample_buffer = 10; imu_thread = task_schedule(0); imu_emul_accelerometer_data_configure(DEV, 0.0f, 0.0f, 1.0f, 100); diff --git a/tests/subsys/algorithm/algorithms/tilt/src/main.c b/tests/subsys/algorithm/algorithms/tilt/src/main.c index 0032d9f74..be16358bd 100644 --- a/tests/subsys/algorithm/algorithms/tilt/src/main.c +++ b/tests/subsys/algorithm/algorithms/tilt/src/main.c @@ -108,7 +108,7 @@ ZTEST(alg_stationary, test_send) k_tid_t imu_thread; float last; - schedule[0].task_args.infuse.imu = (struct task_imu_args){ + schedule[0].task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 4, diff --git a/tests/subsys/definitions_extend/CMakeLists.txt b/tests/subsys/definitions_extend/CMakeLists.txt index f0fd049a8..9c1a71e19 100644 --- a/tests/subsys/definitions_extend/CMakeLists.txt +++ b/tests/subsys/definitions_extend/CMakeLists.txt @@ -7,16 +7,30 @@ if(NOT infuse IN_LIST SNIPPET) set(SNIPPET infuse ${SNIPPET} CACHE STRING "" FORCE) endif() +if(NOT DEFINED KCONFIG_BINARY_DIR) + set(KCONFIG_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Kconfig) +endif() + +find_program(WEST_EXECUTABLE west REQUIRED) + +execute_process( + COMMAND ${WEST_EXECUTABLE} cloudgen + -d ${CMAKE_CURRENT_LIST_DIR}/extensions + -o ${KCONFIG_BINARY_DIR} + --skip-python-generation + RESULT_VARIABLE ret +) +if(NOT ret EQUAL 0) + message(FATAL_ERROR "cloudgen failed: ${ret}") +endif() + find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(application_states) -# Use the extended definitions generated by `west cloudgen` -# To regenerate: -# cd infuse-sdk/tests/subsys/definitions_extend/ -# west cloudgen -d ./extensions -o . -zephyr_include_directories(generated/include) +# Use extended definitions generated into the build directory before Kconfig runs. +zephyr_include_directories(${KCONFIG_BINARY_DIR}/generated/include include) # Compile in the extended RPC commands -zephyr_sources(generated/rpc_command_runner.c) +zephyr_sources(${KCONFIG_BINARY_DIR}/generated/rpc_command_runner.c) target_sources(app PRIVATE src/main.c diff --git a/tests/subsys/definitions_extend/Kconfig b/tests/subsys/definitions_extend/Kconfig index 8c0139ced..bb1563b6c 100644 --- a/tests/subsys/definitions_extend/Kconfig +++ b/tests/subsys/definitions_extend/Kconfig @@ -1,9 +1,10 @@ # Application Kconfig settings # Include our updated definitions since CONFIG_INFUSE_DEFS_GENERATED_DOWNSTREAM=y -# Normally this would be done by the root downstream Kconfig file -rsource "generated/Kconfig.kv_keys" -rsource "generated/Kconfig.rpc_commands" +# Normally this would be done by the root downstream Kconfig file. The test +# generates these files in CMake before Zephyr evaluates Kconfig. +source "$(KCONFIG_BINARY_DIR)/generated/Kconfig.kv_keys" +source "$(KCONFIG_BINARY_DIR)/generated/Kconfig.rpc_commands" # Source base Zephyr kconfig tree source "Kconfig.zephyr" diff --git a/tests/subsys/definitions_extend/extensions/tasks.json b/tests/subsys/definitions_extend/extensions/tasks.json new file mode 100644 index 000000000..2ec400a6f --- /dev/null +++ b/tests/subsys/definitions_extend/extensions/tasks.json @@ -0,0 +1,55 @@ +{ + "structs": { + "schedule_struct_task_ext1_payload": { + "description": "Extension task payload", + "fields": [ + {"name": "count", "type": "uint16_t", "description": "Payload count"}, + {"name": "mode", "type": "enum schedule_enum_task_ext1_mode", "description": "Payload mode"} + ] + } + }, + "unions": {}, + "enums": { + "schedule_enum_task_ext1_logs": { + "description": "Extension task TDF mask", + "type": "uint8_t", + "values": [ + {"name": "VALUE", "bit": 0, "description": "Log extension values"}, + {"name": "STATE", "bit": 2, "description": "Log extension state"} + ] + }, + "schedule_enum_task_ext1_mode": { + "description": "Extension task mode", + "type": "uint8_t", + "values": [ + {"name": "ONE", "value": 1, "description": "Mode one"}, + {"name": "TWO", "value": 2, "description": "Mode two"} + ] + }, + "schedule_enum_task_ext1_flags": { + "description": "Extension task flags", + "type": "uint8_t", + "values": [ + {"name": "ENABLED", "bit": 0, "description": "Enable extension task"}, + {"name": "ALT_OUTPUT", "bit": 3, "description": "Use alternate output"} + ] + } + }, + "definitions": { + "42": { + "name": "EXT1", + "description": "Extension task arguments (@ref task_ext1_args)", + "alternate_ids": { + "43": { + "name": "EXT1_ALT", + "description": "Extension task alternate task ID" + } + }, + "fields": [ + {"name": "payload", "type": "struct schedule_struct_task_ext1_payload", "description": "Task payload"}, + {"name": "flags", "type": "enum schedule_enum_task_ext1_flags", "description": "Task flags"}, + {"name": "samples", "type": "uint8_t", "description": "Samples to collect"} + ] + } + } +} diff --git a/tests/subsys/definitions_extend/generated/Kconfig.kv_keys b/tests/subsys/definitions_extend/generated/Kconfig.kv_keys deleted file mode 100644 index 119bea49a..000000000 --- a/tests/subsys/definitions_extend/generated/Kconfig.kv_keys +++ /dev/null @@ -1,305 +0,0 @@ -# Autogenerated KV key options -# scripts/west_commands/cloudgen.py - -if KV_STORE - -config KV_STORE_KEY_REBOOTS - bool "Enable KV key REBOOTS" - help - Number of times device has rebooted - -config KV_STORE_KEY_BLUETOOTH_ADDR - bool "Enable KV key BLUETOOTH_ADDR" - default y if BT - help - Bluetooth advertising address - -config KV_STORE_KEY_EXFAT_DISK_INFO - bool "Enable KV key EXFAT_DISK_INFO" - default y if DATA_LOGGER_EXFAT - help - exFAT disk information - -config KV_STORE_KEY_BLUETOOTH_CTLR_VERSION - bool "Enable KV key BLUETOOTH_CTLR_VERSION" - depends on !HAS_BT_CTLR - default y if BT - help - External Bluetooth controller version - -config KV_STORE_KEY_DEVICE_NAME - bool "Enable KV key DEVICE_NAME" - default y - help - Personalised name for the device - -config KV_STORE_KEY_INFUSE_APPLICATION_ID - bool "Enable KV key INFUSE_APPLICATION_ID" - help - CONFIG_INFUSE_APPLICATION_ID, store will be reset if the values don't match - -config KV_STORE_KEY_APPLICATION_ACTIVE - bool "Enable KV key APPLICATION_ACTIVE" - help - Control STATE_APPLICATION_ACTIVE - -config KV_STORE_KEY_BOARD_TARGET - bool "Enable KV key BOARD_TARGET" - default y - help - Value of CONFIG_BOARD_TARGET - -config KV_STORE_KEY_SECONDARY_REMOTE_PUBLIC_KEY - bool "Enable KV key SECONDARY_REMOTE_PUBLIC_KEY" - depends on INFUSE_SECURITY_SECONDARY_REMOTE_ENABLE - default y - help - Storage of secondary remote public key - -config KV_STORE_KEY_FIXED_LOCATION - bool "Enable KV key FIXED_LOCATION" - help - Fixed global location of the device - -config KV_STORE_KEY_BROADCAST_FIXED_INDOORS - bool "Enable KV key BROADCAST_FIXED_INDOORS" - depends on EPACKET_INTERFACE_BT_ADV - help - Device is fixed indoors and should broadcast the fact - -config KV_STORE_KEY_LITTLEFS_FS_STATE - bool "Enable KV key LITTLEFS_FS_STATE" - depends on INFUSE_LITTLEFS - default y - help - State of LittleFS filesystem - -config KV_STORE_KEY_LITTLEFS_ALGORITHMS_STATE - bool "Enable KV key LITTLEFS_ALGORITHMS_STATE" - depends on INFUSE_LITTLEFS - default y - help - State of algorithms on the LittleFS filesystem - -config KV_STORE_KEY_WIFI_SSID - bool "Enable KV key WIFI_SSID" - default y if WIFI - help - WiFi network name - -config KV_STORE_KEY_WIFI_PSK - bool "Enable KV key WIFI_PSK" - default y if WIFI - help - WiFi network password - -config KV_STORE_KEY_WIFI_CHANNELS - bool "Enable KV key WIFI_CHANNELS" - default y if WIFI - help - WiFi band and channel configuration - -config KV_STORE_KEY_NTP_SERVER_URL - bool "Enable KV key NTP_SERVER_URL" - default y if SNTP - help - URL of the NTP server to use for time synchronisation - -config KV_STORE_KEY_EPACKET_UDP_URL - bool "Enable KV key EPACKET_UDP_URL" - default y if EPACKET_INTERFACE_UDP - help - ePacket UDP server hostname - -config KV_STORE_KEY_EPACKET_UDP_PORT - bool "Enable KV key EPACKET_UDP_PORT" - default y if EPACKET_INTERFACE_UDP - help - ePacket UDP server port - -config KV_STORE_KEY_LTE_MODEM_MODEL - bool "Enable KV key LTE_MODEM_MODEL" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - Modem model as returned by AT+CGMM - -config KV_STORE_KEY_LTE_MODEM_FIRMWARE_REVISION - bool "Enable KV key LTE_MODEM_FIRMWARE_REVISION" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - Modem firmware revision as returned by AT+CGMR - -config KV_STORE_KEY_LTE_MODEM_ESN - bool "Enable KV key LTE_MODEM_ESN" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - 'Electronic Serial Number' as returned by AT+CGSN=0 - -config KV_STORE_KEY_LTE_MODEM_IMEI - bool "Enable KV key LTE_MODEM_IMEI" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - 'International Modem Equipment Identifier' as returned by AT+CGSN=1 - -config KV_STORE_KEY_LTE_SIM_UICC - bool "Enable KV key LTE_SIM_UICC" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - SIM Universal Identifier (https://www.itu.int/en/ITU-T/inr/forms/Pages/iin.aspx) - -config KV_STORE_KEY_LTE_PDP_CONFIG - bool "Enable KV key LTE_PDP_CONFIG" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - Packet Data Protocol (PDP) default context configuration - -config KV_STORE_KEY_LTE_NETWORKING_MODES - bool "Enable KV key LTE_NETWORKING_MODES" - default y if NRF_MODEM_LIB - help - Enabled LTE networking modes and preferences - -config KV_STORE_KEY_LTE_SIM_IMSI - bool "Enable KV key LTE_SIM_IMSI" - default y if NRF_MODEM_LIB || MODEM_CELLULAR - help - 'International Modem Subscriber Identity' as returned by AT+CIMI - -config KV_STORE_KEY_BLUETOOTH_PEER - bool "Enable KV key BLUETOOTH_PEER" - help - Bluetooth peer device - -config KV_STORE_KEY_LORA_CONFIG - bool "Enable KV key LORA_CONFIG" - depends on LORA - default y - help - LoRa modem configuration - -config KV_STORE_KEY_BLUETOOTH_THROUGHPUT_LIMIT - bool "Enable KV key BLUETOOTH_THROUGHPUT_LIMIT" - depends on BT_CENTRAL - default y - help - Request connected Bluetooth peers to limit throughput - -config KV_STORE_KEY_LED_DISABLE_DAILY_TIME_RANGE - bool "Enable KV key LED_DISABLE_DAILY_TIME_RANGE" - help - Disable LEDs between two UTC times daily - -config KV_STORE_KEY_MEMFAULT_DISABLE - bool "Enable KV key MEMFAULT_DISABLE" - depends on MEMFAULT - default y - help - Disable Memfault reporting at runtime - -config KV_STORE_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS - bool "Enable KV key GATEWAY_BLUETOOTH_FORWARD_OPTIONS" - help - Forwarding configuration for Bluetooth advertising packets - -config KV_STORE_KEY_NRF_EDGE_AI_RUNTIME_VERSION - bool "Enable KV key NRF_EDGE_AI_RUNTIME_VERSION" - depends on NRF_EDGEAI - default y - help - Version of the nRF Edge AI runtime - -config KV_STORE_KEY_GRAVITY_REFERENCE - bool "Enable KV key GRAVITY_REFERENCE" - help - Reference gravity vector for tilt calculations - -config KV_STORE_KEY_GEOFENCE - bool "Enable KV key GEOFENCE" - help - Array of points defining a closed polygon - -config KV_STORE_KEY_GEOFENCE_RANGE - int "Number of GEOFENCE slots to enable" - depends on KV_STORE_KEY_GEOFENCE - range 1 16 - default 1 - -config KV_STORE_KEY_ALG_STATIONARY_WINDOWED_ARGS - bool "Enable KV key ALG_STATIONARY_WINDOWED_ARGS" - depends on ALGORITHM_RUNNER_ALG_STATIONARY_WINDOWED - default y - help - Configuration for the 'Stationary Windowed' algorithm - -config KV_STORE_KEY_ALG_TILT_ARGS - bool "Enable KV key ALG_TILT_ARGS" - depends on ALGORITHM_RUNNER_ALG_TILT - default y - help - Configuration for the 'Tilt' algorithm - -config KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS - bool "Enable KV key ALG_MOVEMENT_THRESHOLD_ARGS" - depends on ALGORITHM_RUNNER_ALG_MOVEMENT_THRESHOLD - help - Configuration for the 'Movement Threshold' algorithm - -config KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2 - bool "Enable KV key ALG_MOVEMENT_THRESHOLD_ARGS_V2" - depends on ALGORITHM_RUNNER_ALG_MOVEMENT_THRESHOLD - default y - help - Configuration for the 'Movement Threshold' algorithm - -config KV_STORE_KEY_TASK_SCHEDULES_DEFAULT_ID - bool "Enable KV key TASK_SCHEDULES_DEFAULT_ID" - default y if TASK_RUNNER - help - Unique identifier for default schedule set - -config KV_STORE_KEY_TASK_SCHEDULES - bool "Enable KV key TASK_SCHEDULES" - default y if TASK_RUNNER - help - Task runner task schedule definition (@ref task_schedule) - -config KV_STORE_KEY_TASK_SCHEDULES_RANGE - int "Number of TASK_SCHEDULES slots to enable" - depends on KV_STORE_KEY_TASK_SCHEDULES - range 1 32 - default 16 - -config KV_STORE_KEY_SECURE_STORAGE_RESERVED - bool "Enable KV key SECURE_STORAGE_RESERVED" - depends on !INFUSE_SDK - help - Keys reserved for secure storage (do not enable) - -config KV_STORE_KEY_SECURE_STORAGE_RESERVED_RANGE - int "Number of SECURE_STORAGE_RESERVED slots to enable" - depends on KV_STORE_KEY_SECURE_STORAGE_RESERVED - range 1 10 - default 1 - -config KV_STORE_KEY_EXT1 - bool "Enable KV key EXT1" - help - Extension KV slot 1 - -config KV_STORE_KEY_EXT2 - bool "Enable KV key EXT2" - help - Extension KV slot 2 - -config KV_STORE_KEY_EXT2_RANGE - int "Number of EXT2 slots to enable" - depends on KV_STORE_KEY_EXT2 - range 1 2 - default 1 - -config KV_STORE_KEY_EXT3 - bool "Enable KV key EXT3" - help - Extension KV slot 3 - -endif # KV_STORE diff --git a/tests/subsys/definitions_extend/generated/Kconfig.rpc_commands b/tests/subsys/definitions_extend/generated/Kconfig.rpc_commands deleted file mode 100644 index 846d92ca7..000000000 --- a/tests/subsys/definitions_extend/generated/Kconfig.rpc_commands +++ /dev/null @@ -1,601 +0,0 @@ -# Autogenerated RPC command options -# scripts/west_commands/cloudgen.py - -config INFUSE_RPC_COMMAND_REBOOT - bool "Enable RPC reboot" - depends on INFUSE_REBOOT - default y if INFUSE_SDK - help - Reboot the device after a delay - -config INFUSE_RPC_COMMAND_REBOOT_REQUIRED_AUTH - int "Required authorisation level to run reboot" - depends on INFUSE_RPC_COMMAND_REBOOT - default 2 - -config INFUSE_RPC_COMMAND_FAULT - bool "Enable RPC fault" - depends on INFUSE_REBOOT && ARM - default y if INFUSE_SDK - help - Immediately trigger an exception on the device - -config INFUSE_RPC_COMMAND_FAULT_REQUIRED_AUTH - int "Required authorisation level to run fault" - depends on INFUSE_RPC_COMMAND_FAULT - default 2 - -config INFUSE_RPC_COMMAND_TIME_GET - bool "Enable RPC time_get" - depends on INFUSE_EPOCH_TIME - default y if INFUSE_SDK - help - Get the current time knowledge of the device - -config INFUSE_RPC_COMMAND_TIME_GET_REQUIRED_AUTH - int "Required authorisation level to run time_get" - depends on INFUSE_RPC_COMMAND_TIME_GET - default 1 - -config INFUSE_RPC_COMMAND_TIME_SET - bool "Enable RPC time_set" - depends on INFUSE_EPOCH_TIME - default y if INFUSE_SDK - help - Set the current time of the device - -config INFUSE_RPC_COMMAND_TIME_SET_REQUIRED_AUTH - int "Required authorisation level to run time_set" - depends on INFUSE_RPC_COMMAND_TIME_SET - default 2 - -config INFUSE_RPC_COMMAND_KV_WRITE - bool "Enable RPC kv_write" - depends on KV_STORE - default y if INFUSE_SDK - help - Write values to the KV store - -config INFUSE_RPC_COMMAND_KV_WRITE_REQUIRED_AUTH - int "Required authorisation level to run kv_write" - depends on INFUSE_RPC_COMMAND_KV_WRITE - default 2 - -config INFUSE_RPC_COMMAND_KV_READ - bool "Enable RPC kv_read" - depends on KV_STORE - default y if INFUSE_SDK - help - Read values from the KV store - -config INFUSE_RPC_COMMAND_KV_READ_REQUIRED_AUTH - int "Required authorisation level to run kv_read" - depends on INFUSE_RPC_COMMAND_KV_READ - default 2 - -config INFUSE_RPC_COMMAND_KV_REFLECT_CRCS - bool "Enable RPC kv_reflect_crcs" - depends on KV_STORE - default y if INFUSE_SDK - help - Read KV store CRCs - -config INFUSE_RPC_COMMAND_KV_REFLECT_CRCS_REQUIRED_AUTH - int "Required authorisation level to run kv_reflect_crcs" - depends on INFUSE_RPC_COMMAND_KV_REFLECT_CRCS - default 2 - -config INFUSE_RPC_COMMAND_ZBUS_CHANNEL_STATE - bool "Enable RPC zbus_channel_state" - depends on ZBUS - default y if INFUSE_SDK - help - Query current state of zbus channel - -config INFUSE_RPC_COMMAND_ZBUS_CHANNEL_STATE_REQUIRED_AUTH - int "Required authorisation level to run zbus_channel_state" - depends on INFUSE_RPC_COMMAND_ZBUS_CHANNEL_STATE - default 2 - -config INFUSE_RPC_COMMAND_APPLICATION_INFO - bool "Enable RPC application_info" - default y if INFUSE_SDK - help - Query basic application versions and state - -config INFUSE_RPC_COMMAND_APPLICATION_INFO_REQUIRED_AUTH - int "Required authorisation level to run application_info" - depends on INFUSE_RPC_COMMAND_APPLICATION_INFO - default 1 - -config INFUSE_RPC_COMMAND_WIFI_SCAN - bool "Enable RPC wifi_scan" - depends on NET_L2_WIFI_MGMT - default y if INFUSE_SDK - help - Scan for WiFi networks - -config INFUSE_RPC_COMMAND_WIFI_SCAN_REQUIRED_AUTH - int "Required authorisation level to run wifi_scan" - depends on INFUSE_RPC_COMMAND_WIFI_SCAN - default 2 - -config INFUSE_RPC_COMMAND_WIFI_STATE - bool "Enable RPC wifi_state" - depends on NET_L2_WIFI_MGMT - default y if INFUSE_SDK - help - Get current WiFi interface state - -config INFUSE_RPC_COMMAND_WIFI_STATE_REQUIRED_AUTH - int "Required authorisation level to run wifi_state" - depends on INFUSE_RPC_COMMAND_WIFI_STATE - default 2 - -config INFUSE_RPC_COMMAND_LAST_REBOOT - bool "Enable RPC last_reboot" - depends on INFUSE_COMMON_BOOT - default y if INFUSE_SDK - help - Retrieve information pertaining to the previous reboot - -config INFUSE_RPC_COMMAND_LAST_REBOOT_REQUIRED_AUTH - int "Required authorisation level to run last_reboot" - depends on INFUSE_RPC_COMMAND_LAST_REBOOT - default 2 - -config INFUSE_RPC_COMMAND_DATA_LOGGER_STATE - bool "Enable RPC data_logger_state" - depends on DATA_LOGGER - default y if INFUSE_SDK - help - Get state of a data logger - -config INFUSE_RPC_COMMAND_DATA_LOGGER_STATE_REQUIRED_AUTH - int "Required authorisation level to run data_logger_state" - depends on INFUSE_RPC_COMMAND_DATA_LOGGER_STATE - default 2 - -config INFUSE_RPC_COMMAND_DATA_LOGGER_READ - bool "Enable RPC data_logger_read" - depends on DATA_LOGGER - default y if INFUSE_SDK - help - Read data from data logger - -config INFUSE_RPC_COMMAND_DATA_LOGGER_READ_REQUIRED_AUTH - int "Required authorisation level to run data_logger_read" - depends on INFUSE_RPC_COMMAND_DATA_LOGGER_READ - default 2 - -config INFUSE_RPC_COMMAND_MEM_READ - bool "Enable RPC mem_read" - default y if INFUSE_SDK - help - Read arbitrary memory (NO ADDRESS VALIDATION PERFORMED) - -config INFUSE_RPC_COMMAND_MEM_READ_REQUIRED_AUTH - int "Required authorisation level to run mem_read" - depends on INFUSE_RPC_COMMAND_MEM_READ - default 2 - -config INFUSE_RPC_COMMAND_INFUSE_STATES_QUERY - bool "Enable RPC infuse_states_query" - depends on INFUSE_APPLICATION_STATES - default y if INFUSE_SDK - help - Read current Infuse-IoT application states - -config INFUSE_RPC_COMMAND_INFUSE_STATES_QUERY_REQUIRED_AUTH - int "Required authorisation level to run infuse_states_query" - depends on INFUSE_RPC_COMMAND_INFUSE_STATES_QUERY - default 2 - -config INFUSE_RPC_COMMAND_INFUSE_STATES_UPDATE - bool "Enable RPC infuse_states_update" - depends on INFUSE_APPLICATION_STATES - default y if INFUSE_SDK - help - Update Infuse-IoT application states - -config INFUSE_RPC_COMMAND_INFUSE_STATES_UPDATE_REQUIRED_AUTH - int "Required authorisation level to run infuse_states_update" - depends on INFUSE_RPC_COMMAND_INFUSE_STATES_UPDATE - default 2 - -config INFUSE_RPC_COMMAND_DATA_LOGGER_ERASE - bool "Enable RPC data_logger_erase" - depends on DATA_LOGGER - default y if INFUSE_SDK - help - Erase all data from a data logger - -config INFUSE_RPC_COMMAND_DATA_LOGGER_ERASE_REQUIRED_AUTH - int "Required authorisation level to run data_logger_erase" - depends on INFUSE_RPC_COMMAND_DATA_LOGGER_ERASE - default 2 - -config INFUSE_RPC_COMMAND_HEAP_STATS - bool "Enable RPC heap_stats" - depends on SYS_HEAP_RUNTIME_STATS - default y if INFUSE_SDK - help - Query stats of heaps - -config INFUSE_RPC_COMMAND_HEAP_STATS_REQUIRED_AUTH - int "Required authorisation level to run heap_stats" - depends on INFUSE_RPC_COMMAND_HEAP_STATS - default 2 - -config INFUSE_RPC_COMMAND_LTE_AT_CMD - bool "Enable RPC lte_at_cmd" - depends on NRF_MODEM_LIB || MODEM_CELLULAR - default y if INFUSE_SDK - help - Run AT command against LTE modem - -config INFUSE_RPC_COMMAND_LTE_AT_CMD_REQUIRED_AUTH - int "Required authorisation level to run lte_at_cmd" - depends on INFUSE_RPC_COMMAND_LTE_AT_CMD - default 2 - -config INFUSE_RPC_COMMAND_LTE_STATE - bool "Enable RPC lte_state" - depends on INFUSE_MODEM_MONITOR - default y if INFUSE_SDK - help - Get current LTE interface state - -config INFUSE_RPC_COMMAND_LTE_STATE_REQUIRED_AUTH - int "Required authorisation level to run lte_state" - depends on INFUSE_RPC_COMMAND_LTE_STATE - default 2 - -config INFUSE_RPC_COMMAND_DATA_LOGGER_READ_AVAILABLE - bool "Enable RPC data_logger_read_available" - depends on DATA_LOGGER - default y if INFUSE_SDK - help - Read data from data logger, with auto-updating start_block - -config INFUSE_RPC_COMMAND_DATA_LOGGER_READ_AVAILABLE_REQUIRED_AUTH - int "Required authorisation level to run data_logger_read_available" - depends on INFUSE_RPC_COMMAND_DATA_LOGGER_READ_AVAILABLE - default 2 - -config INFUSE_RPC_COMMAND_LTE_STATE_V2 - bool "Enable RPC lte_state_v2" - depends on INFUSE_MODEM_MONITOR - default y if INFUSE_SDK - help - Get current LTE interface state (with RAI information) - -config INFUSE_RPC_COMMAND_LTE_STATE_V2_REQUIRED_AUTH - int "Required authorisation level to run lte_state_v2" - depends on INFUSE_RPC_COMMAND_LTE_STATE_V2 - default 2 - -config INFUSE_RPC_COMMAND_DATA_LOGGER_STATE_V2 - bool "Enable RPC data_logger_state_v2" - depends on DATA_LOGGER - default y if INFUSE_SDK - help - Get state of a data logger (Larger erase unit) - -config INFUSE_RPC_COMMAND_DATA_LOGGER_STATE_V2_REQUIRED_AUTH - int "Required authorisation level to run data_logger_state_v2" - depends on INFUSE_RPC_COMMAND_DATA_LOGGER_STATE_V2 - default 2 - -config INFUSE_RPC_COMMAND_DATA_LOGGER_READ_CHUNKS - bool "Enable RPC data_logger_read_chunks" - depends on DATA_LOGGER - default y if INFUSE_SDK - help - Read a number of arbitrary chunks from a data logger - -config INFUSE_RPC_COMMAND_DATA_LOGGER_READ_CHUNKS_REQUIRED_AUTH - int "Required authorisation level to run data_logger_read_chunks" - depends on INFUSE_RPC_COMMAND_DATA_LOGGER_READ_CHUNKS - default 2 - -config INFUSE_RPC_COMMAND_THREAD_STATS - bool "Enable RPC thread_stats" - depends on THREAD_ANALYZER - default y if INFUSE_SDK - help - Query runtime thread statistics - -config INFUSE_RPC_COMMAND_THREAD_STATS_REQUIRED_AUTH - int "Required authorisation level to run thread_stats" - depends on INFUSE_RPC_COMMAND_THREAD_STATS - default 2 - -config INFUSE_RPC_COMMAND_COAP_DOWNLOAD - bool "Enable RPC coap_download" - depends on INFUSE_COAP - default y if INFUSE_SDK - help - Download a file from a COAP server (Infuse-IoT DTLS protected) - -config INFUSE_RPC_COMMAND_COAP_DOWNLOAD_REQUIRED_AUTH - int "Required authorisation level to run coap_download" - depends on INFUSE_RPC_COMMAND_COAP_DOWNLOAD - default 2 - -config INFUSE_RPC_COMMAND_ZPERF_UPLOAD - bool "Enable RPC zperf_upload" - depends on NET_ZPERF - default y if INFUSE_SDK - help - Network upload bandwidth testing using zperf/iperf - -config INFUSE_RPC_COMMAND_ZPERF_UPLOAD_REQUIRED_AUTH - int "Required authorisation level to run zperf_upload" - depends on INFUSE_RPC_COMMAND_ZPERF_UPLOAD - default 2 - -config INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V2 - bool "Enable RPC coap_download_v2" - depends on INFUSE_COAP - default y if INFUSE_SDK - help - Download a file from a COAP server (Infuse-IoT DTLS protected) - -config INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V2_REQUIRED_AUTH - int "Required authorisation level to run coap_download_v2" - depends on INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V2 - default 2 - -config INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V3 - bool "Enable RPC coap_download_v3" - depends on INFUSE_COAP - default y if INFUSE_SDK - help - Download a file from a COAP server (Infuse-IoT DTLS protected) - -config INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V3_REQUIRED_AUTH - int "Required authorisation level to run coap_download_v3" - depends on INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V3 - default 2 - -config INFUSE_RPC_COMMAND_FILE_WRITE_BASIC - bool "Enable RPC file_write_basic" - default y if INFUSE_SDK - help - Write a file to the device - -config INFUSE_RPC_COMMAND_FILE_WRITE_BASIC_REQUIRED_AUTH - int "Required authorisation level to run file_write_basic" - depends on INFUSE_RPC_COMMAND_FILE_WRITE_BASIC - default 1 - -config INFUSE_RPC_COMMAND_ANNOTATE - bool "Enable RPC annotate" - depends on TDF_DATA_LOGGER - help - Write an annotation to the device - -config INFUSE_RPC_COMMAND_ANNOTATE_REQUIRED_AUTH - int "Required authorisation level to run annotate" - depends on INFUSE_RPC_COMMAND_ANNOTATE - default 2 - -config INFUSE_RPC_COMMAND_TDF_DATA_LOGGER_FLUSH - bool "Enable RPC tdf_data_logger_flush" - depends on TDF_DATA_LOGGER - default y if INFUSE_SDK - help - Write an annotation to the device - -config INFUSE_RPC_COMMAND_TDF_DATA_LOGGER_FLUSH_REQUIRED_AUTH - int "Required authorisation level to run tdf_data_logger_flush" - depends on INFUSE_RPC_COMMAND_TDF_DATA_LOGGER_FLUSH - default 2 - -config INFUSE_RPC_COMMAND_SHIPPING_MODE - bool "Enable RPC shipping_mode" - help - Enter/Exit shipping mode on a device - -config INFUSE_RPC_COMMAND_SHIPPING_MODE_REQUIRED_AUTH - int "Required authorisation level to run shipping_mode" - depends on INFUSE_RPC_COMMAND_SHIPPING_MODE - default 2 - -config INFUSE_RPC_COMMAND_FILE_WRITE - bool "Enable RPC file_write" - default y if INFUSE_SDK - help - Write a file to the device - -config INFUSE_RPC_COMMAND_FILE_WRITE_REQUIRED_AUTH - int "Required authorisation level to run file_write" - depends on INFUSE_RPC_COMMAND_FILE_WRITE - default 1 - -config INFUSE_RPC_COMMAND_BT_CONNECT_INFUSE - bool "Enable RPC bt_connect_infuse" - depends on EPACKET_INTERFACE_BT_CENTRAL - default y if INFUSE_SDK - help - Connect to an Infuse-IoT Bluetooth device - -config INFUSE_RPC_COMMAND_BT_CONNECT_INFUSE_REQUIRED_AUTH - int "Required authorisation level to run bt_connect_infuse" - depends on INFUSE_RPC_COMMAND_BT_CONNECT_INFUSE - default 2 - -config INFUSE_RPC_COMMAND_BT_DISCONNECT - bool "Enable RPC bt_disconnect" - depends on BT_GATT_CLIENT - default y if INFUSE_SDK - help - Disconnect from a Bluetooth device - -config INFUSE_RPC_COMMAND_BT_DISCONNECT_REQUIRED_AUTH - int "Required authorisation level to run bt_disconnect" - depends on INFUSE_RPC_COMMAND_BT_DISCONNECT - default 2 - -config INFUSE_RPC_COMMAND_BT_FILE_COPY_BASIC - bool "Enable RPC bt_file_copy_basic" - depends on EPACKET_INTERFACE_BT_CENTRAL && INFUSE_RPC_COMMAND_FILE_WRITE_BASIC && INFUSE_RPC_CLIENT && $(dt_nodelabel_exists,file_partition) - help - Copy a local file to a remote device over Bluetooth - -config INFUSE_RPC_COMMAND_BT_FILE_COPY_BASIC_REQUIRED_AUTH - int "Required authorisation level to run bt_file_copy_basic" - depends on INFUSE_RPC_COMMAND_BT_FILE_COPY_BASIC - default 2 - -config INFUSE_RPC_COMMAND_BT_FILE_COPY_COAP - bool "Enable RPC bt_file_copy_coap" - depends on INFUSE_RPC_COMMAND_COAP_DOWNLOAD && INFUSE_RPC_COMMAND_BT_FILE_COPY_BASIC - help - Copy a file fetched from COAP to a remote device over Bluetooth - -config INFUSE_RPC_COMMAND_BT_FILE_COPY_COAP_REQUIRED_AUTH - int "Required authorisation level to run bt_file_copy_coap" - depends on INFUSE_RPC_COMMAND_BT_FILE_COPY_COAP - default 2 - -config INFUSE_RPC_COMMAND_BT_MCUMGR_REBOOT - bool "Enable RPC bt_mcumgr_reboot" - depends on BT_GATT_CLIENT - default y if INFUSE_SDK - help - Connect to a Bluetooth device and run the MCUMGR reboot command - -config INFUSE_RPC_COMMAND_BT_MCUMGR_REBOOT_REQUIRED_AUTH - int "Required authorisation level to run bt_mcumgr_reboot" - depends on INFUSE_RPC_COMMAND_BT_MCUMGR_REBOOT - default 2 - -config INFUSE_RPC_COMMAND_GRAVITY_REFERENCE_UPDATE - bool "Enable RPC gravity_reference_update" - depends on INFUSE_ZBUS_CHAN_IMU && KV_STORE_KEY_GRAVITY_REFERENCE && ZBUS_RUNTIME_OBSERVERS - default y - help - Store the current accelerometer vector as the gravity reference - -config INFUSE_RPC_COMMAND_GRAVITY_REFERENCE_UPDATE_REQUIRED_AUTH - int "Required authorisation level to run gravity_reference_update" - depends on INFUSE_RPC_COMMAND_GRAVITY_REFERENCE_UPDATE - default 2 - -config INFUSE_RPC_COMMAND_FILESYSTEM_LS - bool "Enable RPC filesystem_ls" - depends on INFUSE_LITTLEFS - default y - help - Query files currently on the filesystem - -config INFUSE_RPC_COMMAND_FILESYSTEM_LS_REQUIRED_AUTH - int "Required authorisation level to run filesystem_ls" - depends on INFUSE_RPC_COMMAND_FILESYSTEM_LS - default 2 - -config INFUSE_RPC_COMMAND_FILESYSTEM_RM - bool "Enable RPC filesystem_rm" - depends on INFUSE_LITTLEFS - default y - help - Delete file currently on the filesystem - -config INFUSE_RPC_COMMAND_FILESYSTEM_RM_REQUIRED_AUTH - int "Required authorisation level to run filesystem_rm" - depends on INFUSE_RPC_COMMAND_FILESYSTEM_RM - default 2 - -config INFUSE_RPC_COMMAND_UBX_ASSIST_NOW_ZTP_CREDS - bool "Enable RPC ubx_assist_now_ztp_creds" - depends on GNSS_UBX_M10 - default y - help - Retrieve U-blox AssistNow Zero Touch Provisioning credentials - -config INFUSE_RPC_COMMAND_UBX_ASSIST_NOW_ZTP_CREDS_REQUIRED_AUTH - int "Required authorisation level to run ubx_assist_now_ztp_creds" - depends on INFUSE_RPC_COMMAND_UBX_ASSIST_NOW_ZTP_CREDS - default 2 - -config INFUSE_RPC_COMMAND_SECURITY_STATE - bool "Enable RPC security_state" - default y if INFUSE_SECURITY - help - Query current security state and validate identity - -config INFUSE_RPC_COMMAND_SECURITY_STATE_REQUIRED_AUTH - int "Required authorisation level to run security_state" - depends on INFUSE_RPC_COMMAND_SECURITY_STATE - default 1 - -config INFUSE_RPC_COMMAND_SECURITY_KEY_UPDATE - bool "Enable RPC security_key_update" - depends on INFUSE_REBOOT - default y if INFUSE_SECURITY - help - Update key material - -config INFUSE_RPC_COMMAND_SECURITY_KEY_UPDATE_REQUIRED_AUTH - int "Required authorisation level to run security_key_update" - depends on INFUSE_RPC_COMMAND_SECURITY_KEY_UPDATE - default 2 - -config INFUSE_RPC_COMMAND_SECURITY_PUBLIC_KEYS - bool "Enable RPC security_public_keys" - default y if INFUSE_SECURITY - help - Query device public keys - -config INFUSE_RPC_COMMAND_SECURITY_PUBLIC_KEYS_REQUIRED_AUTH - int "Required authorisation level to run security_public_keys" - depends on INFUSE_RPC_COMMAND_SECURITY_PUBLIC_KEYS - default 1 - -config INFUSE_RPC_COMMAND_DATA_SENDER - bool "Enable RPC data_sender" - depends on ENTROPY_GENERATOR - default y if ZTEST - help - Send multiple INFUSE_RPC_DATA packets - -config INFUSE_RPC_COMMAND_DATA_SENDER_REQUIRED_AUTH - int "Required authorisation level to run data_sender" - depends on INFUSE_RPC_COMMAND_DATA_SENDER - default 2 - -config INFUSE_RPC_COMMAND_DATA_RECEIVER - bool "Enable RPC data_receiver" - depends on CRC - default y if ZTEST - help - Receive multiple INFUSE_RPC_DATA packets - -config INFUSE_RPC_COMMAND_DATA_RECEIVER_REQUIRED_AUTH - int "Required authorisation level to run data_receiver" - depends on INFUSE_RPC_COMMAND_DATA_RECEIVER - default 2 - -config INFUSE_RPC_COMMAND_ECHO - bool "Enable RPC echo" - default y if ZTEST - help - Echo any input data in the response - -config INFUSE_RPC_COMMAND_ECHO_REQUIRED_AUTH - int "Required authorisation level to run echo" - depends on INFUSE_RPC_COMMAND_ECHO - default 1 - -config INFUSE_RPC_COMMAND_EXT1 - bool "Enable RPC ext1" - default y if INFUSE_SDK - help - Extension RPC 1 - -config INFUSE_RPC_COMMAND_EXT1_REQUIRED_AUTH - int "Required authorisation level to run ext1" - depends on INFUSE_RPC_COMMAND_EXT1 - default 2 diff --git a/tests/subsys/definitions_extend/generated/include/infuse/fs/kv_types.h b/tests/subsys/definitions_extend/generated/include/infuse/fs/kv_types.h deleted file mode 100644 index feaadd936..000000000 --- a/tests/subsys/definitions_extend/generated/include/infuse/fs/kv_types.h +++ /dev/null @@ -1,1275 +0,0 @@ -/** - * @file - * @brief Autogenerated KV definitions - * @copyright 2024 Embeint Holdings Pty Ltd - * @author scripts/west_commands/cloudgen.py - * - * INFUSE-IOT-AUTOGENERATED - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_GENERATED_KV_DEFINITIONS_H_ -#define INFUSE_SDK_INCLUDE_GENERATED_KV_DEFINITIONS_H_ - -#include - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Common KV struct fields - * @defgroup kv_struct_definitions Common KV struct fields - * @{ - */ - -/** Geographic Co-ordinate System location */ -struct gcs_location { - /** Degrees north/south, scaled by 1e-7 */ - int32_t latitude; - /** Degrees north/south, scaled by 1e-7 */ - int32_t longitude; - /** Height above WGS-84 ellipsoid, mm */ - int32_t height; -} __packed; - -/** Bluetooth address type (bt_addr_le_t) */ -struct bt_addr_le { - /** Address type (0 == Public, 1 == Random) */ - uint8_t type; - /** Address bytes */ - uint8_t val[6]; -} __packed; - -/** String type */ -struct kv_string { - /** Length of `value` (including NULL) */ - uint8_t value_num; - /** NULL terminated C string */ - char value[]; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define KV_STRUCT_KV_STRING_VAR(num) \ - struct { \ - uint8_t value_num; \ - char value[num]; \ - } __packed -/* clang-format on */ - -/** MCUboot semantic versioning struct */ -struct kv_mcuboot_img_sem_ver { - uint8_t major; - uint8_t minor; - uint16_t revision; - uint32_t build_num; -} __packed; - -/** Generic range structure */ -struct kv_range_u8 { - uint8_t lower; - uint8_t upper; -} __packed; - -/** UTC Hour-Minute-Second */ -struct kv_utc_hms { - uint8_t hour; - uint8_t minute; - uint8_t second; -} __packed; - -/** Algorithm logging configuration */ -struct kv_algorithm_logging { - /** TDF logger to log to */ - uint8_t loggers; - /** TDFs to log (algorithm specific bitmask */ - uint8_t tdf_mask; -} __packed; - -/** Arguments for 'Stationary Windowed' algorithm */ -struct kv_algorithm_stationary_windowed_args { - /** Duration of the window in seconds */ - uint32_t window_seconds; - /** Standard deviation threshold in micro-g, above this value the device is moving */ - uint32_t std_dev_threshold_ug; -} __packed; - -/** Arguments for 'Tilt' algorithm */ -struct kv_algorithm_tilt_args { - /** IIR filter alpha (see @ref iir_filter_single_pole_f32) */ - float iir_filter_alpha; - /** Percentage within one G magnitude must be to use for tilt calculation */ - uint8_t one_g_percent; -} __packed; - -/** Arguments for 'Shot Triggered' algorithm */ -struct kv_algorithm_movement_threshold_args { - /** How long moving state is refreshed for when movement detected */ - uint32_t moving_for; - /** Magnitude this far away from 1G triggers the moving state */ - uint32_t threshold_ug; -} __packed; - -/** Arguments for 'Shot Triggered' algorithm */ -struct kv_algorithm_movement_threshold_args_v2 { - /** How long moving state is refreshed for when movement detected */ - uint32_t moving_for; - /** Magnitude this far away from 1G triggers the moving state */ - uint32_t initial_threshold_ug; - /** Magnitude this far away from 1G continues the moving state */ - uint32_t continue_threshold_ug; -} __packed; - -/** Demo struct */ -struct kv_struct_demo { - int8_t x; - int8_t y; - int8_t z; -} __packed; - -/** - * @} - */ - -/** - * @brief Built-in KV Structure Definitions - * @defgroup builtin_kv_definitions KV Structure Definitions - * @{ - */ - -/** Number of times device has rebooted */ -struct kv_reboots { - uint32_t count; -} __packed; - -/** Bluetooth advertising address */ -struct kv_bluetooth_addr { - /** Broadcasting address */ - struct bt_addr_le address; -} __packed; - -/** exFAT disk information */ -struct kv_exfat_disk_info { - /** Disk block count */ - uint32_t block_count; - /** Disk block size */ - uint32_t block_size; -} __packed; - -/** External Bluetooth controller version */ -struct kv_bluetooth_ctlr_version { - /** Application ID */ - uint32_t application; - /** Application version number */ - struct kv_mcuboot_img_sem_ver version; -} __packed; - -/** Personalised name for the device */ -struct kv_device_name { - /** Personalised device name */ - struct kv_string name; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_DEVICE_NAME_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) name; \ - } __packed -/* clang-format on */ - -/** CONFIG_INFUSE_APPLICATION_ID, store will be reset if the values don't match */ -struct kv_infuse_application_id { - uint32_t application_id; -} __packed; - -/** Control STATE_APPLICATION_ACTIVE */ -struct kv_application_active { - /** Active for any non-zero value */ - uint8_t active; -} __packed; - -/** Value of CONFIG_BOARD_TARGET */ -struct kv_board_target { - /** Value of CONFIG_BOARD_TARGET */ - struct kv_string board_target; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_BOARD_TARGET_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) board_target; \ - } __packed -/* clang-format on */ - -/** Storage of secondary remote public key */ -struct kv_secondary_remote_public_key { - /** Remote public key */ - uint8_t public_key[32]; -} __packed; - -/** Fixed global location of the device */ -struct kv_fixed_location { - /** Location */ - struct gcs_location location; -} __packed; - -/** Device is fixed indoors and should broadcast the fact */ -struct kv_broadcast_fixed_indoors { - /** Non-zero: Device is indoors */ - uint8_t indoors; -} __packed; - -/** State of LittleFS filesystem */ -struct kv_littlefs_fs_state { - /** On-disk filesystem version */ - uint32_t disk_version; - /** Size of filesystem blocks in bytes */ - uint32_t block_size; - /** Total number of blocks in the filesystem */ - uint32_t block_count; - /** Blocks currently in use by the filesystem */ - uint32_t blocks_used; -} __packed; - -/** State of algorithms on the LittleFS filesystem */ -struct kv_littlefs_algorithms_state { - /** Number of algorithms on filesystem */ - uint8_t count; - /** XOR of all file data CRCs */ - uint32_t crc_xor; -} __packed; - -/** WiFi network name */ -struct kv_wifi_ssid { - /** WiFi network name */ - struct kv_string ssid; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_WIFI_SSID_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) ssid; \ - } __packed -/* clang-format on */ - -/** WiFi network password */ -struct kv_wifi_psk { - /** WiFi pre-shared-key */ - struct kv_string psk; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_WIFI_PSK_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) psk; \ - } __packed -/* clang-format on */ - -/** WiFi band and channel configuration */ -struct kv_wifi_channels { - /** WiFi frequency band (0 = 2.4Ghz, 1 = 5GHz, 2 = 6Ghz, other = Unknown) */ - uint8_t band; - /** WiFi channels network uses */ - uint8_t channels[]; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_WIFI_CHANNELS_VAR(num) \ - struct { \ - uint8_t band; \ - uint8_t channels[num]; \ - } __packed -/* clang-format on */ - -/** URL of the NTP server to use for time synchronisation */ -struct kv_ntp_server_url { - /** NTP server URL */ - struct kv_string url; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_NTP_SERVER_URL_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) url; \ - } __packed -/* clang-format on */ - -/** ePacket UDP server hostname */ -struct kv_epacket_udp_url { - /** UDP server hostname */ - struct kv_string server; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_EPACKET_UDP_URL_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) server; \ - } __packed -/* clang-format on */ - -/** ePacket UDP server port */ -struct kv_epacket_udp_port { - /** UDP server port */ - uint32_t port; -} __packed; - -/** Modem model as returned by AT+CGMM */ -struct kv_lte_modem_model { - /** Modem model */ - struct kv_string model; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_LTE_MODEM_MODEL_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) model; \ - } __packed -/* clang-format on */ - -/** Modem firmware revision as returned by AT+CGMR */ -struct kv_lte_modem_firmware_revision { - /** Firmware revision */ - struct kv_string revision; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_LTE_MODEM_FIRMWARE_REVISION_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) revision; \ - } __packed -/* clang-format on */ - -/** 'Electronic Serial Number' as returned by AT+CGSN=0 */ -struct kv_lte_modem_esn { - /** ESN or IMEI if not available */ - struct kv_string esn; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_LTE_MODEM_ESN_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) esn; \ - } __packed -/* clang-format on */ - -/** 'International Modem Equipment Identifier' as returned by AT+CGSN=1 */ -struct kv_lte_modem_imei { - /** 15 digit IMEI */ - uint64_t imei; -} __packed; - -/** SIM Universal Identifier (https://www.itu.int/en/ITU-T/inr/forms/Pages/iin.aspx) */ -struct kv_lte_sim_uicc { - /** Variable length UICC string */ - struct kv_string uicc; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_LTE_SIM_UICC_VAR(num) \ - struct { \ - KV_STRUCT_KV_STRING_VAR(num) uicc; \ - } __packed -/* clang-format on */ - -/** Packet Data Protocol (PDP) default context configuration */ -struct kv_lte_pdp_config { - /** Protocol family (0 = IPv4, 1 = IPv6, 2 = IPv4v6, 3 = Non-IP) */ - uint8_t family; - /** Access Point Name */ - struct kv_string apn; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_LTE_PDP_CONFIG_VAR(num) \ - struct { \ - uint8_t family; \ - KV_STRUCT_KV_STRING_VAR(num) apn; \ - } __packed -/* clang-format on */ - -/** Enabled LTE networking modes and preferences */ -struct kv_lte_networking_modes { - /** Enabled modes as per `enum lte_lc_system_mode` */ - uint8_t modes; - /** Preference as per `enum lte_lc_system_mode_preference` */ - uint8_t prefer; -} __packed; - -/** 'International Modem Subscriber Identity' as returned by AT+CIMI */ -struct kv_lte_sim_imsi { - /** 15 digit IMSI */ - uint64_t imsi; -} __packed; - -/** Bluetooth peer device */ -struct kv_bluetooth_peer { - /** Peer device Bluetooth address */ - struct bt_addr_le address; -} __packed; - -/** LoRa modem configuration */ -struct kv_lora_config { - /** Frequency (Hz) */ - uint32_t frequency; - /** Signal bandwidth (see enum lora_signal_bandwidth) */ - uint8_t bandwidth; - /** Spreading factor (see enum lora_datarate) */ - uint8_t spreading_factor; - /** Coding rate (see enum lora_coding_rate) */ - uint8_t coding_rate; - /** Preamble length */ - uint16_t preamble_len; - /** Transmit power (dBm) */ - int8_t tx_power; - /** Custom sync word */ - uint8_t sync_word; -} __packed; - -/** Request connected Bluetooth peers to limit throughput */ -struct kv_bluetooth_throughput_limit { - /** Requested throughput limit (kbps) */ - uint16_t limit_kbps; -} __packed; - -/** Disable LEDs between two UTC times daily */ -struct kv_led_disable_daily_time_range { - /** Disable LEDs at this time */ - struct kv_utc_hms disable_start; - /** Re-enable LEDs at this time */ - struct kv_utc_hms disable_end; -} __packed; - -/** Disable Memfault reporting at runtime */ -struct kv_memfault_disable { - /** Disable for any non-zero value */ - uint8_t disable; -} __packed; - -/** Forwarding configuration for Bluetooth advertising packets */ -struct kv_gateway_bluetooth_forward_options { - /** Forwarding flags (see @ref epacket_filter_flags) */ - uint8_t flags; - /** Percent of packets to forward that pass flags (255 = all, 128 = half, 0 = none) */ - uint8_t percent; -} __packed; - -/** Version of the nRF Edge AI runtime */ -struct kv_nrf_edge_ai_runtime_version { - /** Major version */ - uint8_t major; - /** Minor version */ - uint8_t minor; - /** Patch version */ - uint16_t patch; -} __packed; - -/** Reference gravity vector for tilt calculations */ -struct kv_gravity_reference { - /** X axis component of gravity vector */ - int16_t x; - /** Y axis component of gravity vector */ - int16_t y; - /** Z axis component of gravity vector */ - int16_t z; -} __packed; - -/** Array of points defining a closed polygon */ -struct kv_geofence { - /** Number of points in the geofence */ - uint8_t points_num; - /** Points in geofence */ - struct gcs_location points[]; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_GEOFENCE_VAR(num) \ - struct { \ - uint8_t points_num; \ - struct gcs_location points[num]; \ - } __packed -/* clang-format on */ - -/** Configuration for the 'Stationary Windowed' algorithm */ -struct kv_alg_stationary_windowed_args { - /** Algorithm logging */ - struct kv_algorithm_logging logging; - /** Algorithm arguments */ - struct kv_algorithm_stationary_windowed_args args; -} __packed; - -/** Configuration for the 'Tilt' algorithm */ -struct kv_alg_tilt_args { - /** Algorithm logging */ - struct kv_algorithm_logging logging; - /** Algorithm arguments */ - struct kv_algorithm_tilt_args args; -} __packed; - -/** Configuration for the 'Movement Threshold' algorithm */ -struct kv_alg_movement_threshold_args { - /** Algorithm logging */ - struct kv_algorithm_logging logging; - /** Algorithm arguments */ - struct kv_algorithm_movement_threshold_args args; -} __packed; - -/** Configuration for the 'Movement Threshold' algorithm */ -struct kv_alg_movement_threshold_args_v2 { - /** Algorithm logging */ - struct kv_algorithm_logging logging; - /** Algorithm arguments */ - struct kv_algorithm_movement_threshold_args_v2 args; -} __packed; - -/** Unique identifier for default schedule set */ -struct kv_task_schedules_default_id { - /** If this value changes, existing schedules are overwritten */ - uint32_t set_id; -} __packed; - -/** Task runner task schedule definition (@ref task_schedule) */ -struct kv_task_schedules { - /** Task ID referenced by schedule */ - uint8_t task_id; - /** TASK_VALID_* value */ - uint8_t validity; - /** TASK_PERIODICITY_* value */ - uint8_t periodicity_type; - /** Task will not start for the first N minutes after boot */ - uint8_t boot_lockout_minutes; - /** Duration after which task is requested to terminate */ - uint32_t timeout_s; - /** Battery charge thresholds to start the task */ - struct kv_range_u8 battery_start; - /** Battery charge thresholds to terminate the task */ - struct kv_range_u8 battery_terminate; - /** Remainder of schedule struct */ - uint8_t _remainder[]; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_TASK_SCHEDULES_VAR(num) \ - struct { \ - uint8_t task_id; \ - uint8_t validity; \ - uint8_t periodicity_type; \ - uint8_t boot_lockout_minutes; \ - uint32_t timeout_s; \ - struct kv_range_u8 battery_start; \ - struct kv_range_u8 battery_terminate; \ - uint8_t _remainder[num]; \ - } __packed -/* clang-format on */ - -/** Keys reserved for secure storage (do not enable) */ -struct kv_secure_storage_reserved { - /** Opaque data */ - uint8_t data_num; - /** Opaque data */ - uint8_t data[]; -} __packed; - -/* clang-format off */ -/** Compile time definition for known array length */ -#define _KV_KEY_SECURE_STORAGE_RESERVED_VAR(num) \ - struct { \ - uint8_t data_num; \ - uint8_t data[num]; \ - } __packed -/* clang-format on */ - -/** Extension KV slot 1 */ -struct kv_ext1 { - uint32_t a; -} __packed; - -/** Extension KV slot 2 */ -struct kv_ext2 { - struct kv_struct_demo a; -} __packed; - -/** Extension KV slot 3 */ -struct kv_ext3 { - uint64_t a; -} __packed; - -/* Infuse-IoT builtin KV definitions */ -enum kv_builtin_id { - /** Number of times device has rebooted */ - KV_KEY_REBOOTS = 0, - /** Bluetooth advertising address */ - KV_KEY_BLUETOOTH_ADDR = 1, - /** exFAT disk information */ - KV_KEY_EXFAT_DISK_INFO = 2, - /** External Bluetooth controller version */ - KV_KEY_BLUETOOTH_CTLR_VERSION = 3, - /** Personalised name for the device */ - KV_KEY_DEVICE_NAME = 4, - /** CONFIG_INFUSE_APPLICATION_ID, store will be reset if the values don't match */ - KV_KEY_INFUSE_APPLICATION_ID = 5, - /** Control STATE_APPLICATION_ACTIVE */ - KV_KEY_APPLICATION_ACTIVE = 6, - /** Value of CONFIG_BOARD_TARGET */ - KV_KEY_BOARD_TARGET = 7, - /** Storage of secondary remote public key */ - KV_KEY_SECONDARY_REMOTE_PUBLIC_KEY = 8, - /** Fixed global location of the device */ - KV_KEY_FIXED_LOCATION = 10, - /** Device is fixed indoors and should broadcast the fact */ - KV_KEY_BROADCAST_FIXED_INDOORS = 11, - /** State of LittleFS filesystem */ - KV_KEY_LITTLEFS_FS_STATE = 12, - /** State of algorithms on the LittleFS filesystem */ - KV_KEY_LITTLEFS_ALGORITHMS_STATE = 13, - /** WiFi network name */ - KV_KEY_WIFI_SSID = 20, - /** WiFi network password */ - KV_KEY_WIFI_PSK = 21, - /** WiFi band and channel configuration */ - KV_KEY_WIFI_CHANNELS = 22, - /** URL of the NTP server to use for time synchronisation */ - KV_KEY_NTP_SERVER_URL = 30, - /** ePacket UDP server hostname */ - KV_KEY_EPACKET_UDP_URL = 31, - /** ePacket UDP server port */ - KV_KEY_EPACKET_UDP_PORT = 32, - /** Modem model as returned by AT+CGMM */ - KV_KEY_LTE_MODEM_MODEL = 40, - /** Modem firmware revision as returned by AT+CGMR */ - KV_KEY_LTE_MODEM_FIRMWARE_REVISION = 41, - /** 'Electronic Serial Number' as returned by AT+CGSN=0 */ - KV_KEY_LTE_MODEM_ESN = 42, - /** 'International Modem Equipment Identifier' as returned by AT+CGSN=1 */ - KV_KEY_LTE_MODEM_IMEI = 43, - /** SIM Universal Identifier (https://www.itu.int/en/ITU-T/inr/forms/Pages/iin.aspx) */ - KV_KEY_LTE_SIM_UICC = 44, - /** Packet Data Protocol (PDP) default context configuration */ - KV_KEY_LTE_PDP_CONFIG = 45, - /** Enabled LTE networking modes and preferences */ - KV_KEY_LTE_NETWORKING_MODES = 46, - /** 'International Modem Subscriber Identity' as returned by AT+CIMI */ - KV_KEY_LTE_SIM_IMSI = 47, - /** Bluetooth peer device */ - KV_KEY_BLUETOOTH_PEER = 50, - /** LoRa modem configuration */ - KV_KEY_LORA_CONFIG = 51, - /** Request connected Bluetooth peers to limit throughput */ - KV_KEY_BLUETOOTH_THROUGHPUT_LIMIT = 52, - /** Disable LEDs between two UTC times daily */ - KV_KEY_LED_DISABLE_DAILY_TIME_RANGE = 53, - /** Disable Memfault reporting at runtime */ - KV_KEY_MEMFAULT_DISABLE = 54, - /** Forwarding configuration for Bluetooth advertising packets */ - KV_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS = 55, - /** Version of the nRF Edge AI runtime */ - KV_KEY_NRF_EDGE_AI_RUNTIME_VERSION = 56, - /** Reference gravity vector for tilt calculations */ - KV_KEY_GRAVITY_REFERENCE = 60, - /** Array of points defining a closed polygon */ - KV_KEY_GEOFENCE = 100, -#ifdef CONFIG_KV_STORE_KEY_GEOFENCE_RANGE - /** End of currently enabled KV_KEY_GEOFENCE range */ - KV_KEY_GEOFENCE_END = 100 + CONFIG_KV_STORE_KEY_GEOFENCE_RANGE - 1, -#endif - /** Maximum number of KV_KEY_GEOFENCE slots that can be enabled */ - KV_KEY_GEOFENCE_MAX = 115, - /** Configuration for the 'Stationary Windowed' algorithm */ - KV_KEY_ALG_STATIONARY_WINDOWED_ARGS = 200, - /** Configuration for the 'Tilt' algorithm */ - KV_KEY_ALG_TILT_ARGS = 201, - /** Configuration for the 'Movement Threshold' algorithm */ - KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS = 202, - /** Configuration for the 'Movement Threshold' algorithm */ - KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2 = 203, - /** Unique identifier for default schedule set */ - KV_KEY_TASK_SCHEDULES_DEFAULT_ID = 1000, - /** Task runner task schedule definition (@ref task_schedule) */ - KV_KEY_TASK_SCHEDULES = 1001, -#ifdef CONFIG_KV_STORE_KEY_TASK_SCHEDULES_RANGE - /** End of currently enabled KV_KEY_TASK_SCHEDULES range */ - KV_KEY_TASK_SCHEDULES_END = 1001 + CONFIG_KV_STORE_KEY_TASK_SCHEDULES_RANGE - 1, -#endif - /** Maximum number of KV_KEY_TASK_SCHEDULES slots that can be enabled */ - KV_KEY_TASK_SCHEDULES_MAX = 1032, - /** Keys reserved for secure storage (do not enable) */ - KV_KEY_SECURE_STORAGE_RESERVED = 30000, -#ifdef CONFIG_KV_STORE_KEY_SECURE_STORAGE_RESERVED_RANGE - /** End of currently enabled KV_KEY_SECURE_STORAGE_RESERVED range */ - KV_KEY_SECURE_STORAGE_RESERVED_END = - 30000 + CONFIG_KV_STORE_KEY_SECURE_STORAGE_RESERVED_RANGE - 1, -#endif - /** Maximum number of KV_KEY_SECURE_STORAGE_RESERVED slots that can be enabled */ - KV_KEY_SECURE_STORAGE_RESERVED_MAX = 30009, - /** Extension KV slot 1 */ - KV_KEY_EXT1 = 32769, - /** Extension KV slot 2 */ - KV_KEY_EXT2 = 32770, -#ifdef CONFIG_KV_STORE_KEY_EXT2_RANGE - /** End of currently enabled KV_KEY_EXT2 range */ - KV_KEY_EXT2_END = 32770 + CONFIG_KV_STORE_KEY_EXT2_RANGE - 1, -#endif - /** Maximum number of KV_KEY_EXT2 slots that can be enabled */ - KV_KEY_EXT2_MAX = 32771, - /** Extension KV slot 3 */ - KV_KEY_EXT3 = 32772, - /** End of builtin KV range */ - KV_KEY_BUILTIN_END = 32768, -}; - -/** Size of builtin KV definitions */ -enum kv_builtin_size { - _KV_KEY_REBOOTS_SIZE = sizeof(struct kv_reboots), - _KV_KEY_BLUETOOTH_ADDR_SIZE = sizeof(struct kv_bluetooth_addr), - _KV_KEY_EXFAT_DISK_INFO_SIZE = sizeof(struct kv_exfat_disk_info), - _KV_KEY_BLUETOOTH_CTLR_VERSION_SIZE = sizeof(struct kv_bluetooth_ctlr_version), - _KV_KEY_INFUSE_APPLICATION_ID_SIZE = sizeof(struct kv_infuse_application_id), - _KV_KEY_APPLICATION_ACTIVE_SIZE = sizeof(struct kv_application_active), - _KV_KEY_SECONDARY_REMOTE_PUBLIC_KEY_SIZE = sizeof(struct kv_secondary_remote_public_key), - _KV_KEY_FIXED_LOCATION_SIZE = sizeof(struct kv_fixed_location), - _KV_KEY_BROADCAST_FIXED_INDOORS_SIZE = sizeof(struct kv_broadcast_fixed_indoors), - _KV_KEY_LITTLEFS_FS_STATE_SIZE = sizeof(struct kv_littlefs_fs_state), - _KV_KEY_LITTLEFS_ALGORITHMS_STATE_SIZE = sizeof(struct kv_littlefs_algorithms_state), - _KV_KEY_EPACKET_UDP_PORT_SIZE = sizeof(struct kv_epacket_udp_port), - _KV_KEY_LTE_MODEM_IMEI_SIZE = sizeof(struct kv_lte_modem_imei), - _KV_KEY_LTE_NETWORKING_MODES_SIZE = sizeof(struct kv_lte_networking_modes), - _KV_KEY_LTE_SIM_IMSI_SIZE = sizeof(struct kv_lte_sim_imsi), - _KV_KEY_BLUETOOTH_PEER_SIZE = sizeof(struct kv_bluetooth_peer), - _KV_KEY_LORA_CONFIG_SIZE = sizeof(struct kv_lora_config), - _KV_KEY_BLUETOOTH_THROUGHPUT_LIMIT_SIZE = sizeof(struct kv_bluetooth_throughput_limit), - _KV_KEY_LED_DISABLE_DAILY_TIME_RANGE_SIZE = sizeof(struct kv_led_disable_daily_time_range), - _KV_KEY_MEMFAULT_DISABLE_SIZE = sizeof(struct kv_memfault_disable), - _KV_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS_SIZE = - sizeof(struct kv_gateway_bluetooth_forward_options), - _KV_KEY_NRF_EDGE_AI_RUNTIME_VERSION_SIZE = sizeof(struct kv_nrf_edge_ai_runtime_version), - _KV_KEY_GRAVITY_REFERENCE_SIZE = sizeof(struct kv_gravity_reference), - _KV_KEY_ALG_STATIONARY_WINDOWED_ARGS_SIZE = sizeof(struct kv_alg_stationary_windowed_args), - _KV_KEY_ALG_TILT_ARGS_SIZE = sizeof(struct kv_alg_tilt_args), - _KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_SIZE = sizeof(struct kv_alg_movement_threshold_args), - _KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2_SIZE = - sizeof(struct kv_alg_movement_threshold_args_v2), - _KV_KEY_TASK_SCHEDULES_DEFAULT_ID_SIZE = sizeof(struct kv_task_schedules_default_id), - _KV_KEY_EXT1_SIZE = sizeof(struct kv_ext1), - _KV_KEY_EXT2_SIZE = sizeof(struct kv_ext2), - _KV_KEY_EXT3_SIZE = sizeof(struct kv_ext3), -}; - -/* clang-format off */ -/* Types of builtin KV definitions */ -#define _KV_KEY_REBOOTS_TYPE struct kv_reboots -#define _KV_KEY_BLUETOOTH_ADDR_TYPE struct kv_bluetooth_addr -#define _KV_KEY_EXFAT_DISK_INFO_TYPE struct kv_exfat_disk_info -#define _KV_KEY_BLUETOOTH_CTLR_VERSION_TYPE struct kv_bluetooth_ctlr_version -#define _KV_KEY_DEVICE_NAME_TYPE struct kv_device_name -#define _KV_KEY_INFUSE_APPLICATION_ID_TYPE struct kv_infuse_application_id -#define _KV_KEY_APPLICATION_ACTIVE_TYPE struct kv_application_active -#define _KV_KEY_BOARD_TARGET_TYPE struct kv_board_target -#define _KV_KEY_SECONDARY_REMOTE_PUBLIC_KEY_TYPE struct kv_secondary_remote_public_key -#define _KV_KEY_FIXED_LOCATION_TYPE struct kv_fixed_location -#define _KV_KEY_BROADCAST_FIXED_INDOORS_TYPE struct kv_broadcast_fixed_indoors -#define _KV_KEY_LITTLEFS_FS_STATE_TYPE struct kv_littlefs_fs_state -#define _KV_KEY_LITTLEFS_ALGORITHMS_STATE_TYPE struct kv_littlefs_algorithms_state -#define _KV_KEY_WIFI_SSID_TYPE struct kv_wifi_ssid -#define _KV_KEY_WIFI_PSK_TYPE struct kv_wifi_psk -#define _KV_KEY_WIFI_CHANNELS_TYPE struct kv_wifi_channels -#define _KV_KEY_NTP_SERVER_URL_TYPE struct kv_ntp_server_url -#define _KV_KEY_EPACKET_UDP_URL_TYPE struct kv_epacket_udp_url -#define _KV_KEY_EPACKET_UDP_PORT_TYPE struct kv_epacket_udp_port -#define _KV_KEY_LTE_MODEM_MODEL_TYPE struct kv_lte_modem_model -#define _KV_KEY_LTE_MODEM_FIRMWARE_REVISION_TYPE struct kv_lte_modem_firmware_revision -#define _KV_KEY_LTE_MODEM_ESN_TYPE struct kv_lte_modem_esn -#define _KV_KEY_LTE_MODEM_IMEI_TYPE struct kv_lte_modem_imei -#define _KV_KEY_LTE_SIM_UICC_TYPE struct kv_lte_sim_uicc -#define _KV_KEY_LTE_PDP_CONFIG_TYPE struct kv_lte_pdp_config -#define _KV_KEY_LTE_NETWORKING_MODES_TYPE struct kv_lte_networking_modes -#define _KV_KEY_LTE_SIM_IMSI_TYPE struct kv_lte_sim_imsi -#define _KV_KEY_BLUETOOTH_PEER_TYPE struct kv_bluetooth_peer -#define _KV_KEY_LORA_CONFIG_TYPE struct kv_lora_config -#define _KV_KEY_BLUETOOTH_THROUGHPUT_LIMIT_TYPE struct kv_bluetooth_throughput_limit -#define _KV_KEY_LED_DISABLE_DAILY_TIME_RANGE_TYPE struct kv_led_disable_daily_time_range -#define _KV_KEY_MEMFAULT_DISABLE_TYPE struct kv_memfault_disable -#define _KV_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS_TYPE struct kv_gateway_bluetooth_forward_options -#define _KV_KEY_NRF_EDGE_AI_RUNTIME_VERSION_TYPE struct kv_nrf_edge_ai_runtime_version -#define _KV_KEY_GRAVITY_REFERENCE_TYPE struct kv_gravity_reference -#define _KV_KEY_GEOFENCE_TYPE struct kv_geofence -#define _KV_KEY_ALG_STATIONARY_WINDOWED_ARGS_TYPE struct kv_alg_stationary_windowed_args -#define _KV_KEY_ALG_TILT_ARGS_TYPE struct kv_alg_tilt_args -#define _KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_TYPE struct kv_alg_movement_threshold_args -#define _KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2_TYPE struct kv_alg_movement_threshold_args_v2 -#define _KV_KEY_TASK_SCHEDULES_DEFAULT_ID_TYPE struct kv_task_schedules_default_id -#define _KV_KEY_TASK_SCHEDULES_TYPE struct kv_task_schedules -#define _KV_KEY_SECURE_STORAGE_RESERVED_TYPE struct kv_secure_storage_reserved -#define _KV_KEY_EXT1_TYPE struct kv_ext1 -#define _KV_KEY_EXT2_TYPE struct kv_ext2 -#define _KV_KEY_EXT3_TYPE struct kv_ext3 -/* clang-format on */ - -/* clang-format off */ -/** Number of KV pairs that can be reflected */ -#define KV_REFLECT_NUM ( \ - IF_ENABLED(CONFIG_KV_STORE_KEY_BLUETOOTH_ADDR, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_EXFAT_DISK_INFO, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_BLUETOOTH_CTLR_VERSION, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_DEVICE_NAME, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_BOARD_TARGET, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_SECONDARY_REMOTE_PUBLIC_KEY, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_FIXED_LOCATION, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_BROADCAST_FIXED_INDOORS, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LITTLEFS_FS_STATE, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LITTLEFS_ALGORITHMS_STATE, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_WIFI_SSID, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_WIFI_PSK, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_WIFI_CHANNELS, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_NTP_SERVER_URL, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_EPACKET_UDP_URL, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_EPACKET_UDP_PORT, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_MODEM_MODEL, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_MODEM_FIRMWARE_REVISION, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_MODEM_ESN, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_MODEM_IMEI, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_SIM_UICC, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_PDP_CONFIG, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_NETWORKING_MODES, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LTE_SIM_IMSI, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_BLUETOOTH_PEER, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LORA_CONFIG, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_BLUETOOTH_THROUGHPUT_LIMIT, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_LED_DISABLE_DAILY_TIME_RANGE, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_NRF_EDGE_AI_RUNTIME_VERSION, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_GRAVITY_REFERENCE, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_GEOFENCE, \ - (CONFIG_KV_STORE_KEY_GEOFENCE_RANGE +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_ALG_STATIONARY_WINDOWED_ARGS, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_ALG_TILT_ARGS, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_TASK_SCHEDULES_DEFAULT_ID, \ - (1 +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_TASK_SCHEDULES, \ - (CONFIG_KV_STORE_KEY_TASK_SCHEDULES_RANGE +)) \ - IF_ENABLED(CONFIG_KV_STORE_KEY_EXT1, \ - (1 +)) \ - 0) -/* clang-format on */ - -/** Convert key ID to key type */ -#define KV_KEY_TYPE(key) _##key##_TYPE - -#define _KV_KEY_TYPE_VAR_EXEC(macro, num) macro(num) - -/** Convert key ID to key type */ -#define KV_KEY_TYPE_VAR(key, num) _KV_KEY_TYPE_VAR_EXEC(_##key##_VAR, num) - -/** Helper for generating compile time constant `struct kv_string` */ -#define KV_STRING_CONST(name, val) KV_STRUCT_KV_STRING_VAR(sizeof(val)) name = {sizeof(val), val}; - -/** Flags that can be applied to a slot */ -enum kv_slot_flags { - /** KV reflection enabled for the slot */ - KV_FLAGS_REFLECT = BIT(0), - /** Value can not be read by external actors */ - KV_FLAGS_WRITE_ONLY = BIT(1), - /** Value can not be written by external actors */ - KV_FLAGS_READ_ONLY = BIT(2), -}; - -/** Key value slot description */ -struct key_value_slot_definition { - /** Base key ID for slot */ - uint16_t key; - /** Number of IDs used by the slot */ - uint8_t range; - /** Bitmask of @ref kv_slot_flags for slot */ - uint8_t flags; -}; - -#ifdef _KV_SLOTS_ARRAY_DEFINE -static struct key_value_slot_definition _KV_SLOTS_ARRAY_DEFINE[] = { -#ifdef CONFIG_KV_STORE_KEY_REBOOTS - { - .key = KV_KEY_REBOOTS, - .range = 1, - .flags = 0, - }, -#endif /* CONFIG_KV_STORE_KEY_REBOOTS */ -#ifdef CONFIG_KV_STORE_KEY_BLUETOOTH_ADDR - { - .key = KV_KEY_BLUETOOTH_ADDR, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_BLUETOOTH_ADDR */ -#ifdef CONFIG_KV_STORE_KEY_EXFAT_DISK_INFO - { - .key = KV_KEY_EXFAT_DISK_INFO, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_EXFAT_DISK_INFO */ -#ifdef CONFIG_KV_STORE_KEY_BLUETOOTH_CTLR_VERSION - { - .key = KV_KEY_BLUETOOTH_CTLR_VERSION, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_BLUETOOTH_CTLR_VERSION */ -#ifdef CONFIG_KV_STORE_KEY_DEVICE_NAME - { - .key = KV_KEY_DEVICE_NAME, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_DEVICE_NAME */ -#ifdef CONFIG_KV_STORE_KEY_INFUSE_APPLICATION_ID - { - .key = KV_KEY_INFUSE_APPLICATION_ID, - .range = 1, - .flags = 0, - }, -#endif /* CONFIG_KV_STORE_KEY_INFUSE_APPLICATION_ID */ -#ifdef CONFIG_KV_STORE_KEY_APPLICATION_ACTIVE - { - .key = KV_KEY_APPLICATION_ACTIVE, - .range = 1, - .flags = 0, - }, -#endif /* CONFIG_KV_STORE_KEY_APPLICATION_ACTIVE */ -#ifdef CONFIG_KV_STORE_KEY_BOARD_TARGET - { - .key = KV_KEY_BOARD_TARGET, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_BOARD_TARGET */ -#ifdef CONFIG_KV_STORE_KEY_SECONDARY_REMOTE_PUBLIC_KEY - { - .key = KV_KEY_SECONDARY_REMOTE_PUBLIC_KEY, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_SECONDARY_REMOTE_PUBLIC_KEY */ -#ifdef CONFIG_KV_STORE_KEY_FIXED_LOCATION - { - .key = KV_KEY_FIXED_LOCATION, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_FIXED_LOCATION */ -#ifdef CONFIG_KV_STORE_KEY_BROADCAST_FIXED_INDOORS - { - .key = KV_KEY_BROADCAST_FIXED_INDOORS, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_BROADCAST_FIXED_INDOORS */ -#ifdef CONFIG_KV_STORE_KEY_LITTLEFS_FS_STATE - { - .key = KV_KEY_LITTLEFS_FS_STATE, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LITTLEFS_FS_STATE */ -#ifdef CONFIG_KV_STORE_KEY_LITTLEFS_ALGORITHMS_STATE - { - .key = KV_KEY_LITTLEFS_ALGORITHMS_STATE, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LITTLEFS_ALGORITHMS_STATE */ -#ifdef CONFIG_KV_STORE_KEY_WIFI_SSID - { - .key = KV_KEY_WIFI_SSID, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_WIFI_SSID */ -#ifdef CONFIG_KV_STORE_KEY_WIFI_PSK - { - .key = KV_KEY_WIFI_PSK, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_WRITE_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_WIFI_PSK */ -#ifdef CONFIG_KV_STORE_KEY_WIFI_CHANNELS - { - .key = KV_KEY_WIFI_CHANNELS, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_WIFI_CHANNELS */ -#ifdef CONFIG_KV_STORE_KEY_NTP_SERVER_URL - { - .key = KV_KEY_NTP_SERVER_URL, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_NTP_SERVER_URL */ -#ifdef CONFIG_KV_STORE_KEY_EPACKET_UDP_URL - { - .key = KV_KEY_EPACKET_UDP_URL, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_EPACKET_UDP_URL */ -#ifdef CONFIG_KV_STORE_KEY_EPACKET_UDP_PORT - { - .key = KV_KEY_EPACKET_UDP_PORT, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_EPACKET_UDP_PORT */ -#ifdef CONFIG_KV_STORE_KEY_LTE_MODEM_MODEL - { - .key = KV_KEY_LTE_MODEM_MODEL, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_MODEM_MODEL */ -#ifdef CONFIG_KV_STORE_KEY_LTE_MODEM_FIRMWARE_REVISION - { - .key = KV_KEY_LTE_MODEM_FIRMWARE_REVISION, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_MODEM_FIRMWARE_REVISION */ -#ifdef CONFIG_KV_STORE_KEY_LTE_MODEM_ESN - { - .key = KV_KEY_LTE_MODEM_ESN, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_MODEM_ESN */ -#ifdef CONFIG_KV_STORE_KEY_LTE_MODEM_IMEI - { - .key = KV_KEY_LTE_MODEM_IMEI, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_MODEM_IMEI */ -#ifdef CONFIG_KV_STORE_KEY_LTE_SIM_UICC - { - .key = KV_KEY_LTE_SIM_UICC, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_SIM_UICC */ -#ifdef CONFIG_KV_STORE_KEY_LTE_PDP_CONFIG - { - .key = KV_KEY_LTE_PDP_CONFIG, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_PDP_CONFIG */ -#ifdef CONFIG_KV_STORE_KEY_LTE_NETWORKING_MODES - { - .key = KV_KEY_LTE_NETWORKING_MODES, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_NETWORKING_MODES */ -#ifdef CONFIG_KV_STORE_KEY_LTE_SIM_IMSI - { - .key = KV_KEY_LTE_SIM_IMSI, - .range = 1, - .flags = KV_FLAGS_REFLECT | KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_LTE_SIM_IMSI */ -#ifdef CONFIG_KV_STORE_KEY_BLUETOOTH_PEER - { - .key = KV_KEY_BLUETOOTH_PEER, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_BLUETOOTH_PEER */ -#ifdef CONFIG_KV_STORE_KEY_LORA_CONFIG - { - .key = KV_KEY_LORA_CONFIG, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_LORA_CONFIG */ -#ifdef CONFIG_KV_STORE_KEY_BLUETOOTH_THROUGHPUT_LIMIT - { - .key = KV_KEY_BLUETOOTH_THROUGHPUT_LIMIT, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_BLUETOOTH_THROUGHPUT_LIMIT */ -#ifdef CONFIG_KV_STORE_KEY_LED_DISABLE_DAILY_TIME_RANGE - { - .key = KV_KEY_LED_DISABLE_DAILY_TIME_RANGE, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_LED_DISABLE_DAILY_TIME_RANGE */ -#ifdef CONFIG_KV_STORE_KEY_MEMFAULT_DISABLE - { - .key = KV_KEY_MEMFAULT_DISABLE, - .range = 1, - .flags = 0, - }, -#endif /* CONFIG_KV_STORE_KEY_MEMFAULT_DISABLE */ -#ifdef CONFIG_KV_STORE_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS - { - .key = KV_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_GATEWAY_BLUETOOTH_FORWARD_OPTIONS */ -#ifdef CONFIG_KV_STORE_KEY_NRF_EDGE_AI_RUNTIME_VERSION - { - .key = KV_KEY_NRF_EDGE_AI_RUNTIME_VERSION, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_NRF_EDGE_AI_RUNTIME_VERSION */ -#ifdef CONFIG_KV_STORE_KEY_GRAVITY_REFERENCE - { - .key = KV_KEY_GRAVITY_REFERENCE, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_GRAVITY_REFERENCE */ -#ifdef CONFIG_KV_STORE_KEY_GEOFENCE - { - .key = KV_KEY_GEOFENCE, - .range = CONFIG_KV_STORE_KEY_GEOFENCE_RANGE, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_GEOFENCE */ -#ifdef CONFIG_KV_STORE_KEY_ALG_STATIONARY_WINDOWED_ARGS - { - .key = KV_KEY_ALG_STATIONARY_WINDOWED_ARGS, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_ALG_STATIONARY_WINDOWED_ARGS */ -#ifdef CONFIG_KV_STORE_KEY_ALG_TILT_ARGS - { - .key = KV_KEY_ALG_TILT_ARGS, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_ALG_TILT_ARGS */ -#ifdef CONFIG_KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS - { - .key = KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS */ -#ifdef CONFIG_KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2 - { - .key = KV_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_ALG_MOVEMENT_THRESHOLD_ARGS_V2 */ -#ifdef CONFIG_KV_STORE_KEY_TASK_SCHEDULES_DEFAULT_ID - { - .key = KV_KEY_TASK_SCHEDULES_DEFAULT_ID, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_TASK_SCHEDULES_DEFAULT_ID */ -#ifdef CONFIG_KV_STORE_KEY_TASK_SCHEDULES - { - .key = KV_KEY_TASK_SCHEDULES, - .range = CONFIG_KV_STORE_KEY_TASK_SCHEDULES_RANGE, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_TASK_SCHEDULES */ -#ifdef CONFIG_KV_STORE_KEY_SECURE_STORAGE_RESERVED - { - .key = KV_KEY_SECURE_STORAGE_RESERVED, - .range = CONFIG_KV_STORE_KEY_SECURE_STORAGE_RESERVED_RANGE, - .flags = 0, - }, -#endif /* CONFIG_KV_STORE_KEY_SECURE_STORAGE_RESERVED */ -#ifdef CONFIG_KV_STORE_KEY_EXT1 - { - .key = KV_KEY_EXT1, - .range = 1, - .flags = KV_FLAGS_REFLECT, - }, -#endif /* CONFIG_KV_STORE_KEY_EXT1 */ -#ifdef CONFIG_KV_STORE_KEY_EXT2 - { - .key = KV_KEY_EXT2, - .range = CONFIG_KV_STORE_KEY_EXT2_RANGE, - .flags = KV_FLAGS_READ_ONLY, - }, -#endif /* CONFIG_KV_STORE_KEY_EXT2 */ -#ifdef CONFIG_KV_STORE_KEY_EXT3 - { - .key = KV_KEY_EXT3, - .range = 1, - .flags = 0, - }, -#endif /* CONFIG_KV_STORE_KEY_EXT3 */ -}; -#endif /* _KV_SLOTS_ARRAY_DEFINE */ - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_GENERATED_KV_DEFINITIONS_H_ */ diff --git a/tests/subsys/definitions_extend/generated/include/infuse/rpc/commands_impl.h b/tests/subsys/definitions_extend/generated/include/infuse/rpc/commands_impl.h deleted file mode 100644 index 4385b2ba2..000000000 --- a/tests/subsys/definitions_extend/generated/include/infuse/rpc/commands_impl.h +++ /dev/null @@ -1,484 +0,0 @@ -/** - * @file - * @brief Autogenerated RPC command list - * @copyright 2024 Embeint Holdings Pty Ltd - * @author scripts/west_commands/cloudgen.py - * - * INFUSE-IOT-AUTOGENERATED - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_GENERATED_RPC_COMMANDS_H_ -#define INFUSE_SDK_INCLUDE_GENERATED_RPC_COMMANDS_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Run reboot RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_reboot(struct net_buf *request); - -/** - * @brief Run fault RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_fault(struct net_buf *request); - -/** - * @brief Run time_get RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_time_get(struct net_buf *request); - -/** - * @brief Run time_set RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_time_set(struct net_buf *request); - -/** - * @brief Run kv_write RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_kv_write(struct net_buf *request); - -/** - * @brief Run kv_read RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_kv_read(struct net_buf *request); - -/** - * @brief Run kv_reflect_crcs RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_kv_reflect_crcs(struct net_buf *request); - -/** - * @brief Run zbus_channel_state RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_zbus_channel_state(struct net_buf *request); - -/** - * @brief Run application_info RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_application_info(struct net_buf *request); - -/** - * @brief Run wifi_scan RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_wifi_scan(struct net_buf *request); - -/** - * @brief Run wifi_state RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_wifi_state(struct net_buf *request); - -/** - * @brief Run last_reboot RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_last_reboot(struct net_buf *request); - -/** - * @brief Run data_logger_state RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_logger_state(struct net_buf *request); - -/** - * @brief Run data_logger_read RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_logger_read(struct net_buf *request); - -/** - * @brief Run mem_read RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_mem_read(struct net_buf *request); - -/** - * @brief Run infuse_states_query RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_infuse_states_query(struct net_buf *request); - -/** - * @brief Run infuse_states_update RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_infuse_states_update(struct net_buf *request); - -/** - * @brief Run data_logger_erase RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_logger_erase(struct net_buf *request); - -/** - * @brief Run heap_stats RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_heap_stats(struct net_buf *request); - -/** - * @brief Run lte_at_cmd RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_lte_at_cmd(struct net_buf *request); - -/** - * @brief Run lte_state RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_lte_state(struct net_buf *request); - -/** - * @brief Run data_logger_read_available RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_logger_read_available(struct net_buf *request); - -/** - * @brief Run lte_state_v2 RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_lte_state_v2(struct net_buf *request); - -/** - * @brief Run data_logger_state_v2 RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_logger_state_v2(struct net_buf *request); - -/** - * @brief Run data_logger_read_chunks RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_logger_read_chunks(struct net_buf *request); - -/** - * @brief Run thread_stats RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_thread_stats(struct net_buf *request); - -/** - * @brief Run coap_download RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_coap_download(struct net_buf *request); - -/** - * @brief Run zperf_upload RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_zperf_upload(struct net_buf *request); - -/** - * @brief Run coap_download_v2 RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_coap_download_v2(struct net_buf *request); - -/** - * @brief Run coap_download_v3 RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_coap_download_v3(struct net_buf *request); - -/** - * @brief Run file_write_basic RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_file_write_basic(struct net_buf *request); - -/** - * @brief Run annotate RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_annotate(struct net_buf *request); - -/** - * @brief Run tdf_data_logger_flush RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_tdf_data_logger_flush(struct net_buf *request); - -/** - * @brief Run shipping_mode RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_shipping_mode(struct net_buf *request); - -/** - * @brief Run file_write RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_file_write(struct net_buf *request); - -/** - * @brief Run bt_connect_infuse RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_bt_connect_infuse(struct net_buf *request); - -/** - * @brief Run bt_disconnect RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_bt_disconnect(struct net_buf *request); - -/** - * @brief Run bt_file_copy_basic RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_bt_file_copy_basic(struct net_buf *request); - -/** - * @brief Run bt_file_copy_coap RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_bt_file_copy_coap(struct net_buf *request); - -/** - * @brief Run bt_mcumgr_reboot RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_bt_mcumgr_reboot(struct net_buf *request); - -/** - * @brief Run gravity_reference_update RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_gravity_reference_update(struct net_buf *request); - -/** - * @brief Run filesystem_ls RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_filesystem_ls(struct net_buf *request); - -/** - * @brief Run filesystem_rm RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_filesystem_rm(struct net_buf *request); - -/** - * @brief Run ubx_assist_now_ztp_creds RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_ubx_assist_now_ztp_creds(struct net_buf *request); - -/** - * @brief Run security_state RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_security_state(struct net_buf *request); - -/** - * @brief Run security_key_update RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_security_key_update(struct net_buf *request); - -/** - * @brief Run security_public_keys RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_security_public_keys(struct net_buf *request); - -/** - * @brief Run data_sender RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_sender(struct net_buf *request); - -/** - * @brief Run data_receiver RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_data_receiver(struct net_buf *request); - -/** - * @brief Run echo RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_echo(struct net_buf *request); - -/** - * @brief Run ext1 RPC - * - * @param request @ref INFUSE_RPC_CMD packet to respond to - * - * @return struct net_buf* @ref INFUSE_RPC_RSP packet buffer - */ -struct net_buf *rpc_command_ext1(struct net_buf *request); - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_GENERATED_RPC_COMMANDS_H_ */ diff --git a/tests/subsys/definitions_extend/generated/include/infuse/rpc/types.h b/tests/subsys/definitions_extend/generated/include/infuse/rpc/types.h deleted file mode 100644 index 95418a4bb..000000000 --- a/tests/subsys/definitions_extend/generated/include/infuse/rpc/types.h +++ /dev/null @@ -1,1561 +0,0 @@ -/** - * @file - * @brief Autogenerated RPC definitions - * @copyright 2024 Embeint Holdings Pty Ltd - * @author scripts/west_commands/cloudgen.py - * - * INFUSE-IOT-AUTOGENERATED - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_GENERATED_RPC_TYPES_H_ -#define INFUSE_SDK_INCLUDE_GENERATED_RPC_TYPES_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief RPC packet headers - * @defgroup rpc_packet_headers RPC packet headers - * @{ - */ - -/** - * @brief Header for @ref INFUSE_RPC_CMD packet - */ -struct infuse_rpc_req_header { - /** Unique request ID */ - uint32_t request_id; - /** Command to run */ - uint16_t command_id; -} __packed; - -/** - * @brief Secondary header for RPCs expecting @ref INFUSE_RPC_DATA - */ -struct infuse_rpc_req_data_header { - /** Amount of data expected to be transferred */ - uint32_t size; - /** Send an @ref INFUSE_RPC_DATA_ACK response every N packets received */ - uint8_t rx_ack_period; -} __packed; - -/** - * @brief @ref INFUSE_RPC_DATA payload - */ -struct infuse_rpc_data { - /** Request ID matching original @ref infuse_rpc_req_header */ - uint32_t request_id; - /** Byte offset of data in this payload */ - uint32_t offset; - /** Data payload */ - uint8_t payload[]; -} __packed; - -/** - * @brief @ref INFUSE_RPC_DATA_ACK packet - */ -struct infuse_rpc_data_ack { - /** Request ID matching original @ref infuse_rpc_req_header */ - uint32_t request_id; - /** Byte offsets received */ - uint32_t offsets[]; -} __packed; - -/** - * @brief Header for @ref INFUSE_RPC_RSP packet - */ -struct infuse_rpc_rsp_header { - /** Request ID matching original @ref infuse_rpc_req_header */ - uint32_t request_id; - /** Command that was run */ - uint16_t command_id; - /** Result of the RPC */ - int16_t return_code; -} __packed; - -/** - * @} - */ - -/* clang-format off */ - -/** - * @brief Common RPC struct fields - * @defgroup rpc_struct_definitions Common RPC struct fields - * @{ - */ - -/** Bluetooth LE address type */ -enum rpc_enum_bt_le_addr_type { - /** Public address */ - RPC_ENUM_BT_LE_ADDR_TYPE_PUBLIC = 0, - /** Static random address */ - RPC_ENUM_BT_LE_ADDR_TYPE_RANDOM = 1, -}; - -/** Actions to take upon receiving a file */ -enum rpc_enum_file_action { - /** Discard received file (Useful for testing) */ - RPC_ENUM_FILE_ACTION_DISCARD = 0, - /** Complete application image for firmware upgrade */ - RPC_ENUM_FILE_ACTION_APP_IMG = 1, - /** Complete Bluetooth controller image for firmware upgrade */ - RPC_ENUM_FILE_ACTION_BT_CTLR_IMG = 2, - /** CPatch application image upgrade (binary diff) */ - RPC_ENUM_FILE_ACTION_APP_CPATCH = 11, - /** CPatch Bluetooth controller image upgrade (binary diff) */ - RPC_ENUM_FILE_ACTION_BT_CTLR_CPATCH = 12, - /** nRF91 LTE modem firmware upgrade diff */ - RPC_ENUM_FILE_ACTION_NRF91_MODEM_DIFF = 20, - /** File to copy to another device */ - RPC_ENUM_FILE_ACTION_FILE_FOR_COPY = 30, - /** Write file to LittleFS */ - RPC_ENUM_FILE_ACTION_WRITE_LITTLEFS = 31, -}; - -/** Infuse-IoT Bluetooth characteristics (Bitmask) */ -enum rpc_enum_infuse_bt_characteristic { - /** Command characteristic */ - RPC_ENUM_INFUSE_BT_CHARACTERISTIC_COMMAND = 1, - /** Data characteristic */ - RPC_ENUM_INFUSE_BT_CHARACTERISTIC_DATA = 2, - /** Serial log characteristic */ - RPC_ENUM_INFUSE_BT_CHARACTERISTIC_LOGGING = 4, -}; - -/** Data Logger identifier */ -enum rpc_enum_data_logger { - /** Onboard flash logger */ - RPC_ENUM_DATA_LOGGER_FLASH_ONBOARD = 1, - /** Removable flash logger (SD) */ - RPC_ENUM_DATA_LOGGER_FLASH_REMOVABLE = 2, - /** Networked UDP logger */ - RPC_ENUM_DATA_LOGGER_UDP = 3, -}; - -/** TDF data Logger identifier */ -enum rpc_enum_tdf_data_logger { - /** Onboard flash TDF logger */ - RPC_ENUM_TDF_DATA_LOGGER_FLASH_ONBOARD = 1, - /** Removable flash TDF logger (SD) */ - RPC_ENUM_TDF_DATA_LOGGER_FLASH_REMOVABLE = 2, - /** Serial TDF logger */ - RPC_ENUM_TDF_DATA_LOGGER_SERIAL = 4, - /** Networked UDP TDF logger */ - RPC_ENUM_TDF_DATA_LOGGER_UDP = 8, - /** Bluetooth advertising TDF logger */ - RPC_ENUM_TDF_DATA_LOGGER_BT_ADV = 16, - /** Bluetooth peripheral TDF logger */ - RPC_ENUM_TDF_DATA_LOGGER_BT_PERIPH = 32, -}; - -/** Source for zperf data upload */ -enum rpc_enum_zperf_data_source { - /** Constant payload ('i') */ - RPC_ENUM_ZPERF_DATA_SOURCE_CONSTANT = 0, - /** Random payload contents */ - RPC_ENUM_ZPERF_DATA_SOURCE_RANDOM = 1, - /** Read data from onboard flash logger */ - RPC_ENUM_ZPERF_DATA_SOURCE_FLASH_ONBOARD = 2, - /** Read data from removable flash logger (SD) */ - RPC_ENUM_ZPERF_DATA_SOURCE_FLASH_REMOVABLE = 3, - /** Flag (0x80) to specify payload should be encrypted */ - RPC_ENUM_ZPERF_DATA_SOURCE_ENCRYPT = 128, -}; - -/** Infuse security key identifier */ -enum rpc_enum_key_id { - /** Primary network key */ - RPC_ENUM_KEY_ID_NETWORK_KEY = 0, - /** Secondary network key */ - RPC_ENUM_KEY_ID_SECONDARY_NETWORK_KEY = 1, - /** Secondary remote public key */ - RPC_ENUM_KEY_ID_SECONDARY_REMOTE_PUBLIC_KEY = 2, - /** Root device public key */ - RPC_ENUM_KEY_ID_DEVICE_PUBLIC_KEY = 3, - /** Cloud public key */ - RPC_ENUM_KEY_ID_CLOUD_PUBLIC_KEY = 4, -}; - -/** Infuse security key action */ -enum rpc_enum_key_action { - /** Write updated value for the key */ - RPC_ENUM_KEY_ACTION_KEY_WRITE = 0, - /** Delete existing value for the key */ - RPC_ENUM_KEY_ACTION_KEY_DELETE = 1, -}; - -/** Field support status */ -enum rpc_enum_support_status { - /** Field is not supported */ - RPC_ENUM_SUPPORT_STATUS_UNSUPPORTED = 0, - /** Field is supported */ - RPC_ENUM_SUPPORT_STATUS_SUPPORTED = 1, - /** Field support status is unknown */ - RPC_ENUM_SUPPORT_STATUS_UNKNOWN = 255, -}; - -/** Folder identifier */ -enum rpc_enum_filesystem_folder { - /** Singleton files that don't fit in other locations */ - RPC_ENUM_FILESYSTEM_FOLDER_GENERAL = 0, - /** Dynamic algorithms */ - RPC_ENUM_FILESYSTEM_FOLDER_ALGORITHMS = 1, - /** GNSS assistance data */ - RPC_ENUM_FILESYSTEM_FOLDER_A_GNSS = 2, - /** Files to copy to other devices */ - RPC_ENUM_FILESYSTEM_FOLDER_COPY = 3, -}; - -/** MCUboot semantic versioning struct */ -struct rpc_struct_mcuboot_img_sem_ver { - uint8_t major; - uint8_t minor; - uint16_t revision; - uint32_t build_num; -} __packed; - -/** KV store data value */ -struct rpc_struct_kv_store_value { - uint16_t id; - int16_t len; - uint8_t data[]; -} __packed; - -/** KV store data CRC */ -struct rpc_struct_kv_store_crc { - uint16_t id; - uint32_t crc; -} __packed; - -/** Bluetooth LE address */ -struct rpc_struct_bt_addr_le { - uint8_t type; - uint8_t val[6]; -} __packed; - -/** IPv4 address */ -struct rpc_struct_ipv4_address { - uint8_t addr[4]; -} __packed; - -/** IPv6 address */ -struct rpc_struct_ipv6_address { - uint8_t addr[16]; -} __packed; - -/** Common network state */ -struct rpc_struct_network_state { - /** Operational state */ - uint8_t state; - /** Interface flags */ - uint32_t if_flags; - /** L2 flags */ - uint16_t l2_flags; - /** Maximum transmission unit */ - uint16_t mtu; - /** Self IPv4 address */ - struct rpc_struct_ipv4_address ipv4; - /** Self IPv6 address */ - struct rpc_struct_ipv6_address ipv6; -} __packed; - -/** WiFi interface status */ -struct rpc_struct_wifi_state { - /** Operational state */ - uint8_t state; - /** Service Set Identifier (Network Name) */ - char ssid[32]; - /** Basic Service Set Identifier (MAC address) */ - uint8_t bssid[6]; - /** Frequency band */ - uint8_t band; - /** Channel index */ - uint8_t channel; - /** https://w1.fi/wpa_supplicant/devel/defs_8h.html#a4aeb27c1e4abd046df3064ea9756f0bc */ - uint8_t iface_mode; - /** WiFi link operating mode (https://en.wikipedia.org/wiki/Wi-Fi#Versions_and_generations) */ - uint8_t link_mode; - /** IEEE 802.11 security type */ - uint8_t security; - /** Received signal strength (dBm) */ - int8_t rssi; - /** Beacon interval (ms) */ - uint16_t beacon_interval; - /** Target Wake Time capable? */ - uint8_t twt_capable; -} __packed; - -/** LTE interface status */ -struct rpc_struct_lte_state { - /** Network registration state (3GPP TS 127.007) */ - uint8_t registration_state; - /** Access Technology (3GPP TS 127.007) */ - uint8_t access_technology; - /** Mobile Country Code */ - uint16_t mcc; - /** Mobile Network Code */ - uint16_t mnc; - /** E-UTRAN cell ID */ - uint32_t cell_id; - /** Tracking area code */ - uint32_t tac; - /** Tracking area update period */ - int32_t tau; - /** Tracking area code (3GPP TS 36.101) */ - uint16_t earfcn; - /** LTE Band (3GPP 36.101) */ - uint8_t band; - /** Seconds between RRC idle and PSM */ - int16_t psm_active_time; - /** Period between eDRX paging windows */ - float edrx_interval; - /** Duration of eDRX paging window */ - float edrx_paging_window; - /** Reference signal received power (dBm) */ - int16_t rsrp; - /** Reference signal received quality (dB) */ - int8_t rsrq; -} __packed; - -/** LTE interface status */ -struct rpc_struct_lte_state_v2 { - /** Network registration state (3GPP TS 127.007) */ - uint8_t registration_state; - /** Access Technology (3GPP TS 127.007) */ - uint8_t access_technology; - /** Mobile Country Code */ - uint16_t mcc; - /** Mobile Network Code */ - uint16_t mnc; - /** E-UTRAN cell ID */ - uint32_t cell_id; - /** Tracking area code */ - uint32_t tac; - /** Tracking area update period */ - int32_t tau; - /** Tracking area code (3GPP TS 36.101) */ - uint16_t earfcn; - /** LTE Band (3GPP 36.101) */ - uint8_t band; - /** Seconds between RRC idle and PSM */ - int16_t psm_active_time; - /** Period between eDRX paging windows */ - float edrx_interval; - /** Duration of eDRX paging window */ - float edrx_paging_window; - /** Reference signal received power (dBm) */ - int16_t rsrp; - /** Reference signal received quality (dB) */ - int8_t rsrq; - /** Access Spectrum RAI supported */ - uint8_t as_rai; - /** Control Plane RAI supported */ - uint8_t cp_rai; -} __packed; - -/** WiFi interface status */ -struct rpc_struct_wifi_scan_result { - /** Frequency band */ - uint8_t band; - /** Channel index */ - uint8_t channel; - /** IEEE 802.11 security type */ - uint8_t security; - /** Received signal strength (dBm) */ - int8_t rssi; - /** Basic Service Set Identifier (MAC address) */ - uint8_t bssid[6]; - /** SSID length */ - uint8_t ssid_len; - /** Service Set Identifier (Network Name) */ - char ssid[]; -} __packed; - -/** Signed 16 bit XYZ vector */ -struct rpc_struct_xyz_s16 { - /** X axis */ - int16_t x; - /** Y axis */ - int16_t y; - /** Z axis */ - int16_t z; -} __packed; - -/** Single Infuse-IoT application state */ -struct rpc_struct_infuse_state { - /** State */ - uint8_t state; - /** Duration state is set for */ - uint16_t timeout; -} __packed; - -/** `struct sockaddr_in` or `struct sockaddr_in6` compatible address */ -struct rpc_struct_sockaddr { - /** AF_INET / AF_INET6 */ - uint8_t sin_family; - /** Port number (Network byte order) */ - uint16_t sin_port; - /** IPv4/IPv6 address */ - uint8_t sin_addr[16]; - /** Interfaces for a scope (IPv6 only) */ - uint8_t scope_id; -} __packed; - -/** struct k_heap information */ -struct rpc_struct_heap_info { - /** Address of the heap structure */ - uint32_t addr; - /** Number of bytes currently free */ - uint32_t free_bytes; - /** Number of bytes currently allocated */ - uint32_t allocated_bytes; - /** Maximum number of bytes ever concurrently allocated */ - uint32_t max_allocated_bytes; -} __packed; - -/** Data logger chunk description */ -struct rpc_struct_data_logger_chunk { - /** Start block of data chunk */ - uint32_t start_block; - /** Offset within start block */ - uint16_t start_offset; - /** Bytes to read (can read over block boundaries) */ - uint32_t num_bytes; -} __packed; - -/** 256 bit public key and identifier */ -struct rpc_struct_public_key_info_256bit { - /** Public key identifier */ - uint8_t id; - uint8_t key[32]; -} __packed; - -/** IPv6 address */ -struct rpc_struct_thread_stats { - uint32_t stack_size; - uint32_t stack_used; - uint8_t utilization; - char name[]; -} __packed; - -/** IPv6 address */ -struct rpc_struct_data_logger_flushed { - /** Logger that was flushed */ - uint8_t logger; - /** Number of bytes flushed */ - uint16_t num; -} __packed; - -/** Metadata associated with file on the filesystem */ -struct rpc_struct_filesystem_file_metadata { - /** Creation timestamp */ - uint32_t timestamp; - /** Opaque identifier for cloud */ - uint32_t identifier; - /** Data validation */ - uint32_t crc; -} __packed; - -/** Information about file on the filesystem */ -struct rpc_struct_filesystem_file_info { - /** File metadata */ - struct rpc_struct_filesystem_file_metadata metadata; - /** Name of the file */ - uint32_t name; - /** Length of the file */ - uint32_t size; -} __packed; - -/** Demo struct */ -struct rpc_struct_demo { - int8_t x; - int8_t y; - int8_t z; -} __packed; - - -/** - * @} - */ - -/** - * @brief Built-in RPC definitions - * @defgroup builtin_rpc_definitions Built-in RPC definitions - * @{ - */ - -/** Infuse-IoT builtin RPC commands */ -enum rpc_builtin_id { - /** Reboot the device after a delay */ - RPC_ID_REBOOT = 1, - /** Immediately trigger an exception on the device */ - RPC_ID_FAULT = 2, - /** Get the current time knowledge of the device */ - RPC_ID_TIME_GET = 3, - /** Set the current time of the device */ - RPC_ID_TIME_SET = 4, - /** Write values to the KV store */ - RPC_ID_KV_WRITE = 5, - /** Read values from the KV store */ - RPC_ID_KV_READ = 6, - /** Read KV store CRCs */ - RPC_ID_KV_REFLECT_CRCS = 7, - /** Query current state of zbus channel */ - RPC_ID_ZBUS_CHANNEL_STATE = 8, - /** Query basic application versions and state */ - RPC_ID_APPLICATION_INFO = 9, - /** Scan for WiFi networks */ - RPC_ID_WIFI_SCAN = 10, - /** Get current WiFi interface state */ - RPC_ID_WIFI_STATE = 11, - /** Retrieve information pertaining to the previous reboot */ - RPC_ID_LAST_REBOOT = 12, - /** Get state of a data logger */ - RPC_ID_DATA_LOGGER_STATE = 13, - /** Read data from data logger */ - RPC_ID_DATA_LOGGER_READ = 14, - /** Read arbitrary memory (NO ADDRESS VALIDATION PERFORMED) */ - RPC_ID_MEM_READ = 15, - /** Read current Infuse-IoT application states */ - RPC_ID_INFUSE_STATES_QUERY = 16, - /** Update Infuse-IoT application states */ - RPC_ID_INFUSE_STATES_UPDATE = 17, - /** Erase all data from a data logger */ - RPC_ID_DATA_LOGGER_ERASE = 18, - /** Query stats of heaps */ - RPC_ID_HEAP_STATS = 19, - /** Run AT command against LTE modem */ - RPC_ID_LTE_AT_CMD = 20, - /** Get current LTE interface state */ - RPC_ID_LTE_STATE = 21, - /** Read data from data logger, with auto-updating start_block */ - RPC_ID_DATA_LOGGER_READ_AVAILABLE = 22, - /** Get current LTE interface state (with RAI information) */ - RPC_ID_LTE_STATE_V2 = 23, - /** Get state of a data logger (Larger erase unit) */ - RPC_ID_DATA_LOGGER_STATE_V2 = 24, - /** Read a number of arbitrary chunks from a data logger */ - RPC_ID_DATA_LOGGER_READ_CHUNKS = 25, - /** Query runtime thread statistics */ - RPC_ID_THREAD_STATS = 26, - /** Download a file from a COAP server (Infuse-IoT DTLS protected) */ - RPC_ID_COAP_DOWNLOAD = 30, - /** Network upload bandwidth testing using zperf/iperf */ - RPC_ID_ZPERF_UPLOAD = 31, - /** Download a file from a COAP server (Infuse-IoT DTLS protected) */ - RPC_ID_COAP_DOWNLOAD_V2 = 32, - /** Download a file from a COAP server (Infuse-IoT DTLS protected) */ - RPC_ID_COAP_DOWNLOAD_V3 = 33, - /** Write a file to the device */ - RPC_ID_FILE_WRITE_BASIC = 40, - /** Write an annotation to the device */ - RPC_ID_ANNOTATE = 41, - /** Write an annotation to the device */ - RPC_ID_TDF_DATA_LOGGER_FLUSH = 42, - /** Enter/Exit shipping mode on a device */ - RPC_ID_SHIPPING_MODE = 43, - /** Write a file to the device */ - RPC_ID_FILE_WRITE = 44, - /** Connect to an Infuse-IoT Bluetooth device */ - RPC_ID_BT_CONNECT_INFUSE = 50, - /** Disconnect from a Bluetooth device */ - RPC_ID_BT_DISCONNECT = 51, - /** Copy a local file to a remote device over Bluetooth */ - RPC_ID_BT_FILE_COPY_BASIC = 52, - /** Copy a file fetched from COAP to a remote device over Bluetooth */ - RPC_ID_BT_FILE_COPY_COAP = 53, - /** Connect to a Bluetooth device and run the MCUMGR reboot command */ - RPC_ID_BT_MCUMGR_REBOOT = 54, - /** Store the current accelerometer vector as the gravity reference */ - RPC_ID_GRAVITY_REFERENCE_UPDATE = 60, - /** Query files currently on the filesystem */ - RPC_ID_FILESYSTEM_LS = 61, - /** Delete file currently on the filesystem */ - RPC_ID_FILESYSTEM_RM = 62, - /** Retrieve U-blox AssistNow Zero Touch Provisioning credentials */ - RPC_ID_UBX_ASSIST_NOW_ZTP_CREDS = 70, - /** Query current security state and validate identity */ - RPC_ID_SECURITY_STATE = 30000, - /** Update key material */ - RPC_ID_SECURITY_KEY_UPDATE = 30001, - /** Query device public keys */ - RPC_ID_SECURITY_PUBLIC_KEYS = 30002, - /** Send multiple INFUSE_RPC_DATA packets */ - RPC_ID_DATA_SENDER = 32765, - /** Receive multiple INFUSE_RPC_DATA packets */ - RPC_ID_DATA_RECEIVER = 32766, - /** Echo any input data in the response */ - RPC_ID_ECHO = 32767, - /** Extension RPC 1 */ - RPC_ID_EXT1 = 32769, - /** End of builtin RPC range */ - RPC_BUILTIN_END = 32768, -}; - -/** Reboot the device after a delay */ -struct rpc_reboot_request { - struct infuse_rpc_req_header header; - /** Requested delay (0 == default) */ - uint32_t delay_ms; -} __packed; - -struct rpc_reboot_response { - struct infuse_rpc_rsp_header header; - /** Duration until reboot */ - uint32_t delay_ms; -} __packed; - -/** Immediately trigger an exception on the device */ -struct rpc_fault_request { - struct infuse_rpc_req_header header; - /** K_ERR_* fault type to trigger */ - uint8_t fault; - /** Zero that the compiler doesn't know about */ - uint32_t zero; -} __packed; - -struct rpc_fault_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Get the current time knowledge of the device */ -struct rpc_time_get_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_time_get_response { - struct infuse_rpc_rsp_header header; - /** Source of the time knowledge */ - uint8_t time_source; - /** Current epoch time on the device */ - uint64_t epoch_time; - /** How old the time knowledge is (seconds) */ - uint32_t sync_age; -} __packed; - -/** Set the current time of the device */ -struct rpc_time_set_request { - struct infuse_rpc_req_header header; - /** Current epoch time on the device */ - uint64_t epoch_time; -} __packed; - -struct rpc_time_set_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Write values to the KV store */ -struct rpc_kv_write_request { - struct infuse_rpc_req_header header; - /** Number of values in buffer */ - uint8_t num; - /** Array of KV values */ - struct rpc_struct_kv_store_value values[]; -} __packed; - -struct rpc_kv_write_response { - struct infuse_rpc_rsp_header header; - /** Result of writes */ - int16_t rc[]; -} __packed; - -/** Read values from the KV store */ -struct rpc_kv_read_request { - struct infuse_rpc_req_header header; - /** Number of values to read */ - uint8_t num; - /** Array of KV keys */ - uint16_t keys[]; -} __packed; - -struct rpc_kv_read_response { - struct infuse_rpc_rsp_header header; - /** Array of KV values */ - struct rpc_struct_kv_store_value values[]; -} __packed; - -/** Read KV store CRCs */ -struct rpc_kv_reflect_crcs_request { - struct infuse_rpc_req_header header; - /** Number of CRCs to skip in response */ - uint16_t offset; -} __packed; - -struct rpc_kv_reflect_crcs_response { - struct infuse_rpc_rsp_header header; - /** Number of CRCs in crcs array */ - uint16_t num; - /** Number of CRCs that did not fit in this response */ - uint16_t remaining; - /** Array of KV CRCs */ - struct rpc_struct_kv_store_crc crcs[]; -} __packed; - -/** Query current state of zbus channel */ -struct rpc_zbus_channel_state_request { - struct infuse_rpc_req_header header; - /** Channel ID to query */ - uint32_t channel_id; -} __packed; - -struct rpc_zbus_channel_state_response { - struct infuse_rpc_rsp_header header; - /** Epoch time of last data publish */ - uint64_t publish_timestamp; - /** Number of times data has been published to channel */ - uint32_t publish_count; - /** Average time between publishing */ - uint32_t publish_period_avg_ms; - /** Channel data */ - uint8_t data[]; -} __packed; - -/** Query basic application versions and state */ -struct rpc_application_info_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_application_info_response { - struct infuse_rpc_rsp_header header; - /** Application ID */ - uint32_t application_id; - /** Application version number */ - struct rpc_struct_mcuboot_img_sem_ver version; - /** Current Infuse network ID */ - uint32_t network_id; - /** Application uptime */ - uint32_t uptime; - /** Application reboot count */ - uint32_t reboots; - /** Key-Value store reflect global CRC */ - uint32_t kv_crc; - /** Data blocks logged to internal flash */ - uint32_t data_blocks_internal; - /** Data blocks logged to external flash */ - uint32_t data_blocks_external; -} __packed; - -/** Scan for WiFi networks */ -struct rpc_wifi_scan_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_wifi_scan_response { - struct infuse_rpc_rsp_header header; - /** Number of scanned networks */ - uint8_t network_count; - /** Array of scanned networks */ - struct rpc_struct_wifi_scan_result networks[]; -} __packed; - -/** Get current WiFi interface state */ -struct rpc_wifi_state_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_wifi_state_response { - struct infuse_rpc_rsp_header header; - /** Common network state */ - struct rpc_struct_network_state common; - /** WiFi state */ - struct rpc_struct_wifi_state wifi; -} __packed; - -/** Retrieve information pertaining to the previous reboot */ -struct rpc_last_reboot_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_last_reboot_response { - struct infuse_rpc_rsp_header header; - /** Reboot reason (enum infuse_reboot_reason) */ - uint8_t reason; - /** Time source at reboot */ - uint8_t epoch_time_source; - /** Epoch time at reboot */ - uint64_t epoch_time; - /** Hardware flags (hwinfo_get_reset_cause) */ - uint32_t hardware_flags; - /** Uptime before reboot (seconds) */ - uint32_t uptime; - /** Program counter/Watchdog Info/Other */ - uint32_t param_1; - /** Link Register/Watchdog Info/Other */ - uint32_t param_2; - /** Running thread at reboot */ - char thread[8]; - /** Exception stack frame values */ - uint32_t esf[]; -} __packed; - -/** Get state of a data logger */ -struct rpc_data_logger_state_request { - struct infuse_rpc_req_header header; - /** Data logger to read from */ - uint8_t logger; -} __packed; - -struct rpc_data_logger_state_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes logged since boot */ - uint64_t bytes_logged; - /** Number of logical blocks on the logger */ - uint32_t logical_blocks; - /** Number of physical blocks on the logger */ - uint32_t physical_blocks; - /** Number of logical blocks present at boot */ - uint32_t boot_block; - /** Number of logical blocks that have been written */ - uint32_t current_block; - /** Earliest logical block that still exists on the logger */ - uint32_t earliest_block; - /** Size of a single block in bytes */ - uint16_t block_size; - /** Number of bytes at the start of the block that should not contain data */ - uint16_t block_overhead; - /** Minimum erase unit of the logger in bytes */ - uint16_t erase_unit; - /** Current application uptime */ - uint32_t uptime; -} __packed; - -/** Read data from data logger */ -struct rpc_data_logger_read_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Data logger to read from */ - uint8_t logger; - /** Block to start read from */ - uint32_t start_block; - /** Last block to read from (UINT32_MAX == read to current block) */ - uint32_t last_block; -} __packed; - -struct rpc_data_logger_read_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes sent */ - uint32_t sent_len; - /** CRC32 of bytes sent */ - uint32_t sent_crc; -} __packed; - -/** Read arbitrary memory (NO ADDRESS VALIDATION PERFORMED) */ -struct rpc_mem_read_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Start address */ - uint32_t address; -} __packed; - -struct rpc_mem_read_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes sent */ - uint32_t sent_len; - /** CRC32 of bytes sent */ - uint32_t sent_crc; -} __packed; - -/** Read current Infuse-IoT application states */ -struct rpc_infuse_states_query_request { - struct infuse_rpc_req_header header; - /** Ignore first N states before populating the output */ - uint8_t offset; -} __packed; - -struct rpc_infuse_states_query_response { - struct infuse_rpc_rsp_header header; - /** Additional states that were not queried */ - uint8_t remaining; - /** Currently set states (Timeout 0 == permanent) */ - struct rpc_struct_infuse_state states[]; -} __packed; - -/** Update Infuse-IoT application states */ -struct rpc_infuse_states_update_request { - struct infuse_rpc_req_header header; - /** Number of states to update */ - uint8_t num; - /** States to update (Timeout 0 == permanent, UINT16_MAX == clear) */ - struct rpc_struct_infuse_state states[]; -} __packed; - -struct rpc_infuse_states_update_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Erase all data from a data logger */ -struct rpc_data_logger_erase_request { - struct infuse_rpc_req_header header; - /** Data logger to erase */ - uint8_t logger; - /** Erase entire logger space, even empty blocks (0xAA == ignore init failures) */ - uint8_t erase_empty; -} __packed; - -struct rpc_data_logger_erase_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Query stats of heaps */ -struct rpc_heap_stats_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_heap_stats_response { - struct infuse_rpc_rsp_header header; - /** Current statistics of application heaps */ - struct rpc_struct_heap_info stats[]; -} __packed; - -/** Run AT command against LTE modem */ -struct rpc_lte_at_cmd_request { - struct infuse_rpc_req_header header; - /** AT command string */ - char cmd[]; -} __packed; - -struct rpc_lte_at_cmd_response { - struct infuse_rpc_rsp_header header; - /** AT command response */ - char rsp[]; -} __packed; - -/** Get current LTE interface state */ -struct rpc_lte_state_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_lte_state_response { - struct infuse_rpc_rsp_header header; - /** Common network state */ - struct rpc_struct_network_state common; - /** LTE state */ - struct rpc_struct_lte_state lte; -} __packed; - -/** Read data from data logger, with auto-updating start_block */ -struct rpc_data_logger_read_available_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Data logger to read from */ - uint8_t logger; - /** Desired block to start read from */ - uint32_t start_block; - /** Maximum number of blocks to read */ - uint32_t num_blocks; -} __packed; - -struct rpc_data_logger_read_available_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes sent */ - uint32_t sent_len; - /** CRC32 of bytes sent */ - uint32_t sent_crc; - /** Current block after read completes */ - uint32_t current_block; - /** Actual block that read started at */ - uint32_t start_block_actual; - /** Size of a single block in bytes */ - uint16_t block_size; -} __packed; - -/** Get current LTE interface state (with RAI information) */ -struct rpc_lte_state_v2_request { - struct infuse_rpc_req_header header; -} __packed; - -struct rpc_lte_state_v2_response { - struct infuse_rpc_rsp_header header; - /** Common network state */ - struct rpc_struct_network_state common; - /** LTE state */ - struct rpc_struct_lte_state_v2 lte; -} __packed; - -/** Get state of a data logger (Larger erase unit) */ -struct rpc_data_logger_state_v2_request { - struct infuse_rpc_req_header header; - /** Data logger to read from */ - uint8_t logger; -} __packed; - -struct rpc_data_logger_state_v2_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes logged since boot */ - uint64_t bytes_logged; - /** Number of logical blocks on the logger */ - uint32_t logical_blocks; - /** Number of physical blocks on the logger */ - uint32_t physical_blocks; - /** Number of logical blocks present at boot */ - uint32_t boot_block; - /** Number of logical blocks that have been written */ - uint32_t current_block; - /** Earliest logical block that still exists on the logger */ - uint32_t earliest_block; - /** Size of a single block in bytes */ - uint16_t block_size; - /** Number of bytes at the start of the block that should not contain data */ - uint16_t block_overhead; - /** Minimum erase unit of the logger in bytes */ - uint32_t erase_unit; - /** Current application uptime */ - uint32_t uptime; -} __packed; - -/** Read a number of arbitrary chunks from a data logger */ -struct rpc_data_logger_read_chunks_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Data logger to read from */ - uint8_t logger; - /** Number of data chunks in trailing array */ - uint8_t num_chunks; - /** Data chunks to read */ - struct rpc_struct_data_logger_chunk chunks[]; -} __packed; - -struct rpc_data_logger_read_chunks_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes sent */ - uint32_t sent_len; - /** CRC32 of bytes sent */ - uint32_t sent_crc; - /** Current block after read completes */ - uint32_t current_block; - /** Size of a single block in bytes */ - uint16_t block_size; -} __packed; - -/** Query runtime thread statistics */ -struct rpc_thread_stats_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; -} __packed; - -struct rpc_thread_stats_response { - struct infuse_rpc_rsp_header header; - /** Number of thread */ - uint16_t num_threads; -} __packed; - -/** Download a file from a COAP server (Infuse-IoT DTLS protected) */ -struct rpc_coap_download_request { - struct infuse_rpc_req_header header; - /** COAP server address (e.g. coap.dev.infuse-iot.com) */ - char server_address[48]; - /** COAP server port */ - uint16_t server_port; - /** COAP block timeout (Default 1000ms) */ - uint16_t block_timeout_ms; - /** Action to apply to downloaded file */ - uint8_t action; - /** Expected resource length (UINT32_MAX if unknown) */ - uint32_t resource_len; - /** Expected resource CRC (UINT32_MAX if unknown) */ - uint32_t resource_crc; - /** Path to file on COAP server (e.g. files/small_file) */ - char resource[]; -} __packed; - -struct rpc_coap_download_response { - struct infuse_rpc_rsp_header header; - /** Length of resource downloaded */ - uint32_t resource_len; - /** CRC of resource downloaded */ - uint32_t resource_crc; -} __packed; - -/** Network upload bandwidth testing using zperf/iperf */ -struct rpc_zperf_upload_request { - struct infuse_rpc_req_header header; - /** Peer socket address */ - struct rpc_struct_sockaddr peer_address; - /** SOCK_STREAM/SOCK_DGRAM */ - uint8_t sock_type; - /** Source of data to upload */ - uint8_t data_source; - /** Test duration in milliseconds */ - uint32_t duration_ms; - /** Desired rate in kbps (0 for uncapped) */ - uint32_t rate_kbps; - /** Packet size in bytes */ - uint16_t packet_size; -} __packed; - -struct rpc_zperf_upload_response { - struct infuse_rpc_rsp_header header; - /** Number of packets sent */ - uint32_t nb_packets_sent; - /** Number of packets received */ - uint32_t nb_packets_rcvd; - /** Number of packets lost */ - uint32_t nb_packets_lost; - /** Number of packets out of order */ - uint32_t nb_packets_outorder; - /** Total length of the transferred data */ - uint64_t total_len; - /** Total time of the transfer in microseconds */ - uint64_t time_in_us; - /** Jitter in microseconds */ - uint32_t jitter_in_us; - /** Client connection time in microsecond */ - uint64_t client_time_in_us; - /** Packet size */ - uint32_t packet_size; - /** Number of packet errors */ - uint32_t nb_packets_errors; -} __packed; - -/** Download a file from a COAP server (Infuse-IoT DTLS protected) */ -struct rpc_coap_download_v2_request { - struct infuse_rpc_req_header header; - /** COAP server address (e.g. coap.dev.infuse-iot.com) */ - char server_address[48]; - /** COAP server port */ - uint16_t server_port; - /** COAP block timeout (Default 1000ms) */ - uint16_t block_timeout_ms; - /** Block size to use (1024, 512, 256, 128, 64, 32, 16, 0 == auto) */ - uint16_t block_size; - /** Action to apply to downloaded file */ - uint8_t action; - /** Expected resource length (UINT32_MAX if unknown) */ - uint32_t resource_len; - /** Expected resource CRC (UINT32_MAX if unknown) */ - uint32_t resource_crc; - /** Path to file on COAP server (e.g. files/small_file) */ - char resource[]; -} __packed; - -struct rpc_coap_download_v2_response { - struct infuse_rpc_rsp_header header; - /** Length of resource downloaded */ - uint32_t resource_len; - /** CRC of resource downloaded */ - uint32_t resource_crc; -} __packed; - -/** Download a file from a COAP server (Infuse-IoT DTLS protected) */ -struct rpc_coap_download_v3_request { - struct infuse_rpc_req_header header; - /** COAP server address (e.g. coap.dev.infuse-iot.com) */ - char server_address[48]; - /** COAP server port */ - uint16_t server_port; - /** COAP block timeout (Default 1000ms) */ - uint16_t block_timeout_ms; - /** Block size to use (1024, 512, 256, 128, 64, 32, 16, 0 == auto) */ - uint16_t block_size; - /** Action to apply to downloaded file */ - uint8_t action; - /** File folder (for filesystem writes) */ - uint8_t folder; - /** File name (for filesystem writes) */ - uint32_t filename; - /** File identifier (for filesystem writes) */ - uint32_t identifier; - /** Expected resource length (UINT32_MAX if unknown) */ - uint32_t resource_len; - /** Expected resource CRC (UINT32_MAX if unknown) */ - uint32_t resource_crc; - /** Path to file on COAP server (e.g. files/small_file) */ - char resource[]; -} __packed; - -struct rpc_coap_download_v3_response { - struct infuse_rpc_rsp_header header; - /** Length of resource downloaded */ - uint32_t resource_len; - /** CRC of resource downloaded */ - uint32_t resource_crc; -} __packed; - -/** Write a file to the device */ -struct rpc_file_write_basic_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Action to apply to written file */ - uint8_t action; - /** Expected file CRC */ - uint32_t file_crc; -} __packed; - -struct rpc_file_write_basic_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes received */ - uint32_t recv_len; - /** CRC of bytes received */ - uint32_t recv_crc; -} __packed; - -/** Write an annotation to the device */ -struct rpc_annotate_request { - struct infuse_rpc_req_header header; - /** Data logger to write annotation to */ - uint8_t logger; - /** Timestamp (GNSS seconds) that event was observed */ - uint32_t timestamp; - /** Event string to write */ - char annotation[]; -} __packed; - -struct rpc_annotate_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Write an annotation to the device */ -struct rpc_tdf_data_logger_flush_request { - struct infuse_rpc_req_header header; - /** TDF data loggers to flush */ - uint8_t loggers; -} __packed; - -struct rpc_tdf_data_logger_flush_response { - struct infuse_rpc_rsp_header header; - /** Number of loggers in response */ - uint8_t num; - /** Flush status */ - struct rpc_struct_data_logger_flushed flushed[]; -} __packed; - -/** Enter/Exit shipping mode on a device */ -struct rpc_shipping_mode_request { - struct infuse_rpc_req_header header; - /** Non-zero to enter shipping mode, zero to exit */ - uint8_t enter; -} __packed; - -struct rpc_shipping_mode_response { - struct infuse_rpc_rsp_header header; - /** Expected delay to enter/exit shipping mode */ - uint32_t expected_delay_ms; -} __packed; - -/** Write a file to the device */ -struct rpc_file_write_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Action to apply to written file */ - uint8_t action; - /** File folder (for filesystem writes) */ - uint8_t folder; - /** File name (for filesystem writes) */ - uint32_t filename; - /** File identifier (for filesystem writes) */ - uint32_t identifier; - /** Expected file CRC */ - uint32_t file_crc; -} __packed; - -struct rpc_file_write_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes received */ - uint32_t recv_len; - /** CRC of bytes received */ - uint32_t recv_crc; -} __packed; - -/** Connect to an Infuse-IoT Bluetooth device */ -struct rpc_bt_connect_infuse_request { - struct infuse_rpc_req_header header; - /** Bluetooth LE device to connect to */ - struct rpc_struct_bt_addr_le peer; - /** Connection timeout in milliseconds */ - uint16_t conn_timeout_ms; - /** Characteristics to subscribe to */ - uint8_t subscribe; - /** Automatically terminate connection if no data traffic (0 = No timeout) */ - uint16_t inactivity_timeout_ms; -} __packed; - -struct rpc_bt_connect_infuse_response { - struct infuse_rpc_rsp_header header; - /** Bluetooth device connected to */ - struct rpc_struct_bt_addr_le peer; - /** Cloud public ECC key */ - uint8_t cloud_public_key[32]; - /** Device public ECC key */ - uint8_t device_public_key[32]; - /** Current network ID */ - uint32_t network_id; -} __packed; - -/** Disconnect from a Bluetooth device */ -struct rpc_bt_disconnect_request { - struct infuse_rpc_req_header header; - /** Bluetooth LE device to disconnect from */ - struct rpc_struct_bt_addr_le peer; -} __packed; - -struct rpc_bt_disconnect_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Copy a local file to a remote device over Bluetooth */ -struct rpc_bt_file_copy_basic_request { - struct infuse_rpc_req_header header; - /** Bluetooth LE device to connect to */ - struct rpc_struct_bt_addr_le peer; - /** Action to apply to copied file */ - uint8_t action; - /** File index to copy */ - uint8_t file_idx; - /** File length */ - uint32_t file_len; - /** File CRC */ - uint32_t file_crc; - /** ACK period for data copy over Bluetooth */ - uint8_t ack_period; - /** Pipelining for the data copy */ - uint8_t pipelining; -} __packed; - -struct rpc_bt_file_copy_basic_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Copy a file fetched from COAP to a remote device over Bluetooth */ -struct rpc_bt_file_copy_coap_request { - struct infuse_rpc_req_header header; - /** Bluetooth LE device to connect to */ - struct rpc_struct_bt_addr_le peer; - /** Connection timeout in milliseconds */ - uint16_t conn_timeout_ms; - /** Action to apply to copied file */ - uint8_t action; - /** File index to use for storage */ - uint8_t file_idx; - /** ACK period for data copy over Bluetooth */ - uint8_t ack_period; - /** Pipelining for the data copy */ - uint8_t pipelining; - /** COAP server address (e.g. coap.dev.infuse-iot.com) */ - char server_address[48]; - /** COAP server port */ - uint16_t server_port; - /** COAP block timeout (Default 1000ms) */ - uint16_t block_timeout_ms; - /** Expected resource length (UINT32_MAX if unknown) */ - uint32_t resource_len; - /** Expected resource CRC (UINT32_MAX if unknown) */ - uint32_t resource_crc; - /** Path to file on COAP server (e.g. files/small_file) */ - char resource[]; -} __packed; - -struct rpc_bt_file_copy_coap_response { - struct infuse_rpc_rsp_header header; - /** Length of resource downloaded from COAP */ - uint32_t resource_len; - /** CRC of resource downloaded from COAP */ - uint32_t resource_crc; -} __packed; - -/** Connect to a Bluetooth device and run the MCUMGR reboot command */ -struct rpc_bt_mcumgr_reboot_request { - struct infuse_rpc_req_header header; - /** Bluetooth LE device to run reboot on */ - struct rpc_struct_bt_addr_le peer; - /** Connection timeout in milliseconds */ - uint16_t conn_timeout_ms; -} __packed; - -struct rpc_bt_mcumgr_reboot_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Store the current accelerometer vector as the gravity reference */ -struct rpc_gravity_reference_update_request { - struct infuse_rpc_req_header header; - /** Maximum axis variance to accept (0 == infinite) */ - uint16_t max_variance; -} __packed; - -struct rpc_gravity_reference_update_response { - struct infuse_rpc_rsp_header header; - /** Updated reference vector */ - struct rpc_struct_xyz_s16 reference; - /** Variance of measurements used for reference */ - struct rpc_struct_xyz_s16 variance; - /** Number of samples used in the averaging */ - uint16_t num_samples; - /** Period between samples */ - uint32_t sample_period_us; -} __packed; - -/** Query files currently on the filesystem */ -struct rpc_filesystem_ls_request { - struct infuse_rpc_req_header header; - /** Folder to query */ - uint8_t folder; - /** Skip first N files in response */ - uint8_t skip; -} __packed; - -struct rpc_filesystem_ls_response { - struct infuse_rpc_rsp_header header; - /** Total files in the folder */ - uint8_t total_files; - /** Number of files in this response */ - uint8_t contained_files; - /** File information */ - struct rpc_struct_filesystem_file_info files[]; -} __packed; - -/** Delete file currently on the filesystem */ -struct rpc_filesystem_rm_request { - struct infuse_rpc_req_header header; - /** Folder that file exists in */ - uint8_t folder; - /** File to delete */ - uint32_t file; -} __packed; - -struct rpc_filesystem_rm_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Retrieve U-blox AssistNow Zero Touch Provisioning credentials */ -struct rpc_ubx_assist_now_ztp_creds_request { - struct infuse_rpc_req_header header; - /** Frame offset of UBX-MON-VER data */ - uint8_t mon_ver_offset; -} __packed; - -struct rpc_ubx_assist_now_ztp_creds_response { - struct infuse_rpc_rsp_header header; - /** Raw UBX-SEC-UNIQID frame */ - uint8_t ubx_sec_uniqid[18]; - /** Raw UBX-MON-VER frame */ - uint8_t ubx_mon_ver[]; -} __packed; - -/** Query current security state and validate identity */ -struct rpc_security_state_request { - struct infuse_rpc_req_header header; - /** Random challenge data */ - uint8_t challenge[16]; -} __packed; - -struct rpc_security_state_response { - struct infuse_rpc_rsp_header header; - /** Cloud public ECC key */ - uint8_t cloud_public_key[32]; - /** Device public ECC key */ - uint8_t device_public_key[32]; - /** Current network ID */ - uint32_t network_id; - /** Type of the challenge response */ - uint8_t challenge_response_type; - /** Challenge response data */ - uint8_t challenge_response[]; -} __packed; - -/** Update key material */ -struct rpc_security_key_update_request { - struct infuse_rpc_req_header header; - /** Security key to update */ - uint8_t key_id; - /** Action to take */ - uint8_t key_action; - /** 24 bit key identifier (Network keys only) */ - uint32_t key_global_identifier; - /** Key bitstream */ - uint8_t key_bitstream[32]; - /** Reboot in this many seconds to load new keys */ - uint8_t reboot_delay; -} __packed; - -struct rpc_security_key_update_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Query device public keys */ -struct rpc_security_public_keys_request { - struct infuse_rpc_req_header header; - /** Skip first N keys in response */ - uint8_t skip; -} __packed; - -struct rpc_security_public_keys_response { - struct infuse_rpc_rsp_header header; - /** Number of public keys available */ - uint8_t keys_total; - /** Number of public keys in this response */ - uint8_t keys_included; - /** Cloud public ECC key */ - struct rpc_struct_public_key_info_256bit public_keys[]; -} __packed; - -/** Send multiple INFUSE_RPC_DATA packets */ -struct rpc_data_sender_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; -} __packed; - -struct rpc_data_sender_response { - struct infuse_rpc_rsp_header header; -} __packed; - -/** Receive multiple INFUSE_RPC_DATA packets */ -struct rpc_data_receiver_request { - struct infuse_rpc_req_header header; - struct infuse_rpc_req_data_header data_header; - /** Allow unaligned input data */ - uint8_t unaligned_input; -} __packed; - -struct rpc_data_receiver_response { - struct infuse_rpc_rsp_header header; - /** Number of bytes received */ - uint32_t recv_len; - /** CRC32 of bytes received */ - uint32_t recv_crc; -} __packed; - -/** Echo any input data in the response */ -struct rpc_echo_request { - struct infuse_rpc_req_header header; - /** Binary data */ - uint8_t array[]; -} __packed; - -struct rpc_echo_response { - struct infuse_rpc_rsp_header header; - /** Binary data */ - uint8_t array[]; -} __packed; - -/** Extension RPC 1 */ -struct rpc_ext1_request { - struct infuse_rpc_req_header header; - /** Arg 1 */ - struct rpc_struct_demo arg1; -} __packed; - -struct rpc_ext1_response { - struct infuse_rpc_rsp_header header; - /** Response 1 */ - uint32_t rsp1; -} __packed; - -/** - * @} - */ - -/* clang-format on */ - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_GENERATED_RPC_TYPES_H_ */ diff --git a/tests/subsys/definitions_extend/generated/include/infuse/tdf/definitions.h b/tests/subsys/definitions_extend/generated/include/infuse/tdf/definitions.h deleted file mode 100644 index 1de68d3c4..000000000 --- a/tests/subsys/definitions_extend/generated/include/infuse/tdf/definitions.h +++ /dev/null @@ -1,1081 +0,0 @@ -/** - * @file - * @brief Autogenerated TDF definitions - * @copyright 2024 Embeint Holdings Pty Ltd - * @author scripts/west_commands/cloudgen.py - * - * INFUSE-IOT-AUTOGENERATED - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_INCLUDE_GENERATED_TDF_DEFINITIONS_H_ -#define INFUSE_SDK_INCLUDE_GENERATED_TDF_DEFINITIONS_H_ - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Common TDF struct fields - * @defgroup tdf_struct_definitions Common TDF struct fields - * @{ - */ - -/** MCUboot semantic versioning struct */ -struct tdf_struct_mcuboot_img_sem_ver { - uint8_t major; - uint8_t minor; - uint16_t revision; - uint32_t build_num; -} __packed; - -/** Generic 3-axis sensor reading */ -struct tdf_struct_xyz_16bit { - int16_t x; - int16_t y; - int16_t z; -} __packed; - -/** Geographic Coordinate System location */ -struct tdf_struct_gcs_location { - /** Latitude degrees (scale 1e7) */ - int32_t latitude; - /** Longitude degrees (scale 1e7) */ - int32_t longitude; - /** Height above reference ellipsoid (mm) */ - int32_t height; -} __packed; - -/** LTE cell ID (Local) */ -struct tdf_struct_lte_cell_id_local { - /** E-UTRAN Cell ID */ - uint32_t eci; - /** Tracking Area Code */ - uint16_t tac; -} __packed; - -/** LTE cell ID (Global) */ -struct tdf_struct_lte_cell_id_global { - /** Mobile Country Code */ - uint16_t mcc; - /** Mobile Network Code */ - uint16_t mnc; - /** E-UTRAN Cell ID */ - uint32_t eci; - /** Tracking Area Code */ - uint16_t tac; -} __packed; - -/** LTE cell ID (Global) */ -struct tdf_struct_lte_cell_neighbour { - /** Evolved Absolute Radio Frequency Channel (E-ARFCN) */ - uint32_t earfcn; - /** Physical Cell Identity */ - uint16_t pci; - /** Time after the serving cell was observed that the neighbor cell was observed */ - uint16_t time_diff; - /** Reference signal received power (255 = Unknown) */ - uint8_t rsrp; - /** Reference signal received quality (-128 = Unknown) */ - int8_t rsrq; -} __packed; - -/** Bluetooth address type (bt_addr_le_t) */ -struct tdf_struct_bt_addr_le { - /** Address type (0 = Public, 1 = Random) */ - uint8_t type; - /** Address bytes */ - uint8_t val[6]; -} __packed; - -/** IEEE EUI-48 address */ -struct tdf_struct_eui48 { - /** Address bytes */ - uint8_t val[6]; -} __packed; - -/** WiFi network parameters */ -struct tdf_struct_wifi_network_params { - /** Basic Service Set Identifier (MAC address) */ - uint8_t bssid[6]; - /** Frequency band */ - uint8_t band; - /** Channel index */ - uint8_t channel; - /** https://w1.fi/wpa_supplicant/devel/defs_8h.html#a4aeb27c1e4abd046df3064ea9756f0bc */ - uint8_t iface_mode; - /** WiFi link operating mode (https://en.wikipedia.org/wiki/Wi-Fi#Versions_and_generations) - */ - uint8_t link_mode; - /** IEEE 802.11 security type */ - uint8_t security; - /** Received signal strength (dBm) */ - int8_t rssi; - /** Beacon interval (ms) */ - uint16_t beacon_interval; - /** Target Wake Time capable? */ - uint8_t twt_capable; -} __packed; - -/** Demo struct */ -struct tdf_struct_demo { - int8_t x; - int8_t y; - int8_t z; -} __packed; - -/** - * @} - */ - -/** - * @brief Built-in TDF Structure Definitions - * @defgroup builtin_tdf_definitions TDF Structure Definitions - * @{ - */ - -/** Common announcement packet */ -struct tdf_announce { - /** Unique application ID */ - uint32_t application; - /** Running application version */ - struct tdf_struct_mcuboot_img_sem_ver version; - /** Key-Value store reflect global CRC */ - uint32_t kv_crc; - /** Logger blocks written */ - uint32_t blocks; - /** Uptime in seconds */ - uint32_t uptime; - /** Reboot counter */ - uint16_t reboots; - /** Flags (BIT(0) = SD blocks) */ - uint8_t flags; -} __packed; - -/** General battery state */ -struct tdf_battery_state { - /** Battery voltage (milliVolts) */ - uint32_t voltage_mv; - /** Battery current (microamps) (Negative = discharging) */ - int32_t current_ua; - /** State of charge (percent) */ - uint8_t soc; -} __packed; - -/** Ambient temperature, pressure & humidity */ -struct tdf_ambient_temp_pres_hum { - /** Ambient temperature (millidegrees) */ - int32_t temperature; - /** Atmospheric pressure (pascals) */ - uint32_t pressure; - /** Relative humidity (centipercent) */ - uint16_t humidity; -} __packed; - -/** Ambient temperature */ -struct tdf_ambient_temperature { - /** Ambient temperature (millidegrees) */ - int32_t temperature; -} __packed; - -/** Time synchronised to new source */ -struct tdf_time_sync { - /** Updated time source */ - uint8_t source; - /** Time shift (microseconds) */ - int32_t shift; -} __packed; - -/** Information pertaining to the previous reboot */ -struct tdf_reboot_info { - /** Reboot reason (enum infuse_reboot_reason) */ - uint8_t reason; - /** Hardware flags (hwinfo_get_reset_cause) */ - uint32_t hardware_flags; - /** Reboot counter */ - uint32_t count; - /** Uptime before reboot (seconds) */ - uint32_t uptime; - /** Program counter/Watchdog Info/Other */ - uint32_t param_1; - /** Link Register/Watchdog Info/Other */ - uint32_t param_2; - /** Running thread at reboot */ - char thread[8]; -} __packed; - -/** Common announcement packet */ -struct tdf_announce_v2 { - /** Unique application ID */ - uint32_t application; - /** Running application version */ - struct tdf_struct_mcuboot_img_sem_ver version; - /** CRC of board name */ - uint16_t board_crc; - /** Key-Value store reflect global CRC */ - uint32_t kv_crc; - /** Logger blocks written */ - uint32_t blocks; - /** Uptime in seconds */ - uint32_t uptime; - /** Reboot counter */ - uint16_t reboots; - /** Flags (BIT(0) = SD blocks, BIT(7) = Shipping) */ - uint8_t flags; -} __packed; - -/** SoC die temperature */ -struct tdf_soc_temperature { - /** SoC die temperature (centidegrees) */ - int16_t temperature; -} __packed; - -/** Accelerometer +-2G */ -struct tdf_acc_2g { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Accelerometer +-4G */ -struct tdf_acc_4g { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Accelerometer +-8G */ -struct tdf_acc_8g { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Accelerometer +-16G */ -struct tdf_acc_16g { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Gyroscope +-125 DPS */ -struct tdf_gyr_125dps { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Gyroscope +-250 DPS */ -struct tdf_gyr_250dps { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Gyroscope +-500 DPS */ -struct tdf_gyr_500dps { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Gyroscope +-1000 DPS */ -struct tdf_gyr_1000dps { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Gyroscope +-2000 DPS */ -struct tdf_gyr_2000dps { - /** Raw sample */ - struct tdf_struct_xyz_16bit sample; -} __packed; - -/** Geo-location (WGS-84) + accuracy */ -struct tdf_gcs_wgs84_llha { - /** WGS-84 referenced location */ - struct tdf_struct_gcs_location location; - /** Horizontal accuracy (mm) */ - int32_t h_acc; - /** Vertical accuracy (mm) */ - int32_t v_acc; -} __packed; - -/** u-blox GNSS NAV-PVT message */ -struct tdf_ubx_nav_pvt { - /** GPS time of week of the navigation epoch */ - uint32_t itow; - /** Year (UTC) */ - uint16_t year; - /** Month, range 1..12 (UTC) */ - uint8_t month; - /** Day of month, range 1..31 (UTC) */ - uint8_t day; - /** Hour of day, range 0..23 (UTC) */ - uint8_t hour; - /** Minute of hour, range 0..59 (UTC) */ - uint8_t min; - /** Seconds of minute, range 0..60 (UTC) */ - uint8_t sec; - /** Validity flags */ - uint8_t valid; - /** Time accuracy estimate (UTC) */ - uint32_t t_acc; - /** Fraction of second, range -1e9 .. 1e9 (UTC) */ - int32_t nano; - /** GNSS fix Type */ - uint8_t fix_type; - /** Fix status flags */ - uint8_t flags; - /** Additional flags */ - uint8_t flags2; - /** Number of satellites used in Nav Solution */ - uint8_t num_sv; - /** Longitude */ - int32_t lon; - /** Latitude */ - int32_t lat; - /** Height above ellipsoid */ - int32_t height; - /** Height above mean sea level */ - int32_t h_msl; - /** Horizontal accuracy estimate */ - uint32_t h_acc; - /** Vertical accuracy estimate */ - uint32_t v_acc; - /** NED north velocity */ - int32_t vel_n; - /** NED east velocity */ - int32_t vel_e; - /** NED down velocity */ - int32_t vel_d; - /** Ground Speed (2-D) */ - int32_t g_speed; - /** Heading of motion (2-D) */ - int32_t head_mot; - /** Speed accuracy estimate */ - uint32_t s_acc; - /** Heading accuracy estimate (both motion and vehicle) */ - uint32_t head_acc; - /** Position DOP */ - uint16_t p_dop; - /** Additional flags */ - uint16_t flags3; - /** Reserved */ - uint8_t reserved0[4]; - /** Heading of vehicle (2-D) */ - int32_t head_veh; - /** Magnetic declination */ - int16_t mag_dec; - /** Magnetic declination accuracy */ - uint16_t mag_acc; -} __packed; - -/** Information on service cell and registration status */ -struct tdf_lte_conn_status { - /** Global LTE cell identifier */ - struct tdf_struct_lte_cell_id_global cell; - /** Evolved Absolute Radio Frequency Channel (E-ARFCN) */ - uint32_t earfcn; - /** Registration status (See AT+CEREG) */ - uint8_t status; - /** Access Technology (7 = LTE-M, 9 = NB-IoT) */ - uint8_t tech; - /** Reference signal received power (255 = Unknown) */ - uint8_t rsrp; - /** Reference signal received quality (-128 = Unknown) */ - int8_t rsrq; -} __packed; - -/** 9 byte payload transmitted over the Globalstar Simplex network */ -struct tdf_globalstar_pkt { - /** User data payload */ - uint8_t payload[9]; -} __packed; - -/** Accelerometer magnitude standard deviation over a window */ -struct tdf_acc_magnitude_std_dev { - /** Number of samples in window */ - uint32_t count; - /** Standard deviation in micro-g */ - uint32_t std_dev; -} __packed; - -/** Generic activity metric */ -struct tdf_activity_metric { - /** Activity metric value */ - uint32_t value; -} __packed; - -/** Instantaneous algorithm output */ -struct tdf_algorithm_output { - /** Algorithm identifier */ - uint32_t algorithm_id; - /** Algorithm version number */ - uint16_t algorithm_version; - /** Arbitrary algorithm output */ - uint8_t output[]; -} __packed; - -/** Define a variant of tdf_algorithm_output with a constant length */ -#define TDF_ALGORITHM_OUTPUT_VAR(_name, _count) \ - struct _name { \ - uint32_t algorithm_id; \ - uint16_t algorithm_version; \ - uint8_t output[_count]; \ - } __packed; - -/** Runtime error logging */ -struct tdf_runtime_error { - /** Unique error identifier */ - uint32_t error_id; - /** Additional context about the error */ - uint32_t error_ctx; -} __packed; - -/** Battery charging enable state */ -struct tdf_charger_en_control { - /** Charger is enabled */ - uint8_t enabled; -} __packed; - -/** Metadata about a GNSS location fix */ -struct tdf_gnss_fix_info { - /** Duration it took for accurate time knowledge (seconds) */ - uint16_t time_fix; - /** Duration it took for desired location knowledge (seconds) */ - uint16_t location_fix; - /** Number of satellite vehicles used in location fix */ - uint8_t num_sv; -} __packed; - -/** Bluetooth connection state change */ -struct tdf_bluetooth_connection { - /** Address of remote device */ - struct tdf_struct_bt_addr_le address; - /** Connected (1) or Disconnected (0) */ - uint8_t connected; -} __packed; - -/** Received signal strength of Bluetooth device */ -struct tdf_bluetooth_rssi { - /** Address of remote device */ - struct tdf_struct_bt_addr_le address; - /** Bluetooth RSSI */ - int8_t rssi; -} __packed; - -/** Data throughput of Bluetooth link */ -struct tdf_bluetooth_data_throughput { - /** Address of remote device */ - struct tdf_struct_bt_addr_le address; - /** Data throughput (-1 = disconnected) */ - int32_t throughput; -} __packed; - -/** Algorithm output class histogram over a time window */ -struct tdf_algorithm_class_histogram { - /** Algorithm identifier */ - uint32_t algorithm_id; - /** Algorithm version number */ - uint16_t algorithm_version; - /** Count per output class */ - uint8_t classes[]; -} __packed; - -/** Define a variant of tdf_algorithm_class_histogram with a constant length */ -#define TDF_ALGORITHM_CLASS_HISTOGRAM_VAR(_name, _count) \ - struct _name { \ - uint32_t algorithm_id; \ - uint16_t algorithm_version; \ - uint8_t classes[_count]; \ - } __packed; - -/** Algorithm output class time series vector */ -struct tdf_algorithm_class_time_series { - /** Algorithm identifier */ - uint32_t algorithm_id; - /** Algorithm version number */ - uint16_t algorithm_version; - /** Output classes */ - uint8_t values[]; -} __packed; - -/** Define a variant of tdf_algorithm_class_time_series with a constant length */ -#define TDF_ALGORITHM_CLASS_TIME_SERIES_VAR(_name, _count) \ - struct _name { \ - uint32_t algorithm_id; \ - uint16_t algorithm_version; \ - uint8_t values[_count]; \ - } __packed; - -/** Information on cells in a tracking area */ -struct tdf_lte_tac_cells { - /** Global LTE cell identifier */ - struct tdf_struct_lte_cell_id_global cell; - /** Evolved Absolute Radio Frequency Channel (E-ARFCN) */ - uint32_t earfcn; - /** Reference signal received power (255 = Unknown) */ - uint8_t rsrp; - /** Reference signal received quality (-128 = Unknown) */ - int8_t rsrq; - /** Neighbouring cell measurements */ - struct tdf_struct_lte_cell_neighbour neighbours[]; -} __packed; - -/** Define a variant of tdf_lte_tac_cells with a constant length */ -#define TDF_LTE_TAC_CELLS_VAR(_name, _count) \ - struct _name { \ - struct tdf_struct_lte_cell_id_global cell; \ - uint32_t earfcn; \ - uint8_t rsrp; \ - int8_t rsrq; \ - struct tdf_struct_lte_cell_neighbour neighbours[_count]; \ - } __packed; - -/** Wi-Fi access point information */ -struct tdf_wifi_ap_info { - /** Access Point BSSID */ - struct tdf_struct_eui48 bssid; - /** Wi-Fi channel number */ - uint8_t channel; - /** Received signal strength (dBm) */ - int8_t rsrp; -} __packed; - -/** Tilt angle of the device */ -struct tdf_device_tilt { - /** Cosine of the tilt angle */ - float cosine; -} __packed; - -/** nRF9x GNSS PVT data frame */ -struct tdf_nrf9x_gnss_pvt { - /** Latitude */ - int32_t lat; - /** Longitude */ - int32_t lon; - /** Height above ellipsoid */ - int32_t height; - /** Horizontal accuracy estimate */ - uint32_t h_acc; - /** Vertical accuracy estimate */ - uint32_t v_acc; - /** Horizontal Speed (2-D) */ - int32_t h_speed; - /** Horizontal speed accuracy estimate */ - uint32_t h_speed_acc; - /** Horizontal Speed (2-D) */ - int32_t v_speed; - /** Horizontal speed accuracy estimate */ - uint32_t v_speed_acc; - /** Heading of motion (2-D) */ - int32_t head_mot; - /** Heading accuracy estimate (both motion and vehicle) */ - uint32_t head_acc; - /** Year (UTC) */ - uint16_t year; - /** Month, range 1..12 (UTC) */ - uint8_t month; - /** Day of month, range 1..31 (UTC) */ - uint8_t day; - /** Hour of day, range 0..23 (UTC) */ - uint8_t hour; - /** Minute of hour, range 0..59 (UTC) */ - uint8_t min; - /** Seconds of minute, range 0..60 (UTC) */ - uint8_t sec; - /** Milliseconds, range 0..999 (UTC) */ - uint16_t ms; - /** Position DOP */ - uint16_t p_dop; - /** Horizontal position DOP */ - uint16_t h_dop; - /** Vertical position DOP */ - uint16_t v_dop; - /** Time DOP */ - uint16_t t_dop; - /** Fix status flags */ - uint8_t flags; - /** Number of satellites used in Nav Solution */ - uint8_t num_sv; -} __packed; - -/** Battery charge accumulated over time (+ve entering battery, -ve exiting battery) */ -struct tdf_battery_charge_accumulated { - /** Accumulated charge (microamp-seconds) */ - int32_t charge; -} __packed; - -/** Received signal strength of Infuse-IoT Bluetooth device */ -struct tdf_infuse_bluetooth_rssi { - /** Infuse-IoT ID of remote device */ - uint64_t infuse_id; - /** Bluetooth RSSI */ - int8_t rssi; -} __packed; - -/** Generic 8bit raw ADC reading */ -struct tdf_adc_raw_8 { - /** Raw ADC reading */ - int8_t val; -} __packed; - -/** Generic 16bit raw ADC reading */ -struct tdf_adc_raw_16 { - /** Raw ADC reading */ - int16_t val; -} __packed; - -/** Generic 32bit raw ADC reading */ -struct tdf_adc_raw_32 { - /** Raw ADC reading */ - int32_t val; -} __packed; - -/** Generic event annotation */ -struct tdf_annotation { - /** Annotation timestamp (GNSS seconds) */ - uint32_t timestamp; - /** Event that occurred */ - char event[]; -} __packed; - -/** Define a variant of tdf_annotation with a constant length */ -#define TDF_ANNOTATION_VAR(_name, _count) \ - struct _name { \ - uint32_t timestamp; \ - char event[_count]; \ - } __packed; - -/** Received LoRa packet */ -struct tdf_lora_rx { - /** Signal to Noise ratio (dB) */ - int8_t snr; - /** Received signal strength (dBm) */ - int16_t rssi; - /** Packet payload */ - uint8_t payload[]; -} __packed; - -/** Define a variant of tdf_lora_rx with a constant length */ -#define TDF_LORA_RX_VAR(_name, _count) \ - struct _name { \ - int8_t snr; \ - int16_t rssi; \ - uint8_t payload[_count]; \ - } __packed; - -/** Define a variant of tdf_lora_tx with a constant length */ -#define TDF_LORA_TX_VAR(_name, _count) \ - struct _name { \ - uint8_t payload[_count]; \ - } __packed; - -/** Sample frequency metadata for a TDF_DATA_FORMAT_IDX_ARRAY array */ -struct tdf_idx_array_freq { - /** TDF ID that is being described */ - uint16_t tdf_id; - /** Frequency of samples in Hertz */ - uint32_t frequency; -} __packed; - -/** Sample frequency metadata for a TDF_DATA_FORMAT_IDX_ARRAY array */ -struct tdf_idx_array_period { - /** TDF ID that is being described */ - uint16_t tdf_id; - /** Period between samples in nanoseconds */ - uint32_t period; -} __packed; - -/** WiFi network is now connected */ -struct tdf_wifi_connected { - /** Network parameters */ - struct tdf_struct_wifi_network_params network; -} __packed; - -/** Failed to connect to a WiFi network */ -struct tdf_wifi_connection_failed { - /** Reported reason for connection failure */ - uint8_t reason; -} __packed; - -/** Wi-Fi network is now disconnected */ -struct tdf_wifi_disconnected { - /** Reported reason for disconnection */ - uint8_t reason; -} __packed; - -/** Counts associated with scanning Wi-Fi and LTE networks */ -struct tdf_network_scan_count { - /** Number of Wi-Fi APs found */ - uint8_t num_wifi; - /** Number of LTE cells found */ - uint8_t num_lte; -} __packed; - -/** Define a variant of tdf_exception_stack_frame with a constant length */ -#define TDF_EXCEPTION_STACK_FRAME_VAR(_name, _count) \ - struct _name { \ - uint32_t frame[_count]; \ - } __packed; - -/** Battery voltage */ -struct tdf_battery_voltage { - /** Battery voltage (milliVolts) */ - uint16_t voltage; -} __packed; - -/** Battery state of charge */ -struct tdf_battery_soc { - /** State of charge (percent) */ - uint8_t soc; -} __packed; - -/** Infuse-IoT application state transitioned from cleared to set */ -struct tdf_state_event_set { - /** Infuse-IoT application event */ - uint8_t state; -} __packed; - -/** Infuse-IoT application state transitioned from set to cleared */ -struct tdf_state_event_cleared { - /** Infuse-IoT application event */ - uint8_t state; -} __packed; - -/** Duration an Infuse-IoT application state was asserted for */ -struct tdf_state_duration { - /** Infuse-IoT application event */ - uint8_t state; - /** Duration state was asserted for */ - uint32_t duration; -} __packed; - -/** 16bit PCM (Audio) data for the left channel */ -struct tdf_pcm_16bit_chan_left { - /** Left channel sample */ - int16_t val; -} __packed; - -/** 16bit PCM (Audio) data for the right channel */ -struct tdf_pcm_16bit_chan_right { - /** Right channel sample */ - int16_t val; -} __packed; - -/** 16bit PCM (Audio) data for both the left and right channels */ -struct tdf_pcm_16bit_chan_dual { - /** Left channel sample */ - int16_t left; - /** Right channel sample */ - int16_t right; -} __packed; - -/** Record of key value store data updates */ -struct tdf_kvs_value_changed { - /** KV Store key identifier */ - uint16_t key; - /** New data value, empty for delete, '*' for write-only */ - uint8_t value[]; -} __packed; - -/** Define a variant of tdf_kvs_value_changed with a constant length */ -#define TDF_KVS_VALUE_CHANGED_VAR(_name, _count) \ - struct _name { \ - uint16_t key; \ - uint8_t value[_count]; \ - } __packed; - -/** Ambient pressure */ -struct tdf_ambient_pressure { - /** Atmospheric pressure (pascals) */ - uint32_t pressure; -} __packed; - -/** Extension TDF 1 */ -struct tdf_ext1 { - /** Demo 1 */ - struct tdf_struct_demo a; - /** Demo 2 */ - struct tdf_struct_demo b; -} __packed; - -/** Extension TDF 2 */ -struct tdf_ext2 { - /** Mean value */ - uint16_t a; - /** Sample count */ - uint16_t b; -} __packed; - -/** Infuse-IoT builtin TDF definitions */ -enum tdf_builtin_id { - /** Common announcement packet */ - TDF_ANNOUNCE = 1, - /** General battery state */ - TDF_BATTERY_STATE = 2, - /** Ambient temperature, pressure & humidity */ - TDF_AMBIENT_TEMP_PRES_HUM = 3, - /** Ambient temperature */ - TDF_AMBIENT_TEMPERATURE = 4, - /** Time synchronised to new source */ - TDF_TIME_SYNC = 5, - /** Information pertaining to the previous reboot */ - TDF_REBOOT_INFO = 6, - /** Common announcement packet */ - TDF_ANNOUNCE_V2 = 7, - /** SoC die temperature */ - TDF_SOC_TEMPERATURE = 8, - /** Accelerometer +-2G */ - TDF_ACC_2G = 10, - /** Accelerometer +-4G */ - TDF_ACC_4G = 11, - /** Accelerometer +-8G */ - TDF_ACC_8G = 12, - /** Accelerometer +-16G */ - TDF_ACC_16G = 13, - /** Gyroscope +-125 DPS */ - TDF_GYR_125DPS = 14, - /** Gyroscope +-250 DPS */ - TDF_GYR_250DPS = 15, - /** Gyroscope +-500 DPS */ - TDF_GYR_500DPS = 16, - /** Gyroscope +-1000 DPS */ - TDF_GYR_1000DPS = 17, - /** Gyroscope +-2000 DPS */ - TDF_GYR_2000DPS = 18, - /** Geo-location (WGS-84) + accuracy */ - TDF_GCS_WGS84_LLHA = 19, - /** u-blox GNSS NAV-PVT message */ - TDF_UBX_NAV_PVT = 20, - /** Information on service cell and registration status */ - TDF_LTE_CONN_STATUS = 21, - /** 9 byte payload transmitted over the Globalstar Simplex network */ - TDF_GLOBALSTAR_PKT = 22, - /** Accelerometer magnitude standard deviation over a window */ - TDF_ACC_MAGNITUDE_STD_DEV = 23, - /** Generic activity metric */ - TDF_ACTIVITY_METRIC = 24, - /** Instantaneous algorithm output */ - TDF_ALGORITHM_OUTPUT = 25, - /** Runtime error logging */ - TDF_RUNTIME_ERROR = 26, - /** Battery charging enable state */ - TDF_CHARGER_EN_CONTROL = 27, - /** Metadata about a GNSS location fix */ - TDF_GNSS_FIX_INFO = 28, - /** Bluetooth connection state change */ - TDF_BLUETOOTH_CONNECTION = 29, - /** Received signal strength of Bluetooth device */ - TDF_BLUETOOTH_RSSI = 30, - /** Data throughput of Bluetooth link */ - TDF_BLUETOOTH_DATA_THROUGHPUT = 31, - /** Algorithm output class histogram over a time window */ - TDF_ALGORITHM_CLASS_HISTOGRAM = 32, - /** Algorithm output class time series vector */ - TDF_ALGORITHM_CLASS_TIME_SERIES = 33, - /** Information on cells in a tracking area */ - TDF_LTE_TAC_CELLS = 34, - /** Wi-Fi access point information */ - TDF_WIFI_AP_INFO = 35, - /** Tilt angle of the device */ - TDF_DEVICE_TILT = 36, - /** nRF9x GNSS PVT data frame */ - TDF_NRF9X_GNSS_PVT = 37, - /** Battery charge accumulated over time (+ve entering battery, -ve exiting battery) */ - TDF_BATTERY_CHARGE_ACCUMULATED = 38, - /** Received signal strength of Infuse-IoT Bluetooth device */ - TDF_INFUSE_BLUETOOTH_RSSI = 39, - /** Generic 8bit raw ADC reading */ - TDF_ADC_RAW_8 = 40, - /** Generic 16bit raw ADC reading */ - TDF_ADC_RAW_16 = 41, - /** Generic 32bit raw ADC reading */ - TDF_ADC_RAW_32 = 42, - /** Generic event annotation */ - TDF_ANNOTATION = 43, - /** Received LoRa packet */ - TDF_LORA_RX = 44, - /** Transmitted LoRa packet */ - TDF_LORA_TX = 45, - /** Sample frequency metadata for a TDF_DATA_FORMAT_IDX_ARRAY array */ - TDF_IDX_ARRAY_FREQ = 46, - /** Sample frequency metadata for a TDF_DATA_FORMAT_IDX_ARRAY array */ - TDF_IDX_ARRAY_PERIOD = 47, - /** WiFi network is now connected */ - TDF_WIFI_CONNECTED = 48, - /** Failed to connect to a WiFi network */ - TDF_WIFI_CONNECTION_FAILED = 49, - /** Wi-Fi network is now disconnected */ - TDF_WIFI_DISCONNECTED = 50, - /** Counts associated with scanning Wi-Fi and LTE networks */ - TDF_NETWORK_SCAN_COUNT = 51, - /** Generic exception stack frame */ - TDF_EXCEPTION_STACK_FRAME = 52, - /** Battery voltage */ - TDF_BATTERY_VOLTAGE = 53, - /** Battery state of charge */ - TDF_BATTERY_SOC = 54, - /** Infuse-IoT application state transitioned from cleared to set */ - TDF_STATE_EVENT_SET = 55, - /** Infuse-IoT application state transitioned from set to cleared */ - TDF_STATE_EVENT_CLEARED = 56, - /** Duration an Infuse-IoT application state was asserted for */ - TDF_STATE_DURATION = 57, - /** 16bit PCM (Audio) data for the left channel */ - TDF_PCM_16BIT_CHAN_LEFT = 58, - /** 16bit PCM (Audio) data for the right channel */ - TDF_PCM_16BIT_CHAN_RIGHT = 59, - /** 16bit PCM (Audio) data for both the left and right channels */ - TDF_PCM_16BIT_CHAN_DUAL = 60, - /** Record of key value store data updates */ - TDF_KVS_VALUE_CHANGED = 61, - /** Ambient pressure */ - TDF_AMBIENT_PRESSURE = 62, - /** Extension TDF 1 */ - TDF_EXT1 = 1025, - /** Extension TDF 2 */ - TDF_EXT2 = 1026, - /** End of builtin TDF range */ - TDF_BUILTIN_END = 1024, -}; - -/** @cond INTERNAL_HIDDEN */ - -#define _TDF_ANNOUNCE_TYPE struct tdf_announce -#define _TDF_BATTERY_STATE_TYPE struct tdf_battery_state -#define _TDF_AMBIENT_TEMP_PRES_HUM_TYPE struct tdf_ambient_temp_pres_hum -#define _TDF_AMBIENT_TEMPERATURE_TYPE struct tdf_ambient_temperature -#define _TDF_TIME_SYNC_TYPE struct tdf_time_sync -#define _TDF_REBOOT_INFO_TYPE struct tdf_reboot_info -#define _TDF_ANNOUNCE_V2_TYPE struct tdf_announce_v2 -#define _TDF_SOC_TEMPERATURE_TYPE struct tdf_soc_temperature -#define _TDF_ACC_2G_TYPE struct tdf_acc_2g -#define _TDF_ACC_4G_TYPE struct tdf_acc_4g -#define _TDF_ACC_8G_TYPE struct tdf_acc_8g -#define _TDF_ACC_16G_TYPE struct tdf_acc_16g -#define _TDF_GYR_125DPS_TYPE struct tdf_gyr_125dps -#define _TDF_GYR_250DPS_TYPE struct tdf_gyr_250dps -#define _TDF_GYR_500DPS_TYPE struct tdf_gyr_500dps -#define _TDF_GYR_1000DPS_TYPE struct tdf_gyr_1000dps -#define _TDF_GYR_2000DPS_TYPE struct tdf_gyr_2000dps -#define _TDF_GCS_WGS84_LLHA_TYPE struct tdf_gcs_wgs84_llha -#define _TDF_UBX_NAV_PVT_TYPE struct tdf_ubx_nav_pvt -#define _TDF_LTE_CONN_STATUS_TYPE struct tdf_lte_conn_status -#define _TDF_GLOBALSTAR_PKT_TYPE struct tdf_globalstar_pkt -#define _TDF_ACC_MAGNITUDE_STD_DEV_TYPE struct tdf_acc_magnitude_std_dev -#define _TDF_ACTIVITY_METRIC_TYPE struct tdf_activity_metric -#define _TDF_ALGORITHM_OUTPUT_TYPE struct tdf_algorithm_output -#define _TDF_RUNTIME_ERROR_TYPE struct tdf_runtime_error -#define _TDF_CHARGER_EN_CONTROL_TYPE struct tdf_charger_en_control -#define _TDF_GNSS_FIX_INFO_TYPE struct tdf_gnss_fix_info -#define _TDF_BLUETOOTH_CONNECTION_TYPE struct tdf_bluetooth_connection -#define _TDF_BLUETOOTH_RSSI_TYPE struct tdf_bluetooth_rssi -#define _TDF_BLUETOOTH_DATA_THROUGHPUT_TYPE struct tdf_bluetooth_data_throughput -#define _TDF_ALGORITHM_CLASS_HISTOGRAM_TYPE struct tdf_algorithm_class_histogram -#define _TDF_ALGORITHM_CLASS_TIME_SERIES_TYPE struct tdf_algorithm_class_time_series -#define _TDF_LTE_TAC_CELLS_TYPE struct tdf_lte_tac_cells -#define _TDF_WIFI_AP_INFO_TYPE struct tdf_wifi_ap_info -#define _TDF_DEVICE_TILT_TYPE struct tdf_device_tilt -#define _TDF_NRF9X_GNSS_PVT_TYPE struct tdf_nrf9x_gnss_pvt -#define _TDF_BATTERY_CHARGE_ACCUMULATED_TYPE struct tdf_battery_charge_accumulated -#define _TDF_INFUSE_BLUETOOTH_RSSI_TYPE struct tdf_infuse_bluetooth_rssi -#define _TDF_ADC_RAW_8_TYPE struct tdf_adc_raw_8 -#define _TDF_ADC_RAW_16_TYPE struct tdf_adc_raw_16 -#define _TDF_ADC_RAW_32_TYPE struct tdf_adc_raw_32 -#define _TDF_ANNOTATION_TYPE struct tdf_annotation -#define _TDF_LORA_RX_TYPE struct tdf_lora_rx -#define _TDF_IDX_ARRAY_FREQ_TYPE struct tdf_idx_array_freq -#define _TDF_IDX_ARRAY_PERIOD_TYPE struct tdf_idx_array_period -#define _TDF_WIFI_CONNECTED_TYPE struct tdf_wifi_connected -#define _TDF_WIFI_CONNECTION_FAILED_TYPE struct tdf_wifi_connection_failed -#define _TDF_WIFI_DISCONNECTED_TYPE struct tdf_wifi_disconnected -#define _TDF_NETWORK_SCAN_COUNT_TYPE struct tdf_network_scan_count -#define _TDF_BATTERY_VOLTAGE_TYPE struct tdf_battery_voltage -#define _TDF_BATTERY_SOC_TYPE struct tdf_battery_soc -#define _TDF_STATE_EVENT_SET_TYPE struct tdf_state_event_set -#define _TDF_STATE_EVENT_CLEARED_TYPE struct tdf_state_event_cleared -#define _TDF_STATE_DURATION_TYPE struct tdf_state_duration -#define _TDF_PCM_16BIT_CHAN_LEFT_TYPE struct tdf_pcm_16bit_chan_left -#define _TDF_PCM_16BIT_CHAN_RIGHT_TYPE struct tdf_pcm_16bit_chan_right -#define _TDF_PCM_16BIT_CHAN_DUAL_TYPE struct tdf_pcm_16bit_chan_dual -#define _TDF_KVS_VALUE_CHANGED_TYPE struct tdf_kvs_value_changed -#define _TDF_AMBIENT_PRESSURE_TYPE struct tdf_ambient_pressure -#define _TDF_EXT1_TYPE struct tdf_ext1 -#define _TDF_EXT2_TYPE struct tdf_ext2 - -/** Size of builtin TDF definitions */ -enum tdf_builtin_size { - _TDF_ANNOUNCE_SIZE = sizeof(struct tdf_announce), - _TDF_BATTERY_STATE_SIZE = sizeof(struct tdf_battery_state), - _TDF_AMBIENT_TEMP_PRES_HUM_SIZE = sizeof(struct tdf_ambient_temp_pres_hum), - _TDF_AMBIENT_TEMPERATURE_SIZE = sizeof(struct tdf_ambient_temperature), - _TDF_TIME_SYNC_SIZE = sizeof(struct tdf_time_sync), - _TDF_REBOOT_INFO_SIZE = sizeof(struct tdf_reboot_info), - _TDF_ANNOUNCE_V2_SIZE = sizeof(struct tdf_announce_v2), - _TDF_SOC_TEMPERATURE_SIZE = sizeof(struct tdf_soc_temperature), - _TDF_ACC_2G_SIZE = sizeof(struct tdf_acc_2g), - _TDF_ACC_4G_SIZE = sizeof(struct tdf_acc_4g), - _TDF_ACC_8G_SIZE = sizeof(struct tdf_acc_8g), - _TDF_ACC_16G_SIZE = sizeof(struct tdf_acc_16g), - _TDF_GYR_125DPS_SIZE = sizeof(struct tdf_gyr_125dps), - _TDF_GYR_250DPS_SIZE = sizeof(struct tdf_gyr_250dps), - _TDF_GYR_500DPS_SIZE = sizeof(struct tdf_gyr_500dps), - _TDF_GYR_1000DPS_SIZE = sizeof(struct tdf_gyr_1000dps), - _TDF_GYR_2000DPS_SIZE = sizeof(struct tdf_gyr_2000dps), - _TDF_GCS_WGS84_LLHA_SIZE = sizeof(struct tdf_gcs_wgs84_llha), - _TDF_UBX_NAV_PVT_SIZE = sizeof(struct tdf_ubx_nav_pvt), - _TDF_LTE_CONN_STATUS_SIZE = sizeof(struct tdf_lte_conn_status), - _TDF_GLOBALSTAR_PKT_SIZE = sizeof(struct tdf_globalstar_pkt), - _TDF_ACC_MAGNITUDE_STD_DEV_SIZE = sizeof(struct tdf_acc_magnitude_std_dev), - _TDF_ACTIVITY_METRIC_SIZE = sizeof(struct tdf_activity_metric), - _TDF_ALGORITHM_OUTPUT_SIZE = sizeof(struct tdf_algorithm_output), - _TDF_RUNTIME_ERROR_SIZE = sizeof(struct tdf_runtime_error), - _TDF_CHARGER_EN_CONTROL_SIZE = sizeof(struct tdf_charger_en_control), - _TDF_GNSS_FIX_INFO_SIZE = sizeof(struct tdf_gnss_fix_info), - _TDF_BLUETOOTH_CONNECTION_SIZE = sizeof(struct tdf_bluetooth_connection), - _TDF_BLUETOOTH_RSSI_SIZE = sizeof(struct tdf_bluetooth_rssi), - _TDF_BLUETOOTH_DATA_THROUGHPUT_SIZE = sizeof(struct tdf_bluetooth_data_throughput), - _TDF_ALGORITHM_CLASS_HISTOGRAM_SIZE = sizeof(struct tdf_algorithm_class_histogram), - _TDF_ALGORITHM_CLASS_TIME_SERIES_SIZE = sizeof(struct tdf_algorithm_class_time_series), - _TDF_LTE_TAC_CELLS_SIZE = sizeof(struct tdf_lte_tac_cells), - _TDF_WIFI_AP_INFO_SIZE = sizeof(struct tdf_wifi_ap_info), - _TDF_DEVICE_TILT_SIZE = sizeof(struct tdf_device_tilt), - _TDF_NRF9X_GNSS_PVT_SIZE = sizeof(struct tdf_nrf9x_gnss_pvt), - _TDF_BATTERY_CHARGE_ACCUMULATED_SIZE = sizeof(struct tdf_battery_charge_accumulated), - _TDF_INFUSE_BLUETOOTH_RSSI_SIZE = sizeof(struct tdf_infuse_bluetooth_rssi), - _TDF_ADC_RAW_8_SIZE = sizeof(struct tdf_adc_raw_8), - _TDF_ADC_RAW_16_SIZE = sizeof(struct tdf_adc_raw_16), - _TDF_ADC_RAW_32_SIZE = sizeof(struct tdf_adc_raw_32), - _TDF_ANNOTATION_SIZE = sizeof(struct tdf_annotation), - _TDF_LORA_RX_SIZE = sizeof(struct tdf_lora_rx), - _TDF_IDX_ARRAY_FREQ_SIZE = sizeof(struct tdf_idx_array_freq), - _TDF_IDX_ARRAY_PERIOD_SIZE = sizeof(struct tdf_idx_array_period), - _TDF_WIFI_CONNECTED_SIZE = sizeof(struct tdf_wifi_connected), - _TDF_WIFI_CONNECTION_FAILED_SIZE = sizeof(struct tdf_wifi_connection_failed), - _TDF_WIFI_DISCONNECTED_SIZE = sizeof(struct tdf_wifi_disconnected), - _TDF_NETWORK_SCAN_COUNT_SIZE = sizeof(struct tdf_network_scan_count), - _TDF_BATTERY_VOLTAGE_SIZE = sizeof(struct tdf_battery_voltage), - _TDF_BATTERY_SOC_SIZE = sizeof(struct tdf_battery_soc), - _TDF_STATE_EVENT_SET_SIZE = sizeof(struct tdf_state_event_set), - _TDF_STATE_EVENT_CLEARED_SIZE = sizeof(struct tdf_state_event_cleared), - _TDF_STATE_DURATION_SIZE = sizeof(struct tdf_state_duration), - _TDF_PCM_16BIT_CHAN_LEFT_SIZE = sizeof(struct tdf_pcm_16bit_chan_left), - _TDF_PCM_16BIT_CHAN_RIGHT_SIZE = sizeof(struct tdf_pcm_16bit_chan_right), - _TDF_PCM_16BIT_CHAN_DUAL_SIZE = sizeof(struct tdf_pcm_16bit_chan_dual), - _TDF_KVS_VALUE_CHANGED_SIZE = sizeof(struct tdf_kvs_value_changed), - _TDF_AMBIENT_PRESSURE_SIZE = sizeof(struct tdf_ambient_pressure), - _TDF_EXT1_SIZE = sizeof(struct tdf_ext1), - _TDF_EXT2_SIZE = sizeof(struct tdf_ext2), -}; - -/** @endcond */ - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_INCLUDE_GENERATED_TDF_DEFINITIONS_H_ */ diff --git a/tests/subsys/definitions_extend/generated/kv_definitions.py b/tests/subsys/definitions_extend/generated/kv_definitions.py deleted file mode 100644 index 507ad79a1..000000000 --- a/tests/subsys/definitions_extend/generated/kv_definitions.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python3 -# mypy: ignore-errors - -"""Autogenerated KV store definitions""" - -import ctypes - -from infuse_iot.util.ctypes import VLACompatLittleEndianStruct - - -class structs: - EXTENSIONS = True - - class kv_struct_demo(VLACompatLittleEndianStruct): - """Demo struct""" - - _fields_ = [ - ("x", ctypes.c_int8), - ("y", ctypes.c_int8), - ("z", ctypes.c_int8), - ] - _pack_ = 1 - - -class slots: - EXTENSIONS = True - - class ext1(VLACompatLittleEndianStruct): - """Extension KV slot 1""" - - NAME = "EXT1" - BASE_ID = 32769 - RANGE = 1 - _fields_ = [ - ("a", ctypes.c_uint32), - ] - _pack_ = 1 - - class ext2(VLACompatLittleEndianStruct): - """Extension KV slot 2""" - - NAME = "EXT2" - BASE_ID = 32770 - RANGE = 2 - _fields_ = [ - ("a", structs.kv_struct_demo), - ] - _pack_ = 1 - - class ext3(VLACompatLittleEndianStruct): - """Extension KV slot 3""" - - NAME = "EXT3" - BASE_ID = 32772 - RANGE = 1 - _fields_ = [ - ("a", ctypes.c_uint64), - ] - _pack_ = 1 - - ID_MAPPING = { - 32769: ext1, - 32770: ext2, - 32771: ext2, - 32772: ext3, - } - - -__all__ = [ - "structs", - "slots", -] diff --git a/tests/subsys/definitions_extend/generated/rpc_command_runner.c b/tests/subsys/definitions_extend/generated/rpc_command_runner.c deleted file mode 100644 index f7b1e1f7f..000000000 --- a/tests/subsys/definitions_extend/generated/rpc_command_runner.c +++ /dev/null @@ -1,469 +0,0 @@ -/** - * @file - * @brief Autogenerated RPC command runner - * @copyright 2024 Embeint Holdings Pty Ltd - * @author scripts/west_commands/cloudgen.py - * - * INFUSE-IOT-AUTOGENERATED - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include - -/* Authorised to run command */ -#define AUTHORISED(auth, name) (auth >= CONFIG_INFUSE_RPC_COMMAND_##name##_REQUIRED_AUTH) - -static bool command_freed; -static bool response_sent; - -LOG_MODULE_DECLARE(rpc_server, CONFIG_INFUSE_RPC_LOG_LEVEL); - -void rpc_command_runner_request_unref(struct net_buf *request) -{ - net_buf_unref(request); - command_freed = true; -} - -void rpc_command_runner_early_response(struct epacket_rx_metadata *rx_meta, uint32_t request_id, - uint16_t command_id, struct net_buf *response) -{ - struct infuse_rpc_rsp_header *rsp_header; - - rsp_header = (void *)response->data; - rsp_header->request_id = request_id; - rsp_header->command_id = command_id; - - /* Metadata and core response info */ - epacket_set_tx_metadata_core(response, rx_meta->auth, rx_meta->key_identifier, 0x00, - INFUSE_RPC_RSP, rx_meta->interface_address); - - /* Push response back over incoming interface */ - epacket_queue(rx_meta->interface, response); - response_sent = true; -} - -void rpc_command_runner(struct net_buf *request) -{ - struct epacket_rx_metadata *metadata = net_buf_user_data(request); - const struct device *interface = metadata->interface; - union epacket_interface_address from = metadata->interface_address; - struct infuse_rpc_req_header *req_header = (void *)request->data; - struct infuse_rpc_rsp_header *rsp_header; - struct net_buf *response = NULL; - enum epacket_auth auth = metadata->auth; - uint32_t key_id = metadata->key_identifier; - uint32_t request_id = req_header->request_id; - uint16_t command_id = req_header->command_id; - int16_t rc = -EACCES; - - /* Reset command freed state */ - command_freed = false; - response_sent = false; - - LOG_DBG("Handling RPC: %d Auth: %d", command_id, auth); - - switch (command_id) { -#ifdef CONFIG_INFUSE_RPC_COMMAND_REBOOT - case RPC_ID_REBOOT: - if (AUTHORISED(auth, REBOOT)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_reboot(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_REBOOT */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_FAULT - case RPC_ID_FAULT: - if (AUTHORISED(auth, FAULT)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_fault(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_FAULT */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_TIME_GET - case RPC_ID_TIME_GET: - if (AUTHORISED(auth, TIME_GET)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_time_get(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_TIME_GET */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_TIME_SET - case RPC_ID_TIME_SET: - if (AUTHORISED(auth, TIME_SET)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_time_set(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_TIME_SET */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_KV_WRITE - case RPC_ID_KV_WRITE: - if (AUTHORISED(auth, KV_WRITE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_kv_write(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_KV_WRITE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_KV_READ - case RPC_ID_KV_READ: - if (AUTHORISED(auth, KV_READ)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_kv_read(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_KV_READ */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_KV_REFLECT_CRCS - case RPC_ID_KV_REFLECT_CRCS: - if (AUTHORISED(auth, KV_REFLECT_CRCS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_kv_reflect_crcs(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_KV_REFLECT_CRCS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_ZBUS_CHANNEL_STATE - case RPC_ID_ZBUS_CHANNEL_STATE: - if (AUTHORISED(auth, ZBUS_CHANNEL_STATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_zbus_channel_state(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_ZBUS_CHANNEL_STATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_APPLICATION_INFO - case RPC_ID_APPLICATION_INFO: - if (AUTHORISED(auth, APPLICATION_INFO)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_application_info(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_APPLICATION_INFO */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_WIFI_SCAN - case RPC_ID_WIFI_SCAN: - if (AUTHORISED(auth, WIFI_SCAN)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_wifi_scan(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_WIFI_SCAN */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_WIFI_STATE - case RPC_ID_WIFI_STATE: - if (AUTHORISED(auth, WIFI_STATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_wifi_state(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_WIFI_STATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_LAST_REBOOT - case RPC_ID_LAST_REBOOT: - if (AUTHORISED(auth, LAST_REBOOT)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_last_reboot(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_LAST_REBOOT */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_STATE - case RPC_ID_DATA_LOGGER_STATE: - if (AUTHORISED(auth, DATA_LOGGER_STATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_logger_state(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_STATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_READ - case RPC_ID_DATA_LOGGER_READ: - if (AUTHORISED(auth, DATA_LOGGER_READ)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_logger_read(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_READ */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_MEM_READ - case RPC_ID_MEM_READ: - if (AUTHORISED(auth, MEM_READ)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_mem_read(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_MEM_READ */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_INFUSE_STATES_QUERY - case RPC_ID_INFUSE_STATES_QUERY: - if (AUTHORISED(auth, INFUSE_STATES_QUERY)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_infuse_states_query(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_INFUSE_STATES_QUERY */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_INFUSE_STATES_UPDATE - case RPC_ID_INFUSE_STATES_UPDATE: - if (AUTHORISED(auth, INFUSE_STATES_UPDATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_infuse_states_update(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_INFUSE_STATES_UPDATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_ERASE - case RPC_ID_DATA_LOGGER_ERASE: - if (AUTHORISED(auth, DATA_LOGGER_ERASE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_logger_erase(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_ERASE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_HEAP_STATS - case RPC_ID_HEAP_STATS: - if (AUTHORISED(auth, HEAP_STATS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_heap_stats(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_HEAP_STATS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_LTE_AT_CMD - case RPC_ID_LTE_AT_CMD: - if (AUTHORISED(auth, LTE_AT_CMD)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_lte_at_cmd(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_LTE_AT_CMD */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_LTE_STATE - case RPC_ID_LTE_STATE: - if (AUTHORISED(auth, LTE_STATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_lte_state(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_LTE_STATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_READ_AVAILABLE - case RPC_ID_DATA_LOGGER_READ_AVAILABLE: - if (AUTHORISED(auth, DATA_LOGGER_READ_AVAILABLE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_logger_read_available(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_READ_AVAILABLE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_LTE_STATE_V2 - case RPC_ID_LTE_STATE_V2: - if (AUTHORISED(auth, LTE_STATE_V2)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_lte_state_v2(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_LTE_STATE_V2 */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_STATE_V2 - case RPC_ID_DATA_LOGGER_STATE_V2: - if (AUTHORISED(auth, DATA_LOGGER_STATE_V2)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_logger_state_v2(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_STATE_V2 */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_READ_CHUNKS - case RPC_ID_DATA_LOGGER_READ_CHUNKS: - if (AUTHORISED(auth, DATA_LOGGER_READ_CHUNKS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_logger_read_chunks(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_LOGGER_READ_CHUNKS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_THREAD_STATS - case RPC_ID_THREAD_STATS: - if (AUTHORISED(auth, THREAD_STATS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_thread_stats(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_THREAD_STATS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_COAP_DOWNLOAD - case RPC_ID_COAP_DOWNLOAD: - if (AUTHORISED(auth, COAP_DOWNLOAD)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_coap_download(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_COAP_DOWNLOAD */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_ZPERF_UPLOAD - case RPC_ID_ZPERF_UPLOAD: - if (AUTHORISED(auth, ZPERF_UPLOAD)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_zperf_upload(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_ZPERF_UPLOAD */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V2 - case RPC_ID_COAP_DOWNLOAD_V2: - if (AUTHORISED(auth, COAP_DOWNLOAD_V2)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_coap_download_v2(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V2 */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V3 - case RPC_ID_COAP_DOWNLOAD_V3: - if (AUTHORISED(auth, COAP_DOWNLOAD_V3)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_coap_download_v3(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_COAP_DOWNLOAD_V3 */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_FILE_WRITE_BASIC - case RPC_ID_FILE_WRITE_BASIC: - if (AUTHORISED(auth, FILE_WRITE_BASIC)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_file_write_basic(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_FILE_WRITE_BASIC */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_ANNOTATE - case RPC_ID_ANNOTATE: - if (AUTHORISED(auth, ANNOTATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_annotate(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_ANNOTATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_TDF_DATA_LOGGER_FLUSH - case RPC_ID_TDF_DATA_LOGGER_FLUSH: - if (AUTHORISED(auth, TDF_DATA_LOGGER_FLUSH)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_tdf_data_logger_flush(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_TDF_DATA_LOGGER_FLUSH */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_SHIPPING_MODE - case RPC_ID_SHIPPING_MODE: - if (AUTHORISED(auth, SHIPPING_MODE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_shipping_mode(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_SHIPPING_MODE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_FILE_WRITE - case RPC_ID_FILE_WRITE: - if (AUTHORISED(auth, FILE_WRITE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_file_write(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_FILE_WRITE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_BT_CONNECT_INFUSE - case RPC_ID_BT_CONNECT_INFUSE: - if (AUTHORISED(auth, BT_CONNECT_INFUSE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_bt_connect_infuse(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_BT_CONNECT_INFUSE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_BT_DISCONNECT - case RPC_ID_BT_DISCONNECT: - if (AUTHORISED(auth, BT_DISCONNECT)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_bt_disconnect(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_BT_DISCONNECT */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_BT_FILE_COPY_BASIC - case RPC_ID_BT_FILE_COPY_BASIC: - if (AUTHORISED(auth, BT_FILE_COPY_BASIC)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_bt_file_copy_basic(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_BT_FILE_COPY_BASIC */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_BT_FILE_COPY_COAP - case RPC_ID_BT_FILE_COPY_COAP: - if (AUTHORISED(auth, BT_FILE_COPY_COAP)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_bt_file_copy_coap(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_BT_FILE_COPY_COAP */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_BT_MCUMGR_REBOOT - case RPC_ID_BT_MCUMGR_REBOOT: - if (AUTHORISED(auth, BT_MCUMGR_REBOOT)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_bt_mcumgr_reboot(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_BT_MCUMGR_REBOOT */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_GRAVITY_REFERENCE_UPDATE - case RPC_ID_GRAVITY_REFERENCE_UPDATE: - if (AUTHORISED(auth, GRAVITY_REFERENCE_UPDATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_gravity_reference_update(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_GRAVITY_REFERENCE_UPDATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_FILESYSTEM_LS - case RPC_ID_FILESYSTEM_LS: - if (AUTHORISED(auth, FILESYSTEM_LS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_filesystem_ls(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_FILESYSTEM_LS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_FILESYSTEM_RM - case RPC_ID_FILESYSTEM_RM: - if (AUTHORISED(auth, FILESYSTEM_RM)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_filesystem_rm(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_FILESYSTEM_RM */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_UBX_ASSIST_NOW_ZTP_CREDS - case RPC_ID_UBX_ASSIST_NOW_ZTP_CREDS: - if (AUTHORISED(auth, UBX_ASSIST_NOW_ZTP_CREDS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_ubx_assist_now_ztp_creds(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_UBX_ASSIST_NOW_ZTP_CREDS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_SECURITY_STATE - case RPC_ID_SECURITY_STATE: - if (AUTHORISED(auth, SECURITY_STATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_security_state(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_SECURITY_STATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_SECURITY_KEY_UPDATE - case RPC_ID_SECURITY_KEY_UPDATE: - if (AUTHORISED(auth, SECURITY_KEY_UPDATE)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_security_key_update(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_SECURITY_KEY_UPDATE */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_SECURITY_PUBLIC_KEYS - case RPC_ID_SECURITY_PUBLIC_KEYS: - if (AUTHORISED(auth, SECURITY_PUBLIC_KEYS)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_security_public_keys(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_SECURITY_PUBLIC_KEYS */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_SENDER - case RPC_ID_DATA_SENDER: - if (AUTHORISED(auth, DATA_SENDER)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_sender(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_SENDER */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_DATA_RECEIVER - case RPC_ID_DATA_RECEIVER: - if (AUTHORISED(auth, DATA_RECEIVER)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_data_receiver(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_DATA_RECEIVER */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_ECHO - case RPC_ID_ECHO: - if (AUTHORISED(auth, ECHO)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_echo(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_ECHO */ -#ifdef CONFIG_INFUSE_RPC_COMMAND_EXT1 - case RPC_ID_EXT1: - if (AUTHORISED(auth, EXT1)) { /* GCOVR_EXCL_BR_LINE */ - response = rpc_command_ext1(request); - } - break; -#endif /* CONFIG_INFUSE_RPC_COMMAND_EXT1 */ - default: - rc = -ENOTSUP; - }; - - /* Free the request */ - if (!command_freed) { - net_buf_unref(request); - } - if (response_sent) { - /* Response already run */ - __ASSERT_NO_MSG(response == NULL); - return; - } - - if (response == NULL) { - /* No command run, alloc the response packet */ - response = epacket_alloc_tx_for_interface(interface, K_FOREVER); - if (net_buf_tailroom(response) == 0) { - /* Response channel closed */ - net_buf_unref(response); - return; - } - rsp_header = net_buf_add(response, sizeof(*rsp_header)); - rsp_header->return_code = rc; - } else { - rsp_header = (void *)response->data; - } - rsp_header->request_id = request_id; - rsp_header->command_id = command_id; - - /* Metadata and core response info */ - epacket_set_tx_metadata_core(response, auth, key_id, 0x00, INFUSE_RPC_RSP, from); - - /* Push response back over incoming interface */ - epacket_queue(interface, response); -} diff --git a/tests/subsys/definitions_extend/generated/rpc_definitions.py b/tests/subsys/definitions_extend/generated/rpc_definitions.py deleted file mode 100644 index 5f94d694f..000000000 --- a/tests/subsys/definitions_extend/generated/rpc_definitions.py +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python3 -# mypy: ignore-errors - -"""Autogenerated RPC definitions""" - -import ctypes - -from infuse_iot.util.ctypes import VLACompatLittleEndianStruct - - -class rpc_struct_demo(VLACompatLittleEndianStruct): - """Demo struct""" - - _fields_ = [ - ("x", ctypes.c_int8), - ("y", ctypes.c_int8), - ("z", ctypes.c_int8), - ] - _pack_ = 1 - - -class RPCDefinitionBase: - NAME: str - HELP: str - DESCRIPTION: str - COMMAND_ID: int - request: type[VLACompatLittleEndianStruct] - response: type[VLACompatLittleEndianStruct] - - -class ext1(RPCDefinitionBase): - """Extension RPC 1""" - - NAME = "ext1" - HELP = "Extension RPC 1" - DESCRIPTION = "Extension RPC 1" - COMMAND_ID = 32769 - - class request(VLACompatLittleEndianStruct): - _fields_ = [ - ("arg1", rpc_struct_demo), - ] - _pack_ = 1 - - class response(VLACompatLittleEndianStruct): - _fields_ = [ - ("rsp1", ctypes.c_uint32), - ] - _pack_ = 1 - - -id_type_mapping: dict[int, type[RPCDefinitionBase]] = { - ext1.COMMAND_ID: ext1, -} - -__all__ = [ - "id_type_mapping", - "rpc_struct_demo", - "ext1", -] diff --git a/tests/subsys/definitions_extend/generated/tdf_definitions.py b/tests/subsys/definitions_extend/generated/tdf_definitions.py deleted file mode 100644 index 6d9f63f7d..000000000 --- a/tests/subsys/definitions_extend/generated/tdf_definitions.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python3 -# mypy: ignore-errors -"""Autogenerated TDF decoding logic""" - -import ctypes - -from infuse_iot.generated.tdf_base import TdfReadingBase, TdfStructBase # noqa F401 - - -class structs: - EXTENSIONS = True - - class tdf_struct_demo(TdfStructBase): - """Demo struct""" - - _fields_ = [ - ("x", ctypes.c_int8), - ("y", ctypes.c_int8), - ("z", ctypes.c_int8), - ] - _pack_ = 1 - _postfix_ = { - "x": "", - "y": "", - "z": "", - } - _display_fmt_ = { - "x": "{}", - "y": "{}", - "z": "{}", - } - - -class readings: - EXTENSIONS = True - - class ext1(TdfReadingBase): - """Extension TDF 1""" - - ID = 1025 - NAME = "EXT1" - _fields_ = [ - ("a", structs.tdf_struct_demo), - ("b", structs.tdf_struct_demo), - ] - _pack_ = 1 - _postfix_ = { - "a": "", - "b": "", - } - _display_fmt_ = { - "a": "{}", - "b": "{}", - } - - class ext2(TdfReadingBase): - """Extension TDF 2""" - - ID = 1026 - NAME = "EXT2" - _fields_ = [ - ("a", ctypes.c_uint16), - ("b", ctypes.c_uint16), - ] - _pack_ = 1 - _postfix_ = { - "a": "", - "b": "", - } - _display_fmt_ = { - "a": "{:.3f}", - "b": "{}", - } - - -id_type_mapping: dict[int, type[TdfReadingBase]] = { - readings.ext1.ID: readings.ext1, - readings.ext2.ID: readings.ext2, -} - -__all__ = [ - "structs", - "readings", - "id_type_mapping", -] diff --git a/tests/subsys/definitions_extend/include/infuse/task_runner/tasks/ext1.h b/tests/subsys/definitions_extend/include/infuse/task_runner/tasks/ext1.h new file mode 100644 index 000000000..44e936549 --- /dev/null +++ b/tests/subsys/definitions_extend/include/infuse/task_runner/tasks/ext1.h @@ -0,0 +1,15 @@ +/** + * @file + * @brief Extension task definition + * @copyright 2024 Embeint Holdings Pty Ltd + * + * SPDX-License-Identifier: FSL-1.1-ALv2 + */ + +#ifndef INFUSE_SDK_TESTS_SUBSYS_DEFINITIONS_EXTEND_INCLUDE_INFUSE_TASK_RUNNER_TASKS_EXT1_H_ +#define INFUSE_SDK_TESTS_SUBSYS_DEFINITIONS_EXTEND_INCLUDE_INFUSE_TASK_RUNNER_TASKS_EXT1_H_ + +#include +#include + +#endif /* INFUSE_SDK_TESTS_SUBSYS_DEFINITIONS_EXTEND_INCLUDE_INFUSE_TASK_RUNNER_TASKS_EXT1_H_ */ diff --git a/tests/subsys/definitions_extend/src/main.c b/tests/subsys/definitions_extend/src/main.c index a581629aa..6e0ac4ff6 100644 --- a/tests/subsys/definitions_extend/src/main.c +++ b/tests/subsys/definitions_extend/src/main.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -148,4 +149,31 @@ ZTEST(definitions_extend, test_ext_kv_store) zassert_false(kv_store_key_exists(KV_KEY_EXT3)); } +ZTEST(definitions_extend, test_ext_task) +{ + union task_arguments args = { + .ext1 = + { + .payload = + { + .count = 0x1234, + .mode = TASK_EXT1_MODE_TWO, + }, + .flags = TASK_EXT1_FLAGS_ENABLED | TASK_EXT1_FLAGS_ALT_OUTPUT, + .samples = 3, + }, + }; + + zassert_equal(42, TASK_ID_EXT1); + zassert_equal(43, TASK_ID_EXT1_ALT); + zassert_equal(BIT(0), TASK_EXT1_LOG_VALUE); + zassert_equal(BIT(2), TASK_EXT1_LOG_STATE); + zassert_equal(BIT(0), TASK_EXT1_FLAGS_ENABLED); + zassert_equal(BIT(3), TASK_EXT1_FLAGS_ALT_OUTPUT); + zassert_equal(sizeof(struct task_ext1_args), sizeof(args.ext1)); + zassert_equal(0x1234, args.ext1.payload.count); + zassert_equal(TASK_EXT1_MODE_TWO, args.ext1.payload.mode); + zassert_equal(3, args.ext1.samples); +} + ZTEST_SUITE(definitions_extend, NULL, NULL, NULL, NULL, NULL); diff --git a/tests/subsys/task_runner/schedules/include/custom_tasks.h b/tests/subsys/task_runner/schedules/include/custom_tasks.h deleted file mode 100644 index 8e4daac46..000000000 --- a/tests/subsys/task_runner/schedules/include/custom_tasks.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file - * @brief Demonstration of `TASK_RUNNER_CUSTOM_TASK_DEFINITIONS_PATH` - * @copyright 2024 Embeint Holdings Pty Ltd - * @author Jordan Yates - * - * SPDX-License-Identifier: FSL-1.1-ALv2 - */ - -#ifndef INFUSE_SDK_TESTS_SUBSYS_TASK_RUNNER_SCHEDULES_INCLUDE_CUSTOM_TASKS_H_ -#define INFUSE_SDK_TESTS_SUBSYS_TASK_RUNNER_SCHEDULES_INCLUDE_CUSTOM_TASKS_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct custom_args_1 { - uint32_t arg1; - int16_t arg2; - uint8_t arg3[5]; -} __packed; - -struct custom_args_2 { - uint8_t arg1; - int32_t arg2; - uint16_t arg3[5]; -} __packed; - -union custom_task_arguments { - struct custom_args_1 custom1; - struct custom_args_2 custom2; -} __packed; - -#ifdef __cplusplus -} -#endif - -#endif /* INFUSE_SDK_TESTS_SUBSYS_TASK_RUNNER_SCHEDULES_INCLUDE_CUSTOM_TASKS_H_ */ diff --git a/tests/subsys/task_runner/schedules/prj.conf b/tests/subsys/task_runner/schedules/prj.conf index 3b3f8190c..04d2906ff 100644 --- a/tests/subsys/task_runner/schedules/prj.conf +++ b/tests/subsys/task_runner/schedules/prj.conf @@ -2,5 +2,3 @@ CONFIG_ZTEST=y CONFIG_TASK_RUNNER=y CONFIG_INFUSE_APPLICATION_STATES=y CONFIG_POLL=y -CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS=y -CONFIG_TASK_RUNNER_CUSTOM_TASK_DEFINITIONS_PATH="custom_tasks.h" diff --git a/tests/subsys/task_runner/schedules/src/main.c b/tests/subsys/task_runner/schedules/src/main.c index db152b045..225210100 100644 --- a/tests/subsys/task_runner/schedules/src/main.c +++ b/tests/subsys/task_runner/schedules/src/main.c @@ -947,15 +947,6 @@ ZTEST(task_runner_schedules, test_reboot_termination) zassert_true(task_schedule_should_terminate(&schedule, &state, app_states, 1000, 100, 100)); } -ZTEST(task_runner_schedules, test_custom_args_included) -{ - struct task_schedule schedule; - - /* If custom arguments aren't included this won't compile */ - schedule.task_args.custom.custom1.arg1 = 0; - schedule.task_args.custom.custom2.arg2 = INT32_MIN; -} - void test_init(void *fixture) { infuse_state_clear(INFUSE_STATE_REBOOTING); diff --git a/tests/subsys/task_runner/tasks/battery/src/main.c b/tests/subsys/task_runner/tasks/battery/src/main.c index a6e2cba7e..dcb8497af 100644 --- a/tests/subsys/task_runner/tasks/battery/src/main.c +++ b/tests/subsys/task_runner/tasks/battery/src/main.c @@ -193,7 +193,7 @@ ZTEST(task_bat, test_periodic) .periodicity_type = TASK_PERIODICITY_FIXED, .periodicity.fixed.period_s = 10, .timeout_s = 5, - .task_args.infuse.battery = + .task_args.battery = { .repeat_interval_ms = 990, }, diff --git a/tests/subsys/task_runner/tasks/gnss/src/main.c b/tests/subsys/task_runner/tasks/gnss/src/main.c index 5a47b4328..e791a7863 100644 --- a/tests/subsys/task_runner/tasks/gnss/src/main.c +++ b/tests/subsys/task_runner/tasks/gnss/src/main.c @@ -294,7 +294,7 @@ ZTEST(task_gnss, test_time_fix) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = 0; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_TIME_SYNC, }; @@ -368,7 +368,7 @@ ZTEST(task_gnss, test_run_forever) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = TASK_GNSS_LOG_LLHA; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_FOREVER, }; @@ -410,7 +410,7 @@ ZTEST(task_gnss, test_location_fix) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = 0; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, @@ -452,7 +452,7 @@ ZTEST(task_gnss, test_location_fix_constellations) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = 0; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .constellations = GNSS_SYSTEM_GPS | GNSS_SYSTEM_QZSS, .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, @@ -492,7 +492,7 @@ ZTEST(task_gnss, test_location_fix_runner_terminate) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = TASK_GNSS_LOG_LLHA; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, @@ -522,11 +522,11 @@ ZTEST(task_gnss, test_location_fix_plateau) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = TASK_GNSS_LOG_LLHA; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, - .run_to_fix = + .mode.run_to_fix = { .any_fix_timeout = SEC_PER_MIN, .fix_plateau = @@ -558,11 +558,11 @@ ZTEST(task_gnss, test_location_fix_plateau_timeout) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = TASK_GNSS_LOG_LLHA; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, - .run_to_fix = + .mode.run_to_fix = { .any_fix_timeout = SEC_PER_MIN, .fix_plateau = @@ -595,11 +595,11 @@ ZTEST(task_gnss, test_location_fix_plateau_min_accuracy) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = TASK_GNSS_LOG_LLHA; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, - .run_to_fix = + .mode.run_to_fix = { .any_fix_timeout = SEC_PER_MIN, .fix_plateau = @@ -636,11 +636,11 @@ ZTEST(task_gnss, test_location_fix_no_location_timeout) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = TASK_GNSS_LOG_LLHA; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, - .run_to_fix = + .mode.run_to_fix = { .any_fix_timeout = 15, .fix_plateau = @@ -674,7 +674,7 @@ ZTEST(task_gnss, test_pm_failure) schedule.timeout_s = 0; schedule.task_logging[0].loggers = TDF_DATA_LOGGER_SERIAL; schedule.task_logging[0].tdf_mask = 0; - schedule.task_args.infuse.gnss = (struct task_gnss_args){ + schedule.task_args.gnss = (struct task_gnss_args){ .flags = TASK_GNSS_FLAGS_RUN_TO_LOCATION_FIX, .accuracy_m = 5, .position_dop = 100, diff --git a/tests/subsys/task_runner/tasks/imu/src/main.c b/tests/subsys/task_runner/tasks/imu/src/main.c index 14fafee10..d310ca34b 100644 --- a/tests/subsys/task_runner/tasks/imu/src/main.c +++ b/tests/subsys/task_runner/tasks/imu/src/main.c @@ -67,7 +67,7 @@ ZTEST(task_imu, test_invalid_config) { k_tid_t thread; - schedule.task_args.infuse.imu = (struct task_imu_args){ + schedule.task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = 3, @@ -154,7 +154,7 @@ static void test_imu(uint8_t range, uint16_t rate, uint16_t num_samples, uint8_t uint16_t one_g; k_tid_t thread; - schedule.task_args.infuse.imu = (struct task_imu_args){ + schedule.task_args.imu = (struct task_imu_args){ .accelerometer = { .range_g = range, diff --git a/tests/subsys/task_runner/tasks/network_scan/src/main.c b/tests/subsys/task_runner/tasks/network_scan/src/main.c index bc21e2510..4f6019680 100644 --- a/tests/subsys/task_runner/tasks/network_scan/src/main.c +++ b/tests/subsys/task_runner/tasks/network_scan/src/main.c @@ -158,7 +158,7 @@ ZTEST(task_network_scan, test_wifi_scan_not_requested) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = 0, }, @@ -189,7 +189,7 @@ ZTEST(task_network_scan, test_wifi_scan_no_results) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS, .wifi.flags = @@ -232,7 +232,7 @@ ZTEST(task_network_scan, test_wifi_scan_results) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS, .wifi.flags = @@ -276,7 +276,7 @@ ZTEST(task_network_scan, test_wifi_scan_results) } /* Uncapped results */ - schedule.task_args.infuse.network_scan.wifi.max_aps = 0; + schedule.task_args.network_scan.wifi.max_aps = 0; schedule.task_logging[0].tdf_mask = TASK_NETWORK_SCAN_LOG_COUNT | TASK_NETWORK_SCAN_LOG_WIFI_AP; task_schedule(&data); @@ -292,7 +292,7 @@ ZTEST(task_network_scan, test_wifi_scan_results) } /* Limit the maximum reports */ - schedule.task_args.infuse.network_scan.wifi.max_aps = 4; + schedule.task_args.network_scan.wifi.max_aps = 4; task_schedule(&data); k_sleep(K_MSEC(500)); expect_logging(TDF_DATA_LOGGER_SERIAL, true, true); @@ -325,7 +325,7 @@ ZTEST(task_network_scan, test_wifi_scan_results_filtering) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS, .wifi.desired_aps = 3, @@ -356,7 +356,7 @@ ZTEST(task_network_scan, test_wifi_scan_results_filtering) zassert_mem_equal(wifi_results[6].mac, logged_wifi_ap_info[4].bssid.val, 6); /* Only filter locally administered MACs */ - schedule.task_args.infuse.network_scan.wifi.flags = + schedule.task_args.network_scan.wifi.flags = TASK_NETWORK_SCAN_WIFI_FLAGS_INCLUDE_DUPLICATES; task_schedule(&data); k_sleep(K_MSEC(500)); @@ -371,7 +371,7 @@ ZTEST(task_network_scan, test_wifi_scan_results_filtering) zassert_mem_equal(wifi_results[6].mac, logged_wifi_ap_info[5].bssid.val, 6); /* Only filter duplicate MACs */ - schedule.task_args.infuse.network_scan.wifi.flags = + schedule.task_args.network_scan.wifi.flags = TASK_NETWORK_SCAN_WIFI_FLAGS_INCLUDE_LOCALLY_ADMINISTERED; task_schedule(&data); k_sleep(K_MSEC(500)); @@ -393,7 +393,7 @@ ZTEST(task_network_scan, test_wifi_scan_mode) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS, .wifi.desired_aps = 3, @@ -416,8 +416,7 @@ ZTEST(task_network_scan, test_wifi_scan_mode) last_scan_params->bands); /* Active when requested by schedule, still all bands */ - schedule.task_args.infuse.network_scan.wifi.flags = - TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_ACTIVE; + schedule.task_args.network_scan.wifi.flags = TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_ACTIVE; task_schedule(&data); k_sleep(K_MSEC(500)); expect_logging(0, false, false); @@ -433,7 +432,7 @@ ZTEST(task_network_scan, test_wifi_progressive_scan) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS, .wifi.flags = TASK_NETWORK_SCAN_WIFI_FLAGS_SCAN_PROGRESSIVE, @@ -457,7 +456,7 @@ ZTEST(task_network_scan, test_wifi_progressive_scan) zassert_equal(BIT(WIFI_FREQ_BAND_2_4_GHZ), last_scan_params->bands); /* When many networks are desired, the progressive scan should proceed to the 5GHz scan */ - schedule.task_args.infuse.network_scan.wifi.desired_aps = 10; + schedule.task_args.network_scan.wifi.desired_aps = 10; task_schedule(&data); k_sleep(K_MSEC(500)); expect_logging(0, false, false); @@ -502,7 +501,7 @@ ZTEST(task_network_scan, test_wifi_invalid_bssid) schedule = (struct task_schedule){ .task_id = TASK_ID_NETWORK_SCAN, .validity = TASK_VALID_ALWAYS, - .task_args.infuse.network_scan = + .task_args.network_scan = { .flags = TASK_NETWORK_SCAN_FLAGS_WIFI_CELLS, .wifi.desired_aps = 2, diff --git a/tests/subsys/task_runner/tasks/tdf_logger/src/main.c b/tests/subsys/task_runner/tasks/tdf_logger/src/main.c index 821e621f3..0d5e37a69 100644 --- a/tests/subsys/task_runner/tasks/tdf_logger/src/main.c +++ b/tests/subsys/task_runner/tasks/tdf_logger/src/main.c @@ -92,7 +92,7 @@ ZTEST(task_tdf_logger, test_log_before_data) chan_loc->data->publish_count = 0; chan_imu->data->publish_count = 0; - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_BATTERY | TASK_TDF_LOGGER_LOG_AMBIENT_ENV | TASK_TDF_LOGGER_LOG_LOCATION | TASK_TDF_LOGGER_LOG_ACCEL, @@ -111,7 +111,7 @@ ZTEST(task_tdf_logger, test_log_before_data) zassert_is_null(pkt); #endif /* CONFIG_TASK_TDF_LOGGER_BATTERY_LOG_ZERO_ON_TIMEOUT */ - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE, }; @@ -136,7 +136,7 @@ ZTEST(task_tdf_logger, test_no_flush) zassert_not_null(tx_queue); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE, .flags = TASK_TDF_LOGGER_FLAGS_NO_FLUSH, @@ -164,7 +164,7 @@ ZTEST(task_tdf_logger, test_terminate) { struct k_fifo *tx_queue = epacket_dummmy_transmit_fifo_get(); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE, .random_delay_ms = 50000, @@ -190,7 +190,7 @@ ZTEST(task_tdf_logger, test_delay) uint32_t time_start, time_end; struct net_buf *pkt; - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE, .random_delay_ms = 1000, @@ -218,7 +218,7 @@ ZTEST(task_tdf_logger, test_reschedule) uint32_t start, now, last; int cnt = 0; - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE, .logging_period_ms = 500, @@ -255,7 +255,7 @@ ZTEST(task_tdf_logger, test_announce) zassert_not_null(tx_queue); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ANNOUNCE, }; @@ -316,7 +316,7 @@ ZTEST(task_tdf_logger, test_battery) /* Publish data */ zbus_chan_pub(chan_bat, &battery, K_FOREVER); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_BATTERY, }; @@ -365,7 +365,7 @@ ZTEST(task_tdf_logger, test_soc_temperature) /* Publish data */ zbus_chan_pub(chan_soc_temp, &soc_temperature, K_FOREVER); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_SOC_TEMPERATURE, }; @@ -394,7 +394,7 @@ ZTEST(task_tdf_logger, test_ambient_env) /* Publish data */ zbus_chan_pub(chan_env, &ambient, K_FOREVER); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_AMBIENT_ENV, }; @@ -480,7 +480,7 @@ ZTEST(task_tdf_logger, test_accelerometer) zbus_chan_pub_stats_update(chan_imu); zassert_equal(0, zbus_chan_finish(chan_imu)); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_ACCEL, }; @@ -558,7 +558,7 @@ ZTEST(task_tdf_logger, test_location) /* Publish data */ zbus_chan_pub(chan_loc, &location, K_FOREVER); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_LOCATION, }; @@ -604,7 +604,7 @@ ZTEST(task_tdf_logger, test_net_conn) zassert_not_null(tx_queue); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_NET_CONN, }; @@ -647,7 +647,7 @@ ZTEST(task_tdf_logger, test_custom) zassert_not_null(tx_queue); - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_CUSTOM, }; @@ -700,7 +700,7 @@ ZTEST(task_tdf_logger, test_multi) setup_multi(); /* Should log all 4 each run */ - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_BATTERY | TASK_TDF_LOGGER_LOG_AMBIENT_ENV | TASK_TDF_LOGGER_LOG_LOCATION | TASK_TDF_LOGGER_LOG_NET_CONN, @@ -729,7 +729,7 @@ ZTEST(task_tdf_logger, test_multi_iteration) setup_multi(); /* Should log 3 of 4 each run */ - schedule.task_args.infuse.tdf_logger = (struct task_tdf_logger_args){ + schedule.task_args.tdf_logger = (struct task_tdf_logger_args){ .loggers = TDF_DATA_LOGGER_SERIAL, .tdfs = TASK_TDF_LOGGER_LOG_BATTERY | TASK_TDF_LOGGER_LOG_AMBIENT_ENV | TASK_TDF_LOGGER_LOG_LOCATION | TASK_TDF_LOGGER_LOG_NET_CONN, diff --git a/west.yml b/west.yml index ce65e92f7..a3813fe89 100644 --- a/west.yml +++ b/west.yml @@ -16,7 +16,7 @@ manifest: projects: - name: zephyr - revision: fb3e947bce5a376a8b825cca4ee86ec964fe4317 + revision: 88c4e733f3734f604fbb4253300c29bd187b0b23 # Limit imported repositories to reduce clone time import: name-allowlist: