scs-sdk/include/common/scssdk_telemetry_truck_common_channels.h

767 lines
19 KiB
C
Raw Normal View History

2023-04-29 05:19:39 +08:00
/**
* @file scssdk_telemetry_truck_common_channels.h
*
* @brief Truck telemetry specific constants for channels.
*
* This file defines truck specific telemetry constants which
* might be used by more than one SCS game. See game-specific
* file to determine which constants are supported by specific
* game.
*
* Unless state otherwise, following rules apply.
* @li Whenever channel has float based type (float, fvector, fplacement)
* is can also provide double based values (double, dvector, dplacement)
* and vice versa. Note that using the non-native type might incur
* conversion costs or cause precision loss (double->float in
* world-space context).
* @li Whenever channel has u32 type is can also provide u64 value.
* Note that using the non-native type might incur conversion costs.
* @li Whenever channel uses placement based type (dplacement, fplacement),
* it also supports euler type containg just the rotational part and
* dvector/fvector type containing just the positional part.
* @li Indexed entries are using zero-based indices.
*/
#ifndef SCSSDK_TELEMETRY_TRUCK_COMMON_CHANNELS_H
#define SCSSDK_TELEMETRY_TRUCK_COMMON_CHANNELS_H
#include "../scssdk.h"
SCSSDK_HEADER
// Movement.
/**
* @brief Represents world space position and orientation of the truck.
*
* Type: dplacement
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_world_placement "truck.world.placement"
/**
* @brief Represents vehicle space linear velocity of the truck measured
* in meters per second.
*
* Type: fvector
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_local_linear_velocity "truck.local.velocity.linear"
/**
* @brief Represents vehicle space angular velocity of the truck measured
* in rotations per second.
*
* Type: fvector
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_local_angular_velocity "truck.local.velocity.angular"
/**
* @brief Represents vehicle space linear acceleration of the truck measured
* in meters per second^2
*
* Type: fvector
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_local_linear_acceleration "truck.local.acceleration.linear"
/**
* @brief Represents vehicle space angular acceleration of the truck meassured
* in rotations per second^2
*
* Type: fvector
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_local_angular_acceleration "truck.local.acceleration.angular"
/**
* @brief Represents a vehicle space position and orientation delta
* of the cabin from its default position.
*
* Type: fplacement
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_cabin_offset "truck.cabin.offset"
/**
* @brief Represents cabin space angular velocity of the cabin measured
* in rotations per second.
*
* Type: fvector
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_cabin_angular_velocity "truck.cabin.velocity.angular"
/**
* @brief Represents cabin space angular acceleration of the cabin
* measured in rotations per second^2
*
* Type: fvector
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_cabin_angular_acceleration "truck.cabin.acceleration.angular"
/**
* @brief Represents a cabin space position and orientation delta
* of the driver head from its default position.
*
* Note that this value might change rapidly as result of
* the user switching between cameras or camera presets.
*
* Type: fplacement
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_head_offset "truck.head.offset"
/**
* @brief Speedometer speed in meters per second.
*
* Uses negative value to represent reverse movement.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_speed "truck.speed"
// Powertrain related
/**
* @brief RPM of the engine.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_engine_rpm "truck.engine.rpm"
/**
* @brief Gear currently selected in the engine.
*
* @li >0 - Forwad gears
* @li 0 - Neutral
* @li <0 - Reverse gears
*
* Type: s32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_engine_gear "truck.engine.gear"
/**
* @brief Gear currently displayed on dashboard.
*
* @li >0 - Forwad gears
* @li 0 - Neutral
* @li <0 - Reverse gears
*
* Type: s32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_displayed_gear "truck.displayed.gear"
// Driving
/**
* @brief Steering received from input <-1;1>.
*
* Note that it is interpreted counterclockwise.
*
* If the user presses the steer right button on digital input
* (e.g. keyboard) this value goes immediatelly to -1.0
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_input_steering "truck.input.steering"
/**
* @brief Throttle received from input <0;1>
*
* If the user presses the forward button on digital input
* (e.g. keyboard) this value goes immediatelly to 1.0
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_input_throttle "truck.input.throttle"
/**
* @brief Brake received from input <0;1>
*
* If the user presses the brake button on digital input
* (e.g. keyboard) this value goes immediatelly to 1.0
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_input_brake "truck.input.brake"
/**
* @brief Clutch received from input <0;1>
*
* If the user presses the clutch button on digital input
* (e.g. keyboard) this value goes immediatelly to 1.0
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_input_clutch "truck.input.clutch"
/**
* @brief Steering as used by the simulation <-1;1>
*
* Note that it is interpreted counterclockwise.
*
* Accounts for interpolation speeds and simulated
* counterfoces for digital inputs.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_effective_steering "truck.effective.steering"
/**
* @brief Throttle pedal input as used by the simulation <0;1>
*
* Accounts for the press attack curve for digital inputs
* or cruise-control input.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_effective_throttle "truck.effective.throttle"
/**
* @brief Brake pedal input as used by the simulation <0;1>
*
* Accounts for the press attack curve for digital inputs. Does
* not contain retarder, parking or engine brake.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_effective_brake "truck.effective.brake"
/**
* @brief Clutch pedal input as used by the simulation <0;1>
*
* Accounts for the automatic shifting or interpolation of
* player input.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_effective_clutch "truck.effective.clutch"
/**
* @brief Speed selected for the cruise control in m/s
*
* Is zero if cruise control is disabled.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_cruise_control "truck.cruise_control"
// Gearbox related
/**
* @brief Gearbox slot the h-shifter handle is currently in.
*
* 0 means that no slot is selected.
*
* Type: u32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_hshifter_slot "truck.hshifter.slot"
/**
* @brief Enabled state of range/splitter selector toggles.
*
* Mapping between the range/splitter functionality and
* selector index is described by HSHIFTER configuration.
*
* Type: indexed bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_hshifter_selector "truck.hshifter.select"
// Brakes.
/**
* @brief Is the parking brake enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_parking_brake "truck.brake.parking"
/**
* @brief Is the engine brake enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_motor_brake "truck.brake.motor"
/**
* @brief Current level of the retarder.
*
* <0;max> where 0 is disabled retarder and max is maximum
* value found in TRUCK configuration.
*
* Type: u32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_retarder_level "truck.brake.retarder"
/**
* @brief Pressure in the brake air tank in psi
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_brake_air_pressure "truck.brake.air.pressure"
/**
* @brief Is the air pressure warning active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_brake_air_pressure_warning "truck.brake.air.pressure.warning"
/**
* @brief Are the emergency brakes active as result of low air pressure?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_brake_air_pressure_emergency "truck.brake.air.pressure.emergency"
/**
* @brief Temperature of the brakes in degrees celsius.
*
* Aproximated for entire truck, not at the wheel level.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_brake_temperature "truck.brake.temperature"
// Various "consumables"
/**
* @brief Amount of fuel in liters
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_fuel "truck.fuel.amount"
/**
* @brief Is the low fuel warning active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_fuel_warning "truck.fuel.warning"
/**
* @brief Average consumption of the fuel in liters/km
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_fuel_average_consumption "truck.fuel.consumption.average"
/**
* @brief Estimated range of truck with current amount of fuel in km
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_fuel_range "truck.fuel.range"
/**
* @brief Amount of AdBlue in liters
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_adblue "truck.adblue"
/**
* @brief Is the low adblue warning active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_adblue_warning "truck.adblue.warning"
/**
* @brief Average consumption of the adblue in liters/km
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_adblue_average_consumption "truck.adblue.consumption.average"
// Oil
/**
* @brief Pressure of the oil in psi
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_oil_pressure "truck.oil.pressure"
/**
* @brief Is the oil pressure warning active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_oil_pressure_warning "truck.oil.pressure.warning"
/**
* @brief Temperature of the oil in degrees celsius.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_oil_temperature "truck.oil.temperature"
// Temperature in various systems.
/**
* @brief Temperature of the water in degrees celsius.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_water_temperature "truck.water.temperature"
/**
* @brief Is the water temperature warning active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_water_temperature_warning "truck.water.temperature.warning"
// Battery
/**
* @brief Voltage of the battery in volts.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_battery_voltage "truck.battery.voltage"
/**
* @brief Is the battery voltage/not charging warning active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_battery_voltage_warning "truck.battery.voltage.warning"
// Enabled state of various elements.
/**
* @brief Is the electric enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_electric_enabled "truck.electric.enabled"
/**
* @brief Is the engine enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_engine_enabled "truck.engine.enabled"
/**
* @brief Is the left blinker enabled?
*
* This represents the logical enable state of the blinker. It
* it is true as long the blinker is enabled regardless of the
* physical enabled state of the light (i.e. it does not blink
* and ignores enable state of electric).
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_lblinker "truck.lblinker"
/**
* @brief Is the right blinker enabled?
*
* This represents the logical enable state of the blinker. It
* it is true as long the blinker is enabled regardless of the
* physical enabled state of the light (i.e. it does not blink
* and ignores enable state of electric).
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_rblinker "truck.rblinker"
/**
* @brief Are the hazard warning light enabled?
*
* This represents the logical enable state of the hazard warning.
* It it is true as long it is enabled regardless of the physical
* enabled state of the light (i.e. it does not blink).
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_hazard_warning "truck.hazard.warning"
/**
* @brief Is the light in the left blinker currently on?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_lblinker "truck.light.lblinker"
/**
* @brief Is the light in the right blinker currently on?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_rblinker "truck.light.rblinker"
/**
* @brief Are the parking lights enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_parking "truck.light.parking"
/**
* @brief Are the low beam lights enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_low_beam "truck.light.beam.low"
/**
* @brief Are the high beam lights enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_high_beam "truck.light.beam.high"
/**
* @brief Are the auxiliary front lights active?
*
* Those lights have several intensity levels:
* @li 1 - dimmed state
* @li 2 - full state
*
* Type: u32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_aux_front "truck.light.aux.front"
/**
* @brief Are the auxiliary roof lights active?
*
* Those lights have several intensity levels:
* @li 1 - dimmed state
* @li 2 - full state
*
* Type: u32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_aux_roof "truck.light.aux.roof"
/**
* @brief Are the beacon lights enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_beacon "truck.light.beacon"
/**
* @brief Is the brake light active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_brake "truck.light.brake"
/**
* @brief Is the reverse light active?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_light_reverse "truck.light.reverse"
/**
* @brief Are the wipers enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wipers "truck.wipers"
/**
* @brief Intensity of the dashboard backlight as factor <0;1>
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_dashboard_backlight "truck.dashboard.backlight"
/**
* @brief Is the differential lock enabled?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_differential_lock "truck.differential_lock"
/**
* @brief Is the lift axle control set to lifted state?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_lift_axle "truck.lift_axle"
/**
* @brief Is the lift axle indicator lit?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_lift_axle_indicator "truck.lift_axle.indicator"
/**
* @brief Is the trailer lift axle control set to lifted state?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_trailer_lift_axle "truck.trailer.lift_axle"
/**
* @brief Is the trailer lift axle indicator lit?
*
* Type: bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_trailer_lift_axle_indicator "truck.trailer.lift_axle.indicator"
// Wear info.
/**
* @brief Wear of the engine accessory as <0;1>
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wear_engine "truck.wear.engine"
/**
* @brief Wear of the transmission accessory as <0;1>
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wear_transmission "truck.wear.transmission"
/**
* @brief Wear of the cabin accessory as <0;1>
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wear_cabin "truck.wear.cabin"
/**
* @brief Wear of the chassis accessory as <0;1>
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wear_chassis "truck.wear.chassis"
/**
* @brief Average wear across the wheel accessories as <0;1>
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wear_wheels "truck.wear.wheels"
/**
* @brief The value of the odometer in km.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_odometer "truck.odometer"
/**
* @brief The value of truck's navigation distance (in meters).
*
* This is the value used by the advisor.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_navigation_distance "truck.navigation.distance"
/**
* @brief The value of truck's navigation eta (in second).
*
* This is the value used by the advisor.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_navigation_time "truck.navigation.time"
/**
* @brief The value of truck's navigation speed limit (in m/s).
*
* This is the value used by the advisor and respects the
* current state of the "Route Advisor speed limit" option.
*
* Type: float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_navigation_speed_limit "truck.navigation.speed.limit"
// Wheels.
/**
* @brief Vertical displacement of the wheel from its
* axis in meters.
*
* Type: indexed float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_susp_deflection "truck.wheel.suspension.deflection"
/**
* @brief Is the wheel in contact with ground?
*
* Type: indexed bool
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_on_ground "truck.wheel.on_ground"
/**
* @brief Substance below the whell.
*
* Index of substance as delivered trough SUBSTANCE config.
*
* Type: indexed u32
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_substance "truck.wheel.substance"
/**
* @brief Angular velocity of the wheel in rotations per
* second.
*
* Positive velocity corresponds to forward movement.
*
* Type: indexed float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_velocity "truck.wheel.angular_velocity"
/**
* @brief Steering rotation of the wheel in rotations.
*
* Value is from <-0.25,0.25> range in counterclockwise direction
* when looking from top (e.g. 0.25 corresponds to left and
* -0.25 corresponds to right).
*
* Set to zero for non-steered wheels.
*
* Type: indexed float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_steering "truck.wheel.steering"
/**
* @brief Rolling rotation of the wheel in rotations.
*
* Value is from <0.0,1.0) range in which value
* increase corresponds to forward movement.
*
* Type: indexed float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_rotation "truck.wheel.rotation"
/**
* @brief Lift state of the wheel <0;1>
*
* For use with simple lifted/non-lifted test or logical
* visualization of the lifting progress.
*
* Value of 0 corresponds to non-lifted axle.
* Value of 1 corresponds to fully lifted axle.
*
* Set to zero or not provided for non-liftable axles.
*
* Type: indexed float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_lift "truck.wheel.lift"
/**
* @brief Vertical displacement of the wheel axle
* from its normal position in meters as result of
* lifting.
*
* Might have non-linear relation to lift ratio.
*
* Set to zero or not provided for non-liftable axles.
*
* Type: indexed float
*/
#define SCS_TELEMETRY_TRUCK_CHANNEL_wheel_lift_offset "truck.wheel.lift.offset"
SCSSDK_FOOTER
#endif // SCSSDK_TELEMETRY_TRUCK_COMMON_CHANNELS_H
/* eof */