Files
CCSModuleSW30Web/Core/Inc/charger_control.h

99 lines
2.5 KiB
C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* 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_ */