Files
JChargePointProtocol/jcpp-infrastructure-proto/src/main/proto/protocol.proto
南风 f28aeee87c !11 命令码:0x17 (参数配置帧上行命令)
* BMS 0x17 (参数配置帧上行命令) = 更新BmsParamConfigReport
* BMS 0x17 (参数配置帧上行命令) = additionalInfo里塞了一遍,固定字段里也塞了一遍,改成只塞一遍固定字段
* BMS 0x17 (参数配置帧上行命令) = 删除ParamConfigRequest
* BMS 0x17 (参数配置帧上行命令) = 修改模型命名BmsParamConfigReport和相关的类重新命名
* BMS 0x17 (参数配置帧上行命令) = 修改cmd  paramConfigProto = 33
* BMS 0x17 (参数配置帧上行命令) = 修改protocol.proto、数值类型改成BigDecimal
* BMS 0x17 (参数配置帧上行命令) + 上行BMS参数配置报文
* BMS   0x17 (参数配置帧上行命令)
* 0x17 (参数配置帧上行命令)
* 命令码:0x17 (参数配置帧上行命令)
* 命令码:0x17 (参数配置帧上行命令)
* Revert "命令码:0x17 (参数配置帧上行命令)"
* 命令码:0x17 (参数配置帧上行命令)
2025-08-01 03:00:50 +00:00

310 lines
7.5 KiB
Protocol Buffer
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.
/**
* 开源代码,仅供学习和交流研究使用,商用请联系三丙
* 微信mohan_88888
* 抖音:程序员三丙
* 付费课程知识星球https://t.zsxq.com/aKtXo
*/
syntax = "proto3";
package infrastructureProto;
option java_package = "sanbing.jcpp.proto.gen";
option java_outer_classname = "ProtocolProto";
service ProtocolInterface {
rpc onDownlink(stream RequestMsg) returns (stream ResponseMsg) {}
}
message RequestMsg {
int64 ts = 1;
TracerProto tracer = 2;
ConnectRequestMsg connectRequestMsg = 10;
DownlinkRequestMessage downlinkRequestMessage = 11;
}
message ResponseMsg {
TracerProto tracer = 2;
ConnectResponseMsg connectResponseMsg = 12;
DownlinkResponseMessage downlinkResponseMsg = 13;
}
message ConnectResponseMsg {
ConnectResponseCode responseCode = 1;
string errorMsg = 2;
}
message ConnectRequestMsg {
string nodeId = 1;
}
enum ConnectResponseCode {
ACCEPTED = 0;
REFUSE = 1;
}
message TracerProto {
string id = 1;
string origin = 2;
int64 ts = 3;
}
message UplinkQueueMessage {
int64 messageIdMSB = 1;
int64 messageIdLSB = 2;
int64 sessionIdMSB = 3;
int64 sessionIdLSB = 4;
string messageKey = 5;
string protocolName = 6;
bytes requestData = 10;
LoginRequest loginRequest = 21;
HeartBeatRequest heartBeatRequest = 22;
VerifyPricingRequest verifyPricingRequest = 23;
QueryPricingRequest queryPricingRequest = 24;
GunRunStatusProto gunRunStatusProto = 25;
ChargingProgressProto chargingProgressProto = 26;
SetPricingResponse setPricingResponse = 27;
RemoteStartChargingResponse remoteStartChargingResponse = 28;
RemoteStopChargingResponse remoteStopChargingResponse = 29;
TransactionRecord transactionRecord = 30;
BmsParamConfigReport bmsParamConfigReport = 33;
}
message DownlinkRequestMessage {
int64 messageIdMSB = 1;
int64 messageIdLSB = 2;
int64 sessionIdMSB = 3;
int64 sessionIdLSB = 4;
string protocolName = 6;
string pileCode = 7;
optional int64 requestIdMSB = 8;
optional int64 requestIdLSB = 9;
optional bytes requestData = 10;
string downlinkCmd = 20;
LoginResponse loginResponse = 21;
VerifyPricingResponse verifyPricingResponse = 22;
QueryPricingResponse queryPricingResponse = 23;
SetPricingRequest setPricingRequest = 24;
RemoteStartChargingRequest remoteStartChargingRequest = 25;
RemoteStopChargingRequest remoteStopChargingRequest = 26;
TransactionRecordAck transactionRecordAck = 27;
}
message DownlinkResponseMessage {
bool success = 1;
optional string error = 2;
}
message LoginRequest {
string pileCode = 2;
string credential = 3;
string remoteAddress = 4;
string nodeId = 10;
string nodeHostAddress = 11;
int32 nodeRestPort = 12;
int32 nodeGrpcPort = 13;
optional string additionalInfo = 20;
}
message LoginResponse {
bool success = 1;
string pileCode = 2;
}
message HeartBeatRequest {
string pileCode = 3;
string remoteAddress = 4;
string nodeId = 10;
string nodeHostAddress = 11;
int32 nodeRestPort = 12;
int32 nodeGrpcPort = 13;
optional string additionalInfo = 20;
}
message VerifyPricingRequest {
string pileCode = 4;
int64 pricingId = 30;
optional string pricingModel = 31;
optional string additionalInfo = 20;
}
message VerifyPricingResponse {
bool success = 1;
int64 pricingId = 30;
}
message QueryPricingRequest {
string pileCode = 4;
optional string additionalInfo = 20;
}
message QueryPricingResponse {
string pileCode = 4;
int64 pricingId = 30;
PricingModelProto pricingModel = 1;
}
message PricingModelProto {
PricingModelType type = 3;
PricingModelRule rule = 4;
string standardElec = 5;
string standardServ = 6;
map<int32, FlagPriceProto> flagPrice = 8;
repeated PeriodProto period = 9;
}
message PeriodProto {
int32 sn = 1;
string begin = 2;
string end = 3;
PricingModelFlag flag = 4;
}
message FlagPriceProto {
PricingModelFlag flag = 1;
string elec = 2;
string serv = 3;
}
enum PricingModelType {
CHARGE = 0; // 充电费率模型
DISCHARGE = 1; // 放电费率模型
}
enum PricingModelRule {
STANDARD = 0;
SPLIT_TIME = 1;
}
enum PricingModelFlag {
TOP = 0; // 尖峰
PEAK = 1; // 峰
FLAT = 2; // 平
VALLEY = 3; // 谷
DEEP = 4; // 深谷
}
enum GunRunStatus {
IDLE = 0; // 空闲
INSERTED = 1; // 已插枪
CHARGING = 2; // 充电中
CHARGE_COMPLETE = 3; // 充电完成
DISCHARGE_READY = 4; // 放电准备
DISCHARGING = 5; // 放电中
DISCHARGE_COMPLETE = 6; // 放电完成
RESERVED = 7; // 预约
FAULT = 8; // 故障
UNKNOWN = 9; // 未知
}
message GunRunStatusProto {
int64 ts = 1;
string pileCode = 4;
string gunCode = 5;
GunRunStatus GunRunStatus = 41;
repeated string faultMessages = 6;
optional string additionalInfo = 20;
}
message ChargingProgressProto {
int64 ts = 1;
string pileCode = 4;
string gunCode = 5;
string tradeNo = 6;
string outputVoltage = 7;
string outputCurrent = 8;
int32 soc = 9;
int32 totalChargingDurationMin = 10;
string totalChargingEnergyKWh = 11;
string totalChargingCostYuan = 12;
optional string additionalInfo = 20;
}
message SetPricingRequest {
string pileCode = 4;
int64 pricingId = 30;
PricingModelProto pricingModel = 1;
}
message SetPricingResponse {
bool success = 1;
string pileCode = 4;
int64 pricingId = 30;
}
message RemoteStartChargingRequest {
string pileCode = 4;
string gunCode = 5;
string tradeNo = 6;
string limitYuan = 7;
optional string additionalInfo = 20;
}
message RemoteStartChargingResponse {
int64 ts = 1;
string pileCode = 4;
string gunCode = 5;
string tradeNo = 6;
bool success = 7;
string failReason = 8;
optional string additionalInfo = 20;
}
message RemoteStopChargingRequest {
string pileCode = 4;
string gunCode = 5;
}
message RemoteStopChargingResponse {
int64 ts = 1;
string pileCode = 4;
string gunCode = 5;
bool success = 7;
string failReason = 8;
optional string additionalInfo = 20;
}
message TransactionRecord {
string pileCode = 4;
string gunCode = 5;
string tradeNo = 6;
int64 startTs = 51;
int64 endTs = 52;
string topEnergyKWh = 53;
string topAmountYuan = 54;
string peakEnergyKWh = 55;
string peakAmountYuan = 56;
string flatEnergyKWh = 57;
string flatAmountYuan = 58;
string valleyEnergyKWh = 59;
string valleyAmountYuan = 60;
string deepEnergyKWh = 61;
string deepAmountYuan = 62;
string totalEnergyKWh = 63;
string totalAmountYuan = 64;
int64 tradeTs = 65;
string stopReason = 66;
optional string additionalInfo = 20;
}
message TransactionRecordAck {
string tradeNo = 6;
bool success = 7;
}
message BmsParamConfigReport {
int64 ts = 1; // 时间戳
string pileCode = 2; // 桩编码
string gunCode = 3; // 枪编码
string tradeNo = 4; // 交易号
string maxSingleCellVoltage = 5; // BMS单体最高允许充电电压 (V)
string maxChargeCurrent = 6; // BMS最高允许充电电流 (A)
string ratedEnergy = 7; // BMS动力蓄电池标称总能量 (kWh)
string maxTotalChargeVoltage = 8; // BMS最高允许充电总电压 (V)
string maxTemperature = 9; // BMS最高允许温度 (℃)
string soc = 10; // BMS荷电状态SOC (%)
string currentBatteryVoltage = 11; // BMS当前电池电压 (V)
string pileMaxOutputVoltage = 12; // 电桩最高输出电压 (V)
string pileMinOutputVoltage = 13; // 电桩最低输出电压 (V)
string pileMaxOutputCurrent = 14; // 电桩最大输出电流 (A)
string pileMinOutputCurrent = 15; // 电桩最小输出电流 (A)
}