Initial commit: CCU621_M firmware project with BLE debug link support.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,528 @@
|
||||
#ifndef _BS_OCPP_JSON_DATA_H_
|
||||
#define _BS_OCPP_JSON_DATA_H_
|
||||
|
||||
#include "publicdata/type.h"
|
||||
#include "publicdata/public_define.h"
|
||||
#include "bs_ocpp_str.h"
|
||||
|
||||
#if BS_OCPP_EN //OCPP平台使能
|
||||
#include "cJSON.h"
|
||||
#include <string.h>
|
||||
|
||||
#define OCPP_LOGMSG_DEBUG_EN 1 //打印标志
|
||||
#define OCPP_PRINTF_DEBUG_EN 1 //printf打印标志
|
||||
|
||||
#define MeterValuesRequest_MV_NUM 1 //电表数据组数量
|
||||
#define MeterValuesRequest_SV_NUM 8 //数据内容数量
|
||||
|
||||
#define GetConfiguration_NUM 20 //平台获取数据最大数量
|
||||
|
||||
#define StopTransactionRequest_TD_NUM 1 //停止充电 数据组数量
|
||||
#define StopTransactionRequest_SV_NUM 5 //停止充电 数据内容数量
|
||||
|
||||
#define E_CFG_MVMN_MeterValuesAlignedData (0x01)
|
||||
#define E_CFG_MVMN_MeterValuesSampledData (0x02)
|
||||
#define E_CFG_MVMN_StopTxnAlignedData (0x04)
|
||||
#define E_CFG_MVMN_StopTxnSampledData (0x08)
|
||||
|
||||
#define OCPP_DATE_LEN (30) //OCPP时间格式 数据长度 ISO 8601 格式。
|
||||
|
||||
#define OCPP_CiString20 (20+1)
|
||||
#define OCPP_CiString30 (30+1)
|
||||
#define OCPP_CiString25 (25+1)
|
||||
#define OCPP_CiString50 (50+1)
|
||||
#define OCPP_CiString100 (100+1)
|
||||
#define OCPP_CiString255 (255+1)
|
||||
#define OCPP_CiString300 (300+1)
|
||||
#define OCPP_CiString500 (500+1)
|
||||
|
||||
typedef enum{
|
||||
OCPP_NULL = 0,
|
||||
OCPP_BootNotification, //引导通知 桩->平台
|
||||
OCPP_StatusNotification, //状态通知 桩->平台
|
||||
OCPP_Heartbeat, //心跳 桩->平台
|
||||
OCPP_Authorize, //授权 桩->平台
|
||||
OCPP_MeterValues, //采样信息上传 桩->平台
|
||||
OCPP_StartTransaction, //开始交易 桩->平台
|
||||
OCPP_StopTransaction, //停止交易 桩->平台
|
||||
|
||||
OCPP_RemoteStartTransaction,//平台下发启动充电 平台->桩
|
||||
OCPP_RemoteStopTransaction, //平台下发停止充电 平台->桩
|
||||
OCPP_UnlockConnector, //解枪锁 平台->桩
|
||||
OCPP_UpdateFirmware, //固件升级 平台->桩
|
||||
OCPP_Reset, //重启 平台->桩
|
||||
OCPP_CancelReservation, //取消已经预定的充电桩 平台->桩
|
||||
OCPP_ChangeAvailability, //设置枪可用状态 平台->桩
|
||||
OCPP_ChangeConfiguration, //更改参数配置 平台->桩
|
||||
OCPP_TriggerMessage, //平台下发数据召测 平台->桩
|
||||
OCPP_GetConfiguration, //平台获取参数配置 平台->桩
|
||||
OCPP_ClearCache, //清楚桩内缓存 一般为白名单 平台->桩
|
||||
|
||||
OCPP_SendLocalList, //平台下发本地缓存列表
|
||||
OCPP_GetLocalListVersion, //获取卡号版本
|
||||
OCPP_GetDiagnostics, //获取诊断日志文件
|
||||
OCPP_DiagnosticsStatusNotification, /* 诊断日志上传状态 桩->平台 */
|
||||
OCPP_FirmwareStatusNotification, /* 固件升级状态 桩->平台 */
|
||||
}OCPP_CMD;
|
||||
|
||||
typedef enum{
|
||||
OCPP_StatusNotification_errorCode = 0, //StatusNotification errorCode
|
||||
OCPP_StatusNotification_statusCode,
|
||||
OCPP_RemoteStartTransactionResponse_statusCode,
|
||||
OCPP_RemoteStopTransactionResponse_statusCode,
|
||||
OCPP_StopTransactionRequest_reason,
|
||||
OCPP_UnlockConnectorResponse_stateCode,
|
||||
OCPP_DiagnosticsStatusNotification_status, /* 与 OCPP_DIAG_NOTIFY_PENDING_E 下标对齐:0 Idle … */
|
||||
OCPP_FirmwareStatusNotification_status, /* 与 OCPP_FW_NOTIFY_PENDING_E 下标对齐:0 Idle … */
|
||||
}OCPP_ENUM_DATA_TYPE;
|
||||
|
||||
//状态错误信息
|
||||
typedef enum{
|
||||
OCPP_ERRORCODE_ConnectorLockFailure, //连接器锁定故障
|
||||
OCPP_ERRORCODE_EVCommunicationError, //EV通讯故障
|
||||
OCPP_ERRORCODE_GroundFailure, //接地故障
|
||||
OCPP_ERRORCODE_HighTemperature, //高温
|
||||
OCPP_ERRORCODE_InternalError, //内部错误
|
||||
OCPP_ERRORCODE_LocalListConflict, //本地列表冲突
|
||||
OCPP_ERRORCODE_NoError, //无错误
|
||||
OCPP_ERRORCODE_OtherError, //其他错误
|
||||
OCPP_ERRORCODE_OverCurrentFailure, //过电流故障
|
||||
OCPP_ERRORCODE_PowerMeterFailure, //功率表故障
|
||||
OCPP_ERRORCODE_PowerSwitchFailure, //电源开关故障
|
||||
OCPP_ERRORCODE_ReaderFailure, //读卡器故障
|
||||
OCPP_ERRORCODE_ResetFailure, //重置失败
|
||||
OCPP_ERRORCODE_UnderVoltage, //电压过低
|
||||
OCPP_ERRORCODE_OverVoltage, //电压过高
|
||||
OCPP_ERRORCODE_WeakSignal, //信号弱
|
||||
}OCPP_STATUSNOTIFICATION_ERRORCODE;
|
||||
|
||||
//状态信息
|
||||
typedef enum{
|
||||
OCPP_STATUSCODE_Available, //空闲
|
||||
OCPP_STATUSCODE_Preparing, //准备
|
||||
OCPP_STATUSCODE_Charging, //充电
|
||||
OCPP_STATUSCODE_SuspendedEVSE, //暂停EVSE
|
||||
OCPP_STATUSCODE_SuspendedEV, //暂停EV
|
||||
OCPP_STATUSCODE_Finishing, //完成
|
||||
OCPP_STATUSCODE_Reserved, //预留
|
||||
OCPP_STATUSCODE_Unavailable, //不空闲
|
||||
OCPP_STATUSCODE_Faulted, //故障
|
||||
}OCPP_STATUSNOTIFICATION_STATUSCODE;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
//必选
|
||||
char chargePointVendor[OCPP_CiString20]; //"type": "string","maxLength": 20
|
||||
char chargePointModel[OCPP_CiString20]; //"type": "string","maxLength": 20
|
||||
//可选
|
||||
char chargePointSerialNumber[OCPP_CiString25]; //"type": "string","maxLength": 25
|
||||
char chargeBoxSerialNumber[OCPP_CiString25]; //"type": "string","maxLength": 25
|
||||
char firmwareVersion[OCPP_CiString20]; //"type": "string","maxLength": 50
|
||||
char iccid[OCPP_CiString30]; //"type": "string","maxLength": 20
|
||||
char imsi[OCPP_CiString30]; //"type": "string","maxLength": 20
|
||||
char meterType[OCPP_CiString25]; //"type": "string","maxLength": 25
|
||||
char meterSerialNumber[OCPP_CiString25]; //"type": "string","maxLength": 25
|
||||
|
||||
}BootNotificationRequest;
|
||||
typedef struct
|
||||
{
|
||||
//必选
|
||||
char status[OCPP_CiString20]; //"type": "string","enum": ["Accepted","Pending","Rejected"]
|
||||
char currentTime[OCPP_DATE_LEN]; //"type": "string","format": "date-time" 2022-09-09T16:40:00+04:00
|
||||
int interval; //"type": "integer"
|
||||
//可选
|
||||
}BootNotificationResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
//必选
|
||||
int connectorId; //连接器id
|
||||
char errorCode[OCPP_CiString30]; //枚举 ocpp_errorCode 当前的错误状态代码。应当表示充电桩或连接器当前的错误情况。
|
||||
/*"ConnectorLockFailure", 充电枪锁止机构故障
|
||||
"EVCommunicationError", 与电动车通信失败
|
||||
"GroundFailure", 接地故障
|
||||
"HighTemperature", 设备温度过高
|
||||
"InternalError", 内部错误
|
||||
"LocalListConflict", 本地授权列表冲突
|
||||
"NoError", 无错误
|
||||
"OtherError", 其他未分类错误
|
||||
"OverCurrentFailure", 过流故障
|
||||
"PowerMeterFailure", 电表故障
|
||||
"PowerSwitchFailure", 电源开关故障
|
||||
"ReaderFailure", 读卡器故障
|
||||
"ResetFailure", 复位失败
|
||||
"UnderVoltage", 欠压故障
|
||||
"OverVoltage", 过压故障
|
||||
"WeakSignal" 信号弱*/
|
||||
char status[OCPP_CiString20]; //枚举 statusCode 连接器的当前状态。
|
||||
/*"Available", 可用
|
||||
"Preparing", 准备中 插枪
|
||||
"Charging", 充电中
|
||||
"SuspendedEVSE", 充电桩主动暂停
|
||||
"SuspendedEV", 电动车请求暂停
|
||||
"Finishing", 结束中
|
||||
"Reserved", 已预约
|
||||
"Unavailable", 不可用
|
||||
"Faulted" 故障*/
|
||||
//可选
|
||||
char info[OCPP_CiString30]; //与错误相关的其他自由格式的信息
|
||||
char timestamp[OCPP_DATE_LEN]; //日期时间 状态变化发生的时间戳
|
||||
char vendorId[OCPP_CiString50]; //制造商标识。
|
||||
char vendorErrorCode[OCPP_CiString50]; //制造商特定的错误代码。
|
||||
}StatusNotificationRequest;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char value[OCPP_CiString20]; //必选 计量值的实际数值,类型为字符串以支持任意长度的数值。
|
||||
char context[OCPP_CiString20]; //可选 可选字段,表示计量上下文,例如 Sample.Periodic(定期采样)或 Sample.Alarm(报警采样)
|
||||
/*"Interruption.Begin", 中断开始 标识充电过程被主动中断的起始时刻(如用户手动停止、系统故障触发)。
|
||||
"Interruption.End", 中断结束 标识中断状态恢复的时间点(如故障修复后重新启动充电)。
|
||||
"Sample.Clock", 时钟同步采样 按固定时钟时间(如整点)触发的数据采样,与时间严格对齐。
|
||||
"Sample.Periodic", 定期采样 按固定间隔(如每15分钟)触发的数据采样,与起始时间无关。
|
||||
"Transaction.Begin", 交易开始 标识充电交易的起始时刻(如用户刷卡启动充电)。
|
||||
"Transaction.End", 交易结束 标识充电交易的终止时刻(如用户拔枪或余额耗尽)。
|
||||
"Trigger", 触发器事件 表示由外部信号(如远程控制命令)触发的动作,需结合具体 triggerMessage 使用。
|
||||
"Other" 其他事件
|
||||
*/
|
||||
char format[OCPP_CiString20]; //可选 可选字段,表示计量值的格式,例如 Raw 或 SignedData。/*"Raw" 明文,"SignedData" 签名加密*/
|
||||
char measurand[OCPP_CiString50]; //可选 可选字段,表示计量对象,例如 Energy.Active.Import.Register (导入的有效能量)。
|
||||
/*"Energy.Active.Export.Register", 累计放电电量(电表读数)Wh 或 kWh
|
||||
"Energy.Active.Import.Register", 累计充电电量(电表读数)Wh 或 kWh
|
||||
"Energy.Reactive.Export.Register", 无功电能导出累计值 (单位: kvarh/varh)
|
||||
"Energy.Reactive.Import.Register", 无功电能导入累计值 (单位: kvarh/varh)
|
||||
"Energy.Active.Export.Interval", 时间间隔内有功电能导出 (单位: kWh/Wh)
|
||||
"Energy.Active.Import.Interval", 时间间隔内有功电能导入 (单位: kWh/Wh)
|
||||
"Energy.Reactive.Export.Interval", 时间间隔内无功电能导出 (单位: kvarh/varh)
|
||||
"Energy.Reactive.Import.Interval", 时间间隔内无功电能导入 (单位: kvarh/varh)
|
||||
"Power.Active.Export", 瞬时值 有功功率(放电功率)W
|
||||
"Power.Active.Import", 瞬时值 有功功率(充电功率)W
|
||||
"Power.Offered", 充电桩可提供的最大功率 (单位: W/kW)
|
||||
"Power.Reactive.Export", 瞬时无功功率导出 (单位: var/kvar)
|
||||
"Power.Reactive.Import", 瞬时无功功率导入 (单位: var/kvar)
|
||||
"Power.Factor", 功率因数 (无单位, 范围: -1.0~1.0)
|
||||
"Current.Import", 输入电流(充电电流)
|
||||
"Current.Export", 输出电流(放电电流)
|
||||
"Current.Offered", 充电桩可提供的最大电流 (单位: A)
|
||||
"Voltage", 电压(相电压或线电压)
|
||||
"Frequency", 电网频率
|
||||
"Temperature", 温度(如充电桩内部温度)
|
||||
"SoC", 电池电量状态(State of Charge)
|
||||
"RPM" 电机转速 (单位: RPM)*/
|
||||
char phase[OCPP_CiString20]; //可选 可选字段,表示电力相位,例如 L1, L2, L3。
|
||||
/*"L1",
|
||||
"L2",
|
||||
"L3",
|
||||
"N",
|
||||
"L1-N",
|
||||
"L2-N",
|
||||
"L3-N",
|
||||
"L1-L2",
|
||||
"L2-L3",
|
||||
"L3-L1"*/
|
||||
char location[OCPP_CiString20]; //可选 可选字段,表示计量装置的位置,例如 Inlet, Outlet.
|
||||
/*"Cable",电缆
|
||||
"EV",车辆
|
||||
"Inlet",入口
|
||||
"Outlet",出口
|
||||
"Body"整桩 */
|
||||
char unit[OCPP_CiString20]; //可选 可选字段,表示计量单位,例如 Wh, kWh, V, A.
|
||||
/*"Wh",
|
||||
"kWh",
|
||||
"varh",
|
||||
"kvarh",
|
||||
"W",
|
||||
"kW",
|
||||
"VA",
|
||||
"kVA",
|
||||
"var",
|
||||
"kvar",
|
||||
"A",
|
||||
"V",
|
||||
"K",
|
||||
"Celcius",
|
||||
"Celsius", 摄氏度
|
||||
"Fahrenheit", 华氏度
|
||||
"Percent" 百分比*/
|
||||
}SampledValue;
|
||||
typedef struct
|
||||
{
|
||||
int connectorId; //必须 表示充电连接器的唯一标识符。
|
||||
int transactionId; //可选 当前充电事务的唯一标识符。这是可选字段,只有在当前有正在进行的充电事务时才有值。
|
||||
struct
|
||||
{
|
||||
char timestamp[OCPP_DATE_LEN]; //必须 记录取样数据的时间,ISO 8601 格式。
|
||||
SampledValue sampledValue[MeterValuesRequest_SV_NUM]; //必须 最大同时上送3种数据 代表一个或多个取样值,每个取样值包含以下字段:
|
||||
}meterValue[MeterValuesRequest_MV_NUM]; //必须 这是一个数组,包含一组计量值。每个计量值包含一个时间戳和对应的一组取样值。
|
||||
}MeterValuesRequest;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int connectorId; //可选 指示发起交易的连接器ID,即充电桩的具体插口编号。
|
||||
char idTag[OCPP_CiString20]; //必选 标识电动汽车用户或车主的唯一ID标识,用于识别用户。。
|
||||
struct
|
||||
{
|
||||
int chargingProfileId; //必选 充电配置的唯一标识符
|
||||
int transactionId; //可选 关联的事务ID,用于将此配置与特定充电事务关联
|
||||
int stackLevel; //必选 配置优先级,数值越高优先级越高
|
||||
char chargingProfilePurpose[OCPP_CiString25]; //必选 定义配置的用途
|
||||
/* "ChargePointMaxProfile", 充电桩最大功率配置
|
||||
"TxDefaultProfile", 默认事务配置
|
||||
"TxProfile" 特定事务配置*/
|
||||
char chargingProfileKind[OCPP_CiString20]; //必选 定义配置的时间类型
|
||||
/* "Absolute", 绝对时间配置
|
||||
"Recurring", 循环配置
|
||||
"Relative" 相对时间配置*/
|
||||
char recurrencyKind[OCPP_CiString20]; //可选 仅当chargingProfileKind为"Recurring"时有效
|
||||
/* "Daily",每天
|
||||
"Weekly" 每周*/
|
||||
char validFrom[OCPP_DATE_LEN]; //可选 "date-time"配置生效的开始时间。如果不存在,则配置文件在充电桩收到后立即有效。当ChargingProfilePurpose是TxProfile时,请勿使用。
|
||||
char validTo[OCPP_DATE_LEN]; //可选 "date-time"配置失效的结束时间。如果不存在,则该配置文件在被另一个 配置文件替换之前一直有效。当ChargingProfilePurpose是TxProfile时,请勿使用。
|
||||
struct
|
||||
{
|
||||
int duration; //可选 持续时间
|
||||
char startSchedule[OCPP_DATE_LEN]; //可选 "date-time" 充电计划开始时间
|
||||
char chargingRateUnit[OCPP_CiString20]; //必选 充电速率单位
|
||||
/* "A",
|
||||
"W"*/
|
||||
struct
|
||||
{
|
||||
int startPeriod; //必选 时段开始时间(相对于充电计划开始时间的秒数)
|
||||
float limit; //必选 该时段的最大充电速率
|
||||
int numberPhases; //可选 使用的相数(1-3)
|
||||
}chargingSchedulePeriod[3]; //必选 充电计划时段数组
|
||||
float minChargingRate; //可选 最小充电速率
|
||||
}chargingSchedule; //必选 充电计划配置
|
||||
}chargingProfile; //可选 充电配置参数,用于指定充电行为。
|
||||
}RemoteStartTransactionRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted"接受,"Rejected"拒绝
|
||||
}RemoteStartTransactionResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int transactionId; //当前充电事务的唯一标识符。
|
||||
}RemoteStopTransactionRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted"接受,"Rejected"拒绝
|
||||
}RemoteStopTransactionResponse;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int connectorId; //必选 指示发起交易的连接器ID,即充电桩的具体插口编号。
|
||||
int meterStart; //必选 交易开始时的电表读数,这通常是充电开始时的初始能量值。 Wh
|
||||
int reservationId; //可选 如果交易基于事先的预定进行,此字段包含预定的ID。
|
||||
char idTag[OCPP_CiString20]; //必选 标识电动汽车用户或车主的唯一ID标识,通过RFID卡或其他识别机制获取。
|
||||
char timestamp[OCPP_DATE_LEN]; //必选 "date-time" 交易开始的时间戳,表示交易开始的准确时间。
|
||||
}StartTransactionRequest;
|
||||
typedef struct
|
||||
{
|
||||
int transactionId; //必选 中央系统生成的唯一交易ID,用于后续的交易管理和追踪。
|
||||
struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //必选 指示idTag的当前状态,例如是否被接受、是否过期等。Accepted、Blocked、Expired、Invalid、ConcurrentTx
|
||||
char expiryDate[OCPP_DATE_LEN]; //可选 idTag有效期的截止日期
|
||||
char parentIdTag[OCPP_CiString20]; //可选 如果存在关联账户,这是父idTag。
|
||||
}idTagInfo; //必选 包含对idTag的验证和状态信息,其中包括:
|
||||
}StartTransactionResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int meterStop; //必选 交易结束时的电表读数,这通常是充电结束时的最终能量值 Wh
|
||||
int transactionId; //必选 要停止的充电事务的唯一标识符
|
||||
char idTag[OCPP_CiString20]; //可选 标识电动汽车用户或车主的唯一ID标识。
|
||||
char timestamp[OCPP_DATE_LEN]; //必选 交易结束的时间戳,表示交易停止的准确时间
|
||||
char reason[OCPP_CiString20]; //可选 指示停止充电的原因,这可以包括:正常结束、紧急停止等情况。 Local、Remote、EmergencyStop、EVDisconnected、HardReset、SoftReset、deAuthorized、Expired、EVConnectTimeout、Other
|
||||
struct
|
||||
{
|
||||
char timestamp[OCPP_DATE_LEN]; //必选
|
||||
SampledValue sampledValue[StopTransactionRequest_SV_NUM]; //必选
|
||||
}transactionData[StopTransactionRequest_TD_NUM]; //可选 包含与充电交易相关的更详细的数据,如中途的数据采集点
|
||||
}StopTransactionRequest;
|
||||
typedef struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //必选 指示idTag的当前状态,例如是否被接受、是否过期等。Accepted、Blocked、Expired、Invalid、ConcurrentTx
|
||||
char expiryDate[OCPP_DATE_LEN]; //可选 idTag有效期的截止日期。
|
||||
char parentIdTag[OCPP_CiString20]; //可选 果存在关联账户,这是父idTag。
|
||||
}idTagInfo;
|
||||
}StopTransactionResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int connectorId;
|
||||
}UnlockConnectorRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Unlocked","UnlockFailed","NotSupported"
|
||||
}UnlockConnectorResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int retries; //可选
|
||||
int retryInterval; //可选
|
||||
char retrieveDate[OCPP_DATE_LEN]; //必选
|
||||
char location[OCPP_CiString255]; //必选
|
||||
}UpdateFirmwareRequest;
|
||||
typedef struct
|
||||
{
|
||||
int test;
|
||||
}UpdateFirmwareResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char type[OCPP_CiString20]; // "Hard","Soft"
|
||||
}ResetRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted","Rejected"
|
||||
}ResetResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char idTag[OCPP_CiString20];
|
||||
}AuthorizeRequest;
|
||||
typedef struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
char expiryDate[OCPP_DATE_LEN]; //可选
|
||||
char parentIdTag[OCPP_CiString20]; //可选
|
||||
char status[OCPP_CiString20]; //必选
|
||||
/*"Accepted", 请求已被接受
|
||||
"Blocked", 请求被拒绝(因策略限制)
|
||||
"Expired", 授权凭证已过期
|
||||
"Invalid", 凭证无效或格式错误
|
||||
"ConcurrentTx" 存在并发事务(同一车辆/用户已在充电)*/
|
||||
}idTagInfo;
|
||||
|
||||
}AuthorizeResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int reservationId;
|
||||
}CancelReservationRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted","Rejected"
|
||||
}CancelReservationResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int connectorId;
|
||||
char type[OCPP_CiString20]; //"Inoperative","Operative"
|
||||
}ChangeAvailabilityRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted","Rejected",Scheduled"
|
||||
}ChangeAvailabilityResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char key[OCPP_CiString50];
|
||||
char value[OCPP_CiString300]; //
|
||||
}ChangeConfigurationRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted","Rejected","RebootRequired","NotSupported"
|
||||
}ChangeConfigurationResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int connectorId; //可选
|
||||
char requestedMessage[OCPP_CiString50]; //必选 "BootNotification","DiagnosticsStatusNotification","FirmwareStatusNotification","Heartbeat","MeterValues","StatusNotification"
|
||||
}TriggerMessageRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20]; //"Accepted","Rejected","NotImplemented"
|
||||
}TriggerMessageResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char key[GetConfiguration_NUM][OCPP_CiString50]; //array
|
||||
}GetConfigurationRequest;
|
||||
typedef struct
|
||||
{
|
||||
char unknownKey[GetConfiguration_NUM][OCPP_CiString50]; //array
|
||||
struct
|
||||
{
|
||||
int readonly; //必选
|
||||
char key[OCPP_CiString50]; //必选
|
||||
char value[OCPP_CiString100]; //可选
|
||||
}configurationKey[GetConfiguration_NUM];
|
||||
}GetConfigurationResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int res;
|
||||
}ClearCacheRequest;
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20];
|
||||
}ClearCacheResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char idTag[OCPP_CiString30];
|
||||
struct
|
||||
{
|
||||
char expiryDate[OCPP_DATE_LEN];
|
||||
char parentIdTag[OCPP_CiString20];
|
||||
char status[OCPP_CiString20];
|
||||
}idTagInfo;
|
||||
}LocalAuthorizationList;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int listVersion;
|
||||
char updateType[OCPP_CiString30];
|
||||
|
||||
int List_num;
|
||||
LocalAuthorizationList *list;
|
||||
}SendLocalListRequest;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char status[OCPP_CiString20];
|
||||
}SendLocalListResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int listVersion;
|
||||
}GetLocalListVersionResponse;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int retries; //可选
|
||||
int retryInterval; //可选
|
||||
char location[OCPP_CiString255]; //必须
|
||||
char startTime[OCPP_DATE_LEN]; //可选
|
||||
char stopTime[OCPP_DATE_LEN]; //可选
|
||||
}GetDiagnosticsRequest;
|
||||
typedef struct
|
||||
{
|
||||
char fileName[OCPP_CiString50];
|
||||
}GetDiagnosticsResponse;
|
||||
|
||||
typedef struct {
|
||||
char status[OCPP_CiString20];
|
||||
} DiagnosticsStatusNotificationRequest;
|
||||
|
||||
/** 与 DiagnosticsStatusNotification 载荷相同,仅 Action 名不同 */
|
||||
typedef DiagnosticsStatusNotificationRequest FirmwareStatusNotificationRequest;
|
||||
|
||||
cJSON* j_get_ocpp_json(OCPP_CMD cmd , void *data);
|
||||
int get_ocpp_data(OCPP_CMD cmd , void *data ,cJSON *root);
|
||||
|
||||
OCPP_CMD e_get_recv_json_cmd(char* cmd_str);
|
||||
const char *s_get_ocpp_cmd_str(OCPP_CMD cmd);
|
||||
|
||||
const char *s_get_ocpp_enum_data_str(OCPP_ENUM_DATA_TYPE type ,int cmd);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user