/* * connector.h * * Created on: Jul 31, 2024 * Author: colorbass */ #ifndef INC_CONNECTOR_H_ #define INC_CONNECTOR_H_ #include "main.h" typedef enum __attribute__((packed)) { Unknown, Unplugged, Disabled, Preparing, AuthRequired, WaitingForEnergy, ChargingPausedEV, ChargingPausedEVSE, Charging, AuthTimeout, Finished, FinishedEVSE, FinishedEV, Replugging } CONN_State_t; typedef enum __attribute__((packed)){ CMD_NONE = 0, CMD_STOP = 1, CMD_START = 2, CMD_FORCE_UNLOCK = 3, CMD_REPLUG = 4, } CONN_Control_t; typedef enum __attribute__((packed)){ CONN_NO_ERROR = 0, CONN_ERR_INSULATION = 1, CONN_ERR_EMERGENCY = 2, CONN_ERR_DOOR_OPEN = 3, CONN_ERR_LOCK = 4, CONN_ERR_CONN_TEMP = 5, } CONN_Error_t; extern CONN_State_t connectorState; // Глобальная структура состояния коннектора и зарядки со стороны тачки (EV), // по возможности совместимая по именам полей с ChargingConnector_t на стороне станции. typedef struct { CONN_Control_t connControl; // 0 CONN_State_t connState; // 1 uint8_t SOC; // State of charge [%] // 2 uint32_t Power; // Power [W] // 3..6 uint32_t Energy; // Energy [Wh] // 7..10 uint16_t RequestedVoltage; // 1V/bit uint16_t RequestedCurrent; // 0.1A/bit uint16_t MeasuredVoltage; // 1V/bit uint16_t MeasuredCurrent; // 0.1A/bit uint16_t MeasuredVoltageSE; // 1V/bit uint16_t MeasuredCurrentSE; // 0.1A/bit uint8_t ContactorEnabled; // 1 - enabled, 0 - disabled (команда на замыкание контактора) CONN_Error_t chargingError; // 0 если ок uint8_t EvseConnected; uint32_t ChargingTime; // seconds uint8_t enableLoad; // 1 - enabled, 0 - disabled (команда на включение контактора) uint8_t connectorType; // 0 - NONE, 1 - GBT, 2 - CCS (для EV всегда GBT) } CONN_t; extern CONN_t CONN; void CONN_Init(); void CONN_Task(); void CONN_SetState(CONN_State_t state); uint8_t CONN_CC_GetStateRaw(); uint8_t CONN_CC_GetState(); float CONN_CC_GetAdc(); #endif /* INC_CONNECTOR_H_ */