From: Urban Wallasch Date: Sat, 3 Aug 2019 16:57:00 +0000 (+0200) Subject: * Replaced all integer types by their fixed-width equivalents and X-Git-Tag: v0.1.0~43 X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=134fcb5b7861d0ebf3d8d5dffe9b03196ffbb292;p=ets2_tele.git * Replaced all integer types by their fixed-width equivalents and all floats by double in telemetry_state_t struct and related code. * Increased floating point output precision in tele2json() to 12 digits. --- diff --git a/tele2json.c b/tele2json.c index 1c1cf2c..7560830 100644 --- a/tele2json.c +++ b/tele2json.c @@ -16,50 +16,50 @@ size_t tele2json( char *buf, size_t size, const struct telemetry_state_t *tele ) n += snprintf( buf+n, size-n, " \"tele_flags\": %"PRIu32",\n", tele->flags ); CHKSIZE; n += snprintf( buf+n, size-n, " \"game_id\": \"%s\",\n", tele->game_id ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"game_major_ver\": %u,\n", tele->game_major_ver ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"game_minor_ver\": %u,\n", tele->game_minor_ver ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"game_ver_warn\": %d,\n", (int)tele->game_ver_warn ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"game_major_ver\": %"PRIu32",\n", tele->game_major_ver ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"game_minor_ver\": %"PRIu32",\n", tele->game_minor_ver ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"game_ver_warn\": %"PRIu32",\n", (int)tele->game_ver_warn ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"paused\": %d,\n", (int)tele->paused ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"paused\": %"PRIi32",\n", (int)tele->paused ); CHKSIZE; n += snprintf( buf+n, size-n, " \"timestamp\": %"PRIu64",\n", tele->timestamp ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"game_time\": %u,\n", tele->game_time ); CHKSIZE; - - n += snprintf( buf+n, size-n, " \"x\": %f,\n", tele->x ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"y\": %f,\n", tele->y ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"z\": %f,\n", tele->z ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"heading\": %f,\n", tele->heading ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"pitch\": %f,\n", tele->pitch ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"roll\": %f,\n", tele->roll ); CHKSIZE; - - n += snprintf( buf+n, size-n, " \"speed\": %f,\n", tele->speed ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"cctrl\": %f,\n", tele->cctrl ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"rpm\": %f,\n", tele->rpm ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"gear\": %d,\n", tele->gear ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"gear_disp\": %d,\n", tele->gear_disp ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"gear_fwdcnt\": %u,\n", tele->truck_fwd_gear_cnt ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"clutch_eff\": %f,\n", tele->clutch_eff ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"shifter\": %d,\n", tele->shifter ); CHKSIZE; - - n += snprintf( buf+n, size-n, " \"fuel\": %f,\n", tele->fuel ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"fuel_warn\": %d,\n", (int)tele->fuel_warn ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"fuel_avg\": %f,\n", tele->fuel_avg ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"fuel_range\": %f,\n", tele->fuel_range ); CHKSIZE; - - n += snprintf( buf+n, size-n, " \"odometer\": %f,\n", tele->odometer ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"nav_dist\": %f,\n", tele->nav_dist ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"nav_eta\": %f,\n", tele->nav_eta ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"nav_slimit\": %f,\n", tele->nav_slimit ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"next_rest\": %d,\n", tele->next_rest ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"game_time\": %"PRIu32",\n", tele->game_time ); CHKSIZE; + + n += snprintf( buf+n, size-n, " \"x\": %.12f,\n", tele->x ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"y\": %.12f,\n", tele->y ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"z\": %.12f,\n", tele->z ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"heading\": %.12f,\n", tele->heading ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"pitch\": %.12f,\n", tele->pitch ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"roll\": %.12f,\n", tele->roll ); CHKSIZE; + + n += snprintf( buf+n, size-n, " \"speed\": %.12f,\n", tele->speed ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"cctrl\": %.12f,\n", tele->cctrl ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"rpm\": %.12f,\n", tele->rpm ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"gear\": %"PRIi32",\n", tele->gear ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"gear_disp\": %"PRIi32",\n", tele->gear_disp ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"gear_fwdcnt\": %"PRIu32",\n", tele->truck_fwd_gear_cnt ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"clutch_eff\": %.12f,\n", tele->clutch_eff ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"shifter\": %"PRIi32",\n", tele->shifter ); CHKSIZE; + + n += snprintf( buf+n, size-n, " \"fuel\": %.12f,\n", tele->fuel ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"fuel_warn\": %"PRIi32",\n", (int)tele->fuel_warn ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"fuel_avg\": %.12f,\n", tele->fuel_avg ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"fuel_range\": %.12f,\n", tele->fuel_range ); CHKSIZE; + + n += snprintf( buf+n, size-n, " \"odometer\": %.12f,\n", tele->odometer ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"nav_dist\": %.12f,\n", tele->nav_dist ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"nav_eta\": %.12f,\n", tele->nav_eta ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"nav_slimit\": %.12f,\n", tele->nav_slimit ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"next_rest\": %"PRIi32",\n", tele->next_rest ); CHKSIZE; n += snprintf( buf+n, size-n, " \"truck_brand\": \"%s\",\n", tele->truck_brand ); CHKSIZE; n += snprintf( buf+n, size-n, " \"truck_name\": \"%s\",\n", tele->truck_name ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"trailer_cnt\": %u,\n", tele->trailer_cnt ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"trailer_cnt\": %"PRIu32",\n", tele->trailer_cnt ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"job_isvalid\": %d,\n", (int)tele->job_isvalid ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"job_deltime\": %u,\n", tele->job_deltime ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"job_isvalid\": %"PRIi32",\n", (int)tele->job_isvalid ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"job_deltime\": %"PRIu32",\n", tele->job_deltime ); CHKSIZE; n += snprintf( buf+n, size-n, " \"job_income\": %"PRIu64",\n", tele->job_income ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"job_cargo_mass\": %f,\n", tele->job_cargo_mass ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"job_cargo_mass\": %.12f,\n", tele->job_cargo_mass ); CHKSIZE; n += snprintf( buf+n, size-n, " \"job_cargo\": \"%s\",\n", tele->job_cargo ); CHKSIZE; n += snprintf( buf+n, size-n, " \"job_source_city\": \"%s\",\n", tele->job_source_city ); CHKSIZE; n += snprintf( buf+n, size-n, " \"job_destination_city\": \"%s\",\n", tele->job_destination_city ); CHKSIZE; diff --git a/telemetry.h b/telemetry.h index 90d558a..aad946e 100644 --- a/telemetry.h +++ b/telemetry.h @@ -17,59 +17,59 @@ struct telemetry_state_t { uint32_t flags; char game_id[10]; - unsigned game_major_ver; - unsigned game_minor_ver; - bool game_ver_warn; - bool paused; + uint32_t game_major_ver; + uint32_t game_minor_ver; + bool game_ver_warn; + bool paused; uint64_t timestamp; uint64_t raw_rendering_timestamp; uint64_t raw_simulation_timestamp; uint64_t raw_paused_simulation_timestamp; - unsigned game_time; // minutes since beginning of first in-game day + uint32_t game_time; // minutes since beginning of first in-game day // truck placement and orientation - bool placement_available; - double x; - double y; - double z; - double heading; - double pitch; - double roll; - - float speed; // truck speed in m/s - float cctrl; // cruise_control in m/s - float rpm; // engine rpm - int gear; // engine gear - int gear_disp; // displayed gear - float clutch_eff; // effective clutch - int shifter; // 0 = automatic, 1 = manual - - float fuel; // fuel amount in l - bool fuel_warn; // fuel low warning - float fuel_avg; // fuel consumption average in l/km - float fuel_range; // estimated range in km - - float odometer; // odometer reading - float nav_dist; // navigation distance in m - float nav_eta; // navigation time in s - float nav_slimit; // navigation speed limit in m/s - int next_rest; // time to next rest stop in minutes + bool placement_available; + double x; + double y; + double z; + double heading; + double pitch; + double roll; + + double speed; // truck speed in m/s + double cctrl; // cruise_control in m/s + double rpm; // engine rpm + int32_t gear; // engine gear + int32_t gear_disp; // displayed gear + double clutch_eff; // effective clutch + int32_t shifter; // 0 = automatic, 1 = manual + + double fuel; // fuel amount in l + bool fuel_warn; // fuel low warning + double fuel_avg; // fuel consumption average in l/km + double fuel_range; // estimated range in km + + double odometer; // odometer reading + double nav_dist; // navigation distance in m + double nav_eta; // navigation time in s + double nav_slimit; // navigation speed limit in m/s + int32_t next_rest; // time to next rest stop in minutes char truck_brand[TELE_STRLEN]; // truck brand name char truck_name[TELE_STRLEN]; // truck model name - unsigned truck_fwd_gear_cnt; // truck number of forward gears + uint32_t truck_fwd_gear_cnt; // truck number of forward gears bool job_isvalid; // job info is current, i.e. job is in progress - unsigned job_deltime; // job deadline in minutes (see game_time) + uint32_t job_deltime; // job deadline in minutes (see game_time) uint64_t job_income; // job reward without penalties in in-game currency - float job_cargo_mass; // cargo mass in kg + double job_cargo_mass; // cargo mass in kg char job_cargo[TELE_STRLEN]; // job cargo name char job_source_city[TELE_STRLEN]; // job source city name char job_destination_city[TELE_STRLEN]; // job destination city name - unsigned trailer_cnt; // number of active trailers + uint32_t trailer_cnt; // number of active trailers }; #endif /* TELEMETRY_H_ */ diff --git a/teleshmem.cpp b/teleshmem.cpp index 10e7c90..7060617 100644 --- a/teleshmem.cpp +++ b/teleshmem.cpp @@ -428,27 +428,27 @@ SCSAPI_VOID telemetry_store_dplacement(const scs_string_t name, const scs_u32_t tele->roll = value->value_dplacement.orientation.roll; } -SCSAPI_VOID telemetry_store_float(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) +SCSAPI_VOID telemetry_store_double(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) { // The SCS_TELEMETRY_CHANNEL_FLAG_no_value flag was not provided during registration // so this callback is only called when a valid value is available. assert(value); - assert(value->type == SCS_VALUE_TYPE_float); + assert(value->type == SCS_VALUE_TYPE_double); assert(context); - *static_cast(context) = value->value_float.value; + *static_cast(context) = value->value_double.value; } -SCSAPI_VOID telemetry_store_float_nz(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) +SCSAPI_VOID telemetry_store_double_nz(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) { // The SCS_TELEMETRY_CHANNEL_FLAG_no_value flag was not provided during registration // so this callback is only called when a valid value is available. assert(value); - assert(value->type == SCS_VALUE_TYPE_float); + assert(value->type == SCS_VALUE_TYPE_double); assert(context); - if (value->value_float.value) - *static_cast(context) = value->value_float.value; + if (value->value_double.value) + *static_cast(context) = value->value_double.value; } SCSAPI_VOID telemetry_store_s32(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) @@ -459,7 +459,7 @@ SCSAPI_VOID telemetry_store_s32(const scs_string_t name, const scs_u32_t index, assert(value); assert(value->type == SCS_VALUE_TYPE_s32); assert(context); - *static_cast(context) = value->value_s32.value; + *static_cast(context) = value->value_s32.value; } SCSAPI_VOID telemetry_store_u32(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) @@ -470,7 +470,7 @@ SCSAPI_VOID telemetry_store_u32(const scs_string_t name, const scs_u32_t index, assert(value); assert(value->type == SCS_VALUE_TYPE_u32); assert(context); - *static_cast(context) = value->value_u32.value; + *static_cast(context) = value->value_u32.value; } SCSAPI_VOID telemetry_store_bool(const scs_string_t name, const scs_u32_t index, const scs_value_t *const value, const scs_context_t context) @@ -585,20 +585,20 @@ SCSAPI_RESULT scs_telemetry_init(const scs_u32_t version, const scs_telemetry_in const bool channels_registered = (version_params->register_for_channel(SCS_TELEMETRY_CHANNEL_game_time, SCS_U32_NIL, SCS_VALUE_TYPE_u32, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_u32, &telemetry->game_time) == SCS_RESULT_ok) && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_world_placement, SCS_U32_NIL, SCS_VALUE_TYPE_dplacement, SCS_TELEMETRY_CHANNEL_FLAG_no_value, telemetry_store_dplacement, telemetry) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_speed, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->speed) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_cruise_control, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->cctrl) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_engine_rpm, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->rpm) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_speed, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->speed) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_cruise_control, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->cctrl) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_engine_rpm, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->rpm) == SCS_RESULT_ok) && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_engine_gear, SCS_U32_NIL, SCS_VALUE_TYPE_s32, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_s32, &telemetry->gear) == SCS_RESULT_ok) && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_displayed_gear, SCS_U32_NIL, SCS_VALUE_TYPE_s32, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_s32, &telemetry->gear_disp) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_effective_clutch, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->clutch_eff) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->fuel) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_effective_clutch, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->clutch_eff) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->fuel) == SCS_RESULT_ok) && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel_warning, SCS_U32_NIL, SCS_VALUE_TYPE_bool, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_bool, &telemetry->fuel_warn) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel_average_consumption, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float_nz, &telemetry->fuel_avg) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel_range, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->fuel_range) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_odometer, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->odometer) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_navigation_distance, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->nav_dist) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_navigation_time, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->nav_eta) == SCS_RESULT_ok) - && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_navigation_speed_limit, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->nav_slimit) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel_average_consumption, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double_nz, &telemetry->fuel_avg) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel_range, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->fuel_range) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_odometer, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->odometer) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_navigation_distance, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->nav_dist) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_navigation_time, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->nav_eta) == SCS_RESULT_ok) + && (version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_navigation_speed_limit, SCS_U32_NIL, SCS_VALUE_TYPE_double, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_double, &telemetry->nav_slimit) == SCS_RESULT_ok) && (version_params->register_for_channel(SCS_TELEMETRY_CHANNEL_next_rest_stop, SCS_U32_NIL, SCS_VALUE_TYPE_s32, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_s32, &telemetry->next_rest) == SCS_RESULT_ok) ; if ( !channels_registered) {