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