fix reset, unplug delay 5s
This commit is contained in:
@@ -11,11 +11,31 @@
|
||||
|
||||
|
||||
CONN_State_t connectorState;
|
||||
|
||||
|
||||
extern uint8_t config_initialized;
|
||||
|
||||
|
||||
gbtCcState_t CC_STATE_FILTERED;
|
||||
|
||||
// name - уникальный идентификатор таймера для данного места использования
|
||||
// cond - условие, которое должно непрерывно держаться delay_ms мс
|
||||
// delay_ms - задержка в миллисекундах
|
||||
#define DELAYED_HOLD_MS(name, cond, delay_ms) \
|
||||
({ \
|
||||
static uint32_t name = 0; \
|
||||
uint8_t __hold_result = 0; \
|
||||
if (cond) { \
|
||||
if (name == 0) { \
|
||||
name = HAL_GetTick(); \
|
||||
} else if ((HAL_GetTick() - name) >= (uint32_t)(delay_ms)) {\
|
||||
__hold_result = 1; \
|
||||
name = 0; \
|
||||
} \
|
||||
} else { \
|
||||
name = 0; \
|
||||
} \
|
||||
__hold_result; \
|
||||
})
|
||||
|
||||
void CONN_Task(){
|
||||
|
||||
switch (connectorState){
|
||||
@@ -105,11 +125,11 @@ void CONN_Task(){
|
||||
|
||||
case Finished: // charging completed, waiting to disconnect, unlocked
|
||||
GBT_Lock(0);
|
||||
|
||||
|
||||
//TODO Force unlock time limit
|
||||
if(CONN.connControl == CMD_FORCE_UNLOCK) GBT_ForceLock(0);
|
||||
|
||||
if(CONN_CC_GetState()==GBT_CC_6V){
|
||||
|
||||
if(DELAYED_HOLD_MS(cc6v_hold_tick, CONN_CC_GetState()==GBT_CC_6V, 5000)){
|
||||
GBT_Lock(0);
|
||||
CONN_SetState(Unplugged);
|
||||
}
|
||||
|
||||
@@ -96,9 +96,11 @@ void SC_CommandHandler(ReceivedCommand_t* cmd) {
|
||||
SC_SendPacket(NULL, 0, RESP_SUCCESS);
|
||||
|
||||
while(huart2.gState == HAL_UART_STATE_BUSY_TX); // Ожидание завершения передачи
|
||||
|
||||
HAL_Delay(10);
|
||||
// 3. Выполняем программный сброс
|
||||
NVIC_SystemReset();
|
||||
return; // Сюда код уже не дойдет, но для компилятора нужно
|
||||
return; // Сюда код уже не дойдет, но для компилятора нxужно
|
||||
|
||||
case CMD_ISOLATION_STATUS:
|
||||
if (cmd->argument_length == sizeof(IsolationStatusPacket_t)) {
|
||||
|
||||
Reference in New Issue
Block a user