added sm_get_state_code(), added more ErrorKinds
This commit is contained in:
@ -8,17 +8,14 @@
|
||||
StateHandle state;
|
||||
static bool relay_closed = 0;
|
||||
static bool precharge_closed = 0;
|
||||
static int16_t RELAY_BAT_SIDE;
|
||||
static int16_t RELAY_ESC_SIDE;
|
||||
static int16_t CURRENT_MEASUREMENT;
|
||||
static int16_t RELAY_BAT_SIDE = 0;
|
||||
static int16_t RELAY_ESC_SIDE = 0;
|
||||
static int16_t CURRENT_MEASUREMENT = 0;
|
||||
|
||||
void sm_init(){
|
||||
state.current_state = STATE_INACTIVE;
|
||||
state.target_state = STATE_INACTIVE;
|
||||
state.error_source = 0;
|
||||
RELAY_BAT_SIDE = 0;
|
||||
RELAY_ESC_SIDE = 0;
|
||||
CURRENT_MEASUREMENT = 0;
|
||||
}
|
||||
|
||||
void sm_update(){
|
||||
@ -51,10 +48,30 @@ void sm_update(){
|
||||
//status_led_state(state.current_state, (ErrorKind) state.error_type);
|
||||
}
|
||||
|
||||
int sm_get_state_code(){
|
||||
switch (state.current_state) {
|
||||
case STATE_INACTIVE:
|
||||
return 0;
|
||||
case STATE_PRECHARGE:
|
||||
return 1;
|
||||
case STATE_READY:
|
||||
return 2;
|
||||
case STATE_ACTIVE:
|
||||
return 3;
|
||||
case STATE_DISCHARGE:
|
||||
return 4;
|
||||
case STATE_CHARGING:
|
||||
return 5;
|
||||
default: // either STATE_ERROR or something went severly wrong
|
||||
return 6;
|
||||
}
|
||||
}
|
||||
|
||||
State sm_update_inactive(){
|
||||
switch (state.target_state) {
|
||||
case STATE_PRECHARGE:
|
||||
//close precharge relay, wait until both sides are similar
|
||||
sm_set_relay_positions(STATE_PRECHARGE);
|
||||
return STATE_PRECHARGE;
|
||||
case STATE_CHARGING:
|
||||
return STATE_CHARGING;
|
||||
@ -184,4 +201,6 @@ void sm_check_precharge_discharge(int *is_closed, int should_close){}
|
||||
|
||||
void sm_handle_ams_in(const uint8_t *data){}
|
||||
|
||||
void sm_set_error(ErrorKind error_kind, bool is_errored);
|
||||
void sm_set_error(ErrorKind error_kind, bool is_errored);
|
||||
|
||||
void sm_check_errors(){}
|
||||
Reference in New Issue
Block a user