forked from achamaikin/CCSModuleSW30Web
intermediate version
This commit is contained in:
32
Core/Src/connector.c
Normal file → Executable file
32
Core/Src/connector.c
Normal file → Executable file
@@ -27,44 +27,47 @@ void CONN_Task(){
|
||||
CONN_SetState(CONN_Available);
|
||||
GBT_LockState.error = 0;
|
||||
break;
|
||||
case CONN_Error: //unlocked
|
||||
case CONN_Faulted: //unlocked
|
||||
GBT_Lock(0);
|
||||
|
||||
break;
|
||||
case CONN_Available: //unlocked, waiting to connect
|
||||
GBT_Lock(0);
|
||||
if((CONN_CC_GetState()==GBT_CC_4V) && (GBT_EDCAN_Input.chargeControl != FORCE_UNLOCK)){
|
||||
CONN_SetState(CONN_Occupied_waiting);
|
||||
GBT_LockState.error = 0;
|
||||
if((CONN_CC_GetState()==GBT_CC_4V) && (GBT_EDCAN_Input.chargeControl != FORCE_UNLOCK)){ // Исправить
|
||||
CONN_SetState(CONN_Preparing);
|
||||
GBT_Lock(1);
|
||||
|
||||
}
|
||||
break;
|
||||
case CONN_Occupied_waiting: //locked, waiting to charge
|
||||
|
||||
// Выйти из двух состояний в Finished если force unlock
|
||||
case CONN_Preparing: //locked, waiting to charge
|
||||
GBT_Lock(1);
|
||||
if(CONN_CC_GetState()==GBT_CC_4V){
|
||||
if(GBT_EDCAN_Input.chargeControl == CHARGING_ALLOWED){
|
||||
// RELAY_Write(RELAY_AUX, 1);
|
||||
// GBT_Start();
|
||||
CONN_SetState(CONN_Occupied_charging);
|
||||
CONN_SetState(CONN_Charging);
|
||||
}
|
||||
if(GBT_EDCAN_Input.chargeControl == FORCE_UNLOCK){
|
||||
CONN_SetState(CONN_Available);
|
||||
CONN_SetState(CONN_Available);//TODO: CONN_Occupied_complete
|
||||
}
|
||||
//if (CHARGING_NOT_ALLOWED) stay here
|
||||
}else{
|
||||
CONN_SetState(CONN_Available);
|
||||
}
|
||||
break;
|
||||
case CONN_Occupied_charging://charging, locked
|
||||
case CONN_Charging://charging, locked
|
||||
GBT_Lock(1);
|
||||
|
||||
if(GBT_State == GBT_COMPLETE){
|
||||
CONN_SetState(CONN_Occupied_complete);
|
||||
CONN_SetState(CONN_Finishing);
|
||||
}
|
||||
//
|
||||
|
||||
break;
|
||||
case CONN_Occupied_complete://charging completed, waiting to disconnect, unlocked
|
||||
case CONN_Finishing://charging completed, waiting to disconnect, unlocked
|
||||
GBT_Lock(0);
|
||||
// RELAY_Write(RELAY_AUX, 0);
|
||||
//TODO: Reconnection
|
||||
@@ -91,11 +94,11 @@ void CONN_Task(){
|
||||
void CONN_SetState(CONN_State_t state){
|
||||
connectorState = state;
|
||||
if(connectorState == CONN_Initializing) printf ("CONN_Initializing\n");
|
||||
if(connectorState == CONN_Error) printf ("CONN_Error\n");
|
||||
if(connectorState == CONN_Faulted) printf ("CONN_Error\n");
|
||||
if(connectorState == CONN_Available) printf ("CONN_Available\n");
|
||||
if(connectorState == CONN_Occupied_waiting) printf ("CONN_Occupied_waiting\n");
|
||||
if(connectorState == CONN_Occupied_charging) printf ("CONN_Occupied_charging\n");
|
||||
if(connectorState == CONN_Occupied_complete) printf ("CONN_Occupied_complete\n");
|
||||
if(connectorState == CONN_Preparing) printf ("CONN_Occupied_waiting\n");
|
||||
if(connectorState == CONN_Charging) printf ("CONN_Occupied_charging\n");
|
||||
if(connectorState == CONN_Finishing) printf ("CONN_Occupied_complete\n");
|
||||
GBT_EDCAN_Output.connectorState = state;
|
||||
}
|
||||
|
||||
@@ -104,7 +107,8 @@ void CONN_CC_ReadStateFiltered() {
|
||||
static uint32_t last_check_time;
|
||||
static uint8_t prev_state;
|
||||
|
||||
if((last_check_time+100)>HAL_GetTick()) return;
|
||||
// if((last_check_time+100)>HAL_GetTick()) return;
|
||||
if((HAL_GetTick()-last_check_time)<100) return;
|
||||
|
||||
last_check_time = HAL_GetTick();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user