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