/** * 开源代码,仅供学习和交流研究使用,商用请联系三丙 * 微信: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 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; }