syntax = "proto3"; option optimize_for = LITE_RUNTIME; // 添加包名 package VRC; // V2X 数据帧,参照V2X标准ASN文件、CSAE 53-2020和、CSAE 157-2020 message V2xPosPb { double lat = 1; double lng = 2; oneof elevOpt { double elev = 3; } } message V2xPosAccuracyPb { double semiMajor = 1; double semiMinor = 2; double orientation = 3; } message V2xPosCfdSetPb { int32 pos = 1; oneof elevOpt { int32 elev = 2; } } message V2xMotionCfdSetPb { oneof speedCfdOpt { int32 speedCfd = 1; } oneof headingCfdOpt { int32 headingCfd = 2; } oneof steerCfdOpt { int32 steerCfd = 3; } } message V2xAccelSetPb { double lon = 1; double lat = 2; double vert = 3; double yaw = 4; } message V2xBrakeSystemStatusPb { oneof brakePadelOpt { int32 brakePadel = 1; } oneof wheelBrakesOpt { int32 wheelBrakes = 2; } oneof tractionOpt { int32 traction = 3; } oneof absOpt { int32 abs = 4; } oneof scsOpt { int32 scs = 5; } oneof brakeBoostOpt { int32 brakeBoost = 6; } oneof auxBrakesOpt { int32 auxBrakes = 7; } } message V2xVehicleSizePb { double width = 1; double length = 2; oneof heightOpt { double height = 3; } } message V2xVehClassPb { int32 classification = 1; oneof fuelTypeOpt { int32 fuelType = 2; } } message V2xSafetyExtPb { oneof eventsOpt { int32 events = 1; } V2xPathHistoryPb pathHistory = 2; V2xPathPrePb pathPrediction = 3; oneof lightsOpt { int32 lights = 4; } } message V2xPathHistoryPb { V2xFullPosVectorPb initialPosition = 1; oneof currGnssStatusOpt { int32 currGnssStatus = 2; } repeated V2xPathHistoryPointPb crumbData = 3; } message V2xFullPosVectorPb { oneof utcTimeOpt { double utcTime = 1; } V2xPosPb pos = 2; oneof headingOpt { double heading = 3; } oneof transmissionOpt { int32 transmission = 4; } oneof speedOpt { double speed = 5; } V2xPosCfdSetPb posAccuracy = 6; oneof timeConfidenceOpt { int32 timeConfidence = 7; } V2xMotionCfdSetPb motionCfd = 8; } message V2xPathHistoryPointPb { V2xPosPb pos = 1; double utcTime = 2; oneof speedOpt { double speed = 3; } V2xPosCfdSetPb posAccuracy = 4; oneof headingOpt { double heading = 5; } } message V2xPathPrePb { double radiusOfCurve = 1; int32 confidence = 2; } message V2xVehEmergencyExtPb { oneof responseTypeOpt { int32 responseType = 1; } oneof sirenUseOpt { int32 sirenUse = 2; } oneof lightsUseOpt { int32 lightsUse = 3; } } message V2xNodePb { oneof nameOpt { string name = 1; } V2xNodeRefIdPb id = 2; V2xPosPb refPos = 3; repeated V2xLinkPb inLinks = 4; repeated V2xLinkExPb inLinksEx = 5; V2xProhibitedZonePb prohibitedZone = 6; } message V2xNodeRefIdPb { oneof regionOpt { int32 region = 1; } int32 id = 2; } message V2xLinkPb { oneof nameOpt { string name = 1; } V2xNodeRefIdPb upstreamNodeId = 2; repeated V2xSpeedLimitPb speedLimits = 3; double linkWidth = 4; repeated V2xPosPb points = 5; repeated V2xMovementPb movements = 6; repeated V2xLanePb lanes = 7; } message V2xSpeedLimitPb { int32 type = 1; double speed = 2; } message V2xMovementPb { V2xNodeRefIdPb remoteIntersection = 1; oneof phaseIdOpt { int32 phaseId = 2; } } message V2xLanePb { int32 laneId = 1; oneof laneWidthOpt { double laneWidth = 2; } V2xLaneAttributesPb laneAttributes = 3; oneof maneuversOpt { int32 maneuvers = 4; } repeated V2xConnectionPb connectsTo = 5; repeated V2xSpeedLimitPb speedLimits = 6; repeated V2xPosPb points = 7; } message V2xLaneAttributesPb { oneof shareWithOpt { int32 shareWith = 1; } V2xLaneTypeAttributesPb laneType = 2; } message V2xLaneTypeAttributesPb { oneof choice { int32 vehicle = 1; int32 crosswalk = 2; int32 bikeLane = 3; int32 sidewalk = 4; int32 median = 5; int32 striping = 6; int32 trackedVehicle = 7; int32 parking = 8; } } message V2xConnectionPb { V2xNodeRefIdPb remoteIntersection = 1; V2xConnectingLanePb connectingLane = 2; oneof phaseIdOpt { int32 phaseId = 3; } } message V2xConnectingLanePb { int32 lane = 1; oneof maneuverOpt { int32 maneuver = 2; } } message V2xLinkExPb { oneof nameOpt { string name = 1; } V2xNodeRefIdPb upstreamNodeId = 2; repeated V2xSpeedLimitPb speedLimits = 3; oneof linkWidthOpt { double linkWidth = 4; } repeated V2xPosPb refLine = 5; repeated V2xMovementExPb movementsEx = 6; repeated V2xSectionPb sections = 7; } message V2xMovementExPb { V2xNodeRefIdPb remoteIntersection = 1; oneof phaseIdOpt { int32 phaseId = 2; } oneof turnDirectionOpt { int32 turnDirection = 3; } } message V2xSectionPb { int32 secId = 1; repeated V2xLaneExPb lanes = 2; } message V2xLaneExPb { int32 laneRefId = 1; oneof laneWidthOpt { double laneWidth = 2; } V2xLaneAttributesPb laneAttributes = 3; oneof maneuversOpt { int32 maneuvers = 4; } repeated V2xConnectionExPb connectsToEx = 5; repeated V2xSpeedLimitPb speedLimits = 6; repeated V2xStPointPb stPoints = 7; V2xLaneLineTypePb laneLineType = 8; } message V2xConnectionExPb { V2xNodeRefIdPb remoteIntersection = 1; V2xSignalWaitingLanePb swl = 2; repeated V2xConnectingLaneExPb connectingLane = 3; oneof phaseIdOpt { int32 phaseId = 4; } oneof turnDirectionOpt { int32 turnDirection = 5; } } message V2xSignalWaitingLanePb { double laneWidth = 1; repeated V2xPosPb points = 2; repeated int32 allowedPhaseIds = 3; } message V2xConnectingLaneExPb { int32 targetSection = 1; int32 targetLane = 2; oneof connectingLaneWidthOpt { double connectingLaneWidth = 3; } repeated V2xPosPb connectingLanePoints = 4; oneof isolatedConnectingLaneOpt { bool isolatedConnectingLane = 5; } } message V2xStPointPb { double sAxis = 1; double tAxis = 2; } message V2xLaneLineTypePb { int32 leftLaneLine = 1; int32 rightLaneLine = 2; } message V2xProhibitedZonePb { repeated V2xPosPb centralCircleProhibitedZone = 1; repeated V2xPolygonPb nonMotorVehicleProhibitedZones = 2; repeated V2xPolygonPb gridLineMarkingProhibitedZones = 3; } message V2xPolygonPb { repeated V2xPosPb list = 1; } message V2xPtcPb { int32 ptcType = 1; int32 ptcId = 2; int32 source = 3; oneof idOpt { bytes id = 4; } double utcTime = 5; V2xPosPb pos = 6; V2xPosCfdSetPb posConfidence = 7; oneof transmissionOpt { int32 transmission = 8; } double speed = 9; double heading = 10; oneof angleOpt { double angle = 11; } V2xMotionCfdSetPb motionCfd = 12; V2xAccelSetPb accelSet = 13; V2xVehicleSizePb size = 14; V2xVehClassPb vehicleClass = 15; } message V2xIntersectionStatePb { V2xNodeRefIdPb intersectionId = 1; int32 status = 2; oneof utcTimeOpt { double utcTime = 3; } oneof timeConfidenceOpt { int32 timeConfidence = 4; } repeated V2xPhasePb phases = 5; } message V2xPhasePb { int32 id = 1; repeated V2xPhaseStatePb phaseStates = 2; } message V2xPhaseStatePb { int32 light = 1; V2xTimeChangeDetailsPb timing = 2; } message V2xTimeChangeDetailsPb { oneof choice { V2xTimeCountingDownPb counting = 1; V2xUtcTimingPb utcTiming = 2; } } message V2xTimeCountingDownPb { double startTime = 1; oneof minEndTimeOpt { double minEndTime = 2; } oneof maxEndTimeOpt { double maxEndTime = 3; } double likelyEndTime = 4; oneof timeConfidenceOpt { int32 timeConfidence = 5; } oneof nextStartTimeOpt { double nextStartTime = 6; } oneof nextDurationOpt { double nextDuration = 7; } } message V2xUtcTimingPb { double startUtcTime = 1; oneof minEndUtcTimeOpt { double minEndUtcTime = 2; } oneof maxEndUtcTimeOpt { double maxEndUtcTime = 3; } double likelyEndUtcTime = 4; oneof timeConfidenceOpt { int32 timeConfidence = 5; } oneof nextStartUtcTimeOpt { double nextStartUtcTime = 6; } oneof nextEndUtcTimeOpt { double nextEndUtcTime = 7; } } message V2xRteDataPb { int32 rteId = 1; int32 eventType = 2; int32 eventSource = 3; V2xPosPb eventPos = 4; oneof eventRadiusOpt { double eventRadius = 5; } oneof descriptionOpt { string description = 6; } V2xRsiTimeDetailsPb timeDetails = 7; oneof priorityOpt { int32 priority = 8; } repeated V2xRefPathPb referencePaths = 9; repeated V2xRefLinkPb referenceLinks = 10; oneof eventConfidenceOpt { int32 eventConfidence = 11; } } message V2xRsiTimeDetailsPb { oneof startTimeOpt { double startTime = 1; } oneof endTimeOpt { double endTime = 2; } oneof endTimeConfidenceOpt { int32 endTimeConfidence = 3; } } message V2xRefPathPb { repeated V2xPosPb activePath = 1; double pathRadius = 2; } message V2xRefLinkPb { V2xNodeRefIdPb upstreamNodeId = 1; V2xNodeRefIdPb downstreamNodeId = 2; oneof referenceLanesOpt { int32 referenceLanes = 3; } } message V2xRtsDataPb { int32 rtsId = 1; int32 signType = 2; V2xPosPb signPos = 3; oneof descriptionOpt { string description = 4; } V2xRsiTimeDetailsPb timeDetails = 5; oneof priorityOpt { int32 priority = 6; } repeated V2xRefPathPb referencePaths = 7; repeated V2xRefLinkPb referenceLinks = 8; V2xAuxiliarySignPb auxiliarySign = 9; } message V2xAuxiliarySignPb { oneof signWithVehicleTypeOpt { int32 signWithVehicleType = 1; } oneof signDirectionOpt { int32 signDirection = 2; } } message V2xRtcmMsgPb { oneof revOpt { int32 rev = 1; } oneof rtcmIdOpt { int32 rtcmId = 2; } bytes payload = 3; } message V2xVehicleCoordinationPb { bytes vehId = 1; V2xDriveSuggestionPb driveSuggestion = 2; repeated V2xPathPlanningPointPb pathGuidance = 3; oneof infoOpt { int32 info = 4; } } message V2xDriveSuggestionPb { int32 suggestion = 1; oneof lifeTimeOpt { double lifeTime = 2; } V2xRefLinkPb relatedLink = 3; V2xRefPathPb relatedPath = 4; } message V2xPathPlanningPointPb { V2xRefLinkPb posInMap = 1; V2xPosPb pos = 2; V2xPosCfdSetPb posAccuracy = 3; oneof speedOpt { double speed = 4; } oneof speedCfdOpt { int32 speedCfd = 5; } oneof headingOpt { double heading = 6; } oneof headingCfdOpt { int32 headingCfd = 7; } V2xAccelSetPb accelSet = 8; V2xAccSet4WayConfidencePb acc4WayConfidence = 9; oneof estimatedTimeOpt { double estimatedTime = 10; } oneof timeConfidenceOpt { int32 timeConfidence = 11; } } message V2xAccSet4WayConfidencePb { int32 lonAccConfidence = 1; int32 latAccConfidence = 2; int32 vertAccConfidence = 3; int32 yawRateCon = 4; } message V2xLaneCoordinationPb { V2xRefLinkPb targetLane = 1; V2xRefPathPb relatedPath = 2; oneof tBeginOpt { double tBegin = 3; } oneof tEndOpt { double tEnd = 4; } oneof recommendedSpeedOpt { double recommendedSpeed = 5; } oneof recommendedBehaviorOpt { int32 recommendedBehavior = 6; } oneof infoOpt { int32 info = 7; } oneof descriptionOpt { string description = 8; } } message V2xDetectedPtcDataPb { V2xPtcPb ptc = 1; V2xObjectSizeConfidencePb objSizeConfidence = 2; oneof detectedPtcTypeOpt { int32 detectedPtcType = 3; } oneof typeConfidenceOpt { int32 typeConfidence = 4; } V2xAccSet4WayConfidencePb acc4WayConfidence = 5; oneof statusDurationOpt { double statusDuration = 6; } V2xPathHistoryPb pathHistory = 7; repeated V2xPlanningPb planningList = 8; oneof trackingOpt { double tracking = 9; } V2xPolygonPb polygon = 10; V2xTypeRelatedExtPb typeRelatedExt = 11; } message V2xObjectSizeConfidencePb { int32 widthConf = 1; int32 lengthConf = 2; oneof heightConfOpt { int32 heightConf = 3; } } message V2xPlanningPb { oneof durationOpt { double duration = 1; } oneof planConfidenceOpt { int32 planConfidence = 2; } oneof drivingBehaviorOpt { int32 drivingBehavior = 3; } repeated V2xPathPlanningPointPb pathPlanning = 4; } message V2xTypeRelatedExtPb { oneof choice { V2xMotorDataExtensionPb motorExt = 1; V2xNonMotorDataExtensionPb nonMotorExt = 2; } } message V2xMotorDataExtensionPb { oneof lightsOpt { int32 lights = 1; } V2xAttitudePb vehAttitude = 2; V2xAttitudeConfidencePb vehAttitudeConfidence = 3; V2xAngularVelocityPb vehAngVel = 4; V2xAngularVelocityConfidencePb vehAngVelConfidence = 5; } message V2xAttitudePb { int32 pitch = 1; int32 roll = 2; int32 yaw = 3; } message V2xAttitudeConfidencePb { int32 pitchConfidence = 1; int32 rollRateConfidence = 2; int32 yawRate = 3; } message V2xAngularVelocityPb { double pitchRate = 1; double rollRate = 2; double yawRate = 3; } message V2xAngularVelocityConfidencePb { int32 pitchRate = 1; int32 rollRate = 2; int32 yawRate = 3; } message V2xNonMotorDataExtensionPb { double overallRadius = 1; V2xNonMotorDataPb nonMotorData = 2; } message V2xNonMotorDataPb { int32 basicType = 1; V2xPropelledInformationPb propulsion = 2; oneof clusterSizeOpt { int32 clusterSize = 3; } oneof attachmentOpt { int32 attachment = 4; } V2xPersonalExtensionsPb personalExt = 5; V2xRoadWorkerExtensionsPb roadWorkerExt = 6; V2xPersonalRequestPb personalReq = 7; } message V2xPropelledInformationPb { oneof choice { int32 human = 1; int32 animal = 2; int32 motor = 3; } } message V2xPersonalExtensionsPb { oneof useStateOpt { int32 useState = 1; } oneof assistTypeOpt { int32 assistType = 2; } } message V2xRoadWorkerExtensionsPb { oneof workerTypeOpt { int32 workerType = 1; } oneof activityTypeOpt { int32 activityType = 2; } } message V2xPersonalRequestPb { oneof crossingOpt { int32 crossing = 1; } } message V2xDetectedObstacleDataPb { int32 obsType = 1; oneof objTypeConfidenceOpt { int32 objTypeConfidence = 2; } int32 obsId = 3; int32 source = 4; double utcTime = 5; V2xPosPb pos = 6; V2xPosCfdSetPb posConfidence = 7; double speed = 8; oneof speedCfdOpt { int32 speedCfd = 9; } double heading = 10; oneof headingCfdOpt { int32 headingCfd = 11; } oneof verSpeedOpt { double verSpeed = 12; } oneof verSpeedConfidenceOpt { int32 verSpeedConfidence = 13; } V2xAccelSetPb accelSet = 14; V2xObjectSizePb size = 15; V2xObjectSizeConfidencePb objSizeConfidence = 16; oneof trackingOpt { double tracking = 17; } V2xPolygonPb polygon = 18; } message V2xObjectSizePb { double width = 1; double length = 2; oneof heightOpt { double height = 3; } } message V2xIarDataPb { V2xPathPlanningPointPb currentPos = 1; repeated V2xPathPlanningPointPb pathPlanning = 2; oneof currentBehaviorOpt { int32 currentBehavior = 3; } repeated V2xDriveRequestPb reqs = 4; } message V2xDriveRequestPb { int32 reqId = 1; int32 status = 2; oneof reqPriorityOpt { int32 reqPriority = 3; } oneof targetVehOpt { bytes targetVeh = 4; } oneof targetRsuOpt { bytes targetRsu = 5; } V2xReqInfoPb info = 6; oneof lifeTimeOpt { double lifeTime = 7; } } message V2xReqInfoPb { oneof choice { V2xReqLaneChangePb laneChange = 1; V2xReqClearTheWayPb clearTheWay = 2; V2xReqSignalPriorityPb signalPriority = 3; V2xReqSensorSharingPb sensorSharing = 4; V2xReqParkingAreaPb parking = 5; } } message V2xReqLaneChangePb { V2xNodeRefIdPb upstreamNode = 1; V2xNodeRefIdPb downstreamNode = 2; int32 targetLane = 3; } message V2xReqClearTheWayPb { V2xNodeRefIdPb upstreamNode = 1; V2xNodeRefIdPb downstreamNode = 2; int32 targetLane = 3; V2xRefPathPb relatedPath = 4; oneof tBeginOpt { double tBegin = 5; } oneof tEndOpt { double tEnd = 6; } } message V2xReqSignalPriorityPb { V2xNodeRefIdPb intersectionId = 1; V2xMovementExPb requiredMov = 2; oneof estimatedArrivalTimeOpt { double estimatedArrivalTime = 3; } oneof distance2IntersectionOpt { double distance2Intersection = 4; } } message V2xReqSensorSharingPb { repeated V2xRefPathPb detectArea = 1; } message V2xReqParkingAreaPb { V2xVehClassPb vehicleClass = 1; int32 req = 2; oneof parkingTypeOpt { int32 parkingType = 3; } oneof expectedParkingSlotIdOpt { int32 expectedParkingSlotId = 4; } } message V2xPaymentPb { oneof choice { V2xRstPb initialzationRequest = 1; V2xVsiPb initialzationResponse = 2; V2xActionRequestPb actionRequest = 3; V2xActionResponsePb actionResponse = 4; } } message V2xRstPb { double utcTime = 1; bytes id = 2; repeated V2xApplicationParameterPb paymentList = 3; } message V2xApplicationParameterPb { int32 pid = 1; V2xPaymentInfoPb paymentInfo = 2; } message V2xPaymentInfoPb { oneof choice { V2xPaymentInfoType1Pb paymentInfoType1 = 1; } } message V2xPaymentInfoType1Pb { V2xTollingNodeInfoPb tollingNodeInfo = 1; V2xTollInfoPb tollInfo = 2; oneof serviceInfoOpt { bytes serviceInfo = 3; } } message V2xTollingNodeInfoPb { oneof idOpt { int32 id = 1; } V2xPosPb pos = 2; oneof tollingNodeTypeOpt { int32 tollingNodeType = 3; } oneof tollingDirectionOpt { int32 tollingDirection = 4; } } message V2xTollInfoPb { oneof priceOpt { double price = 1; } V2xPosPb entrancePos = 2; V2xPosPb exitPos = 3; repeated V2xNodeRefIdPb tollRoad = 4; V2xRefPathPb tollPath = 5; oneof timeBeginOpt { double timeBegin = 6; } oneof timeEndOpt { double timeEnd = 7; } } message V2xVsiPb { double utcTime = 1; bytes obuId = 2; oneof targetIdOpt { bytes targetId = 3; } V2xObuInfoPb obuInfo = 4; repeated V2xVpApplicationParameterPb vpApplicationList = 5; oneof rndObuOpt { bytes rndObu = 6; } } message V2xObuInfoPb { double obuType = 1; V2xObuMotionStatusPb obuMotionStatus = 2; } message V2xObuMotionStatusPb { V2xPosPb pos = 1; oneof headingOpt { double heading = 2; } oneof speedOpt { double speed = 3; } } message V2xVpApplicationParameterPb { int32 pid = 1; V2xObuPaymentInfoPb obuPaymentInfo = 2; } message V2xObuPaymentInfoPb { oneof choice { V2xObuPaymentInfoType1Pb obuPaymentInfoType1 = 1; } } message V2xObuPaymentInfoType1Pb { oneof equipmentClassOpt { int32 equipmentClass = 1; } V2xGbIccInfoPb gbIccInfo = 2; V2xSysInfoPb sysInfo = 3; V2xVehicleInfoPb vehicleInfo = 4; V2xPassedSitesInfoPb passedSitesInfo = 5; } message V2xGbIccInfoPb { bytes iccIssueInfo = 1; bytes iccUniTollInfo = 2; bytes iccBalance = 3; } message V2xSysInfoPb { bytes contractProvider = 1; int32 contractType = 2; int32 contractVersion = 3; bytes contractSerialNumer = 4; V2xDatePb contractSignedDate = 5; V2xDatePb contractExpiredDate = 6; bytes reserved = 7; } message V2xDatePb { int32 year = 1; int32 month = 2; int32 day = 3; } message V2xVehicleInfoPb { bytes vehicleLicencePlateNumber = 1; bytes vehicleLicencePlateColor = 2; int32 vehicleTollingClass = 3; int32 vehicleUserType = 4; V2xVehicleDimensionsPb vehicleDimensions = 5; int32 vehicleWheels = 6; int32 vehicleAxles = 7; double vehicleWheelBases = 8; double vehicleWeightLimits = 9; bytes vehicleSpecificInformation = 10; bytes vehicleEngineNumber = 11; oneof descriptionOpt { string description = 12; } } message V2xVehicleDimensionsPb { double vehicleLength = 1; double vehicleWidth = 2; double vehicleHeigth = 3; } message V2xPassedSitesInfoPb { V2xPassedPosPb entranceInfo = 1; repeated V2xPassedPosPb passedPos = 2; } message V2xPassedPosPb { V2xTollingPosPb tollingPos = 1; double tollingTime = 2; oneof tollingAmountOpt { bytes tollingAmount = 3; } } message V2xTollingPosPb { int32 id = 1; V2xPosPb pos = 2; } message V2xActionRequestPb { double utcTime = 1; bool mode = 2; bytes sourceId = 3; oneof targetIdOpt { bytes targetId = 4; } int32 paymentEntityId = 5; V2xTransInfoPb actionParameter = 6; oneof accessCredentialsOpt { bytes accessCredentials = 7; } } message V2xTransInfoPb { oneof choice { V2xGetTollDataRqPb getTollDataRq = 1; V2xGetTollDataRsPb getTollDataRs = 2; V2xGetSecureRqPb getSecureRq = 3; V2xGetSecureRsPb getSecureRs = 4; V2xSetTollDataRqPb setTollDataRq = 5; V2xSetTollDataRsPb setTollDataRs = 6; V2xChannelRqPb transferChannelRq = 7; V2xChannelRsPb transferChannelRs = 8; V2xSetMmiRqPb setMmiRq = 9; } } message V2xGetTollDataRqPb { V2xRangeOfFilePb vehicleInfo = 1; V2xRangeOfFilePb tollInfo = 2; oneof keyIdForAcOpt { int32 keyIdForAc = 3; } } message V2xRangeOfFilePb { int32 offset = 1; int32 length = 2; } message V2xGetTollDataRsPb { bytes vehicleInfo = 1; oneof tollInfoOpt { bytes tollInfo = 2; } } message V2xGetSecureRqPb { V2xRangeOfFilePb vehicleInfo = 1; bytes rndRsuForAuthen = 2; int32 keyIdForAuthen = 3; oneof keyIdForEncryptOpt { int32 keyIdForEncrypt = 4; } } message V2xGetSecureRsPb { V2xRangeOfFilePb file = 1; bytes authenticator = 2; } message V2xSetTollDataRqPb { oneof rndRsuOpt { bytes rndRsu = 1; } V2xTransParaPb transPara = 2; V2xPartOfFilePb tollInfo = 3; V2xTollingPosPb tollingPos = 4; oneof keyIdForAuthenOpt { int32 keyIdForAuthen = 5; } } message V2xTransParaPb { bytes transAmount = 1; bytes transType = 2; bytes terminalId = 3; bytes transSn = 4; bytes transTime = 5; bytes transStationId = 6; } message V2xPartOfFilePb { int32 offset = 1; int32 length = 2; bytes fileContent = 3; } message V2xSetTollDataRsPb { oneof tacInfoOpt { bytes tacInfo = 1; } oneof authenticatorOpt { bytes authenticator = 2; } V2xAccountInfoPb accountInfo = 3; V2xTransCredentialPb transCredential = 4; } message V2xAccountInfoPb { bytes account = 1; } message V2xTransCredentialPb { bytes tc = 1; } message V2xChannelRqPb { int32 channelId = 1; repeated bytes apdu = 2; } message V2xChannelRsPb { int32 channelId = 1; repeated bytes apdu = 2; } message V2xSetMmiRqPb { int32 toll = 1; } message V2xActionResponsePb { double utcTime = 1; bytes sourceId = 2; oneof targetIdOpt { bytes targetId = 3; } int32 paymentEntityId = 4; V2xTransInfoPb responseParameter = 5; int32 ret = 6; } message V2xParkingLotInfoPb { oneof idOpt { int32 id = 1; } oneof nameOpt { string name = 2; } oneof numberOpt { int32 number = 3; } oneof buildingLayerNumOpt { int32 buildingLayerNum = 4; } oneof avpTypeOpt { int32 avpType = 5; } } message V2xPamNodePb { int32 id = 1; V2xPosPb refPos = 2; oneof floorOpt { int32 floor = 3; } oneof attributesOpt { int32 attributes = 4; } repeated V2xPamDrivePb inDrives = 5; } message V2xPamDrivePb { int32 upstreamPAMNodeId = 1; oneof driveIdOpt { int32 driveId = 2; } oneof twowaySeprationOpt { bool twowaySepration = 3; } oneof speedLimitOpt { double speedLimit = 4; } oneof heightRestrictionOpt { double heightRestriction = 5; } oneof driveWidthOpt { double driveWidth = 6; } oneof laneNumOpt { int32 laneNum = 7; } repeated V2xPosPb points = 8; repeated int32 movements = 9; repeated V2xParkingSlotPb parkingSlots = 10; } message V2xParkingSlotPb { int32 slotId = 1; V2xParkingSlotPositionPb position = 2; oneof signOpt { string sign = 3; } int32 parkingType = 4; int32 status = 5; int32 parkingSpaceTheta = 6; int32 parkingLock = 7; } message V2xParkingSlotPositionPb { V2xPosPb topLeft = 1; V2xPosPb topRight = 2; V2xPosPb bottomLeft = 3; } message V2xParkingGuidePb { bytes vehId = 1; repeated int32 drivePath = 2; oneof targetParkingSlotOpt { int32 targetParkingSlot = 3; } } message V2xMemberManagementPb { repeated V2xMemberNodePb memberList = 1; repeated V2xMemberNodePb joiningList = 2; repeated V2xMemberNodePb leavingList = 3; int32 capacity = 4; bool openToJoin = 5; } message V2xMemberNodePb { bytes vid = 1; }