mirror of
https://gitee.com/san-bing/JChargePointProtocol
synced 2026-05-05 10:29:56 +08:00
291 lines
6.5 KiB
Protocol Buffer
291 lines
6.5 KiB
Protocol Buffer
/**
|
||
* 开源代码,仅供学习和交流研究使用,商用请联系三丙
|
||
* 微信: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;
|
||
}
|
||
|
||
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;
|
||
} |