/* * charger_control.h * * Created on: Jul 29, 2024 * Author: colorbass */ #ifndef INC_CHARGER_CONTROL_H_ #define INC_CHARGER_CONTROL_H_ #include "main.h" #pragma pack(push, 1) // Статус // статус подключения к автомобилю 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_ERR_AC_FAULT = 6, // Нет напряжения сети CONN_ERR_CONTACTOR = 7, // Контактор неисправен CONN_ERR_HOTPLUG = 8, // Коннектор неожиданно отключился CONN_ERR_EV_COMM = 9, // Ошибка протокола связи с электромобилем CONN_ERR_PSU_FAULT = 10, // Ошибка PSU }CONN_Error_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 uint32_t RequestedPower; //1W/bit uint16_t RequestedVoltage; //1V/bit uint16_t RequestedCurrent; //0.1A/bit uint16_t MeasuredVoltage; //1V/bit uint16_t MeasuredCurrent; //0.1A/bit uint8_t EnableOutput; uint8_t outputEnabled; int16_t UnmetDemand; uint16_t WantedCurrent; //0.1A/bit CONN_Error_t chargingError; // 0 if okay uint8_t EvConnected; } ChargingConnector_t; #pragma pack(pop) extern ChargingConnector_t CONN; //информация о зарядке //база данных с хранением инфы //главный блок хранит в себе инфу о конфиге возможно во флеше //либо в charger_config.h //OCPP - универсальный блок типа void CONN_Init(); void CONN_Loop(); void CONN_PrintChargingTotal(); #endif /* INC_CHARGER_CONTROL_H_ */