refactoring - reducing API between FW and Java

This commit is contained in:
rusefillc 2022-09-11 02:16:47 -04:00
parent dde67e20d6
commit 6e71b72acc
8 changed files with 50 additions and 65 deletions

View File

@ -139,17 +139,7 @@ case TsCalMode::Tps2SecondaryMin:
}
return NULL;
}
const char *getAdc_channel_mode_e(adc_channel_mode_e value){
switch(value) {
case ADC_FAST:
return "ADC_FAST";
case ADC_OFF:
return "ADC_OFF";
case ADC_SLOW:
return "ADC_SLOW";
}
return NULL;
}
const char *getAir_pressure_sensor_type_e(air_pressure_sensor_type_e value){
switch(value) {
case MT_BOSCH_2_5:
@ -665,28 +655,8 @@ case TL_SEMI_AUTO:
}
return NULL;
}
const char *getTrigger_event_e(trigger_event_e value){
switch(value) {
case SHAFT_PRIMARY_FALLING:
return "SHAFT_PRIMARY_FALLING";
case SHAFT_PRIMARY_RISING:
return "SHAFT_PRIMARY_RISING";
case SHAFT_SECONDARY_FALLING:
return "SHAFT_SECONDARY_FALLING";
case SHAFT_SECONDARY_RISING:
return "SHAFT_SECONDARY_RISING";
}
return NULL;
}
const char *getTrigger_value_e(trigger_value_e value){
switch(value) {
case TV_FALL:
return "TV_FALL";
case TV_RISE:
return "TV_RISE";
}
return NULL;
}
const char *getTrigger_wheel_e(trigger_wheel_e value){
switch(value) {
case T_NONE:

View File

@ -23,7 +23,6 @@ const char *getTransmissionControllerMode(TransmissionControllerMode value);
#if __cplusplus
const char *getTsCalMode(TsCalMode value);
#endif //__cplusplus
const char *getAdc_channel_mode_e(adc_channel_mode_e value);
const char *getAir_pressure_sensor_type_e(air_pressure_sensor_type_e value);
const char *getAntiLagActivationMode_e(antiLagActivationMode_e value);
const char *getBoostType_e(boostType_e value);
@ -59,8 +58,7 @@ const char *getStepper_num_micro_steps_e(stepper_num_micro_steps_e value);
const char *getTChargeMode_e(tChargeMode_e value);
const char *getTiming_mode_e(timing_mode_e value);
const char *getTle8888_mode_e(tle8888_mode_e value);
const char *getTrigger_event_e(trigger_event_e value);
const char *getTrigger_value_e(trigger_value_e value);
const char *getTrigger_wheel_e(trigger_wheel_e value);
const char *getUart_device_e(uart_device_e value);
const char *getVe_override_e(ve_override_e value);

View File

@ -36,22 +36,6 @@ typedef enum __attribute__ ((__packed__))
PIN_INVALID = 0x80
} brain_pin_diag_e;
// this header is part of firmware public API it gets consumed by code generator
// and values are available to java todo: pull this adc_channel_mode_e enum into a not-public-api header
typedef enum __attribute__ ((__packed__)) {
ADC_OFF = 0,
ADC_SLOW = 1,
ADC_FAST = 2,
} adc_channel_mode_e;
// this header is part of firmware public API it gets consumed by code generator
// and values are available to java todo: pull this trigger_value_e enum into a not-public-api header
typedef enum {
TV_FALL = 0,
TV_RISE = 1
} trigger_value_e;
// see also PWM_PHASE_MAX_WAVE_PER_PWM
// todo: better names?
typedef enum {
@ -60,14 +44,6 @@ typedef enum {
T_NONE = 15
} trigger_wheel_e;
// see also 'HW_EVENT_TYPES'
typedef enum {
SHAFT_PRIMARY_FALLING = 0,
SHAFT_PRIMARY_RISING = 1,
SHAFT_SECONDARY_FALLING = 2,
SHAFT_SECONDARY_RISING = 3,
} trigger_event_e;
typedef enum __attribute__ ((__packed__)) {
/**
* This mode is useful for troubleshooting and research - events are logged but no effects on phase synchronization

View File

@ -11,6 +11,19 @@
#include "rusefi_enums.h"
#include "expected.h"
typedef enum {
TV_FALL = 0,
TV_RISE = 1
} trigger_value_e;
// see also 'HW_EVENT_TYPES'
typedef enum {
SHAFT_PRIMARY_FALLING = 0,
SHAFT_PRIMARY_RISING = 1,
SHAFT_SECONDARY_FALLING = 2,
SHAFT_SECONDARY_RISING = 3,
} trigger_event_e;
/**
* This layer has two primary usages:
* 1) 'simple' PWM generation is used to produce actuator square control wave

View File

@ -267,9 +267,9 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex
}
if (wave.phaseCount > 0) {
if (angle <= previousAngle) {
warning(CUSTOM_ERR_TRG_ANGLE_ORDER, "invalid angle order %s %d: new=%.2f/%f and prev=%.2f/%f, size=%d",
warning(CUSTOM_ERR_TRG_ANGLE_ORDER, "invalid angle order %s %s: new=%.2f/%f and prev=%.2f/%f, size=%d",
getTrigger_wheel_e(channelIndex),
state,
getTrigger_value_e(state),
angle, angle * getCycleDuration(),
previousAngle, previousAngle * getCycleDuration(),
wave.phaseCount);

View File

@ -428,6 +428,29 @@ void PrimaryTriggerDecoder::onTooManyTeeth(int /*actual*/, int /*expected*/) {
currentCycle.eventCount[1]);
}
const char *getTrigger_event_e(trigger_event_e value){
switch(value) {
case SHAFT_PRIMARY_FALLING:
return "SHAFT_PRIMARY_FALLING";
case SHAFT_PRIMARY_RISING:
return "SHAFT_PRIMARY_RISING";
case SHAFT_SECONDARY_FALLING:
return "SHAFT_SECONDARY_FALLING";
case SHAFT_SECONDARY_RISING:
return "SHAFT_SECONDARY_RISING";
}
return NULL;
}
const char *getTrigger_value_e(trigger_value_e value){
switch(value) {
case TV_FALL:
return "TV_FALL";
case TV_RISE:
return "TV_RISE";
}
return NULL;
}
void VvtTriggerDecoder::onNotEnoughTeeth(int actual, int expected) {
warning(CUSTOM_CAM_NOT_ENOUGH_TEETH, "cam %s trigger error: not enough teeth between sync points: actual %d expected %d", name, actual, expected);
}

View File

@ -14,7 +14,8 @@
#include "trigger_state_primary_generated.h"
#include "timer.h"
class TriggerDecoderBase;
const char *getTrigger_event_e(trigger_event_e value);
const char *getTrigger_value_e(trigger_value_e value);
struct TriggerStateListener {
#if EFI_SHAFT_POSITION_INPUT
@ -253,8 +254,6 @@ public:
angle_t getEngineCycle(operation_mode_e operationMode);
class Engine;
void calculateTriggerSynchPoint(
TriggerWaveform& shape,
TriggerDecoderBase& state);

View File

@ -32,6 +32,12 @@ static inline bool isAdcChannelValid(adc_channel_e hwChannel) {
#if HAL_USE_ADC
typedef enum {
ADC_OFF = 0,
ADC_SLOW = 1,
ADC_FAST = 2,
} adc_channel_mode_e;
adc_channel_mode_e getAdcMode(adc_channel_e hwChannel);
void initAdcInputs();