ICE: small cosmetic changes and make message definition clearer

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This commit is contained in:
Silvan Fuhrer
2025-06-02 16:50:30 +02:00
parent 99f974e82e
commit ed15258abb
2 changed files with 9 additions and 10 deletions
+4 -4
View File
@@ -1,8 +1,8 @@
uint64 timestamp # time since system start (microseconds) uint64 timestamp # time since system start (microseconds)
bool ignition_on # activate/deactivate ignition (Spark Plug) bool ignition_on # activate/deactivate ignition (spark plug)
float32 throttle_control # [0,1] - Motor should idle with 0. Includes slew rate if enabled. float32 throttle_control # setpoint for throttle actuator, with slew rate if enabled, idles with 0 [norm] [@range 0,1]
float32 choke_control # [0,1] - 1 fully closes the air inlet. float32 choke_control # setpoint for choke actuator, 1: fully closed [norm] [@range 0,1]
float32 starter_engine_control # [0,1] - control value for electric starter motor. float32 starter_engine_control # setpoint for (electric) starter motor [norm] [@range 0,1]
uint8 user_request # user intent for the ICE being on/off uint8 user_request # user intent for the ICE being on/off
@@ -217,7 +217,6 @@ void InternalCombustionEngineControl::Run()
case State::Fault: { case State::Fault: {
// do nothing
if (user_request == UserOnOffRequest::Off) { if (user_request == UserOnOffRequest::Off) {
_state = State::Stopped; _state = State::Stopped;
_starting_retry_cycle = 0; _starting_retry_cycle = 0;
@@ -355,7 +354,7 @@ int InternalCombustionEngineControl::print_usage(const char *reason)
PRINT_MODULE_DESCRIPTION( PRINT_MODULE_DESCRIPTION(
R"DESCR_STR( R"DESCR_STR(
### Description ### Description
The module controls internal combustion engine (ICE) features including: The module controls internal combustion engine (ICE) features including:
ignition (on/off), throttle and choke level, starter engine delay, and user request. ignition (on/off), throttle and choke level, starter engine delay, and user request.
@@ -389,18 +388,18 @@ The ICE is implemented with a (4) state machine:
![Architecture](../../assets/hardware/ice/ice_control_state_machine.png) ![Architecture](../../assets/hardware/ice/ice_control_state_machine.png)
The state machine: The state machine:
- Checks if [Rpm.msg](../msg_docs/Rpm.md) is updated to know if the engine is running - Checks if [Rpm.msg](../msg_docs/Rpm.md) is updated to know if the engine is running
- Allows for user inputs from: - Allows for user inputs from:
- AUX{N} - Manual control AUX
- Arming state in [VehicleStatus.msg](../msg_docs/VehicleStatus.md) - Arming state in [VehicleStatus.msg](../msg_docs/VehicleStatus.md)
The module publishes [InternalCombustionEngineControl.msg](../msg_docs/InternalCombustionEngineControl.md). The module publishes [InternalCombustionEngineControl.msg](../msg_docs/InternalCombustionEngineControl.md).
The architecture is as shown below: The architecture is as shown below:
![Architecture](../../assets/hardware/ice/ice_control_diagram.png) ![Architecture](../../assets/hardware/ice/ice_control_diagram.png)
<a id="internal_combustion_engine_control_usage"></a> <a id="internal_combustion_engine_control_usage"></a>
)DESCR_STR"); )DESCR_STR");