From 56f37fed96459db2373fed66fed17a1bf78a00bc Mon Sep 17 00:00:00 2001 From: Urban Wallasch Date: Fri, 9 Aug 2019 09:57:01 +0200 Subject: [PATCH] * Replaced bool with a type of explicit fixed width. * Renamed placement_available to placement_isvalid. * Added missing placement_isvalid variable to JSON output. --- tele2json.c | 7 ++++--- telemetry.h | 12 +++++++----- teleshmem.cpp | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/tele2json.c b/tele2json.c index c5abdb2..752fbfe 100644 --- a/tele2json.c +++ b/tele2json.c @@ -20,10 +20,11 @@ size_t tele2json( char *buf, size_t size, const struct telemetry_state_t *tele ) 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\": %"PRIi32",\n", (int)tele->paused ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"paused\": %"PRIu8",\n", tele->paused ); CHKSIZE; n += snprintf( buf+n, size-n, " \"timestamp\": %"PRIu64",\n", tele->timestamp ); CHKSIZE; n += snprintf( buf+n, size-n, " \"game_time\": %"PRIu32",\n", tele->game_time ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"placement_isvalid\": %"PRIu8",\n", tele->placement_isvalid ); 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; @@ -42,7 +43,7 @@ size_t tele2json( char *buf, size_t size, const struct telemetry_state_t *tele ) 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_warn\": %"PRIu8",\n", 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; @@ -57,7 +58,7 @@ size_t tele2json( char *buf, size_t size, const struct telemetry_state_t *tele ) n += snprintf( buf+n, size-n, " \"trailer_cnt\": %"PRIu32",\n", tele->trailer_cnt ); CHKSIZE; - n += snprintf( buf+n, size-n, " \"job_isvalid\": %"PRIi32",\n", (int)tele->job_isvalid ); CHKSIZE; + n += snprintf( buf+n, size-n, " \"job_isvalid\": %"PRIu8",\n", 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\": %.12f,\n", tele->job_cargo_mass ); CHKSIZE; diff --git a/telemetry.h b/telemetry.h index 9a3238b..0f62635 100644 --- a/telemetry.h +++ b/telemetry.h @@ -12,6 +12,8 @@ #define TELE_FLAG_ALIVE 0x0001U +typedef uint8_t bool_t; + struct telemetry_state_t { uint32_t version; uint32_t flags; @@ -19,8 +21,8 @@ struct telemetry_state_t { char game_id[10]; uint32_t game_major_ver; uint32_t game_minor_ver; - bool game_ver_warn; - bool paused; + bool_t game_ver_warn; + bool_t paused; uint64_t timestamp; uint64_t raw_rendering_timestamp; @@ -30,7 +32,7 @@ struct telemetry_state_t { uint32_t game_time; // minutes since beginning of first in-game day // truck placement and orientation - bool placement_available; + bool_t placement_isvalid; double x; double y; double z; @@ -48,7 +50,7 @@ struct telemetry_state_t { int32_t shifter; // 0 = automatic, 1 = manual double fuel; // fuel amount in l - bool fuel_warn; // fuel low warning + bool_t fuel_warn; // fuel low warning double fuel_avg; // fuel consumption average in l/km double fuel_range; // estimated range in km @@ -62,7 +64,7 @@ struct telemetry_state_t { char truck_name[TELE_STRLEN]; // truck model name uint32_t truck_fwd_gear_cnt; // truck number of forward gears - bool job_isvalid; // job info is current, i.e. job is in progress + bool_t job_isvalid; // job info is current, i.e. job is in progress uint32_t job_deltime; // job deadline in minutes (see game_time) uint64_t job_income; // job reward without penalties in in-game currency double job_cargo_mass; // cargo mass in kg diff --git a/teleshmem.cpp b/teleshmem.cpp index ed6faf9..2e23dc6 100644 --- a/teleshmem.cpp +++ b/teleshmem.cpp @@ -416,10 +416,10 @@ SCSAPI_VOID telemetry_store_dplacement(const scs_string_t name, const scs_u32_t // This callback was registered with the SCS_TELEMETRY_CHANNEL_FLAG_no_value flag // so it is called even when the value is not available. if ( !value || value->type != SCS_VALUE_TYPE_dplacement ) { - tele->placement_available = false; + tele->placement_isvalid = false; return; } - tele->placement_available = true; + tele->placement_isvalid = true; tele->x = value->value_dplacement.position.x; tele->y = value->value_dplacement.position.y; tele->z = value->value_dplacement.position.z; -- 2.30.2