intermediate version

This commit is contained in:
2024-11-15 19:31:10 +03:00
parent 5b424697c7
commit 5ea401f34d
176 changed files with 21963 additions and 20712 deletions

32
Core/Src/connector.c Normal file → Executable file
View 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();