Files
GbTModuleEV/Core/Inc/connector.h

88 lines
2.3 KiB
C
Executable File
Raw Permalink 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.
/*
* 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_ */