From 0875095aae72e71c53099d9432dc4e0db4481837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20S=C3=B6derlund?= Date: Mon, 11 Aug 2025 16:42:42 +0200 Subject: [PATCH] feat: migrate to string-based timestamps Also some minor improvements to the API surface while making a breaking change anyway. --- internal/convert/brand.go | 47 + internal/convert/convertv2/accumulateddata.go | 16 +- internal/convert/convertv2/gnssposition.go | 4 +- internal/convert/convertv2/snapshotdata.go | 2 +- internal/convert/convertv2/trigger.go | 4 +- internal/convert/convertv2/vehicle.go | 18 +- internal/convert/convertv2/vehicleposition.go | 6 +- internal/convert/convertv2/vehiclestatus.go | 10 +- internal/convert/convertv4/accumulateddata.go | 26 +- internal/convert/convertv4/gnssposition.go | 2 +- internal/convert/convertv4/snapshotdata.go | 2 +- internal/convert/convertv4/trigger.go | 4 +- internal/convert/convertv4/vehicle.go | 23 +- internal/convert/convertv4/vehicleposition.go | 4 +- internal/convert/convertv4/vehiclestatus.go | 8 +- internal/convert/dooropenstate.go | 2 +- internal/convert/emissionlevel.go | 59 + internal/convert/gearboxtype.go | 23 + internal/convert/stateofdoors.go | 2 +- internal/convert/tachographtype.go | 29 + internal/convert/vehiclebrand.go | 47 - internal/convert/vehicleemissionlevel.go | 59 - internal/convert/vehiclegearboxtype.go | 23 - internal/convert/vehicletachographtype.go | 29 - internal/openapi/rfmsv4oapi/overlay.yaml | 2 +- internal/openapi/rfmsv4oapi/time.go | 6 +- proto/buf.yaml | 6 + .../rfms/v5/accumulated_data.schema | 375 ++-- .../wayplatform/rfms/v5/gnss_position.schema | 4 +- .../wayplatform/rfms/v5/snapshot_data.schema | 34 +- .../gen/bq/wayplatform/rfms/v5/trailer.schema | 20 + .../gen/bq/wayplatform/rfms/v5/trigger.schema | 4 +- .../gen/bq/wayplatform/rfms/v5/vehicle.schema | 22 +- .../v5/{axle.schema => vehicle_axle.schema} | 0 .../rfms/v5/vehicle_position.schema | 18 +- .../wayplatform/rfms/v5/vehicle_status.schema | 1639 +++++++++-------- .../rfms/v5/accumulated_data.pb.go | 491 +++-- proto/gen/go/wayplatform/rfms/v5/brand.pb.go | 200 ++ .../rfms/v5/driver_identification.pb.go | 2 +- .../wayplatform/rfms/v5/emission_level.pb.go | 213 +++ .../go/wayplatform/rfms/v5/gearbox_type.pb.go | 140 ++ .../wayplatform/rfms/v5/gnss_position.pb.go | 25 +- .../wayplatform/rfms/v5/snapshot_data.pb.go | 110 +- .../wayplatform/rfms/v5/tachograph_type.pb.go | 154 ++ .../gen/go/wayplatform/rfms/v5/trailer.pb.go | 57 +- .../gen/go/wayplatform/rfms/v5/trigger.pb.go | 116 +- .../gen/go/wayplatform/rfms/v5/vehicle.pb.go | 711 ++----- .../v5/{axle.pb.go => vehicle_axle.pb.go} | 134 +- .../rfms/v5/vehicle_position.pb.go | 51 +- .../wayplatform/rfms/v5/vehicle_status.pb.go | 383 ++-- ...tform.rfms.v5.AccumulatedData.pubsub.proto | 26 +- ...platform.rfms.v5.GnssPosition.pubsub.proto | 2 +- ...platform.rfms.v5.SnapshotData.pubsub.proto | 13 +- .../wayplatform.rfms.v5.Trailer.pubsub.proto | 1 + .../wayplatform.rfms.v5.Trigger.pubsub.proto | 15 +- .../wayplatform.rfms.v5.Vehicle.pubsub.proto | 72 +- ...platform.rfms.v5.VehicleAxle.pubsub.proto} | 2 +- ...tform.rfms.v5.VehiclePosition.pubsub.proto | 21 +- ...latform.rfms.v5.VehicleStatus.pubsub.proto | 210 ++- .../rfms/v5/accumulated_data.proto | 202 +- proto/wayplatform/rfms/v5/brand.proto | 45 + .../rfms/v5/driver_identification.proto | 2 +- .../wayplatform/rfms/v5/emission_level.proto | 40 + proto/wayplatform/rfms/v5/gearbox_type.proto | 24 + proto/wayplatform/rfms/v5/gnss_position.proto | 4 +- proto/wayplatform/rfms/v5/snapshot_data.proto | 22 +- .../wayplatform/rfms/v5/tachograph_type.proto | 30 + proto/wayplatform/rfms/v5/tell_tale.proto | 24 +- proto/wayplatform/rfms/v5/trailer.proto | 11 +- proto/wayplatform/rfms/v5/trigger.proto | 155 +- proto/wayplatform/rfms/v5/vehicle.proto | 196 +- .../v5/{axle.proto => vehicle_axle.proto} | 2 +- .../rfms/v5/vehicle_position.proto | 15 +- .../wayplatform/rfms/v5/vehicle_status.proto | 144 +- 74 files changed, 3889 insertions(+), 2755 deletions(-) create mode 100644 internal/convert/brand.go create mode 100644 internal/convert/emissionlevel.go create mode 100644 internal/convert/gearboxtype.go create mode 100644 internal/convert/tachographtype.go delete mode 100644 internal/convert/vehiclebrand.go delete mode 100644 internal/convert/vehicleemissionlevel.go delete mode 100644 internal/convert/vehiclegearboxtype.go delete mode 100644 internal/convert/vehicletachographtype.go rename proto/gen/bq/wayplatform/rfms/v5/{axle.schema => vehicle_axle.schema} (100%) create mode 100644 proto/gen/go/wayplatform/rfms/v5/brand.pb.go create mode 100644 proto/gen/go/wayplatform/rfms/v5/emission_level.pb.go create mode 100644 proto/gen/go/wayplatform/rfms/v5/gearbox_type.pb.go create mode 100644 proto/gen/go/wayplatform/rfms/v5/tachograph_type.pb.go rename proto/gen/go/wayplatform/rfms/v5/{axle.pb.go => vehicle_axle.pb.go} (58%) rename proto/gen/pubsub/{wayplatform.rfms.v5.Axle.pubsub.proto => wayplatform.rfms.v5.VehicleAxle.pubsub.proto} (90%) create mode 100644 proto/wayplatform/rfms/v5/brand.proto create mode 100644 proto/wayplatform/rfms/v5/emission_level.proto create mode 100644 proto/wayplatform/rfms/v5/gearbox_type.proto create mode 100644 proto/wayplatform/rfms/v5/tachograph_type.proto rename proto/wayplatform/rfms/v5/{axle.proto => vehicle_axle.proto} (96%) diff --git a/internal/convert/brand.go b/internal/convert/brand.go new file mode 100644 index 0000000..5f1bf74 --- /dev/null +++ b/internal/convert/brand.go @@ -0,0 +1,47 @@ +package convert + +import ( + rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" +) + +// Brand converts an rFMS brand to proto. +func Brand(input string) rfmsv5.Brand { + switch input { + case "VOLVO TRUCKS": + return rfmsv5.Brand_VOLVO_TRUCKS + case "SCANIA": + return rfmsv5.Brand_SCANIA + case "DAIMLER": + return rfmsv5.Brand_DAIMLER + case "IVECO": + return rfmsv5.Brand_IVECO + case "DAF": + return rfmsv5.Brand_DAF + case "MAN": + return rfmsv5.Brand_MAN + case "RENAULT TRUCKS": + return rfmsv5.Brand_RENAULT_TRUCKS + case "VDL": + return rfmsv5.Brand_VDL + case "VOLVO BUSES": + return rfmsv5.Brand_VOLVO_BUSES + case "IVECO BUS": + return rfmsv5.Brand_IVECO_BUS + case "HEULIEZ": + return rfmsv5.Brand_HEULIEZ + case "VWTB": + return rfmsv5.Brand_VWTB + case "KENWORTH": + return rfmsv5.Brand_KENWORTH + case "PETERBILT": + return rfmsv5.Brand_PETERBILT + case "MACK TRUCKS": + return rfmsv5.Brand_MACK_TRUCKS + case "INTERNATIONAL": + return rfmsv5.Brand_INTERNATIONAL + case "IC BUS": + return rfmsv5.Brand_IC_BUS + default: + return rfmsv5.Brand_BRAND_UNKNOWN + } +} diff --git a/internal/convert/convertv2/accumulateddata.go b/internal/convert/convertv2/accumulateddata.go index 9292ef6..0e5726a 100644 --- a/internal/convert/convertv2/accumulateddata.go +++ b/internal/convert/convertv2/accumulateddata.go @@ -10,17 +10,17 @@ func accumulatedData(input *rfmsv2oapi.AccumulatedType) *rfmsv5.AccumulatedData var output rfmsv5.AccumulatedData if input.AccelerationClass != nil { for _, fromToAccelerationClass := range input.AccelerationClass.Value { - output.SetAccelerationClass(append(output.GetAccelerationClass(), fromToClass(&fromToAccelerationClass))) + output.SetAccelerationClassMps2(append(output.GetAccelerationClassMps2(), fromToClass(&fromToAccelerationClass))) } } if input.AccelerationDuringBrakeClass != nil { for _, fromToAccelerationDuringBrakeClass := range input.AccelerationDuringBrakeClass.Value { - output.SetAccelerationDuringBrakeClass(append(output.GetAccelerationDuringBrakeClass(), fromToClass(&fromToAccelerationDuringBrakeClass))) + output.SetAccelerationDuringBrakeClassMps2(append(output.GetAccelerationDuringBrakeClassMps2(), fromToClass(&fromToAccelerationDuringBrakeClass))) } } if input.AccelerationPedalPositionClass != nil { for _, fromToAccelerationPedalPositionClass := range input.AccelerationPedalPositionClass.Value { - output.SetAccelerationPedalPositionClass(append(output.GetAccelerationPedalPositionClass(), fromToClass(&fromToAccelerationPedalPositionClass))) + output.SetAccelerationPedalPositionClassPercent(append(output.GetAccelerationPedalPositionClassPercent(), fromToClass(&fromToAccelerationPedalPositionClass))) } } if input.BrakePedalCounterSpeedOverZero != nil { @@ -65,12 +65,12 @@ func accumulatedData(input *rfmsv2oapi.AccumulatedType) *rfmsv5.AccumulatedData } if input.EngineSpeedClass != nil { for _, fromToEngineSpeedClass := range input.EngineSpeedClass.Value { - output.SetEngineSpeedClass(append(output.GetEngineSpeedClass(), fromToClass(&fromToEngineSpeedClass))) + output.SetEngineSpeedClassRpm(append(output.GetEngineSpeedClassRpm(), fromToClass(&fromToEngineSpeedClass))) } } if input.EngineTorqueClass != nil { for _, fromToEngineTorqueClass := range input.EngineTorqueClass.Value { - output.SetEngineTorqueClass(append(output.GetEngineTorqueClass(), fromToClassCombustion(&fromToEngineTorqueClass))) + output.SetEngineTorqueClassPercent(append(output.GetEngineTorqueClassPercent(), fromToClassCombustion(&fromToEngineTorqueClass))) } } if input.FuelConsumptionCruiseControlActive != nil { @@ -87,7 +87,7 @@ func accumulatedData(input *rfmsv2oapi.AccumulatedType) *rfmsv5.AccumulatedData } if input.HighAccelerationClass != nil { for _, fromToHighAccelerationClass := range input.HighAccelerationClass.Value { - output.SetHighAccelerationClass(append(output.GetHighAccelerationClass(), fromToClass(&fromToHighAccelerationClass))) + output.SetHighAccelerationClassMps2(append(output.GetHighAccelerationClassMps2(), fromToClass(&fromToHighAccelerationClass))) } } if input.KneelingCounter != nil { @@ -103,7 +103,7 @@ func accumulatedData(input *rfmsv2oapi.AccumulatedType) *rfmsv5.AccumulatedData } if input.RetarderTorqueClass != nil { for _, fromToRetarderTorqueClass := range input.RetarderTorqueClass.Value { - output.SetRetarderTorqueClass(append(output.GetRetarderTorqueClass(), fromToClass(&fromToRetarderTorqueClass))) + output.SetRetarderTorqueClassPercent(append(output.GetRetarderTorqueClassPercent(), fromToClass(&fromToRetarderTorqueClass))) } } if input.SelectedGearClass != nil { @@ -116,7 +116,7 @@ func accumulatedData(input *rfmsv2oapi.AccumulatedType) *rfmsv5.AccumulatedData } if input.VehicleSpeedClass != nil { for _, fromToVehicleSpeedClass := range input.VehicleSpeedClass.Value { - output.SetVehicleSpeedClass(append(output.GetVehicleSpeedClass(), fromToClass(&fromToVehicleSpeedClass))) + output.SetVehicleSpeedClassKmh(append(output.GetVehicleSpeedClassKmh(), fromToClass(&fromToVehicleSpeedClass))) } } return &output diff --git a/internal/convert/convertv2/gnssposition.go b/internal/convert/convertv2/gnssposition.go index 9339232..82622ad 100644 --- a/internal/convert/convertv2/gnssposition.go +++ b/internal/convert/convertv2/gnssposition.go @@ -1,6 +1,8 @@ package convertv2 import ( + "time" + "github.com/way-platform/rfms-go/internal/openapi/rfmsv2oapi" rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" ) @@ -23,7 +25,7 @@ func gnssPosition(input *rfmsv2oapi.GNSSPositionType) *rfmsv5.GnssPosition { output.SetSpeedKmh(*input.Speed) } if input.PositionDateTime != nil { - output.SetTime(input.PositionDateTime.UnixMicro()) + output.SetTime(time.Time(*input.PositionDateTime).UTC().Format(time.RFC3339Nano)) } return &output } diff --git a/internal/convert/convertv2/snapshotdata.go b/internal/convert/convertv2/snapshotdata.go index fb53fce..e6ad142 100644 --- a/internal/convert/convertv2/snapshotdata.go +++ b/internal/convert/convertv2/snapshotdata.go @@ -40,7 +40,7 @@ func snapshotData(input *rfmsv2oapi.SnapshotType) *rfmsv5.SnapshotData { } } if input.Driver2ID != nil { - output.SetDriver2(driverIdentification(input.Driver2ID)) + output.SetDriver2Id(driverIdentification(input.Driver2ID)) } if input.CatalystFuelLevel != nil { output.SetCatalystFuelLevelPercent(*input.CatalystFuelLevel) diff --git a/internal/convert/convertv2/trigger.go b/internal/convert/convertv2/trigger.go index 0798bfd..d56965f 100644 --- a/internal/convert/convertv2/trigger.go +++ b/internal/convert/convertv2/trigger.go @@ -21,13 +21,13 @@ func trigger(input *rfmsv2oapi.TriggerType) *rfmsv5.Trigger { } } if len(input.TriggerInfo) > 0 { - output.SetAdditionalInfo(input.TriggerInfo) + output.SetTriggerInfo(input.TriggerInfo) } if input.PtoID != nil { output.SetPtoId(*input.PtoID) } if input.DriverID != nil { - output.SetDriverInfo(driverIdentification(input.DriverID)) + output.SetDriverId(driverIdentification(input.DriverID)) } if len(input.TellTaleInfo) > 0 { output.SetTellTaleInfo(tellTale(&input.TellTaleInfo[0])) diff --git a/internal/convert/convertv2/vehicle.go b/internal/convert/convertv2/vehicle.go index d3ef9a4..aa2c35f 100644 --- a/internal/convert/convertv2/vehicle.go +++ b/internal/convert/convertv2/vehicle.go @@ -19,8 +19,8 @@ func Vehicle(input *rfmsv2oapi.VehicleType) *rfmsv5.Vehicle { } } if input.Brand != nil { - output.SetBrand(convert.VehicleBrand(*input.Brand)) - if output.GetBrand() == rfmsv5.Vehicle_BRAND_UNKNOWN { + output.SetBrand(convert.Brand(*input.Brand)) + if output.GetBrand() == rfmsv5.Brand_BRAND_UNKNOWN { output.SetUnknownBrand(*input.Brand) } } @@ -36,14 +36,14 @@ func Vehicle(input *rfmsv2oapi.VehicleType) *rfmsv5.Vehicle { } } if input.EmissionLevel != nil { - output.SetEmissionLevel(convert.VehicleEmissionLevel(*input.EmissionLevel)) - if output.GetEmissionLevel() == rfmsv5.Vehicle_EMISSION_LEVEL_UNKNOWN { + output.SetEmissionLevel(convert.EmissionLevel(*input.EmissionLevel)) + if output.GetEmissionLevel() == rfmsv5.EmissionLevel_EMISSION_LEVEL_UNKNOWN { output.SetUnknownEmissionLevel(*input.EmissionLevel) } } if input.GearboxType != nil { - output.SetGearboxType(convert.VehicleGearboxType(*input.GearboxType)) - if output.GetGearboxType() == rfmsv5.Vehicle_GEARBOX_TYPE_UNKNOWN { + output.SetGearboxType(convert.GearboxType(*input.GearboxType)) + if output.GetGearboxType() == rfmsv5.GearboxType_GEARBOX_TYPE_UNKNOWN { output.SetUnknownGearboxType(string(*input.GearboxType)) } } @@ -61,7 +61,7 @@ func Vehicle(input *rfmsv2oapi.VehicleType) *rfmsv5.Vehicle { fuelType := convert.FuelType(possibleFuelType) output.SetPossibleFuelTypes(append(output.GetPossibleFuelTypes(), fuelType)) if fuelType == rfmsv5.FuelType_FUEL_TYPE_UNKNOWN { - output.SetUnknownPossibleFuelTypes(append(output.GetUnknownPossibleFuelTypes(), fuelType)) + output.SetUnknownPossibleFuelTypes(append(output.GetUnknownPossibleFuelTypes(), possibleFuelType)) } } } @@ -69,8 +69,8 @@ func Vehicle(input *rfmsv2oapi.VehicleType) *rfmsv5.Vehicle { output.SetProductionDate(convert.Date(input.ProductionDate.Year, input.ProductionDate.Month, input.ProductionDate.Day)) } if input.TachographType != nil { - output.SetTachographType(convert.VehicleTachographType(*input.TachographType)) - if output.GetTachographType() == rfmsv5.Vehicle_TACHOGRAPH_TYPE_UNKNOWN { + output.SetTachographType(convert.TachographType(*input.TachographType)) + if output.GetTachographType() == rfmsv5.TachographType_TACHOGRAPH_TYPE_UNKNOWN { output.SetUnknownTachographType(string(*input.TachographType)) } } diff --git a/internal/convert/convertv2/vehicleposition.go b/internal/convert/convertv2/vehicleposition.go index 0540b39..134a8e5 100644 --- a/internal/convert/convertv2/vehicleposition.go +++ b/internal/convert/convertv2/vehicleposition.go @@ -1,6 +1,8 @@ package convertv2 import ( + "time" + "github.com/way-platform/rfms-go/internal/openapi/rfmsv2oapi" rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" ) @@ -15,10 +17,10 @@ func VehiclePosition(input *rfmsv2oapi.VehiclePositionType) *rfmsv5.VehiclePosit output.SetTrigger(trigger(input.TriggerType)) } if input.CreatedDateTime != nil { - output.SetCreateTime(input.CreatedDateTime.UnixMicro()) + output.SetCreateTime(time.Time(*input.CreatedDateTime).UTC().Format(time.RFC3339Nano)) } if input.ReceivedDateTime != nil { - output.SetReceiveTime(input.ReceivedDateTime.UnixMicro()) + output.SetReceiveTime(time.Time(*input.ReceivedDateTime).UTC().Format(time.RFC3339Nano)) } if input.GNSSPosition != nil { output.SetGnssPosition(gnssPosition(input.GNSSPosition)) diff --git a/internal/convert/convertv2/vehiclestatus.go b/internal/convert/convertv2/vehiclestatus.go index e6df25d..0ffd704 100644 --- a/internal/convert/convertv2/vehiclestatus.go +++ b/internal/convert/convertv2/vehiclestatus.go @@ -1,6 +1,8 @@ package convertv2 import ( + "time" + "github.com/way-platform/rfms-go/internal/convert" "github.com/way-platform/rfms-go/internal/openapi/rfmsv2oapi" rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" @@ -16,19 +18,19 @@ func VehicleStatus(input *rfmsv2oapi.VehicleStatusType) *rfmsv5.VehicleStatus { output.SetTrigger(trigger(input.TriggerType)) } if input.CreatedDateTime != nil { - output.SetCreateTime(input.CreatedDateTime.UnixMicro()) + output.SetCreateTime(time.Time(*input.CreatedDateTime).UTC().Format(time.RFC3339Nano)) } if input.ReceivedDateTime != nil { - output.SetReceiveTime(input.ReceivedDateTime.UnixMicro()) + output.SetReceiveTime(time.Time(*input.ReceivedDateTime).UTC().Format(time.RFC3339Nano)) } if input.HRTotalVehicleDistance != nil { - output.SetTotalVehicleDistanceM(*input.HRTotalVehicleDistance) + output.SetHrTotalVehicleDistanceM(float64(*input.HRTotalVehicleDistance)) } if input.TotalEngineHours != nil { output.SetTotalEngineHours(*input.TotalEngineHours) } if input.Driver1ID != nil { - output.SetDriver1(driverIdentification(input.Driver1ID)) + output.SetDriver1Id(driverIdentification(input.Driver1ID)) } if input.GrossCombinationVehicleWeight != nil { output.SetGrossCombinationVehicleWeightKg(float64(*input.GrossCombinationVehicleWeight)) diff --git a/internal/convert/convertv4/accumulateddata.go b/internal/convert/convertv4/accumulateddata.go index 2780e4d..b8bff7e 100644 --- a/internal/convert/convertv4/accumulateddata.go +++ b/internal/convert/convertv4/accumulateddata.go @@ -63,27 +63,27 @@ func accumulatedData(input *rfmsv4oapi.AccumulatedDataObject) *rfmsv5.Accumulate } if input.AccelerationPedalPositionClass != nil { for _, fromToAccelerationPedalPositionClass := range input.AccelerationPedalPositionClass { - output.SetAccelerationPedalPositionClass(append(output.GetAccelerationPedalPositionClass(), fromToClass(&fromToAccelerationPedalPositionClass))) + output.SetAccelerationPedalPositionClassPercent(append(output.GetAccelerationPedalPositionClassPercent(), fromToClass(&fromToAccelerationPedalPositionClass))) } } if input.BrakePedalPositionClass != nil { for _, fromToBrakePedalPositionClass := range input.BrakePedalPositionClass { - output.SetBrakePedalPositionClass(append(output.GetBrakePedalPositionClass(), fromToClass(&fromToBrakePedalPositionClass))) + output.SetBrakePedalPositionClassPercent(append(output.GetBrakePedalPositionClassPercent(), fromToClass(&fromToBrakePedalPositionClass))) } } if input.AccelerationClass != nil { for _, fromToAccelerationClass := range input.AccelerationClass { - output.SetAccelerationClass(append(output.GetAccelerationClass(), fromToClass(&fromToAccelerationClass))) + output.SetAccelerationClassMps2(append(output.GetAccelerationClassMps2(), fromToClass(&fromToAccelerationClass))) } } if input.HighAccelerationClass != nil { for _, fromToHighAccelerationClass := range input.HighAccelerationClass { - output.SetHighAccelerationClass(append(output.GetHighAccelerationClass(), fromToClass(&fromToHighAccelerationClass))) + output.SetHighAccelerationClassMps2(append(output.GetHighAccelerationClassMps2(), fromToClass(&fromToHighAccelerationClass))) } } if input.RetarderTorqueClass != nil { for _, fromToRetarderTorqueClass := range input.RetarderTorqueClass { - output.SetRetarderTorqueClass(append(output.GetRetarderTorqueClass(), fromToClass(&fromToRetarderTorqueClass))) + output.SetRetarderTorqueClassPercent(append(output.GetRetarderTorqueClassPercent(), fromToClass(&fromToRetarderTorqueClass))) } } if input.DrivingWithoutTorqueClass != nil { @@ -93,37 +93,37 @@ func accumulatedData(input *rfmsv4oapi.AccumulatedDataObject) *rfmsv5.Accumulate } if input.EngineTorqueClass != nil { for _, fromToEngineTorqueClass := range input.EngineTorqueClass { - output.SetEngineTorqueClass(append(output.GetEngineTorqueClass(), fromToClassCombustion(&fromToEngineTorqueClass))) + output.SetEngineTorqueClassPercent(append(output.GetEngineTorqueClassPercent(), fromToClassCombustion(&fromToEngineTorqueClass))) } } if input.ElectricMotorTorqueClass != nil { for _, fromToElectricMotorTorqueClass := range input.ElectricMotorTorqueClass { - output.SetElectricMotorTorqueClass(append(output.GetElectricMotorTorqueClass(), fromToClassElectrical(&fromToElectricMotorTorqueClass))) + output.SetElectricMotorTorqueClassPercent(append(output.GetElectricMotorTorqueClassPercent(), fromToClassElectrical(&fromToElectricMotorTorqueClass))) } } if input.EngineTorqueAtCurrentSpeedClass != nil { for _, fromToEngineTorqueAtCurrentSpeedClass := range input.EngineTorqueAtCurrentSpeedClass { - output.SetEngineTorqueAtCurrentSpeedClass(append(output.GetEngineTorqueAtCurrentSpeedClass(), fromToClassCombustion(&fromToEngineTorqueAtCurrentSpeedClass))) + output.SetEngineTorqueAtCurrentSpeedClassPercent(append(output.GetEngineTorqueAtCurrentSpeedClassPercent(), fromToClassCombustion(&fromToEngineTorqueAtCurrentSpeedClass))) } } if input.ElectricMotorTorqueAtCurrentSpeedClass != nil { for _, fromToElectricMotorTorqueAtCurrentSpeedClass := range input.ElectricMotorTorqueAtCurrentSpeedClass { - output.SetElectricMotorTorqueAtCurrentSpeedClass(append(output.GetElectricMotorTorqueAtCurrentSpeedClass(), fromToClassElectrical(&fromToElectricMotorTorqueAtCurrentSpeedClass))) + output.SetElectricMotorTorqueAtCurrentSpeedClassPercent(append(output.GetElectricMotorTorqueAtCurrentSpeedClassPercent(), fromToClassElectrical(&fromToElectricMotorTorqueAtCurrentSpeedClass))) } } if input.VehicleSpeedClass != nil { for _, fromToVehicleSpeedClass := range input.VehicleSpeedClass { - output.SetVehicleSpeedClass(append(output.GetVehicleSpeedClass(), fromToClass(&fromToVehicleSpeedClass))) + output.SetVehicleSpeedClassKmh(append(output.GetVehicleSpeedClassKmh(), fromToClass(&fromToVehicleSpeedClass))) } } if input.EngineSpeedClass != nil { for _, fromToEngineSpeedClass := range input.EngineSpeedClass { - output.SetEngineSpeedClass(append(output.GetEngineSpeedClass(), fromToClass(&fromToEngineSpeedClass))) + output.SetEngineSpeedClassRpm(append(output.GetEngineSpeedClassRpm(), fromToClass(&fromToEngineSpeedClass))) } } if input.AccelerationDuringBrakeClass != nil { for _, fromToAccelerationDuringBrakeClass := range input.AccelerationDuringBrakeClass { - output.SetAccelerationDuringBrakeClass(append(output.GetAccelerationDuringBrakeClass(), fromToClass(&fromToAccelerationDuringBrakeClass))) + output.SetAccelerationDuringBrakeClassMps2(append(output.GetAccelerationDuringBrakeClassMps2(), fromToClass(&fromToAccelerationDuringBrakeClass))) } } if input.SelectedGearClass != nil { @@ -150,7 +150,7 @@ func accumulatedData(input *rfmsv4oapi.AccumulatedDataObject) *rfmsv5.Accumulate } if input.ElectricPowerRecuperationClass != nil { for _, fromToElectricPowerRecuperationClass := range input.ElectricPowerRecuperationClass { - output.SetElectricPowerRecuperationClass(append(output.GetElectricPowerRecuperationClass(), fromToClassElectrical(&fromToElectricPowerRecuperationClass))) + output.SetElectricPowerRecuperationClassKw(append(output.GetElectricPowerRecuperationClassKw(), fromToClassElectrical(&fromToElectricPowerRecuperationClass))) } } return &output diff --git a/internal/convert/convertv4/gnssposition.go b/internal/convert/convertv4/gnssposition.go index bad180b..e8b5e51 100644 --- a/internal/convert/convertv4/gnssposition.go +++ b/internal/convert/convertv4/gnssposition.go @@ -26,7 +26,7 @@ func gnssPosition(input *rfmsv4oapi.GNSSPositionObject) *rfmsv5.GnssPosition { output.SetSpeedKmh(*input.Speed) } if input.PositionDateTime != nil { - output.SetTime(time.Time(*input.PositionDateTime).UnixMicro()) + output.SetTime(time.Time(*input.PositionDateTime).UTC().Format(time.RFC3339Nano)) } return &output } diff --git a/internal/convert/convertv4/snapshotdata.go b/internal/convert/convertv4/snapshotdata.go index d30b072..71fce0c 100644 --- a/internal/convert/convertv4/snapshotdata.go +++ b/internal/convert/convertv4/snapshotdata.go @@ -40,7 +40,7 @@ func snapshotData(input *rfmsv4oapi.SnapshotDataObject) *rfmsv5.SnapshotData { } } if input.Driver2ID != nil { - output.SetDriver2(driverIdentification(input.Driver2ID)) + output.SetDriver2Id(driverIdentification(input.Driver2ID)) } if input.CatalystFuelLevel != nil { output.SetCatalystFuelLevelPercent(*input.CatalystFuelLevel) diff --git a/internal/convert/convertv4/trigger.go b/internal/convert/convertv4/trigger.go index 5c6d470..87ff0f2 100644 --- a/internal/convert/convertv4/trigger.go +++ b/internal/convert/convertv4/trigger.go @@ -22,13 +22,13 @@ func trigger(input *rfmsv4oapi.TriggerObject) *rfmsv5.Trigger { } } if len(input.TriggerInfo) > 0 { - output.SetAdditionalInfo(input.TriggerInfo) + output.SetTriggerInfo(input.TriggerInfo) } if input.PtoID != nil { output.SetPtoId(*input.PtoID) } if input.DriverID != nil { - output.SetDriverInfo(driverIdentification(input.DriverID)) + output.SetDriverId(driverIdentification(input.DriverID)) } if input.TellTaleInfo != nil { output.SetTellTaleInfo(tellTale(input.TellTaleInfo)) diff --git a/internal/convert/convertv4/vehicle.go b/internal/convert/convertv4/vehicle.go index ac9584f..e7e4b2a 100644 --- a/internal/convert/convertv4/vehicle.go +++ b/internal/convert/convertv4/vehicle.go @@ -19,8 +19,8 @@ func Vehicle(input *rfmsv4oapi.VehicleObject) *rfmsv5.Vehicle { output.SetRegistrationNumber(*input.RegistrationNumber) } if input.Brand != nil { - output.SetBrand(convert.VehicleBrand(*input.Brand)) - if output.GetBrand() == rfmsv5.Vehicle_BRAND_UNKNOWN { + output.SetBrand(convert.Brand(*input.Brand)) + if output.GetBrand() == rfmsv5.Brand_BRAND_UNKNOWN { output.SetUnknownBrand(*input.Brand) } } @@ -41,13 +41,13 @@ func Vehicle(input *rfmsv4oapi.VehicleObject) *rfmsv5.Vehicle { fuelType := convert.FuelType(possibleFuelType) output.SetPossibleFuelTypes(append(output.GetPossibleFuelTypes(), fuelType)) if fuelType == rfmsv5.FuelType_FUEL_TYPE_UNKNOWN { - output.SetUnknownPossibleFuelTypes(append(output.GetUnknownPossibleFuelTypes(), fuelType)) + output.SetUnknownPossibleFuelTypes(append(output.GetUnknownPossibleFuelTypes(), possibleFuelType)) } } } if input.EmissionLevel != nil { - output.SetEmissionLevel(convert.VehicleEmissionLevel(*input.EmissionLevel)) - if output.GetEmissionLevel() == rfmsv5.Vehicle_EMISSION_LEVEL_UNKNOWN { + output.SetEmissionLevel(convert.EmissionLevel(*input.EmissionLevel)) + if output.GetEmissionLevel() == rfmsv5.EmissionLevel_EMISSION_LEVEL_UNKNOWN { output.SetUnknownEmissionLevel(*input.EmissionLevel) } } @@ -70,14 +70,14 @@ func Vehicle(input *rfmsv4oapi.VehicleObject) *rfmsv5.Vehicle { output.SetTotalBatteryPackCapacityWh(float64(*input.TotalBatteryPackCapacity)) } if input.TachographType != nil { - output.SetTachographType(convert.VehicleTachographType(*input.TachographType)) - if output.GetTachographType() == rfmsv5.Vehicle_TACHOGRAPH_TYPE_UNKNOWN { + output.SetTachographType(convert.TachographType(*input.TachographType)) + if output.GetTachographType() == rfmsv5.TachographType_TACHOGRAPH_TYPE_UNKNOWN { output.SetUnknownTachographType(string(*input.TachographType)) } } if input.GearboxType != nil { - output.SetGearboxType(convert.VehicleGearboxType(*input.GearboxType)) - if output.GetGearboxType() == rfmsv5.Vehicle_GEARBOX_TYPE_UNKNOWN { + output.SetGearboxType(convert.GearboxType(*input.GearboxType)) + if output.GetGearboxType() == rfmsv5.GearboxType_GEARBOX_TYPE_UNKNOWN { output.SetUnknownGearboxType(string(*input.GearboxType)) } } @@ -95,5 +95,10 @@ func Vehicle(input *rfmsv4oapi.VehicleObject) *rfmsv5.Vehicle { if input.HasRampOrLift != nil { output.SetHasRampOrLift(*input.HasRampOrLift) } + if len(input.AuthorizedPaths) > 0 { + for _, authorizedPath := range input.AuthorizedPaths { + output.SetAuthorizedPaths(append(output.GetAuthorizedPaths(), authorizedPath)) + } + } return &output } diff --git a/internal/convert/convertv4/vehicleposition.go b/internal/convert/convertv4/vehicleposition.go index 78c7c5c..f559674 100644 --- a/internal/convert/convertv4/vehicleposition.go +++ b/internal/convert/convertv4/vehicleposition.go @@ -17,10 +17,10 @@ func VehiclePosition(input *rfmsv4oapi.VehiclePositionObject) *rfmsv5.VehiclePos output.SetTrigger(trigger(input.TriggerType)) } if input.CreatedDateTime != nil { - output.SetCreateTime(time.Time(*input.CreatedDateTime).UnixMicro()) + output.SetCreateTime(time.Time(*input.CreatedDateTime).UTC().Format(time.RFC3339Nano)) } if input.ReceivedDateTime != nil { - output.SetReceiveTime(time.Time(*input.ReceivedDateTime).UnixMicro()) + output.SetReceiveTime(time.Time(*input.ReceivedDateTime).UTC().Format(time.RFC3339Nano)) } if input.GNSSPosition != nil { output.SetGnssPosition(gnssPosition(input.GNSSPosition)) diff --git a/internal/convert/convertv4/vehiclestatus.go b/internal/convert/convertv4/vehiclestatus.go index efa0953..39ba03d 100644 --- a/internal/convert/convertv4/vehiclestatus.go +++ b/internal/convert/convertv4/vehiclestatus.go @@ -18,13 +18,13 @@ func VehicleStatus(input *rfmsv4oapi.VehicleStatusObject) *rfmsv5.VehicleStatus output.SetTrigger(trigger(input.TriggerType)) } if input.CreatedDateTime != nil { - output.SetCreateTime(time.Time(*input.CreatedDateTime).UnixMicro()) + output.SetCreateTime(time.Time(*input.CreatedDateTime).UTC().Format(time.RFC3339Nano)) } if input.ReceivedDateTime != nil { - output.SetReceiveTime(time.Time(*input.ReceivedDateTime).UnixMicro()) + output.SetReceiveTime(time.Time(*input.ReceivedDateTime).UTC().Format(time.RFC3339Nano)) } if input.HrTotalVehicleDistance != nil { - output.SetTotalVehicleDistanceM(*input.HrTotalVehicleDistance) + output.SetHrTotalVehicleDistanceM(float64(*input.HrTotalVehicleDistance)) } if input.TotalEngineHours != nil { output.SetTotalEngineHours(*input.TotalEngineHours) @@ -33,7 +33,7 @@ func VehicleStatus(input *rfmsv4oapi.VehicleStatusObject) *rfmsv5.VehicleStatus output.SetTotalElectricMotorHours(*input.TotalElectricMotorHours) } if input.Driver1ID != nil { - output.SetDriver1(driverIdentification(input.Driver1ID)) + output.SetDriver1Id(driverIdentification(input.Driver1ID)) } if input.GrossCombinationVehicleWeight != nil { output.SetGrossCombinationVehicleWeightKg(float64(*input.GrossCombinationVehicleWeight)) diff --git a/internal/convert/dooropenstate.go b/internal/convert/dooropenstate.go index 9d321f7..8f65451 100644 --- a/internal/convert/dooropenstate.go +++ b/internal/convert/dooropenstate.go @@ -4,7 +4,7 @@ import ( rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" ) -// DoorOpenState converts an rFMS door open state to proto. +// DoorOpenState converts an rFMS bus door open state to proto. func DoorOpenState(input string) rfmsv5.VehicleStatus_Door_OpenState { switch input { case "OPEN": diff --git a/internal/convert/emissionlevel.go b/internal/convert/emissionlevel.go new file mode 100644 index 0000000..fcd020c --- /dev/null +++ b/internal/convert/emissionlevel.go @@ -0,0 +1,59 @@ +package convert + +import ( + rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" +) + +// EmissionLevel converts an rFMS emission level to proto. +func EmissionLevel(input string) rfmsv5.EmissionLevel { + switch input { + case "EURO_III": + return rfmsv5.EmissionLevel_EURO_III + case "EURO_III_EEV": + return rfmsv5.EmissionLevel_EURO_III_EEV + case "EURO_IV": + return rfmsv5.EmissionLevel_EURO_IV + case "EURO_V": + return rfmsv5.EmissionLevel_EURO_V + case "EURO_VI": + return rfmsv5.EmissionLevel_EURO_VI + case "EURO_VII": + return rfmsv5.EmissionLevel_EURO_VII + case "EURO_STAGE_III": + return rfmsv5.EmissionLevel_EURO_STAGE_III + case "EURO_STAGE_IV": + return rfmsv5.EmissionLevel_EURO_STAGE_IV + case "EURO_STAGE_V": + return rfmsv5.EmissionLevel_EURO_STAGE_V + case "EPA_2004": + return rfmsv5.EmissionLevel_EPA_2004 + case "EPA_2007": + return rfmsv5.EmissionLevel_EPA_2007 + case "EPA_2010": + return rfmsv5.EmissionLevel_EPA_2010 + case "EPA_2015_NOX10": + return rfmsv5.EmissionLevel_EPA_2015_NOX10 + case "EPA_2015_NOX05": + return rfmsv5.EmissionLevel_EPA_2015_NOX05 + case "EPA_2015_NOX02": + return rfmsv5.EmissionLevel_EPA_2015_NOX02 + case "EPA_TIER_2": + return rfmsv5.EmissionLevel_EPA_TIER_2 + case "EPA_TIER_3": + return rfmsv5.EmissionLevel_EPA_TIER_3 + case "EPA_TIER_4_2008": + return rfmsv5.EmissionLevel_EPA_TIER_4_2008 + case "EPA_TIER_4_2013": + return rfmsv5.EmissionLevel_EPA_TIER_4_2013 + case "PROCONVE_P5": + return rfmsv5.EmissionLevel_PROCONVE_P5 + case "PROCONVE_P6": + return rfmsv5.EmissionLevel_PROCONVE_P6 + case "PROCONVE_P7": + return rfmsv5.EmissionLevel_PROCONVE_P7 + case "PROCONVE_MARI": + return rfmsv5.EmissionLevel_PROCONVE_MARI + default: + return rfmsv5.EmissionLevel_EMISSION_LEVEL_UNKNOWN + } +} diff --git a/internal/convert/gearboxtype.go b/internal/convert/gearboxtype.go new file mode 100644 index 0000000..bc5d1e4 --- /dev/null +++ b/internal/convert/gearboxtype.go @@ -0,0 +1,23 @@ +package convert + +import ( + rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" +) + +// GearboxType converts an rFMS gearbox type to proto. +func GearboxType(input string) rfmsv5.GearboxType { + switch input { + case "MANUAL": + return rfmsv5.GearboxType_MANUAL + case "AUTOMATIC": + return rfmsv5.GearboxType_AUTOMATIC + case "SEMI_AUTOMATIC": + return rfmsv5.GearboxType_SEMI_AUTOMATIC + case "NO_GEAR": + return rfmsv5.GearboxType_NO_GEAR + case "AMT": + return rfmsv5.GearboxType_AMT + default: + return rfmsv5.GearboxType_GEARBOX_TYPE_UNKNOWN + } +} diff --git a/internal/convert/stateofdoors.go b/internal/convert/stateofdoors.go index e1c558b..841202f 100644 --- a/internal/convert/stateofdoors.go +++ b/internal/convert/stateofdoors.go @@ -4,7 +4,7 @@ import ( rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" ) -// StateOfDoors converts an rFMS v2 door state to proto. +// StateOfDoors converts a rFMS state of doors to proto. func StateOfDoors(input string) rfmsv5.VehicleStatus_StateOfDoors { switch input { case "ALL_DOORS_DISABLED": diff --git a/internal/convert/tachographtype.go b/internal/convert/tachographtype.go new file mode 100644 index 0000000..dd1f9e7 --- /dev/null +++ b/internal/convert/tachographtype.go @@ -0,0 +1,29 @@ +package convert + +import ( + rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" +) + +// TachographType converts an rFMS tachograph type to proto. +func TachographType(input string) rfmsv5.TachographType { + switch input { + case "MTCO": + return rfmsv5.TachographType_MTCO + case "DTCO": + return rfmsv5.TachographType_DTCO + case "DTCO_G1": + return rfmsv5.TachographType_DTCO_G1 + case "DTCO_G2": + return rfmsv5.TachographType_DTCO_G2 + case "TSU": + return rfmsv5.TachographType_TSU + case "NONE": + return rfmsv5.TachographType_NONE + case "smart STONERIDGE": // Scania + return rfmsv5.TachographType_STONERIDGE_SMART + case "smart 2 STONERIDGE": // Scania + return rfmsv5.TachographType_STONERIDGE_SMART2 + default: + return rfmsv5.TachographType_TACHOGRAPH_TYPE_UNKNOWN + } +} diff --git a/internal/convert/vehiclebrand.go b/internal/convert/vehiclebrand.go deleted file mode 100644 index 74c5b56..0000000 --- a/internal/convert/vehiclebrand.go +++ /dev/null @@ -1,47 +0,0 @@ -package convert - -import ( - rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" -) - -// VehicleBrand converts an rFMS brand to proto. -func VehicleBrand(input string) rfmsv5.Vehicle_Brand { - switch input { - case "VOLVO TRUCKS": - return rfmsv5.Vehicle_VOLVO_TRUCKS - case "SCANIA": - return rfmsv5.Vehicle_SCANIA - case "DAIMLER": - return rfmsv5.Vehicle_DAIMLER - case "IVECO": - return rfmsv5.Vehicle_IVECO - case "DAF": - return rfmsv5.Vehicle_DAF - case "MAN": - return rfmsv5.Vehicle_MAN - case "RENAULT TRUCKS": - return rfmsv5.Vehicle_RENAULT_TRUCKS - case "VDL": - return rfmsv5.Vehicle_VDL - case "VOLVO BUSES": - return rfmsv5.Vehicle_VOLVO_BUSES - case "IVECO BUS": - return rfmsv5.Vehicle_IVECO_BUS - case "HEULIEZ": - return rfmsv5.Vehicle_HEULIEZ - case "VWTB": - return rfmsv5.Vehicle_VWTB - case "KENWORTH": - return rfmsv5.Vehicle_KENWORTH - case "PETERBILT": - return rfmsv5.Vehicle_PETERBILT - case "MACK TRUCKS": - return rfmsv5.Vehicle_MACK_TRUCKS - case "INTERNATIONAL": - return rfmsv5.Vehicle_INTERNATIONAL - case "IC BUS": - return rfmsv5.Vehicle_IC_BUS - default: - return rfmsv5.Vehicle_BRAND_UNKNOWN - } -} diff --git a/internal/convert/vehicleemissionlevel.go b/internal/convert/vehicleemissionlevel.go deleted file mode 100644 index 3998158..0000000 --- a/internal/convert/vehicleemissionlevel.go +++ /dev/null @@ -1,59 +0,0 @@ -package convert - -import ( - rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" -) - -// VehicleEmissionLevel converts an rFMS emission level to proto. -func VehicleEmissionLevel(input string) rfmsv5.Vehicle_EmissionLevel { - switch input { - case "EURO_III": - return rfmsv5.Vehicle_EURO_III - case "EURO_III_EEV": - return rfmsv5.Vehicle_EURO_III_EEV - case "EURO_IV": - return rfmsv5.Vehicle_EURO_IV - case "EURO_V": - return rfmsv5.Vehicle_EURO_V - case "EURO_VI": - return rfmsv5.Vehicle_EURO_VI - case "EURO_VII": - return rfmsv5.Vehicle_EURO_VII - case "EURO_STAGE_III": - return rfmsv5.Vehicle_EURO_STAGE_III - case "EURO_STAGE_IV": - return rfmsv5.Vehicle_EURO_STAGE_IV - case "EURO_STAGE_V": - return rfmsv5.Vehicle_EURO_STAGE_V - case "EPA_2004": - return rfmsv5.Vehicle_EPA_2004 - case "EPA_2007": - return rfmsv5.Vehicle_EPA_2007 - case "EPA_2010": - return rfmsv5.Vehicle_EPA_2010 - case "EPA_2015_NOX10": - return rfmsv5.Vehicle_EPA_2015_NOX10 - case "EPA_2015_NOX05": - return rfmsv5.Vehicle_EPA_2015_NOX05 - case "EPA_2015_NOX02": - return rfmsv5.Vehicle_EPA_2015_NOX02 - case "EPA_TIER_2": - return rfmsv5.Vehicle_EPA_TIER_2 - case "EPA_TIER_3": - return rfmsv5.Vehicle_EPA_TIER_3 - case "EPA_TIER_4_2008": - return rfmsv5.Vehicle_EPA_TIER_4_2008 - case "EPA_TIER_4_2013": - return rfmsv5.Vehicle_EPA_TIER_4_2013 - case "PROCONVE_P5": - return rfmsv5.Vehicle_PROCONVE_P5 - case "PROCONVE_P6": - return rfmsv5.Vehicle_PROCONVE_P6 - case "PROCONVE_P7": - return rfmsv5.Vehicle_PROCONVE_P7 - case "PROCONVE_MARI": - return rfmsv5.Vehicle_PROCONVE_MARI - default: - return rfmsv5.Vehicle_EMISSION_LEVEL_UNKNOWN - } -} diff --git a/internal/convert/vehiclegearboxtype.go b/internal/convert/vehiclegearboxtype.go deleted file mode 100644 index 13e93e4..0000000 --- a/internal/convert/vehiclegearboxtype.go +++ /dev/null @@ -1,23 +0,0 @@ -package convert - -import ( - rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" -) - -// VehicleGearboxType converts an rFMS gearbox type to proto. -func VehicleGearboxType(input string) rfmsv5.Vehicle_GearboxType { - switch input { - case "MANUAL": - return rfmsv5.Vehicle_MANUAL - case "AUTOMATIC": - return rfmsv5.Vehicle_AUTOMATIC - case "SEMI_AUTOMATIC": - return rfmsv5.Vehicle_SEMI_AUTOMATIC - case "NO_GEAR": - return rfmsv5.Vehicle_NO_GEAR - case "AMT": - return rfmsv5.Vehicle_AMT - default: - return rfmsv5.Vehicle_GEARBOX_TYPE_UNKNOWN - } -} diff --git a/internal/convert/vehicletachographtype.go b/internal/convert/vehicletachographtype.go deleted file mode 100644 index ea9269d..0000000 --- a/internal/convert/vehicletachographtype.go +++ /dev/null @@ -1,29 +0,0 @@ -package convert - -import ( - rfmsv5 "github.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5" -) - -// VehicleTachographType converts an rFMS tachograph type to proto. -func VehicleTachographType(input string) rfmsv5.Vehicle_TachographType { - switch input { - case "MTCO": - return rfmsv5.Vehicle_MTCO - case "DTCO": - return rfmsv5.Vehicle_DTCO - case "DTCO_G1": - return rfmsv5.Vehicle_DTCO_G1 - case "DTCO_G2": - return rfmsv5.Vehicle_DTCO_G2 - case "TSU": - return rfmsv5.Vehicle_TSU - case "NONE": - return rfmsv5.Vehicle_NONE - case "smart STONERIDGE": // Scania - return rfmsv5.Vehicle_STONERIDGE_SMART - case "smart 2 STONERIDGE": // Scania - return rfmsv5.Vehicle_STONERIDGE_SMART2 - default: - return rfmsv5.Vehicle_TACHOGRAPH_TYPE_UNKNOWN - } -} diff --git a/internal/openapi/rfmsv4oapi/overlay.yaml b/internal/openapi/rfmsv4oapi/overlay.yaml index a620587..36af093 100644 --- a/internal/openapi/rfmsv4oapi/overlay.yaml +++ b/internal/openapi/rfmsv4oapi/overlay.yaml @@ -81,6 +81,6 @@ actions: format: int32 - target: $..[?(@.type=="string" && @.format=="date-time")] - description: "Use custom type to handle non-conformance with RFC3339" + description: "Use custom type to handle non-conformance with RFC3339Nano" update: x-go-type: Time diff --git a/internal/openapi/rfmsv4oapi/time.go b/internal/openapi/rfmsv4oapi/time.go index 6e95520..edabe68 100644 --- a/internal/openapi/rfmsv4oapi/time.go +++ b/internal/openapi/rfmsv4oapi/time.go @@ -10,7 +10,7 @@ type Time time.Time // UnmarshalJSON implements the [json.Unmarshaler] interface. func (t *Time) UnmarshalJSON(data []byte) error { - parsed, err := time.Parse(time.RFC3339, string(strings.Trim(string(data), `Z"`)+"Z")) + parsed, err := time.Parse(time.RFC3339Nano, string(strings.Trim(string(data), `Z"`)+"Z")) if err != nil { return err } @@ -23,7 +23,7 @@ func (t Time) MarshalJSON() ([]byte, error) { return []byte(`"` + t.String() + `"`), nil } -// String returns the time in RFC3339 format. +// String returns the time in RFC3339Nano format. func (t Time) String() string { - return time.Time(t).UTC().Format(time.RFC3339) + return time.Time(t).UTC().Format(time.RFC3339Nano) } diff --git a/proto/buf.yaml b/proto/buf.yaml index c82ae75..3b7d1b5 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -3,3 +3,9 @@ version: v2 modules: - path: . name: buf.build/way-platform/rfms + +lint: + use: + - STANDARD + except: + - ENUM_VALUE_PREFIX diff --git a/proto/gen/bq/wayplatform/rfms/v5/accumulated_data.schema b/proto/gen/bq/wayplatform/rfms/v5/accumulated_data.schema index 3648b97..81776bc 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/accumulated_data.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/accumulated_data.schema @@ -97,32 +97,38 @@ { "name": "label", "type": "STRING", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The label of the class." }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The duration of the class. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The distance of the class. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The liquid fuel consumption of the class. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The gaseous fuel consumption of the class. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, @@ -139,212 +145,252 @@ "description": "The total distance the vehicle has driven where the brake pedal has been used. (m)" }, { - "name": "acceleration_pedal_position_class", + "name": "acceleration_pedal_position_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for acceleration pedal position intervals. (percent)\n\n Default:\n Min interval: [0%, 20%)\n Max interval: [80%, 100%]\n Bucket count: 5\n Bucket width: 20%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "brake_pedal_position_class", + "name": "brake_pedal_position_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for brake pedal position intervals. (percent)\n\n Default:\n Min interval: [0%, 20%)\n Max interval: [80%, 100%]\n Bucket count: 5\n Bucket width: 20%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "acceleration_class", + "name": "acceleration_class_mps2", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for acceleration intervals. (m/s2)\n\n Default:\n Min interval: (..., -1.1)\n Mid interval: (-0.1, 0.1)\n Max interval: [1.1, ...)\n Bucket count: 11\n Bucket width: 0.2", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "high_acceleration_class", + "name": "high_acceleration_class_mps2", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for acceleration intervals. (m/s2)\n\n Default:\n Min interval: (..., -1.1)\n Mid interval: (-0.1, 0.1)\n Max interval: [1.1, ...)\n Bucket count: 11\n Bucket width: 0.2", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "retarder_torque_class", + "name": "retarder_torque_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats by retarder usage. (%)\n\n Default:\n Min interval: (0%, 20%)\n Max interval: [80%, 100%]\n Bucket count: 5\n Bucket width: 20%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, @@ -352,300 +398,357 @@ "name": "driving_without_torque_class", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats when driving without torque, with gear (clutch is engaged).\n\n Labels:\n DRIVING_WITHOUT_TORQUE", "fields": [ { "name": "label", "type": "STRING", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The label of the class." }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The duration of the class. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The distance of the class. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The liquid fuel consumption of the class. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The gaseous fuel consumption of the class. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, { - "name": "engine_torque_class", + "name": "engine_torque_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats by EEC1 value (Actual Engine-Percent Torque). (%)\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" } ] }, { - "name": "electric_motor_torque_class", + "name": "electric_motor_torque_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats by electric engine torque (Actual Engine-Percent Torque). (%)\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "engine_torque_at_current_speed_class", + "name": "engine_torque_at_current_speed_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on EEC2 value (Engine Percent Load At Current Speed). (%)\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" } ] }, { - "name": "electric_motor_torque_at_current_speed_class", + "name": "electric_motor_torque_at_current_speed_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on electric motor EEC2 value. (Engine Percent Load At Current Speed).\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "vehicle_speed_class", + "name": "vehicle_speed_class_kmh", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on vehicle speed. (km/h)\n Engine on (RPM\u003e0 or electric motor in crank mode).\n\n Default:\n Min interval: [0km/h, 4km/h)\n Max interval: [156km/h, ...)\n Bucket count: 40\n Bucket width: 4km/h", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "engine_speed_class", + "name": "engine_speed_class_rpm", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on the RPM of the combustion engine. (rpm)\n Only mandatory if the vehicle has a combustion engine for propulsion.\n\n Default:\n Min interval: [0rpm, 400pm)\n Max interval: [3600rpm, ...)\n Bucket count: 10\n Bucket width: 400rpm", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "acceleration_during_brake_class", + "name": "acceleration_during_brake_class_mps2", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on the acceleration during braking. (m/s2)\n\n Default:\n Min interval: [..., -1.1m/s2)\n Mid interval: (-0.1m/s2, 0.1m/s2)\n Max interval: [1.1m/s2, ...)\n Bucket count: 13\n Bucket width: 0.2m/s2", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, @@ -653,36 +756,43 @@ "name": "selected_gear_class", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on the currently selected gear.\n On class per gear. Park is also a gear.\n Gear is formatted according to SPN 524 and supplied as a decimal value.\n\n Example:\n 0 = Neutral\n 1 = 1st gear\n 2 = 2nd gear\n\n This is mainly used for buses.", "fields": [ { "name": "label", "type": "STRING", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The label of the class." }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The duration of the class. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The distance of the class. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The liquid fuel consumption of the class. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The gaseous fuel consumption of the class. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, @@ -690,88 +800,105 @@ "name": "current_gear_class", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on the currently used gear.\n On class per gear. Park is also a gear.\n Gear is formatted according to SPN 524 and supplied as a decimal value.\n\n Example:\n 0 = Neutral\n 1 = 1st gear\n 2 = 2nd gear\n\n This is mainly used for buses.", "fields": [ { "name": "label", "type": "STRING", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The label of the class." }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The duration of the class. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The distance of the class. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The liquid fuel consumption of the class. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The gaseous fuel consumption of the class. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, { "name": "chairlift_count", "type": "INTEGER", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total number of times the chairlift has been outside the bus.\n This is mainly used for buses." }, { "name": "stop_request_count", "type": "INTEGER", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total number of stop requests made.\n This is mainly used for buses." }, { "name": "kneeling_count", "type": "INTEGER", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total number of times the bus has knelt.\n This is mainly used for buses." }, { "name": "pram_request_count", "type": "INTEGER", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total number of pram requests made.\n This is mainly used for buses." }, { - "name": "electric_power_recuperation_class", + "name": "electric_power_recuperation_class_kw", "type": "RECORD", "mode": "REPEATED", + "description": "Classes refer to the recuperated electric power. (kw)\n Minimum 11 classes.\n [0, 100) [100, 200) [200, 300) ... [900, 1000), [1000, ...]", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] } diff --git a/proto/gen/bq/wayplatform/rfms/v5/gnss_position.schema b/proto/gen/bq/wayplatform/rfms/v5/gnss_position.schema index ce83628..c86b38d 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/gnss_position.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/gnss_position.schema @@ -1,9 +1,9 @@ [ { "name": "time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the GNSS position was recorded. (Unix microseconds)" + "description": "The time of the GNSS position data. (RFC 3339)" }, { "name": "latitude", diff --git a/proto/gen/bq/wayplatform/rfms/v5/snapshot_data.schema b/proto/gen/bq/wayplatform/rfms/v5/snapshot_data.schema index 186d9ea..cc6ebde 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/snapshot_data.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/snapshot_data.schema @@ -7,9 +7,9 @@ "fields": [ { "name": "time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the GNSS position was recorded. (Unix microseconds)" + "description": "The time of the GNSS position data. (RFC 3339)" }, { "name": "latitude", @@ -68,7 +68,7 @@ "description": "The electric motor speed of the vehicle. (rev/min)" }, { - "name": "ignition_state", + "name": "ignition", "type": "INTEGER", "mode": "NULLABLE", "description": "The ignition state of the vehicle." @@ -116,7 +116,7 @@ "description": "The unknown driver working state of the vehicle.\n Provided when the driver working state is DRIVER_WORKING_STATE_UNKNOWN." }, { - "name": "driver2", + "name": "driver2_id", "type": "RECORD", "mode": "NULLABLE", "description": "The driver identification of driver 2.", @@ -243,9 +243,9 @@ }, { "name": "battery_pack_estimated_charging_completed_time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The estimated time when charging has reached the target level. (Unix micros)" + "description": "The estimated time when charging has reached the target level. (RFC 3339)" }, { "name": "estimated_distance_to_empty", @@ -280,7 +280,7 @@ ] }, { - "name": "axles", + "name": "vehicle_axles", "type": "RECORD", "mode": "REPEATED", "description": "The axles of the vehicle.", @@ -360,6 +360,26 @@ "type": "FLOAT", "mode": "NULLABLE", "description": "The sum of the static vertical loads of the trailer axles. (kg)\n The load is sent in the EBS22 message of ISO 11992-2." + }, + { + "name": "axles", + "type": "RECORD", + "mode": "REPEATED", + "description": "The trailer axles.", + "fields": [ + { + "name": "position", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The position of the axle from 1 to 15, 1 being in the front\n closest to the truck, according to ISO 11992-2." + }, + { + "name": "load_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The static vertical load of the axle in kilograms.\n The load is sent in the EBS22 message of ISO 11992-2." + } + ] } ] } diff --git a/proto/gen/bq/wayplatform/rfms/v5/trailer.schema b/proto/gen/bq/wayplatform/rfms/v5/trailer.schema index 6a228d2..eb6d3a1 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/trailer.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/trailer.schema @@ -34,5 +34,25 @@ "type": "FLOAT", "mode": "NULLABLE", "description": "The sum of the static vertical loads of the trailer axles. (kg)\n The load is sent in the EBS22 message of ISO 11992-2." + }, + { + "name": "axles", + "type": "RECORD", + "mode": "REPEATED", + "description": "The trailer axles.", + "fields": [ + { + "name": "position", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The position of the axle from 1 to 15, 1 being in the front\n closest to the truck, according to ISO 11992-2." + }, + { + "name": "load_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The static vertical load of the axle in kilograms.\n The load is sent in the EBS22 message of ISO 11992-2." + } + ] } ] diff --git a/proto/gen/bq/wayplatform/rfms/v5/trigger.schema b/proto/gen/bq/wayplatform/rfms/v5/trigger.schema index 72b7dad..ba73a68 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/trigger.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/trigger.schema @@ -24,13 +24,13 @@ "description": "The unknown context. Used when the context is CONTEXT_UNKNOWN." }, { - "name": "additional_info", + "name": "trigger_info", "type": "STRING", "mode": "REPEATED", "description": "Additional OEM specific trigger info content.\n Can be used for both OEM specific and rFMS defined triggers.\n E.g. TRAILER_CONNECTED [id of trailer]." }, { - "name": "driver_info", + "name": "driver_id", "type": "RECORD", "mode": "NULLABLE", "description": "The driver identification.\n Provided when the trigger type is DRIVER_LOGIN, DRIVER_LOGOUT, DRIVER_1_WORKING_STATE_CHANGED or DRIVER_2_WORKING_STATE_CHANGED.\n For DRIVER_LOGIN it is the id of the driver that logged in.\n For DRIVER_LOGOUT it is the id of the driver that logged out.\n For DRIVER_1_WORKING_STATE_CHANGED it is the id of driver 1.\n For DRIVER_2_WORKING_STATE_CHANGED it is the id of driver 2.", diff --git a/proto/gen/bq/wayplatform/rfms/v5/vehicle.schema b/proto/gen/bq/wayplatform/rfms/v5/vehicle.schema index fd7bbf3..26a8db6 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/vehicle.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/vehicle.schema @@ -3,7 +3,7 @@ "name": "vin", "type": "STRING", "mode": "NULLABLE", - "description": "The vehicle identification number (VIN) of the vehicle." + "description": "The vehicle identification number (VIN) of the vehicle.\n See ISO 3779 (17 characters)" }, { "name": "customer_vehicle_name", @@ -71,7 +71,7 @@ "name": "model", "type": "STRING", "mode": "NULLABLE", - "description": "The model of the vehicle." + "description": "The model of the vehicle.\n OEM-specific value." }, { "name": "possible_fuel_types", @@ -81,7 +81,7 @@ }, { "name": "unknown_possible_fuel_types", - "type": "INTEGER", + "type": "STRING", "mode": "REPEATED", "description": "The unknown possible fuel types of the vehicle.\n This is used when possible_fuel_types contains unknown fuel types." }, @@ -107,7 +107,7 @@ "name": "chassis_type", "type": "STRING", "mode": "NULLABLE", - "description": "The chassis type of the vehicle." + "description": "The chassis type of the vehicle.\n This is used mainly for buses." }, { "name": "axle_count", @@ -119,19 +119,19 @@ "name": "total_fuel_tank_volume_ml", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total fuel tank volume of the vehicle." + "description": "The total fuel tank volume of the vehicle. (ml)" }, { "name": "total_fuel_tank_capacity_gaseous_kg", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total fuel tank capacity of the vehicle." + "description": "The total gas tank capacity of the vehicle. (kg)" }, { "name": "total_battery_pack_capacity_wh", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total battery pack capacity of the vehicle." + "description": "The total battery pack capacity of the vehicle. (Wh)\n The value comes from the vehicle's specification.\n The value is static, i.e. does not take aging into consideration." }, { "name": "tachograph_type", @@ -161,7 +161,7 @@ "name": "body_type", "type": "INTEGER", "mode": "NULLABLE", - "description": "The type of body on the chassis." + "description": "The type of body on the chassis.\n This is used mainly for buses." }, { "name": "unknown_body_type", @@ -180,5 +180,11 @@ "type": "BOOLEAN", "mode": "NULLABLE", "description": "If the vehicle is equipped with a ramp or not. This is used mainly for buses." + }, + { + "name": "authorized_paths", + "type": "STRING", + "mode": "REPEATED", + "description": "Paths that the client is authorized to call.\n Example: [\"/vehiclestatuses\", \"/vehiclepositions\"]" } ] diff --git a/proto/gen/bq/wayplatform/rfms/v5/axle.schema b/proto/gen/bq/wayplatform/rfms/v5/vehicle_axle.schema similarity index 100% rename from proto/gen/bq/wayplatform/rfms/v5/axle.schema rename to proto/gen/bq/wayplatform/rfms/v5/vehicle_axle.schema diff --git a/proto/gen/bq/wayplatform/rfms/v5/vehicle_position.schema b/proto/gen/bq/wayplatform/rfms/v5/vehicle_position.schema index e20eae9..5f7db48 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/vehicle_position.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/vehicle_position.schema @@ -3,7 +3,7 @@ "name": "vin", "type": "STRING", "mode": "NULLABLE", - "description": "The vehicle identification number (VIN) of the vehicle." + "description": "The vehicle identification number (VIN) of the vehicle.\n See ISO 3779 (17 characters)." }, { "name": "trigger", @@ -36,13 +36,13 @@ "description": "The unknown context. Used when the context is CONTEXT_UNKNOWN." }, { - "name": "additional_info", + "name": "trigger_info", "type": "STRING", "mode": "REPEATED", "description": "Additional OEM specific trigger info content.\n Can be used for both OEM specific and rFMS defined triggers.\n E.g. TRAILER_CONNECTED [id of trailer]." }, { - "name": "driver_info", + "name": "driver_id", "type": "RECORD", "mode": "NULLABLE", "description": "The driver identification.\n Provided when the trigger type is DRIVER_LOGIN, DRIVER_LOGOUT, DRIVER_1_WORKING_STATE_CHANGED or DRIVER_2_WORKING_STATE_CHANGED.\n For DRIVER_LOGIN it is the id of the driver that logged in.\n For DRIVER_LOGOUT it is the id of the driver that logged out.\n For DRIVER_1_WORKING_STATE_CHANGED it is the id of driver 1.\n For DRIVER_2_WORKING_STATE_CHANGED it is the id of driver 2.", @@ -245,15 +245,15 @@ }, { "name": "create_time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the vehicle position was created. (Unix microseconds)" + "description": "The date and time the vehicle position was created. (RFC 3339)" }, { "name": "receive_time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the vehicle position was received. (Unix microseconds)" + "description": "The date and time the vehicle position was received. (RFC 3339)" }, { "name": "gnss_position", @@ -263,9 +263,9 @@ "fields": [ { "name": "time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the GNSS position was recorded. (Unix microseconds)" + "description": "The time of the GNSS position data. (RFC 3339)" }, { "name": "latitude", diff --git a/proto/gen/bq/wayplatform/rfms/v5/vehicle_status.schema b/proto/gen/bq/wayplatform/rfms/v5/vehicle_status.schema index 4d46ea8..7062db4 100644 --- a/proto/gen/bq/wayplatform/rfms/v5/vehicle_status.schema +++ b/proto/gen/bq/wayplatform/rfms/v5/vehicle_status.schema @@ -36,13 +36,13 @@ "description": "The unknown context. Used when the context is CONTEXT_UNKNOWN." }, { - "name": "additional_info", + "name": "trigger_info", "type": "STRING", "mode": "REPEATED", "description": "Additional OEM specific trigger info content.\n Can be used for both OEM specific and rFMS defined triggers.\n E.g. TRAILER_CONNECTED [id of trailer]." }, { - "name": "driver_info", + "name": "driver_id", "type": "RECORD", "mode": "NULLABLE", "description": "The driver identification.\n Provided when the trigger type is DRIVER_LOGIN, DRIVER_LOGOUT, DRIVER_1_WORKING_STATE_CHANGED or DRIVER_2_WORKING_STATE_CHANGED.\n For DRIVER_LOGIN it is the id of the driver that logged in.\n For DRIVER_LOGOUT it is the id of the driver that logged out.\n For DRIVER_1_WORKING_STATE_CHANGED it is the id of driver 1.\n For DRIVER_2_WORKING_STATE_CHANGED it is the id of driver 2.", @@ -245,19 +245,19 @@ }, { "name": "create_time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the vehicle status was created. (Unix microseconds)" + "description": "The date and time the vehicle status was created. (RFC 3339)" }, { "name": "receive_time", - "type": "INTEGER", + "type": "STRING", "mode": "NULLABLE", - "description": "The date and time the vehicle status was received. (Unix microseconds)" + "description": "The date and time the vehicle status was received. (RFC 3339)" }, { - "name": "total_vehicle_distance_m", - "type": "INTEGER", + "name": "hr_total_vehicle_distance_m", + "type": "FLOAT", "mode": "NULLABLE", "description": "The total distance travelled by the vehicle during its operation in meters.\n Should not be reset during lifetime of the vehicle." }, @@ -271,10 +271,10 @@ "name": "total_electric_motor_hours", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total hours of operation for the vehicle electric motor during its lifetime.\n Should not be reset during lifetime of the electric motor." + "description": "The total hours the electric motor is ready for propulsion\n (i.e. crank mode) during its lifetime.\n\n At least one of total_engine_hours or total_electric_motor_hours is mandatory.\n\n Should not be reset during lifetime of the motor." }, { - "name": "driver1", + "name": "driver1_id", "type": "RECORD", "mode": "NULLABLE", "description": "The driver identification of driver 1.", @@ -355,31 +355,31 @@ "name": "engine_total_fuel_used_ml", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total fuel the vehicle has used during its lifetime in liters.\n Should not be reset during lifetime of the vehicle." + "description": "The total fuel the vehicle has used during its lifetime in ml.\n\n At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg\n or total_electric_energy_used_wh is mandatory.\n\n Should not be reset during lifetime of the vehicle." }, { "name": "total_fuel_used_gaseous_kg", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total fuel the vehicle has used during its lifetime in liters.\n Should not be reset during lifetime of the vehicle." + "description": "Total fuel consumed in kg.\n\n (trip drive fuel + trip PTO governor moving fuel + trip PTO governor non-moving fuel\n + trip idle fuel) over the life of the engine.\n\n At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg\n or total_electric_energy_used_wh is mandatory.\n\n Should not be reset during lifetime of the vehicle." }, { "name": "total_electric_energy_used_wh", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total electric energy the vehicle has used during its lifetime in Wh.\n Should not be reset during lifetime of the vehicle." + "description": "Total electric energy consumed by the vehicle, excluding when plugged in (vehicle coupler)\n for charging, (incl. motor, PTO, cooling, etc.) during its lifetime, in Wh.\n\n Recuperation is subtracted from the value.\n\n At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg\n or total_electric_energy_used_wh is mandatory.\n\n Should not be reset during lifetime of the vehicle." }, { "name": "total_electric_energy_recuperated_wh", "type": "FLOAT", "mode": "NULLABLE", - "description": "The total electric energy recuperated by the vehicle during its lifetime in Wh.\n Should not be reset during lifetime of the vehicle." + "description": "Total electric energy recuperated by the vehicle during its lifetime, in watt hours.\n Should not be reset during lifetime of the vehicle." }, { "name": "state_of_doors", "type": "INTEGER", "mode": "NULLABLE", - "description": "The status of the doors of the vehicle.\n Should not be reset during lifetime of the vehicle." + "description": "The status of the doors of the vehicle.\n Bus specific parameter." }, { "name": "unknown_state_of_doors", @@ -397,1337 +397,1484 @@ "name": "number", "type": "INTEGER", "mode": "NULLABLE", - "description": "The number of the door." + "description": "The number of the bus door." }, { "name": "enabled_state", "type": "INTEGER", "mode": "NULLABLE", - "description": "The enabled state of the door." + "description": "The enabled state of the bus door." }, { "name": "unknown_enabled_state", "type": "STRING", "mode": "NULLABLE", - "description": "The unknown enabled state of the door.\n Provided when the enabled state is ENABLED_STATE_UNKNOWN." + "description": "The unknown enabled state of the bus door.\n Provided when the enabled state is ENABLED_STATE_UNKNOWN." }, { "name": "open_state", "type": "INTEGER", "mode": "NULLABLE", - "description": "The open state of the door." + "description": "The open state of the bus door." }, { "name": "unknown_open_state", "type": "STRING", "mode": "NULLABLE", - "description": "The unknown open state of the door.\n Provided when the open state is OPEN_STATE_UNKNOWN." + "description": "The unknown open state of the bus door.\n Provided when the open state is OPEN_STATE_UNKNOWN." }, { "name": "lock_state", "type": "INTEGER", "mode": "NULLABLE", - "description": "The lock state of the door." + "description": "The lock state of the bus door." }, { "name": "unknown_lock_state", "type": "STRING", "mode": "NULLABLE", - "description": "The unknown lock state of the door.\n Provided when the lock state is LOCK_STATE_UNKNOWN." + "description": "The unknown lock state of the bus door.\n Provided when the lock state is LOCK_STATE_UNKNOWN." } ] }, { - "name": "accumulated_data", + "name": "snapshot_data", "type": "RECORD", "mode": "NULLABLE", - "description": "Accumulated data for the vehicle.", + "description": "Snapshot data for the vehicle.", "fields": [ { - "name": "wheel_based_speed_over_zero_duration_s", - "type": "FLOAT", + "name": "gnss_position", + "type": "RECORD", "mode": "NULLABLE", - "description": "The duration the vehicle speed has been over zero. (s)" + "description": "The GNSS position of the vehicle.", + "fields": [ + { + "name": "time", + "type": "STRING", + "mode": "NULLABLE", + "description": "The time of the GNSS position data. (RFC 3339)" + }, + { + "name": "latitude", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The latitude of the vehicle. (WGS84 based)" + }, + { + "name": "longitude", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The longitude of the vehicle. (WGS84 based)" + }, + { + "name": "heading_deg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The heading of the vehicle. (degrees) (0-359)" + }, + { + "name": "altitude_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The altitude of the vehicle. (meters)\n 0 is sea level, negative values below sea level, and positive above sea level." + }, + { + "name": "speed_kmh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The speed of the vehicle. (km/h)" + } + ] }, { - "name": "wheel_based_speed_over_zero_fuel_ml", + "name": "wheel_based_speed_kmh", "type": "FLOAT", "mode": "NULLABLE", - "description": "The fuel the vehicle has consumed while driven with speed over zero. (ml)\n Engine on (RPM\u003e0) and no PTO active." + "description": "The wheel-based speed of the vehicle. (km/h)" }, { - "name": "wheel_based_speed_over_zero_fuel_gaseous_kg", + "name": "tachograph_speed_kmh", "type": "FLOAT", "mode": "NULLABLE", - "description": "The fuel the vehicle has consumed while driven with speed over zero. (kg)\n Engine on (RPM\u003e0) and no PTO active." + "description": "The tachograph speed of the vehicle. (km/h)" }, { - "name": "wheel_based_speed_over_zero_electric_energy_consumption_wh", + "name": "engine_speed_rpm", "type": "FLOAT", "mode": "NULLABLE", - "description": "The electric energy the vehicle has consumed while driven with speed over zero. (Wh)" + "description": "The engine (diesel/gaseous) speed of the vehicle. (rev/min)" }, { - "name": "wheel_based_speed_zero_duration_s", + "name": "electric_motor_speed_rpm", "type": "FLOAT", "mode": "NULLABLE", - "description": "The duration the vehicle speed has been zero. (s)\n Engine on (RPM\u003e0 or electic motor in crank mode) and no PTO active" + "description": "The electric motor speed of the vehicle. (rev/min)" }, { - "name": "wheel_based_speed_zero_distance_m", - "type": "FLOAT", + "name": "ignition", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The distance the vehicle has been driven with speed zero. (m)" + "description": "The ignition state of the vehicle." }, { - "name": "wheel_based_speed_zero_fuel_ml", - "type": "FLOAT", + "name": "fuel_type", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The fuel the vehicle has consumed while driven with speed zero. (ml)\n Engine on (RPM\u003e0) and no PTO active." + "description": "The fuel type currently being utilized by the vehicle." }, { - "name": "wheel_based_speed_zero_fuel_gaseous_kg", - "type": "FLOAT", + "name": "unknown_fuel_type", + "type": "STRING", "mode": "NULLABLE", - "description": "The fuel the vehicle has consumed while driven with speed zero. (ml)\n Engine on (RPM\u003e0) and no PTO active." + "description": "The unknown fuel type of the vehicle.\n Provided when the fuel type is FUEL_TYPE_UNKNOWN." }, { - "name": "wheel_based_speed_zero_electric_energy_consumption_wh", + "name": "fuel_level1_percent", "type": "FLOAT", "mode": "NULLABLE", - "description": "The electric energy the vehicle has consumed while driven with speed zero. (Wh)" + "description": "The fuel level of the vehicle. (%) (0 - 100)" }, { - "name": "cruise_control_active_distance_m", + "name": "fuel_level2_percent", "type": "FLOAT", "mode": "NULLABLE", - "description": "The distance the vehicle has been driven with cruise control active. (m)" + "description": "The fuel level of the vehicle. (%) (0 - 100)\n When Fuel Level 2 is not used, Fuel Level 1 represents\n the total fuel in all fuel storage containers.\n\n When Fuel Level 2 is used,\n Fuel Level 1 represents the fuel level in the primary or left-side fuel\n storage container." }, { - "name": "cruise_control_active_duration_s", + "name": "catalyst_fuel_level_percent", "type": "FLOAT", "mode": "NULLABLE", - "description": "The duration the vehicle has been driven with cruise control active. (s)" + "description": "The adblue level percentage" }, { - "name": "cruise_control_active_fuel_consumption_ml", - "type": "FLOAT", + "name": "driver1_working_state", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The fuel the vehicle has consumed while driven with cruise control active. (ml)" + "description": "The driver working state of the vehicle." }, { - "name": "cruise_control_active_fuel_consumption_gaseous_kg", + "name": "unknown_driver1_working_state", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unknown driver working state of the vehicle.\n Provided when the driver working state is DRIVER_WORKING_STATE_UNKNOWN." + }, + { + "name": "driver2_id", + "type": "RECORD", + "mode": "NULLABLE", + "description": "The driver identification of driver 2.", + "fields": [ + { + "name": "tacho", + "type": "RECORD", + "mode": "NULLABLE", + "description": "The identification of a driver using the Tacho card.", + "fields": [ + { + "name": "driver_id", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unique identification of a driver in a Member State.\n This fields is formatted according the definition for driverIdentification\n in COMMISSION REGULATION (EC) No 1360/2002 Annex 1b" + }, + { + "name": "card_issuing_member_state", + "type": "STRING", + "mode": "NULLABLE", + "description": "The country alpha code of the Member State having issued the card.\n This fields is formatted according the definition for NationAlpha\n in COMMISSION REGULATION (EC) No 1360/2002 Annex 1b" + }, + { + "name": "authentication_equipment", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "Code to distinguish different types of equipment for the\n tachograph application. See description of the field 'DriverAuthenticationEquipment'\n in COMMISSION REGULATION (EC) No 1360/2002 Annex 1b" + }, + { + "name": "unknown_authentication_equipment", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unknown authentication equipment of the driver.\n This is used when authentication_equipment is AUTHENTICATION_EQUIPMENT_UNKNOWN." + }, + { + "name": "card_replacement_index", + "type": "STRING", + "mode": "NULLABLE", + "description": "A card replacement index. This fields is formatted according\n the definition for CardReplacementIndex (chap 2.26) in: COMMISSION\n REGULATION (EC) No 1360/2002 Annex 1b" + }, + { + "name": "card_renewal_index", + "type": "STRING", + "mode": "NULLABLE", + "description": "A card renewal index. This fields is formatted according\n the definition for CardRenewalIndex (chap 2.25) in: COMMISSION\n REGULATION (EC) No 1360/2002 Annex 1b" + } + ] + }, + { + "name": "oem", + "type": "RECORD", + "mode": "NULLABLE", + "description": "The identification of a driver using an OEM specific method.", + "fields": [ + { + "name": "id_type", + "type": "STRING", + "mode": "NULLABLE", + "description": "An optional id type (e.g. pin, USB, encrypted EU id...).\n\nTODO: Should this be enum?" + }, + { + "name": "driver_id", + "type": "STRING", + "mode": "NULLABLE", + "description": "An OEM specific driver id." + } + ] + } + ] + }, + { + "name": "driver2_working_state", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The driver working state of the vehicle." + }, + { + "name": "unknown_driver2_working_state", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unknown driver working state of the vehicle.\n Provided when the driver working state is DRIVER_WORKING_STATE_UNKNOWN." + }, + { + "name": "ambient_air_temperature_c", "type": "FLOAT", "mode": "NULLABLE", - "description": "The fuel the vehicle has consumed while driven with cruise control active. (kg)" + "description": "The ambient air temperature of the vehicle. (°C)" }, { - "name": "cruise_control_active_electric_energy_consumption_wh", + "name": "parking_brake_switch", + "type": "BOOLEAN", + "mode": "NULLABLE", + "description": "The parking brake switch state of the vehicle.\n In general the switch actuated by the operator's park brake control, whether\n a pedal, lever or other control mechanism\n\n true - parking brake set\n false - parking brake not set" + }, + { + "name": "battery_pack_remaining_charge_percent", "type": "FLOAT", "mode": "NULLABLE", - "description": "The electric energy the vehicle has consumed while driven with cruise control active. (Wh)" + "description": "The battery pack remaining charge of the vehicle. (%) (0 - 100)\n 0% means no charge remaining, 100% means full charge remaining.\n Is used for hybrid vehicles as well for full electrical vehicles" }, { - "name": "aux_electric_energy_consumption_wh", + "name": "battery_pack_charging_state", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The battery pack charging status of the vehicle." + }, + { + "name": "battery_pack_charging_connection_state", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The battery pack charging status of the vehicle." + }, + { + "name": "battery_pack_charging_device", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The battery pack charging device of the vehicle." + }, + { + "name": "battery_pack_charging_power_w", "type": "FLOAT", "mode": "NULLABLE", - "description": "The electric energy the auxiliary systems have consumed. (Wh)" + "description": "The battery pack charging power of the vehicle. (W)" }, { - "name": "pto_active_class", + "name": "battery_pack_estimated_charging_completed_time", + "type": "STRING", + "mode": "NULLABLE", + "description": "The estimated time when charging has reached the target level. (RFC 3339)" + }, + { + "name": "estimated_distance_to_empty", "type": "RECORD", - "mode": "REPEATED", + "mode": "NULLABLE", + "description": "The estimated distance to empty of the vehicle.", "fields": [ { - "name": "label", - "type": "STRING", - "mode": "NULLABLE" - }, - { - "name": "duration_s", + "name": "total_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The estimated distance to empty of the vehicle. (m)" }, { - "name": "distance_m", + "name": "fuel_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The estimated distance to empty of the vehicle. (m)" }, { - "name": "fuel_consumption_ml", + "name": "gas_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The estimated distance to empty of the vehicle. (m)" }, { - "name": "fuel_consumption_gaseous_kg", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "electric_energy_consumption_wh", + "name": "battery_pack_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The estimated distance to empty of the vehicle. (m)" } ] }, { - "name": "brake_pedal_speed_over_zero_count", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The total number of times the brake pedal has been used while" - }, - { - "name": "brake_pedal_speed_over_zero_distance_m", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The total distance the vehicle has driven where the brake pedal has been used. (m)" - }, - { - "name": "acceleration_pedal_position_class", + "name": "vehicle_axles", "type": "RECORD", "mode": "REPEATED", + "description": "The axles of the vehicle.", "fields": [ { - "name": "from", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "to", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "duration_s", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "distance_m", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "fuel_consumption_ml", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "position", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The position of the axle." }, { - "name": "fuel_consumption_gaseous_kg", + "name": "load_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The static vertical load of the axle. (kg)" }, { - "name": "electric_energy_consumption_wh", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "tires", + "type": "RECORD", + "mode": "REPEATED", + "description": "The tires on the axle.", + "fields": [ + { + "name": "position", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "Tire position (on the specified axle) from 1 to 15,\n counting left to right when facing in the direction of\n normal vehicle travel (forward)." + }, + { + "name": "pressure_kpa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "Tire pressure. (kPa)" + } + ] } ] }, { - "name": "brake_pedal_position_class", + "name": "trailers", "type": "RECORD", "mode": "REPEATED", + "description": "The trailers connected to the vehicle.", "fields": [ { - "name": "from", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "number", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The trailer number from 1 to 5, 1 being closest to the truck, according to ISO 11992-2." }, { - "name": "to", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "identification_data", + "type": "STRING", + "mode": "NULLABLE", + "description": "The trailer identification data sent by the trailer to the truck in the RGE23 message of ISO 11992-2.\n An alternative source is the DID (Data identifier definition) record VIN, as specified in ISO 11992-4.\n Even though both ISO 11992-2 and ISO 11992-4 specifies this as a VIN, the actual data sent from a trailer is not always\n the true VIN of the trailer." }, { - "name": "duration_s", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "vin", + "type": "STRING", + "mode": "NULLABLE", + "description": "The vehicle identification number of the trailer. See ISO 3779 (17 characters)\n If the trailerIdentificationData is reporting a true VIN, trailerVin will have the same value.\n If it is possible to map the trailerIdentificationData to a true VIN using other sources, the value can be provided here." }, { - "name": "distance_m", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "customer_name", + "type": "STRING", + "mode": "NULLABLE", + "description": "The customer's name for the trailer" }, { - "name": "fuel_consumption_ml", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "type", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The trailer type." }, { - "name": "fuel_consumption_gaseous_kg", + "name": "axle_load_sum_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The sum of the static vertical loads of the trailer axles. (kg)\n The load is sent in the EBS22 message of ISO 11992-2." }, { - "name": "electric_energy_consumption_wh", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "axles", + "type": "RECORD", + "mode": "REPEATED", + "description": "The trailer axles.", + "fields": [ + { + "name": "position", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The position of the axle from 1 to 15, 1 being in the front\n closest to the truck, according to ISO 11992-2." + }, + { + "name": "load_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The static vertical load of the axle in kilograms.\n The load is sent in the EBS22 message of ISO 11992-2." + } + ] } ] - }, + } + ] + }, + { + "name": "uptime_data", + "type": "RECORD", + "mode": "NULLABLE", + "description": "Uptime data for the vehicle.", + "fields": [ { - "name": "acceleration_class", + "name": "tell_tales", "type": "RECORD", "mode": "REPEATED", + "description": "List of tell tales with the actual state for each tell tale.", "fields": [ { - "name": "from", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "to", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "duration_s", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "type", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The type of tell tale." }, { - "name": "distance_m", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "unknown_type", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unknown tell tale type. Used when the type is TYPE_UNKNOWN." }, { - "name": "fuel_consumption_ml", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "oem_specific_type", + "type": "STRING", + "mode": "NULLABLE", + "description": "The OEM specific type. Used when the type is TYPE_OEM_SPECIFIC." }, { - "name": "fuel_consumption_gaseous_kg", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "state", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The state of the tell tale." }, { - "name": "electric_energy_consumption_wh", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "unknown_state", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unknown state. Used when the state is STATE_UNKNOWN." } ] }, { - "name": "high_acceleration_class", + "name": "service_distance_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The distance in meter to the next service. (m)" + }, + { + "name": "engine_coolant_temperature_c", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The temperature of the coolant liquid. (°C)" + }, + { + "name": "hvess_outlet_coolant_temperature_c", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The temperature of the battery pack coolant. (°C)\n HVESS - High Voltage Energy Storage System." + }, + { + "name": "hvess_temperature_c", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The temperature of the battery pack. (°C)\n HVESS - High Voltage Energy Storage System." + }, + { + "name": "service_brake_air_pressure_circuit1_pa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The pressure of the service brake air pressure circuit 1. (Pa)" + }, + { + "name": "service_brake_air_pressure_circuit2_pa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The pressure of the service brake air pressure circuit 2. (Pa)" + }, + { + "name": "at_least_one_door_open_duration_s", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total time at least one door has been opened in the bus. (s)\n Used mainly for buses." + }, + { + "name": "alternators", "type": "RECORD", "mode": "REPEATED", + "description": "The alternator status of up to 4 alternators.\n Used mainly for buses.", "fields": [ { - "name": "from", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "to", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "duration_s", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "distance_m", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "fuel_consumption_ml", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "number", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The number of the alternator." }, { - "name": "fuel_consumption_gaseous_kg", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "state", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The status of the alternator." }, { - "name": "electric_energy_consumption_wh", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "unknown_state", + "type": "STRING", + "mode": "NULLABLE", + "description": "The unknown state of the alternator.\n Used when the state is STATE_UNKNOWN." } ] }, { - "name": "retarder_torque_class", - "type": "RECORD", - "mode": "REPEATED", - "fields": [ - { - "name": "from", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "to", - "type": "FLOAT", - "mode": "NULLABLE" - }, + "name": "bellow_pressure_front_axle_left_pa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The pressure of the bellow pressure front axle left. (Pa)\n Used mainly for buses." + }, + { + "name": "bellow_pressure_front_axle_right_pa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The pressure of the bellow pressure front axle right. (Pa)\n Used mainly for buses." + }, + { + "name": "bellow_pressure_rear_axle_left_pa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The pressure of the bellow pressure rear axle left. (Pa)\n Used mainly for buses." + }, + { + "name": "bellow_pressure_rear_axle_right_pa", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The pressure of the bellow pressure rear axle right. (Pa)\n Used mainly for buses." + } + ] + }, + { + "name": "accumulated_data", + "type": "RECORD", + "mode": "NULLABLE", + "description": "Accumulated data for the vehicle.", + "fields": [ + { + "name": "wheel_based_speed_over_zero_duration_s", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The duration the vehicle speed has been over zero. (s)" + }, + { + "name": "wheel_based_speed_over_zero_fuel_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The fuel the vehicle has consumed while driven with speed over zero. (ml)\n Engine on (RPM\u003e0) and no PTO active." + }, + { + "name": "wheel_based_speed_over_zero_fuel_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The fuel the vehicle has consumed while driven with speed over zero. (kg)\n Engine on (RPM\u003e0) and no PTO active." + }, + { + "name": "wheel_based_speed_over_zero_electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The electric energy the vehicle has consumed while driven with speed over zero. (Wh)" + }, + { + "name": "wheel_based_speed_zero_duration_s", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The duration the vehicle speed has been zero. (s)\n Engine on (RPM\u003e0 or electic motor in crank mode) and no PTO active" + }, + { + "name": "wheel_based_speed_zero_distance_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The distance the vehicle has been driven with speed zero. (m)" + }, + { + "name": "wheel_based_speed_zero_fuel_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The fuel the vehicle has consumed while driven with speed zero. (ml)\n Engine on (RPM\u003e0) and no PTO active." + }, + { + "name": "wheel_based_speed_zero_fuel_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The fuel the vehicle has consumed while driven with speed zero. (ml)\n Engine on (RPM\u003e0) and no PTO active." + }, + { + "name": "wheel_based_speed_zero_electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The electric energy the vehicle has consumed while driven with speed zero. (Wh)" + }, + { + "name": "cruise_control_active_distance_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The distance the vehicle has been driven with cruise control active. (m)" + }, + { + "name": "cruise_control_active_duration_s", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The duration the vehicle has been driven with cruise control active. (s)" + }, + { + "name": "cruise_control_active_fuel_consumption_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The fuel the vehicle has consumed while driven with cruise control active. (ml)" + }, + { + "name": "cruise_control_active_fuel_consumption_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The fuel the vehicle has consumed while driven with cruise control active. (kg)" + }, + { + "name": "cruise_control_active_electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The electric energy the vehicle has consumed while driven with cruise control active. (Wh)" + }, + { + "name": "aux_electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The electric energy the auxiliary systems have consumed. (Wh)" + }, + { + "name": "pto_active_class", + "type": "RECORD", + "mode": "REPEATED", + "fields": [ + { + "name": "label", + "type": "STRING", + "mode": "NULLABLE", + "description": "The label of the class." + }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The duration of the class. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The distance of the class. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The liquid fuel consumption of the class. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The gaseous fuel consumption of the class. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, { - "name": "driving_without_torque_class", + "name": "brake_pedal_speed_over_zero_count", + "type": "INTEGER", + "mode": "NULLABLE", + "description": "The total number of times the brake pedal has been used while" + }, + { + "name": "brake_pedal_speed_over_zero_distance_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total distance the vehicle has driven where the brake pedal has been used. (m)" + }, + { + "name": "acceleration_pedal_position_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for acceleration pedal position intervals. (percent)\n\n Default:\n Min interval: [0%, 20%)\n Max interval: [80%, 100%]\n Bucket count: 5\n Bucket width: 20%", "fields": [ { - "name": "label", - "type": "STRING", - "mode": "NULLABLE" + "name": "from", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" + }, + { + "name": "to", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "engine_torque_class", + "name": "brake_pedal_position_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for brake pedal position intervals. (percent)\n\n Default:\n Min interval: [0%, 20%)\n Max interval: [80%, 100%]\n Bucket count: 5\n Bucket width: 20%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "electric_motor_torque_class", + "name": "acceleration_class_mps2", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for acceleration intervals. (m/s2)\n\n Default:\n Min interval: (..., -1.1)\n Mid interval: (-0.1, 0.1)\n Max interval: [1.1, ...)\n Bucket count: 11\n Bucket width: 0.2", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" + }, + { + "name": "fuel_consumption_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" + }, + { + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "engine_torque_at_current_speed_class", + "name": "high_acceleration_class_mps2", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats for acceleration intervals. (m/s2)\n\n Default:\n Min interval: (..., -1.1)\n Mid interval: (-0.1, 0.1)\n Max interval: [1.1, ...)\n Bucket count: 11\n Bucket width: 0.2", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "electric_motor_torque_at_current_speed_class", + "name": "retarder_torque_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats by retarder usage. (%)\n\n Default:\n Min interval: (0%, 20%)\n Max interval: [80%, 100%]\n Bucket count: 5\n Bucket width: 20%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" + }, + { + "name": "fuel_consumption_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" + }, + { + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "vehicle_speed_class", + "name": "driving_without_torque_class", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats when driving without torque, with gear (clutch is engaged).\n\n Labels:\n DRIVING_WITHOUT_TORQUE", "fields": [ { - "name": "from", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "to", - "type": "FLOAT", - "mode": "NULLABLE" + "name": "label", + "type": "STRING", + "mode": "NULLABLE", + "description": "The label of the class." }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The duration of the class. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The distance of the class. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The liquid fuel consumption of the class. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The gaseous fuel consumption of the class. (kg)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, { - "name": "engine_speed_class", + "name": "engine_torque_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats by EEC1 value (Actual Engine-Percent Torque). (%)\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "electric_energy_consumption_wh", - "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" } ] }, { - "name": "acceleration_during_brake_class", + "name": "electric_motor_torque_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats by electric engine torque (Actual Engine-Percent Torque). (%)\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "fuel_consumption_ml", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "fuel_consumption_gaseous_kg", - "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "selected_gear_class", + "name": "engine_torque_at_current_speed_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on EEC2 value (Engine Percent Load At Current Speed). (%)\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { - "name": "label", - "type": "STRING", - "mode": "NULLABLE" - }, - { - "name": "duration_s", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "distance_m", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "fuel_consumption_ml", - "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "fuel_consumption_gaseous_kg", + "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { - "name": "electric_energy_consumption_wh", + "name": "to", "type": "FLOAT", - "mode": "NULLABLE" - } - ] - }, - { - "name": "current_gear_class", - "type": "RECORD", - "mode": "REPEATED", - "fields": [ - { - "name": "label", - "type": "STRING", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "fuel_consumption_ml", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" }, { "name": "fuel_consumption_gaseous_kg", "type": "FLOAT", - "mode": "NULLABLE" - }, - { - "name": "electric_energy_consumption_wh", - "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" } ] }, { - "name": "chairlift_count", - "type": "INTEGER", - "mode": "NULLABLE" - }, - { - "name": "stop_request_count", - "type": "INTEGER", - "mode": "NULLABLE" - }, - { - "name": "kneeling_count", - "type": "INTEGER", - "mode": "NULLABLE" - }, - { - "name": "pram_request_count", - "type": "INTEGER", - "mode": "NULLABLE" - }, - { - "name": "electric_power_recuperation_class", + "name": "electric_motor_torque_at_current_speed_class_percent", "type": "RECORD", "mode": "REPEATED", + "description": "Histogram of stats based on electric motor EEC2 value. (Engine Percent Load At Current Speed).\n\n Default:\n Min interval: [0%, 10%)\n Max interval: [90%, 100%]\n Bucket count: 10\n Bucket width: 10%", "fields": [ { "name": "from", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The from value of the bucket interval. (inclusive)" }, { "name": "to", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The to value of the bucket interval. (exclusive)" }, { "name": "duration_s", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" }, { "name": "distance_m", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" }, { "name": "electric_energy_consumption_wh", "type": "FLOAT", - "mode": "NULLABLE" + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] - } - ] - }, - { - "name": "snapshot_data", - "type": "RECORD", - "mode": "NULLABLE", - "description": "Snapshot data for the vehicle.", - "fields": [ + }, { - "name": "gnss_position", + "name": "vehicle_speed_class_kmh", "type": "RECORD", - "mode": "NULLABLE", - "description": "The GNSS position of the vehicle.", + "mode": "REPEATED", + "description": "Histogram of stats based on vehicle speed. (km/h)\n Engine on (RPM\u003e0 or electric motor in crank mode).\n\n Default:\n Min interval: [0km/h, 4km/h)\n Max interval: [156km/h, ...)\n Bucket count: 40\n Bucket width: 4km/h", "fields": [ { - "name": "time", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The date and time the GNSS position was recorded. (Unix microseconds)" - }, - { - "name": "latitude", + "name": "from", "type": "FLOAT", "mode": "NULLABLE", - "description": "The latitude of the vehicle. (WGS84 based)" + "description": "The from value of the bucket interval. (inclusive)" }, { - "name": "longitude", + "name": "to", "type": "FLOAT", "mode": "NULLABLE", - "description": "The longitude of the vehicle. (WGS84 based)" + "description": "The to value of the bucket interval. (exclusive)" }, { - "name": "heading_deg", + "name": "duration_s", "type": "FLOAT", "mode": "NULLABLE", - "description": "The heading of the vehicle. (degrees) (0-359)" + "description": "The total duration of the bucket. (s)" }, { - "name": "altitude_m", + "name": "distance_m", "type": "FLOAT", "mode": "NULLABLE", - "description": "The altitude of the vehicle. (meters)\n 0 is sea level, negative values below sea level, and positive above sea level." + "description": "The total distance of the bucket. (m)" }, { - "name": "speed_kmh", + "name": "fuel_consumption_ml", "type": "FLOAT", "mode": "NULLABLE", - "description": "The speed of the vehicle. (km/h)" - } - ] - }, - { - "name": "wheel_based_speed_kmh", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The wheel-based speed of the vehicle. (km/h)" - }, - { - "name": "tachograph_speed_kmh", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The tachograph speed of the vehicle. (km/h)" - }, - { - "name": "engine_speed_rpm", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The engine (diesel/gaseous) speed of the vehicle. (rev/min)" - }, - { - "name": "electric_motor_speed_rpm", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The electric motor speed of the vehicle. (rev/min)" - }, - { - "name": "ignition_state", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The ignition state of the vehicle." - }, - { - "name": "fuel_type", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The fuel type currently being utilized by the vehicle." - }, - { - "name": "unknown_fuel_type", - "type": "STRING", - "mode": "NULLABLE", - "description": "The unknown fuel type of the vehicle.\n Provided when the fuel type is FUEL_TYPE_UNKNOWN." - }, - { - "name": "fuel_level1_percent", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The fuel level of the vehicle. (%) (0 - 100)" - }, - { - "name": "fuel_level2_percent", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The fuel level of the vehicle. (%) (0 - 100)\n When Fuel Level 2 is not used, Fuel Level 1 represents\n the total fuel in all fuel storage containers.\n\n When Fuel Level 2 is used,\n Fuel Level 1 represents the fuel level in the primary or left-side fuel\n storage container." - }, - { - "name": "catalyst_fuel_level_percent", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The adblue level percentage" - }, - { - "name": "driver1_working_state", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The driver working state of the vehicle." - }, - { - "name": "unknown_driver1_working_state", - "type": "STRING", - "mode": "NULLABLE", - "description": "The unknown driver working state of the vehicle.\n Provided when the driver working state is DRIVER_WORKING_STATE_UNKNOWN." - }, - { - "name": "driver2", - "type": "RECORD", - "mode": "NULLABLE", - "description": "The driver identification of driver 2.", - "fields": [ - { - "name": "tacho", - "type": "RECORD", - "mode": "NULLABLE", - "description": "The identification of a driver using the Tacho card.", - "fields": [ - { - "name": "driver_id", - "type": "STRING", - "mode": "NULLABLE", - "description": "The unique identification of a driver in a Member State.\n This fields is formatted according the definition for driverIdentification\n in COMMISSION REGULATION (EC) No 1360/2002 Annex 1b" - }, - { - "name": "card_issuing_member_state", - "type": "STRING", - "mode": "NULLABLE", - "description": "The country alpha code of the Member State having issued the card.\n This fields is formatted according the definition for NationAlpha\n in COMMISSION REGULATION (EC) No 1360/2002 Annex 1b" - }, - { - "name": "authentication_equipment", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "Code to distinguish different types of equipment for the\n tachograph application. See description of the field 'DriverAuthenticationEquipment'\n in COMMISSION REGULATION (EC) No 1360/2002 Annex 1b" - }, - { - "name": "unknown_authentication_equipment", - "type": "STRING", - "mode": "NULLABLE", - "description": "The unknown authentication equipment of the driver.\n This is used when authentication_equipment is AUTHENTICATION_EQUIPMENT_UNKNOWN." - }, - { - "name": "card_replacement_index", - "type": "STRING", - "mode": "NULLABLE", - "description": "A card replacement index. This fields is formatted according\n the definition for CardReplacementIndex (chap 2.26) in: COMMISSION\n REGULATION (EC) No 1360/2002 Annex 1b" - }, - { - "name": "card_renewal_index", - "type": "STRING", - "mode": "NULLABLE", - "description": "A card renewal index. This fields is formatted according\n the definition for CardRenewalIndex (chap 2.25) in: COMMISSION\n REGULATION (EC) No 1360/2002 Annex 1b" - } - ] - }, - { - "name": "oem", - "type": "RECORD", - "mode": "NULLABLE", - "description": "The identification of a driver using an OEM specific method.", - "fields": [ - { - "name": "id_type", - "type": "STRING", - "mode": "NULLABLE", - "description": "An optional id type (e.g. pin, USB, encrypted EU id...).\n\nTODO: Should this be enum?" - }, - { - "name": "driver_id", - "type": "STRING", - "mode": "NULLABLE", - "description": "An OEM specific driver id." - } - ] - } - ] - }, - { - "name": "driver2_working_state", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The driver working state of the vehicle." - }, - { - "name": "unknown_driver2_working_state", - "type": "STRING", - "mode": "NULLABLE", - "description": "The unknown driver working state of the vehicle.\n Provided when the driver working state is DRIVER_WORKING_STATE_UNKNOWN." - }, - { - "name": "ambient_air_temperature_c", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The ambient air temperature of the vehicle. (°C)" - }, - { - "name": "parking_brake_switch", - "type": "BOOLEAN", - "mode": "NULLABLE", - "description": "The parking brake switch state of the vehicle.\n In general the switch actuated by the operator's park brake control, whether\n a pedal, lever or other control mechanism\n\n true - parking brake set\n false - parking brake not set" - }, - { - "name": "battery_pack_remaining_charge_percent", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The battery pack remaining charge of the vehicle. (%) (0 - 100)\n 0% means no charge remaining, 100% means full charge remaining.\n Is used for hybrid vehicles as well for full electrical vehicles" - }, - { - "name": "battery_pack_charging_state", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The battery pack charging status of the vehicle." - }, - { - "name": "battery_pack_charging_connection_state", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The battery pack charging status of the vehicle." - }, - { - "name": "battery_pack_charging_device", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The battery pack charging device of the vehicle." - }, - { - "name": "battery_pack_charging_power_w", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The battery pack charging power of the vehicle. (W)" - }, - { - "name": "battery_pack_estimated_charging_completed_time", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "The estimated time when charging has reached the target level. (Unix micros)" + "description": "The total liquid fuel consumption of the bucket. (ml)" + }, + { + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" + } + ] }, { - "name": "estimated_distance_to_empty", + "name": "engine_speed_class_rpm", "type": "RECORD", - "mode": "NULLABLE", - "description": "The estimated distance to empty of the vehicle.", + "mode": "REPEATED", + "description": "Histogram of stats based on the RPM of the combustion engine. (rpm)\n Only mandatory if the vehicle has a combustion engine for propulsion.\n\n Default:\n Min interval: [0rpm, 400pm)\n Max interval: [3600rpm, ...)\n Bucket count: 10\n Bucket width: 400rpm", "fields": [ { - "name": "total_m", + "name": "from", "type": "FLOAT", "mode": "NULLABLE", - "description": "The estimated distance to empty of the vehicle. (m)" + "description": "The from value of the bucket interval. (inclusive)" }, { - "name": "fuel_m", + "name": "to", "type": "FLOAT", "mode": "NULLABLE", - "description": "The estimated distance to empty of the vehicle. (m)" + "description": "The to value of the bucket interval. (exclusive)" }, { - "name": "gas_m", + "name": "duration_s", "type": "FLOAT", "mode": "NULLABLE", - "description": "The estimated distance to empty of the vehicle. (m)" + "description": "The total duration of the bucket. (s)" }, { - "name": "battery_pack_m", + "name": "distance_m", "type": "FLOAT", "mode": "NULLABLE", - "description": "The estimated distance to empty of the vehicle. (m)" + "description": "The total distance of the bucket. (m)" + }, + { + "name": "fuel_consumption_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" + }, + { + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "axles", + "name": "acceleration_during_brake_class_mps2", "type": "RECORD", "mode": "REPEATED", - "description": "The axles of the vehicle.", + "description": "Histogram of stats based on the acceleration during braking. (m/s2)\n\n Default:\n Min interval: [..., -1.1m/s2)\n Mid interval: (-0.1m/s2, 0.1m/s2)\n Max interval: [1.1m/s2, ...)\n Bucket count: 13\n Bucket width: 0.2m/s2", "fields": [ { - "name": "position", - "type": "INTEGER", + "name": "from", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The position of the axle." + "description": "The from value of the bucket interval. (inclusive)" }, { - "name": "load_kg", + "name": "to", "type": "FLOAT", "mode": "NULLABLE", - "description": "The static vertical load of the axle. (kg)" + "description": "The to value of the bucket interval. (exclusive)" }, { - "name": "tires", - "type": "RECORD", - "mode": "REPEATED", - "description": "The tires on the axle.", - "fields": [ - { - "name": "position", - "type": "INTEGER", - "mode": "NULLABLE", - "description": "Tire position (on the specified axle) from 1 to 15,\n counting left to right when facing in the direction of\n normal vehicle travel (forward)." - }, - { - "name": "pressure_kpa", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "Tire pressure. (kPa)" - } - ] + "name": "duration_s", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total duration of the bucket. (s)" + }, + { + "name": "distance_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" + }, + { + "name": "fuel_consumption_ml", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total liquid fuel consumption of the bucket. (ml)" + }, + { + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total gaseous fuel consumption of the bucket. (kg)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] }, { - "name": "trailers", + "name": "selected_gear_class", "type": "RECORD", "mode": "REPEATED", - "description": "The trailers connected to the vehicle.", + "description": "Histogram of stats based on the currently selected gear.\n On class per gear. Park is also a gear.\n Gear is formatted according to SPN 524 and supplied as a decimal value.\n\n Example:\n 0 = Neutral\n 1 = 1st gear\n 2 = 2nd gear\n\n This is mainly used for buses.", "fields": [ { - "name": "number", - "type": "INTEGER", + "name": "label", + "type": "STRING", "mode": "NULLABLE", - "description": "The trailer number from 1 to 5, 1 being closest to the truck, according to ISO 11992-2." + "description": "The label of the class." }, { - "name": "identification_data", - "type": "STRING", + "name": "duration_s", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The trailer identification data sent by the trailer to the truck in the RGE23 message of ISO 11992-2.\n An alternative source is the DID (Data identifier definition) record VIN, as specified in ISO 11992-4.\n Even though both ISO 11992-2 and ISO 11992-4 specifies this as a VIN, the actual data sent from a trailer is not always\n the true VIN of the trailer." + "description": "The duration of the class. (s)" }, { - "name": "vin", - "type": "STRING", + "name": "distance_m", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The vehicle identification number of the trailer. See ISO 3779 (17 characters)\n If the trailerIdentificationData is reporting a true VIN, trailerVin will have the same value.\n If it is possible to map the trailerIdentificationData to a true VIN using other sources, the value can be provided here." + "description": "The distance of the class. (m)" }, { - "name": "customer_name", - "type": "STRING", + "name": "fuel_consumption_ml", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The customer's name for the trailer" + "description": "The liquid fuel consumption of the class. (ml)" }, { - "name": "type", - "type": "INTEGER", + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The trailer type." + "description": "The gaseous fuel consumption of the class. (kg)" }, { - "name": "axle_load_sum_kg", + "name": "electric_energy_consumption_wh", "type": "FLOAT", "mode": "NULLABLE", - "description": "The sum of the static vertical loads of the trailer axles. (kg)\n The load is sent in the EBS22 message of ISO 11992-2." + "description": "The electric energy consumption of the class. (wh)" } ] - } - ] - }, - { - "name": "uptime_data", - "type": "RECORD", - "mode": "NULLABLE", - "description": "Uptime data for the vehicle.", - "fields": [ + }, { - "name": "tell_tales", + "name": "current_gear_class", "type": "RECORD", "mode": "REPEATED", - "description": "List of tell tales with the actual state for each tell tale.", + "description": "Histogram of stats based on the currently used gear.\n On class per gear. Park is also a gear.\n Gear is formatted according to SPN 524 and supplied as a decimal value.\n\n Example:\n 0 = Neutral\n 1 = 1st gear\n 2 = 2nd gear\n\n This is mainly used for buses.", "fields": [ { - "name": "type", - "type": "INTEGER", + "name": "label", + "type": "STRING", "mode": "NULLABLE", - "description": "The type of tell tale." + "description": "The label of the class." }, { - "name": "unknown_type", - "type": "STRING", + "name": "duration_s", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The unknown tell tale type. Used when the type is TYPE_UNKNOWN." + "description": "The duration of the class. (s)" }, { - "name": "oem_specific_type", - "type": "STRING", + "name": "distance_m", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The OEM specific type. Used when the type is TYPE_OEM_SPECIFIC." + "description": "The distance of the class. (m)" }, { - "name": "state", - "type": "INTEGER", + "name": "fuel_consumption_ml", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The state of the tell tale." + "description": "The liquid fuel consumption of the class. (ml)" }, { - "name": "unknown_state", - "type": "STRING", + "name": "fuel_consumption_gaseous_kg", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The unknown state. Used when the state is STATE_UNKNOWN." + "description": "The gaseous fuel consumption of the class. (kg)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The electric energy consumption of the class. (wh)" } ] }, { - "name": "service_distance_m", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The distance in meter to the next service. (m)" - }, - { - "name": "engine_coolant_temperature_c", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The temperature of the coolant liquid. (°C)" - }, - { - "name": "hvess_outlet_coolant_temperature_c", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The temperature of the battery pack coolant. (°C)\n HVESS - High Voltage Energy Storage System." - }, - { - "name": "hvess_temperature_c", - "type": "FLOAT", + "name": "chairlift_count", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The temperature of the battery pack. (°C)\n HVESS - High Voltage Energy Storage System." + "description": "The total number of times the chairlift has been outside the bus.\n This is mainly used for buses." }, { - "name": "service_brake_air_pressure_circuit1_pa", - "type": "FLOAT", + "name": "stop_request_count", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The pressure of the service brake air pressure circuit 1. (Pa)" + "description": "The total number of stop requests made.\n This is mainly used for buses." }, { - "name": "service_brake_air_pressure_circuit2_pa", - "type": "FLOAT", + "name": "kneeling_count", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The pressure of the service brake air pressure circuit 2. (Pa)" + "description": "The total number of times the bus has knelt.\n This is mainly used for buses." }, { - "name": "at_least_one_door_open_duration_s", - "type": "FLOAT", + "name": "pram_request_count", + "type": "INTEGER", "mode": "NULLABLE", - "description": "The total time at least one door has been opened in the bus. (s)\n Used mainly for buses." + "description": "The total number of pram requests made.\n This is mainly used for buses." }, { - "name": "alternators", + "name": "electric_power_recuperation_class_kw", "type": "RECORD", "mode": "REPEATED", - "description": "The alternator status of up to 4 alternators.\n Used mainly for buses.", + "description": "Classes refer to the recuperated electric power. (kw)\n Minimum 11 classes.\n [0, 100) [100, 200) [200, 300) ... [900, 1000), [1000, ...]", "fields": [ { - "name": "number", - "type": "INTEGER", + "name": "from", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The number of the alternator." + "description": "The from value of the bucket interval. (inclusive)" }, { - "name": "state", - "type": "INTEGER", + "name": "to", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The status of the alternator." + "description": "The to value of the bucket interval. (exclusive)" }, { - "name": "unknown_state", - "type": "STRING", + "name": "duration_s", + "type": "FLOAT", "mode": "NULLABLE", - "description": "The unknown state of the alternator.\n Used when the state is STATE_UNKNOWN." + "description": "The total duration of the bucket. (s)" + }, + { + "name": "distance_m", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total distance of the bucket. (m)" + }, + { + "name": "electric_energy_consumption_wh", + "type": "FLOAT", + "mode": "NULLABLE", + "description": "The total electric energy consumption of the bucket. (wh)" } ] - }, - { - "name": "bellow_pressure_front_axle_left_pa", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The pressure of the bellow pressure front axle left. (Pa)\n Used mainly for buses." - }, - { - "name": "bellow_pressure_front_axle_right_pa", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The pressure of the bellow pressure front axle right. (Pa)\n Used mainly for buses." - }, - { - "name": "bellow_pressure_rear_axle_left_pa", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The pressure of the bellow pressure rear axle left. (Pa)\n Used mainly for buses." - }, - { - "name": "bellow_pressure_rear_axle_right_pa", - "type": "FLOAT", - "mode": "NULLABLE", - "description": "The pressure of the bellow pressure rear axle right. (Pa)\n Used mainly for buses." } ] } diff --git a/proto/gen/go/wayplatform/rfms/v5/accumulated_data.pb.go b/proto/gen/go/wayplatform/rfms/v5/accumulated_data.pb.go index 8089f49..5f034cd 100644 --- a/proto/gen/go/wayplatform/rfms/v5/accumulated_data.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/accumulated_data.pb.go @@ -45,26 +45,26 @@ type AccumulatedData struct { xxx_hidden_PtoActiveClass *[]*AccumulatedData_LabelClass `protobuf:"bytes,16,rep,name=pto_active_class,json=ptoActiveClass"` xxx_hidden_BrakePedalSpeedOverZeroCount int32 `protobuf:"varint,17,opt,name=brake_pedal_speed_over_zero_count,json=brakePedalSpeedOverZeroCount"` xxx_hidden_BrakePedalSpeedOverZeroDistanceM float64 `protobuf:"fixed64,18,opt,name=brake_pedal_speed_over_zero_distance_m,json=brakePedalSpeedOverZeroDistanceM"` - xxx_hidden_AccelerationPedalPositionClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,19,rep,name=acceleration_pedal_position_class,json=accelerationPedalPositionClass"` - xxx_hidden_BrakePedalPositionClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,20,rep,name=brake_pedal_position_class,json=brakePedalPositionClass"` - xxx_hidden_AccelerationClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,21,rep,name=acceleration_class,json=accelerationClass"` - xxx_hidden_HighAccelerationClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,22,rep,name=high_acceleration_class,json=highAccelerationClass"` - xxx_hidden_RetarderTorqueClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,23,rep,name=retarder_torque_class,json=retarderTorqueClass"` + xxx_hidden_AccelerationPedalPositionClassPercent *[]*AccumulatedData_FromToClass `protobuf:"bytes,19,rep,name=acceleration_pedal_position_class_percent,json=accelerationPedalPositionClassPercent"` + xxx_hidden_BrakePedalPositionClassPercent *[]*AccumulatedData_FromToClass `protobuf:"bytes,20,rep,name=brake_pedal_position_class_percent,json=brakePedalPositionClassPercent"` + xxx_hidden_AccelerationClassMps2 *[]*AccumulatedData_FromToClass `protobuf:"bytes,21,rep,name=acceleration_class_mps2,json=accelerationClassMps2"` + xxx_hidden_HighAccelerationClassMps2 *[]*AccumulatedData_FromToClass `protobuf:"bytes,22,rep,name=high_acceleration_class_mps2,json=highAccelerationClassMps2"` + xxx_hidden_RetarderTorqueClassPercent *[]*AccumulatedData_FromToClass `protobuf:"bytes,23,rep,name=retarder_torque_class_percent,json=retarderTorqueClassPercent"` xxx_hidden_DrivingWithoutTorqueClass *[]*AccumulatedData_LabelClass `protobuf:"bytes,24,rep,name=driving_without_torque_class,json=drivingWithoutTorqueClass"` - xxx_hidden_EngineTorqueClass *[]*AccumulatedData_FromToClassCombustion `protobuf:"bytes,25,rep,name=engine_torque_class,json=engineTorqueClass"` - xxx_hidden_ElectricMotorTorqueClass *[]*AccumulatedData_FromToClassElectrical `protobuf:"bytes,26,rep,name=electric_motor_torque_class,json=electricMotorTorqueClass"` - xxx_hidden_EngineTorqueAtCurrentSpeedClass *[]*AccumulatedData_FromToClassCombustion `protobuf:"bytes,27,rep,name=engine_torque_at_current_speed_class,json=engineTorqueAtCurrentSpeedClass"` - xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClass *[]*AccumulatedData_FromToClassElectrical `protobuf:"bytes,28,rep,name=electric_motor_torque_at_current_speed_class,json=electricMotorTorqueAtCurrentSpeedClass"` - xxx_hidden_VehicleSpeedClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,29,rep,name=vehicle_speed_class,json=vehicleSpeedClass"` - xxx_hidden_EngineSpeedClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,30,rep,name=engine_speed_class,json=engineSpeedClass"` - xxx_hidden_AccelerationDuringBrakeClass *[]*AccumulatedData_FromToClass `protobuf:"bytes,31,rep,name=acceleration_during_brake_class,json=accelerationDuringBrakeClass"` + xxx_hidden_EngineTorqueClassPercent *[]*AccumulatedData_FromToClassCombustion `protobuf:"bytes,25,rep,name=engine_torque_class_percent,json=engineTorqueClassPercent"` + xxx_hidden_ElectricMotorTorqueClassPercent *[]*AccumulatedData_FromToClassElectrical `protobuf:"bytes,26,rep,name=electric_motor_torque_class_percent,json=electricMotorTorqueClassPercent"` + xxx_hidden_EngineTorqueAtCurrentSpeedClassPercent *[]*AccumulatedData_FromToClassCombustion `protobuf:"bytes,27,rep,name=engine_torque_at_current_speed_class_percent,json=engineTorqueAtCurrentSpeedClassPercent"` + xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClassPercent *[]*AccumulatedData_FromToClassElectrical `protobuf:"bytes,28,rep,name=electric_motor_torque_at_current_speed_class_percent,json=electricMotorTorqueAtCurrentSpeedClassPercent"` + xxx_hidden_VehicleSpeedClassKmh *[]*AccumulatedData_FromToClass `protobuf:"bytes,29,rep,name=vehicle_speed_class_kmh,json=vehicleSpeedClassKmh"` + xxx_hidden_EngineSpeedClassRpm *[]*AccumulatedData_FromToClass `protobuf:"bytes,30,rep,name=engine_speed_class_rpm,json=engineSpeedClassRpm"` + xxx_hidden_AccelerationDuringBrakeClassMps2 *[]*AccumulatedData_FromToClass `protobuf:"bytes,31,rep,name=acceleration_during_brake_class_mps2,json=accelerationDuringBrakeClassMps2"` xxx_hidden_SelectedGearClass *[]*AccumulatedData_LabelClass `protobuf:"bytes,32,rep,name=selected_gear_class,json=selectedGearClass"` xxx_hidden_CurrentGearClass *[]*AccumulatedData_LabelClass `protobuf:"bytes,33,rep,name=current_gear_class,json=currentGearClass"` xxx_hidden_ChairliftCount int32 `protobuf:"varint,34,opt,name=chairlift_count,json=chairliftCount"` xxx_hidden_StopRequestCount int32 `protobuf:"varint,35,opt,name=stop_request_count,json=stopRequestCount"` xxx_hidden_KneelingCount int32 `protobuf:"varint,36,opt,name=kneeling_count,json=kneelingCount"` xxx_hidden_PramRequestCount int32 `protobuf:"varint,37,opt,name=pram_request_count,json=pramRequestCount"` - xxx_hidden_ElectricPowerRecuperationClass *[]*AccumulatedData_FromToClassElectrical `protobuf:"bytes,38,rep,name=electric_power_recuperation_class,json=electricPowerRecuperationClass"` + xxx_hidden_ElectricPowerRecuperationClassKw *[]*AccumulatedData_FromToClassElectrical `protobuf:"bytes,38,rep,name=electric_power_recuperation_class_kw,json=electricPowerRecuperationClassKw"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [2]uint32 unknownFields protoimpl.UnknownFields @@ -224,46 +224,46 @@ func (x *AccumulatedData) GetBrakePedalSpeedOverZeroDistanceM() float64 { return 0 } -func (x *AccumulatedData) GetAccelerationPedalPositionClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetAccelerationPedalPositionClassPercent() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_AccelerationPedalPositionClass != nil { - return *x.xxx_hidden_AccelerationPedalPositionClass + if x.xxx_hidden_AccelerationPedalPositionClassPercent != nil { + return *x.xxx_hidden_AccelerationPedalPositionClassPercent } } return nil } -func (x *AccumulatedData) GetBrakePedalPositionClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetBrakePedalPositionClassPercent() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_BrakePedalPositionClass != nil { - return *x.xxx_hidden_BrakePedalPositionClass + if x.xxx_hidden_BrakePedalPositionClassPercent != nil { + return *x.xxx_hidden_BrakePedalPositionClassPercent } } return nil } -func (x *AccumulatedData) GetAccelerationClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetAccelerationClassMps2() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_AccelerationClass != nil { - return *x.xxx_hidden_AccelerationClass + if x.xxx_hidden_AccelerationClassMps2 != nil { + return *x.xxx_hidden_AccelerationClassMps2 } } return nil } -func (x *AccumulatedData) GetHighAccelerationClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetHighAccelerationClassMps2() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_HighAccelerationClass != nil { - return *x.xxx_hidden_HighAccelerationClass + if x.xxx_hidden_HighAccelerationClassMps2 != nil { + return *x.xxx_hidden_HighAccelerationClassMps2 } } return nil } -func (x *AccumulatedData) GetRetarderTorqueClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetRetarderTorqueClassPercent() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_RetarderTorqueClass != nil { - return *x.xxx_hidden_RetarderTorqueClass + if x.xxx_hidden_RetarderTorqueClassPercent != nil { + return *x.xxx_hidden_RetarderTorqueClassPercent } } return nil @@ -278,64 +278,64 @@ func (x *AccumulatedData) GetDrivingWithoutTorqueClass() []*AccumulatedData_Labe return nil } -func (x *AccumulatedData) GetEngineTorqueClass() []*AccumulatedData_FromToClassCombustion { +func (x *AccumulatedData) GetEngineTorqueClassPercent() []*AccumulatedData_FromToClassCombustion { if x != nil { - if x.xxx_hidden_EngineTorqueClass != nil { - return *x.xxx_hidden_EngineTorqueClass + if x.xxx_hidden_EngineTorqueClassPercent != nil { + return *x.xxx_hidden_EngineTorqueClassPercent } } return nil } -func (x *AccumulatedData) GetElectricMotorTorqueClass() []*AccumulatedData_FromToClassElectrical { +func (x *AccumulatedData) GetElectricMotorTorqueClassPercent() []*AccumulatedData_FromToClassElectrical { if x != nil { - if x.xxx_hidden_ElectricMotorTorqueClass != nil { - return *x.xxx_hidden_ElectricMotorTorqueClass + if x.xxx_hidden_ElectricMotorTorqueClassPercent != nil { + return *x.xxx_hidden_ElectricMotorTorqueClassPercent } } return nil } -func (x *AccumulatedData) GetEngineTorqueAtCurrentSpeedClass() []*AccumulatedData_FromToClassCombustion { +func (x *AccumulatedData) GetEngineTorqueAtCurrentSpeedClassPercent() []*AccumulatedData_FromToClassCombustion { if x != nil { - if x.xxx_hidden_EngineTorqueAtCurrentSpeedClass != nil { - return *x.xxx_hidden_EngineTorqueAtCurrentSpeedClass + if x.xxx_hidden_EngineTorqueAtCurrentSpeedClassPercent != nil { + return *x.xxx_hidden_EngineTorqueAtCurrentSpeedClassPercent } } return nil } -func (x *AccumulatedData) GetElectricMotorTorqueAtCurrentSpeedClass() []*AccumulatedData_FromToClassElectrical { +func (x *AccumulatedData) GetElectricMotorTorqueAtCurrentSpeedClassPercent() []*AccumulatedData_FromToClassElectrical { if x != nil { - if x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClass != nil { - return *x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClass + if x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClassPercent != nil { + return *x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClassPercent } } return nil } -func (x *AccumulatedData) GetVehicleSpeedClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetVehicleSpeedClassKmh() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_VehicleSpeedClass != nil { - return *x.xxx_hidden_VehicleSpeedClass + if x.xxx_hidden_VehicleSpeedClassKmh != nil { + return *x.xxx_hidden_VehicleSpeedClassKmh } } return nil } -func (x *AccumulatedData) GetEngineSpeedClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetEngineSpeedClassRpm() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_EngineSpeedClass != nil { - return *x.xxx_hidden_EngineSpeedClass + if x.xxx_hidden_EngineSpeedClassRpm != nil { + return *x.xxx_hidden_EngineSpeedClassRpm } } return nil } -func (x *AccumulatedData) GetAccelerationDuringBrakeClass() []*AccumulatedData_FromToClass { +func (x *AccumulatedData) GetAccelerationDuringBrakeClassMps2() []*AccumulatedData_FromToClass { if x != nil { - if x.xxx_hidden_AccelerationDuringBrakeClass != nil { - return *x.xxx_hidden_AccelerationDuringBrakeClass + if x.xxx_hidden_AccelerationDuringBrakeClassMps2 != nil { + return *x.xxx_hidden_AccelerationDuringBrakeClassMps2 } } return nil @@ -387,10 +387,10 @@ func (x *AccumulatedData) GetPramRequestCount() int32 { return 0 } -func (x *AccumulatedData) GetElectricPowerRecuperationClass() []*AccumulatedData_FromToClassElectrical { +func (x *AccumulatedData) GetElectricPowerRecuperationClassKw() []*AccumulatedData_FromToClassElectrical { if x != nil { - if x.xxx_hidden_ElectricPowerRecuperationClass != nil { - return *x.xxx_hidden_ElectricPowerRecuperationClass + if x.xxx_hidden_ElectricPowerRecuperationClassKw != nil { + return *x.xxx_hidden_ElectricPowerRecuperationClassKw } } return nil @@ -485,56 +485,56 @@ func (x *AccumulatedData) SetBrakePedalSpeedOverZeroDistanceM(v float64) { protoimpl.X.SetPresent(&(x.XXX_presence[0]), 17, 38) } -func (x *AccumulatedData) SetAccelerationPedalPositionClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_AccelerationPedalPositionClass = &v +func (x *AccumulatedData) SetAccelerationPedalPositionClassPercent(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_AccelerationPedalPositionClassPercent = &v } -func (x *AccumulatedData) SetBrakePedalPositionClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_BrakePedalPositionClass = &v +func (x *AccumulatedData) SetBrakePedalPositionClassPercent(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_BrakePedalPositionClassPercent = &v } -func (x *AccumulatedData) SetAccelerationClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_AccelerationClass = &v +func (x *AccumulatedData) SetAccelerationClassMps2(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_AccelerationClassMps2 = &v } -func (x *AccumulatedData) SetHighAccelerationClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_HighAccelerationClass = &v +func (x *AccumulatedData) SetHighAccelerationClassMps2(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_HighAccelerationClassMps2 = &v } -func (x *AccumulatedData) SetRetarderTorqueClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_RetarderTorqueClass = &v +func (x *AccumulatedData) SetRetarderTorqueClassPercent(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_RetarderTorqueClassPercent = &v } func (x *AccumulatedData) SetDrivingWithoutTorqueClass(v []*AccumulatedData_LabelClass) { x.xxx_hidden_DrivingWithoutTorqueClass = &v } -func (x *AccumulatedData) SetEngineTorqueClass(v []*AccumulatedData_FromToClassCombustion) { - x.xxx_hidden_EngineTorqueClass = &v +func (x *AccumulatedData) SetEngineTorqueClassPercent(v []*AccumulatedData_FromToClassCombustion) { + x.xxx_hidden_EngineTorqueClassPercent = &v } -func (x *AccumulatedData) SetElectricMotorTorqueClass(v []*AccumulatedData_FromToClassElectrical) { - x.xxx_hidden_ElectricMotorTorqueClass = &v +func (x *AccumulatedData) SetElectricMotorTorqueClassPercent(v []*AccumulatedData_FromToClassElectrical) { + x.xxx_hidden_ElectricMotorTorqueClassPercent = &v } -func (x *AccumulatedData) SetEngineTorqueAtCurrentSpeedClass(v []*AccumulatedData_FromToClassCombustion) { - x.xxx_hidden_EngineTorqueAtCurrentSpeedClass = &v +func (x *AccumulatedData) SetEngineTorqueAtCurrentSpeedClassPercent(v []*AccumulatedData_FromToClassCombustion) { + x.xxx_hidden_EngineTorqueAtCurrentSpeedClassPercent = &v } -func (x *AccumulatedData) SetElectricMotorTorqueAtCurrentSpeedClass(v []*AccumulatedData_FromToClassElectrical) { - x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClass = &v +func (x *AccumulatedData) SetElectricMotorTorqueAtCurrentSpeedClassPercent(v []*AccumulatedData_FromToClassElectrical) { + x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClassPercent = &v } -func (x *AccumulatedData) SetVehicleSpeedClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_VehicleSpeedClass = &v +func (x *AccumulatedData) SetVehicleSpeedClassKmh(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_VehicleSpeedClassKmh = &v } -func (x *AccumulatedData) SetEngineSpeedClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_EngineSpeedClass = &v +func (x *AccumulatedData) SetEngineSpeedClassRpm(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_EngineSpeedClassRpm = &v } -func (x *AccumulatedData) SetAccelerationDuringBrakeClass(v []*AccumulatedData_FromToClass) { - x.xxx_hidden_AccelerationDuringBrakeClass = &v +func (x *AccumulatedData) SetAccelerationDuringBrakeClassMps2(v []*AccumulatedData_FromToClass) { + x.xxx_hidden_AccelerationDuringBrakeClassMps2 = &v } func (x *AccumulatedData) SetSelectedGearClass(v []*AccumulatedData_LabelClass) { @@ -565,8 +565,8 @@ func (x *AccumulatedData) SetPramRequestCount(v int32) { protoimpl.X.SetPresent(&(x.XXX_presence[1]), 36, 38) } -func (x *AccumulatedData) SetElectricPowerRecuperationClass(v []*AccumulatedData_FromToClassElectrical) { - x.xxx_hidden_ElectricPowerRecuperationClass = &v +func (x *AccumulatedData) SetElectricPowerRecuperationClassKw(v []*AccumulatedData_FromToClassElectrical) { + x.xxx_hidden_ElectricPowerRecuperationClassKw = &v } func (x *AccumulatedData) HasWheelBasedSpeedOverZeroDurationS() bool { @@ -863,27 +863,166 @@ type AccumulatedData_builder struct { // The total number of times the brake pedal has been used while BrakePedalSpeedOverZeroCount *int32 // The total distance the vehicle has driven where the brake pedal has been used. (m) - BrakePedalSpeedOverZeroDistanceM *float64 - AccelerationPedalPositionClass []*AccumulatedData_FromToClass - BrakePedalPositionClass []*AccumulatedData_FromToClass - AccelerationClass []*AccumulatedData_FromToClass - HighAccelerationClass []*AccumulatedData_FromToClass - RetarderTorqueClass []*AccumulatedData_FromToClass - DrivingWithoutTorqueClass []*AccumulatedData_LabelClass - EngineTorqueClass []*AccumulatedData_FromToClassCombustion - ElectricMotorTorqueClass []*AccumulatedData_FromToClassElectrical - EngineTorqueAtCurrentSpeedClass []*AccumulatedData_FromToClassCombustion - ElectricMotorTorqueAtCurrentSpeedClass []*AccumulatedData_FromToClassElectrical - VehicleSpeedClass []*AccumulatedData_FromToClass - EngineSpeedClass []*AccumulatedData_FromToClass - AccelerationDuringBrakeClass []*AccumulatedData_FromToClass - SelectedGearClass []*AccumulatedData_LabelClass - CurrentGearClass []*AccumulatedData_LabelClass - ChairliftCount *int32 - StopRequestCount *int32 - KneelingCount *int32 - PramRequestCount *int32 - ElectricPowerRecuperationClass []*AccumulatedData_FromToClassElectrical + BrakePedalSpeedOverZeroDistanceM *float64 + // Histogram of stats for acceleration pedal position intervals. (percent) + // + // Default: + // + // Min interval: [0%, 20%) + // Max interval: [80%, 100%] + // Bucket count: 5 + // Bucket width: 20% + AccelerationPedalPositionClassPercent []*AccumulatedData_FromToClass + // Histogram of stats for brake pedal position intervals. (percent) + // + // Default: + // + // Min interval: [0%, 20%) + // Max interval: [80%, 100%] + // Bucket count: 5 + // Bucket width: 20% + BrakePedalPositionClassPercent []*AccumulatedData_FromToClass + // Histogram of stats for acceleration intervals. (m/s2) + // + // Default: + // + // Min interval: (..., -1.1) + // Mid interval: (-0.1, 0.1) + // Max interval: [1.1, ...) + // Bucket count: 11 + // Bucket width: 0.2 + AccelerationClassMps2 []*AccumulatedData_FromToClass + // Histogram of stats for acceleration intervals. (m/s2) + // + // Default: + // + // Min interval: (..., -1.1) + // Mid interval: (-0.1, 0.1) + // Max interval: [1.1, ...) + // Bucket count: 11 + // Bucket width: 0.2 + HighAccelerationClassMps2 []*AccumulatedData_FromToClass + // Histogram of stats by retarder usage. (%) + // + // Default: + // + // Min interval: (0%, 20%) + // Max interval: [80%, 100%] + // Bucket count: 5 + // Bucket width: 20% + RetarderTorqueClassPercent []*AccumulatedData_FromToClass + // Histogram of stats when driving without torque, with gear (clutch is engaged). + // + // Labels: + // + // DRIVING_WITHOUT_TORQUE + DrivingWithoutTorqueClass []*AccumulatedData_LabelClass + // Histogram of stats by EEC1 value (Actual Engine-Percent Torque). (%) + // + // Default: + // + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + EngineTorqueClassPercent []*AccumulatedData_FromToClassCombustion + // Histogram of stats by electric engine torque (Actual Engine-Percent Torque). (%) + // + // Default: + // + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + ElectricMotorTorqueClassPercent []*AccumulatedData_FromToClassElectrical + // Histogram of stats based on EEC2 value (Engine Percent Load At Current Speed). (%) + // + // Default: + // + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + EngineTorqueAtCurrentSpeedClassPercent []*AccumulatedData_FromToClassCombustion + // Histogram of stats based on electric motor EEC2 value. (Engine Percent Load At Current Speed). + // + // Default: + // + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + ElectricMotorTorqueAtCurrentSpeedClassPercent []*AccumulatedData_FromToClassElectrical + // Histogram of stats based on vehicle speed. (km/h) + // Engine on (RPM>0 or electric motor in crank mode). + // + // Default: + // + // Min interval: [0km/h, 4km/h) + // Max interval: [156km/h, ...) + // Bucket count: 40 + // Bucket width: 4km/h + VehicleSpeedClassKmh []*AccumulatedData_FromToClass + // Histogram of stats based on the RPM of the combustion engine. (rpm) + // Only mandatory if the vehicle has a combustion engine for propulsion. + // + // Default: + // + // Min interval: [0rpm, 400pm) + // Max interval: [3600rpm, ...) + // Bucket count: 10 + // Bucket width: 400rpm + EngineSpeedClassRpm []*AccumulatedData_FromToClass + // Histogram of stats based on the acceleration during braking. (m/s2) + // + // Default: + // + // Min interval: [..., -1.1m/s2) + // Mid interval: (-0.1m/s2, 0.1m/s2) + // Max interval: [1.1m/s2, ...) + // Bucket count: 13 + // Bucket width: 0.2m/s2 + AccelerationDuringBrakeClassMps2 []*AccumulatedData_FromToClass + // Histogram of stats based on the currently selected gear. + // On class per gear. Park is also a gear. + // Gear is formatted according to SPN 524 and supplied as a decimal value. + // + // Example: + // + // 0 = Neutral + // 1 = 1st gear + // 2 = 2nd gear + // + // This is mainly used for buses. + SelectedGearClass []*AccumulatedData_LabelClass + // Histogram of stats based on the currently used gear. + // On class per gear. Park is also a gear. + // Gear is formatted according to SPN 524 and supplied as a decimal value. + // + // Example: + // + // 0 = Neutral + // 1 = 1st gear + // 2 = 2nd gear + // + // This is mainly used for buses. + CurrentGearClass []*AccumulatedData_LabelClass + // The total number of times the chairlift has been outside the bus. + // This is mainly used for buses. + ChairliftCount *int32 + // The total number of stop requests made. + // This is mainly used for buses. + StopRequestCount *int32 + // The total number of times the bus has knelt. + // This is mainly used for buses. + KneelingCount *int32 + // The total number of pram requests made. + // This is mainly used for buses. + PramRequestCount *int32 + // Classes refer to the recuperated electric power. (kw) + // Minimum 11 classes. + // [0, 100) [100, 200) [200, 300) ... [900, 1000), [1000, ...] + ElectricPowerRecuperationClassKw []*AccumulatedData_FromToClassElectrical } func (b0 AccumulatedData_builder) Build() *AccumulatedData { @@ -959,19 +1098,19 @@ func (b0 AccumulatedData_builder) Build() *AccumulatedData { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 17, 38) x.xxx_hidden_BrakePedalSpeedOverZeroDistanceM = *b.BrakePedalSpeedOverZeroDistanceM } - x.xxx_hidden_AccelerationPedalPositionClass = &b.AccelerationPedalPositionClass - x.xxx_hidden_BrakePedalPositionClass = &b.BrakePedalPositionClass - x.xxx_hidden_AccelerationClass = &b.AccelerationClass - x.xxx_hidden_HighAccelerationClass = &b.HighAccelerationClass - x.xxx_hidden_RetarderTorqueClass = &b.RetarderTorqueClass + x.xxx_hidden_AccelerationPedalPositionClassPercent = &b.AccelerationPedalPositionClassPercent + x.xxx_hidden_BrakePedalPositionClassPercent = &b.BrakePedalPositionClassPercent + x.xxx_hidden_AccelerationClassMps2 = &b.AccelerationClassMps2 + x.xxx_hidden_HighAccelerationClassMps2 = &b.HighAccelerationClassMps2 + x.xxx_hidden_RetarderTorqueClassPercent = &b.RetarderTorqueClassPercent x.xxx_hidden_DrivingWithoutTorqueClass = &b.DrivingWithoutTorqueClass - x.xxx_hidden_EngineTorqueClass = &b.EngineTorqueClass - x.xxx_hidden_ElectricMotorTorqueClass = &b.ElectricMotorTorqueClass - x.xxx_hidden_EngineTorqueAtCurrentSpeedClass = &b.EngineTorqueAtCurrentSpeedClass - x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClass = &b.ElectricMotorTorqueAtCurrentSpeedClass - x.xxx_hidden_VehicleSpeedClass = &b.VehicleSpeedClass - x.xxx_hidden_EngineSpeedClass = &b.EngineSpeedClass - x.xxx_hidden_AccelerationDuringBrakeClass = &b.AccelerationDuringBrakeClass + x.xxx_hidden_EngineTorqueClassPercent = &b.EngineTorqueClassPercent + x.xxx_hidden_ElectricMotorTorqueClassPercent = &b.ElectricMotorTorqueClassPercent + x.xxx_hidden_EngineTorqueAtCurrentSpeedClassPercent = &b.EngineTorqueAtCurrentSpeedClassPercent + x.xxx_hidden_ElectricMotorTorqueAtCurrentSpeedClassPercent = &b.ElectricMotorTorqueAtCurrentSpeedClassPercent + x.xxx_hidden_VehicleSpeedClassKmh = &b.VehicleSpeedClassKmh + x.xxx_hidden_EngineSpeedClassRpm = &b.EngineSpeedClassRpm + x.xxx_hidden_AccelerationDuringBrakeClassMps2 = &b.AccelerationDuringBrakeClassMps2 x.xxx_hidden_SelectedGearClass = &b.SelectedGearClass x.xxx_hidden_CurrentGearClass = &b.CurrentGearClass if b.ChairliftCount != nil { @@ -990,10 +1129,11 @@ func (b0 AccumulatedData_builder) Build() *AccumulatedData { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[1]), 36, 38) x.xxx_hidden_PramRequestCount = *b.PramRequestCount } - x.xxx_hidden_ElectricPowerRecuperationClass = &b.ElectricPowerRecuperationClass + x.xxx_hidden_ElectricPowerRecuperationClassKw = &b.ElectricPowerRecuperationClassKw return m0 } +// A histogram bucket of operational stats with a label. type AccumulatedData_LabelClass struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Label *string `protobuf:"bytes,1,opt,name=label"` @@ -1183,11 +1323,17 @@ func (x *AccumulatedData_LabelClass) ClearElectricEnergyConsumptionWh() { type AccumulatedData_LabelClass_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - Label *string - DurationS *float64 - DistanceM *float64 - FuelConsumptionMl *float64 - FuelConsumptionGaseousKg *float64 + // The label of the class. + Label *string + // The duration of the class. (s) + DurationS *float64 + // The distance of the class. (m) + DistanceM *float64 + // The liquid fuel consumption of the class. (ml) + FuelConsumptionMl *float64 + // The gaseous fuel consumption of the class. (kg) + FuelConsumptionGaseousKg *float64 + // The electric energy consumption of the class. (wh) ElectricEnergyConsumptionWh *float64 } @@ -1222,6 +1368,7 @@ func (b0 AccumulatedData_LabelClass_builder) Build() *AccumulatedData_LabelClass return m0 } +// A histogram bucket of operational stats with an interval [from,to). type AccumulatedData_FromToClass struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_From float64 `protobuf:"fixed64,1,opt,name=from"` @@ -1433,12 +1580,19 @@ func (x *AccumulatedData_FromToClass) ClearElectricEnergyConsumptionWh() { type AccumulatedData_FromToClass_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - From *float64 - To *float64 - DurationS *float64 - DistanceM *float64 - FuelConsumptionMl *float64 - FuelConsumptionGaseousKg *float64 + // The from value of the bucket interval. (inclusive) + From *float64 + // The to value of the bucket interval. (exclusive) + To *float64 + // The total duration of the bucket. (s) + DurationS *float64 + // The total distance of the bucket. (m) + DistanceM *float64 + // The total liquid fuel consumption of the bucket. (ml) + FuelConsumptionMl *float64 + // The total gaseous fuel consumption of the bucket. (kg) + FuelConsumptionGaseousKg *float64 + // The total electric energy consumption of the bucket. (wh) ElectricEnergyConsumptionWh *float64 } @@ -1477,6 +1631,7 @@ func (b0 AccumulatedData_FromToClass_builder) Build() *AccumulatedData_FromToCla return m0 } +// A histogram bucket of combustion engine operational stats with an interval [from,to). type AccumulatedData_FromToClassCombustion struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_From float64 `protobuf:"fixed64,1,opt,name=from"` @@ -1663,11 +1818,17 @@ func (x *AccumulatedData_FromToClassCombustion) ClearFuelConsumptionGaseousKg() type AccumulatedData_FromToClassCombustion_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - From *float64 - To *float64 - DurationS *float64 - DistanceM *float64 - FuelConsumptionMl *float64 + // The from value of the bucket interval. (inclusive) + From *float64 + // The to value of the bucket interval. (exclusive) + To *float64 + // The total duration of the bucket. (s) + DurationS *float64 + // The total distance of the bucket. (m) + DistanceM *float64 + // The total liquid fuel consumption of the bucket. (ml) + FuelConsumptionMl *float64 + // The total gaseous fuel consumption of the bucket. (kg) FuelConsumptionGaseousKg *float64 } @@ -1702,6 +1863,7 @@ func (b0 AccumulatedData_FromToClassCombustion_builder) Build() *AccumulatedData return m0 } +// A histogram bucket of electrical engine operational stats with an interval [from,to). type AccumulatedData_FromToClassElectrical struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_From float64 `protobuf:"fixed64,1,opt,name=from"` @@ -1863,10 +2025,15 @@ func (x *AccumulatedData_FromToClassElectrical) ClearElectricEnergyConsumptionWh type AccumulatedData_FromToClassElectrical_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - From *float64 - To *float64 - DurationS *float64 - DistanceM *float64 + // The from value of the bucket interval. (inclusive) + From *float64 + // The to value of the bucket interval. (exclusive) + To *float64 + // The total duration of the bucket. (s) + DurationS *float64 + // The total distance of the bucket. (m) + DistanceM *float64 + // The total electric energy consumption of the bucket. (wh) ElectricEnergyConsumptionWh *float64 } @@ -1901,7 +2068,7 @@ var File_wayplatform_rfms_v5_accumulated_data_proto protoreflect.FileDescriptor const file_wayplatform_rfms_v5_accumulated_data_proto_rawDesc = "" + "\n" + - "*wayplatform/rfms/v5/accumulated_data.proto\x12\x13wayplatform.rfms.v5\"\xce#\n" + + "*wayplatform/rfms/v5/accumulated_data.proto\x12\x13wayplatform.rfms.v5\"\xe8$\n" + "\x0fAccumulatedData\x12P\n" + "&wheel_based_speed_over_zero_duration_s\x18\x01 \x01(\x01R wheelBasedSpeedOverZeroDurationS\x12J\n" + "#wheel_based_speed_over_zero_fuel_ml\x18\x02 \x01(\x01R\x1dwheelBasedSpeedOverZeroFuelMl\x12Y\n" + @@ -1921,27 +2088,27 @@ const file_wayplatform_rfms_v5_accumulated_data_proto_rawDesc = "" + "\"aux_electric_energy_consumption_wh\x18\x0f \x01(\x01R\x1eauxElectricEnergyConsumptionWh\x12Y\n" + "\x10pto_active_class\x18\x10 \x03(\v2/.wayplatform.rfms.v5.AccumulatedData.LabelClassR\x0eptoActiveClass\x12G\n" + "!brake_pedal_speed_over_zero_count\x18\x11 \x01(\x05R\x1cbrakePedalSpeedOverZeroCount\x12P\n" + - "&brake_pedal_speed_over_zero_distance_m\x18\x12 \x01(\x01R brakePedalSpeedOverZeroDistanceM\x12{\n" + - "!acceleration_pedal_position_class\x18\x13 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x1eaccelerationPedalPositionClass\x12m\n" + - "\x1abrake_pedal_position_class\x18\x14 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x17brakePedalPositionClass\x12_\n" + - "\x12acceleration_class\x18\x15 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x11accelerationClass\x12h\n" + - "\x17high_acceleration_class\x18\x16 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x15highAccelerationClass\x12d\n" + - "\x15retarder_torque_class\x18\x17 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x13retarderTorqueClass\x12p\n" + - "\x1cdriving_without_torque_class\x18\x18 \x03(\v2/.wayplatform.rfms.v5.AccumulatedData.LabelClassR\x19drivingWithoutTorqueClass\x12j\n" + - "\x13engine_torque_class\x18\x19 \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassCombustionR\x11engineTorqueClass\x12y\n" + - "\x1belectric_motor_torque_class\x18\x1a \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassElectricalR\x18electricMotorTorqueClass\x12\x89\x01\n" + - "$engine_torque_at_current_speed_class\x18\x1b \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassCombustionR\x1fengineTorqueAtCurrentSpeedClass\x12\x98\x01\n" + - ",electric_motor_torque_at_current_speed_class\x18\x1c \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassElectricalR&electricMotorTorqueAtCurrentSpeedClass\x12`\n" + - "\x13vehicle_speed_class\x18\x1d \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x11vehicleSpeedClass\x12^\n" + - "\x12engine_speed_class\x18\x1e \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x10engineSpeedClass\x12w\n" + - "\x1facceleration_during_brake_class\x18\x1f \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x1caccelerationDuringBrakeClass\x12_\n" + + "&brake_pedal_speed_over_zero_distance_m\x18\x12 \x01(\x01R brakePedalSpeedOverZeroDistanceM\x12\x8a\x01\n" + + ")acceleration_pedal_position_class_percent\x18\x13 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR%accelerationPedalPositionClassPercent\x12|\n" + + "\"brake_pedal_position_class_percent\x18\x14 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x1ebrakePedalPositionClassPercent\x12h\n" + + "\x17acceleration_class_mps2\x18\x15 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x15accelerationClassMps2\x12q\n" + + "\x1chigh_acceleration_class_mps2\x18\x16 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x19highAccelerationClassMps2\x12s\n" + + "\x1dretarder_torque_class_percent\x18\x17 \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x1aretarderTorqueClassPercent\x12p\n" + + "\x1cdriving_without_torque_class\x18\x18 \x03(\v2/.wayplatform.rfms.v5.AccumulatedData.LabelClassR\x19drivingWithoutTorqueClass\x12y\n" + + "\x1bengine_torque_class_percent\x18\x19 \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassCombustionR\x18engineTorqueClassPercent\x12\x88\x01\n" + + "#electric_motor_torque_class_percent\x18\x1a \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassElectricalR\x1felectricMotorTorqueClassPercent\x12\x98\x01\n" + + ",engine_torque_at_current_speed_class_percent\x18\x1b \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassCombustionR&engineTorqueAtCurrentSpeedClassPercent\x12\xa7\x01\n" + + "4electric_motor_torque_at_current_speed_class_percent\x18\x1c \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassElectricalR-electricMotorTorqueAtCurrentSpeedClassPercent\x12g\n" + + "\x17vehicle_speed_class_kmh\x18\x1d \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x14vehicleSpeedClassKmh\x12e\n" + + "\x16engine_speed_class_rpm\x18\x1e \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR\x13engineSpeedClassRpm\x12\x80\x01\n" + + "$acceleration_during_brake_class_mps2\x18\x1f \x03(\v20.wayplatform.rfms.v5.AccumulatedData.FromToClassR accelerationDuringBrakeClassMps2\x12_\n" + "\x13selected_gear_class\x18 \x03(\v2/.wayplatform.rfms.v5.AccumulatedData.LabelClassR\x11selectedGearClass\x12]\n" + "\x12current_gear_class\x18! \x03(\v2/.wayplatform.rfms.v5.AccumulatedData.LabelClassR\x10currentGearClass\x12'\n" + "\x0fchairlift_count\x18\" \x01(\x05R\x0echairliftCount\x12,\n" + "\x12stop_request_count\x18# \x01(\x05R\x10stopRequestCount\x12%\n" + "\x0ekneeling_count\x18$ \x01(\x05R\rkneelingCount\x12,\n" + - "\x12pram_request_count\x18% \x01(\x05R\x10pramRequestCount\x12\x85\x01\n" + - "!electric_power_recuperation_class\x18& \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassElectricalR\x1eelectricPowerRecuperationClass\x1a\x94\x02\n" + + "\x12pram_request_count\x18% \x01(\x05R\x10pramRequestCount\x12\x8a\x01\n" + + "$electric_power_recuperation_class_kw\x18& \x03(\v2:.wayplatform.rfms.v5.AccumulatedData.FromToClassElectricalR electricPowerRecuperationClassKw\x1a\x94\x02\n" + "\n" + "LabelClass\x12\x14\n" + "\x05label\x18\x01 \x01(\tR\x05label\x12\x1d\n" + @@ -1991,22 +2158,22 @@ var file_wayplatform_rfms_v5_accumulated_data_proto_goTypes = []any{ } var file_wayplatform_rfms_v5_accumulated_data_proto_depIdxs = []int32{ 1, // 0: wayplatform.rfms.v5.AccumulatedData.pto_active_class:type_name -> wayplatform.rfms.v5.AccumulatedData.LabelClass - 2, // 1: wayplatform.rfms.v5.AccumulatedData.acceleration_pedal_position_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass - 2, // 2: wayplatform.rfms.v5.AccumulatedData.brake_pedal_position_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass - 2, // 3: wayplatform.rfms.v5.AccumulatedData.acceleration_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass - 2, // 4: wayplatform.rfms.v5.AccumulatedData.high_acceleration_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass - 2, // 5: wayplatform.rfms.v5.AccumulatedData.retarder_torque_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 1: wayplatform.rfms.v5.AccumulatedData.acceleration_pedal_position_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 2: wayplatform.rfms.v5.AccumulatedData.brake_pedal_position_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 3: wayplatform.rfms.v5.AccumulatedData.acceleration_class_mps2:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 4: wayplatform.rfms.v5.AccumulatedData.high_acceleration_class_mps2:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 5: wayplatform.rfms.v5.AccumulatedData.retarder_torque_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass 1, // 6: wayplatform.rfms.v5.AccumulatedData.driving_without_torque_class:type_name -> wayplatform.rfms.v5.AccumulatedData.LabelClass - 3, // 7: wayplatform.rfms.v5.AccumulatedData.engine_torque_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassCombustion - 4, // 8: wayplatform.rfms.v5.AccumulatedData.electric_motor_torque_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassElectrical - 3, // 9: wayplatform.rfms.v5.AccumulatedData.engine_torque_at_current_speed_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassCombustion - 4, // 10: wayplatform.rfms.v5.AccumulatedData.electric_motor_torque_at_current_speed_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassElectrical - 2, // 11: wayplatform.rfms.v5.AccumulatedData.vehicle_speed_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass - 2, // 12: wayplatform.rfms.v5.AccumulatedData.engine_speed_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass - 2, // 13: wayplatform.rfms.v5.AccumulatedData.acceleration_during_brake_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 3, // 7: wayplatform.rfms.v5.AccumulatedData.engine_torque_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassCombustion + 4, // 8: wayplatform.rfms.v5.AccumulatedData.electric_motor_torque_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassElectrical + 3, // 9: wayplatform.rfms.v5.AccumulatedData.engine_torque_at_current_speed_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassCombustion + 4, // 10: wayplatform.rfms.v5.AccumulatedData.electric_motor_torque_at_current_speed_class_percent:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassElectrical + 2, // 11: wayplatform.rfms.v5.AccumulatedData.vehicle_speed_class_kmh:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 12: wayplatform.rfms.v5.AccumulatedData.engine_speed_class_rpm:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass + 2, // 13: wayplatform.rfms.v5.AccumulatedData.acceleration_during_brake_class_mps2:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClass 1, // 14: wayplatform.rfms.v5.AccumulatedData.selected_gear_class:type_name -> wayplatform.rfms.v5.AccumulatedData.LabelClass 1, // 15: wayplatform.rfms.v5.AccumulatedData.current_gear_class:type_name -> wayplatform.rfms.v5.AccumulatedData.LabelClass - 4, // 16: wayplatform.rfms.v5.AccumulatedData.electric_power_recuperation_class:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassElectrical + 4, // 16: wayplatform.rfms.v5.AccumulatedData.electric_power_recuperation_class_kw:type_name -> wayplatform.rfms.v5.AccumulatedData.FromToClassElectrical 17, // [17:17] is the sub-list for method output_type 17, // [17:17] is the sub-list for method input_type 17, // [17:17] is the sub-list for extension type_name diff --git a/proto/gen/go/wayplatform/rfms/v5/brand.pb.go b/proto/gen/go/wayplatform/rfms/v5/brand.pb.go new file mode 100644 index 0000000..fec2395 --- /dev/null +++ b/proto/gen/go/wayplatform/rfms/v5/brand.pb.go @@ -0,0 +1,200 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: wayplatform/rfms/v5/brand.proto + +package rfmsv5 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A vehicle brand. +type Brand int32 + +const ( + // Default value. This value is not used. + Brand_BRAND_UNSPECIFIED Brand = 0 + // Unknown brand. + Brand_BRAND_UNKNOWN Brand = 1 + // VOLVO TRUCKS. + Brand_VOLVO_TRUCKS Brand = 2 + // SCANIA. + Brand_SCANIA Brand = 3 + // DAIMLER. + Brand_DAIMLER Brand = 4 + // IVECO. + Brand_IVECO Brand = 5 + // DAF. + Brand_DAF Brand = 6 + // MAN. + Brand_MAN Brand = 7 + // RENAULT TRUCKS. + Brand_RENAULT_TRUCKS Brand = 8 + // VDL. + Brand_VDL Brand = 9 + // VOLVO BUSES. + Brand_VOLVO_BUSES Brand = 10 + // IVECO BUS. + Brand_IVECO_BUS Brand = 11 + // HEULIEZ. + Brand_HEULIEZ Brand = 12 + // VWTB. + Brand_VWTB Brand = 13 + // KENWORTH. + Brand_KENWORTH Brand = 14 + // PETERBILT. + Brand_PETERBILT Brand = 15 + // MACK TRUCKS. + Brand_MACK_TRUCKS Brand = 16 + // INTERNATIONAL. + Brand_INTERNATIONAL Brand = 17 + // IC BUS. + Brand_IC_BUS Brand = 18 +) + +// Enum value maps for Brand. +var ( + Brand_name = map[int32]string{ + 0: "BRAND_UNSPECIFIED", + 1: "BRAND_UNKNOWN", + 2: "VOLVO_TRUCKS", + 3: "SCANIA", + 4: "DAIMLER", + 5: "IVECO", + 6: "DAF", + 7: "MAN", + 8: "RENAULT_TRUCKS", + 9: "VDL", + 10: "VOLVO_BUSES", + 11: "IVECO_BUS", + 12: "HEULIEZ", + 13: "VWTB", + 14: "KENWORTH", + 15: "PETERBILT", + 16: "MACK_TRUCKS", + 17: "INTERNATIONAL", + 18: "IC_BUS", + } + Brand_value = map[string]int32{ + "BRAND_UNSPECIFIED": 0, + "BRAND_UNKNOWN": 1, + "VOLVO_TRUCKS": 2, + "SCANIA": 3, + "DAIMLER": 4, + "IVECO": 5, + "DAF": 6, + "MAN": 7, + "RENAULT_TRUCKS": 8, + "VDL": 9, + "VOLVO_BUSES": 10, + "IVECO_BUS": 11, + "HEULIEZ": 12, + "VWTB": 13, + "KENWORTH": 14, + "PETERBILT": 15, + "MACK_TRUCKS": 16, + "INTERNATIONAL": 17, + "IC_BUS": 18, + } +) + +func (x Brand) Enum() *Brand { + p := new(Brand) + *p = x + return p +} + +func (x Brand) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Brand) Descriptor() protoreflect.EnumDescriptor { + return file_wayplatform_rfms_v5_brand_proto_enumTypes[0].Descriptor() +} + +func (Brand) Type() protoreflect.EnumType { + return &file_wayplatform_rfms_v5_brand_proto_enumTypes[0] +} + +func (x Brand) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +var File_wayplatform_rfms_v5_brand_proto protoreflect.FileDescriptor + +const file_wayplatform_rfms_v5_brand_proto_rawDesc = "" + + "\n" + + "\x1fwayplatform/rfms/v5/brand.proto\x12\x13wayplatform.rfms.v5*\x9a\x02\n" + + "\x05Brand\x12\x15\n" + + "\x11BRAND_UNSPECIFIED\x10\x00\x12\x11\n" + + "\rBRAND_UNKNOWN\x10\x01\x12\x10\n" + + "\fVOLVO_TRUCKS\x10\x02\x12\n" + + "\n" + + "\x06SCANIA\x10\x03\x12\v\n" + + "\aDAIMLER\x10\x04\x12\t\n" + + "\x05IVECO\x10\x05\x12\a\n" + + "\x03DAF\x10\x06\x12\a\n" + + "\x03MAN\x10\a\x12\x12\n" + + "\x0eRENAULT_TRUCKS\x10\b\x12\a\n" + + "\x03VDL\x10\t\x12\x0f\n" + + "\vVOLVO_BUSES\x10\n" + + "\x12\r\n" + + "\tIVECO_BUS\x10\v\x12\v\n" + + "\aHEULIEZ\x10\f\x12\b\n" + + "\x04VWTB\x10\r\x12\f\n" + + "\bKENWORTH\x10\x0e\x12\r\n" + + "\tPETERBILT\x10\x0f\x12\x0f\n" + + "\vMACK_TRUCKS\x10\x10\x12\x11\n" + + "\rINTERNATIONAL\x10\x11\x12\n" + + "\n" + + "\x06IC_BUS\x10\x12B\xdc\x01\n" + + "\x17com.wayplatform.rfms.v5B\n" + + "BrandProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" + +var file_wayplatform_rfms_v5_brand_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_wayplatform_rfms_v5_brand_proto_goTypes = []any{ + (Brand)(0), // 0: wayplatform.rfms.v5.Brand +} +var file_wayplatform_rfms_v5_brand_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_wayplatform_rfms_v5_brand_proto_init() } +func file_wayplatform_rfms_v5_brand_proto_init() { + if File_wayplatform_rfms_v5_brand_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_brand_proto_rawDesc), len(file_wayplatform_rfms_v5_brand_proto_rawDesc)), + NumEnums: 1, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_wayplatform_rfms_v5_brand_proto_goTypes, + DependencyIndexes: file_wayplatform_rfms_v5_brand_proto_depIdxs, + EnumInfos: file_wayplatform_rfms_v5_brand_proto_enumTypes, + }.Build() + File_wayplatform_rfms_v5_brand_proto = out.File + file_wayplatform_rfms_v5_brand_proto_goTypes = nil + file_wayplatform_rfms_v5_brand_proto_depIdxs = nil +} diff --git a/proto/gen/go/wayplatform/rfms/v5/driver_identification.pb.go b/proto/gen/go/wayplatform/rfms/v5/driver_identification.pb.go index a025a55..0777a84 100644 --- a/proto/gen/go/wayplatform/rfms/v5/driver_identification.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/driver_identification.pb.go @@ -88,7 +88,7 @@ func (x DriverIdentification_Tacho_AuthenticationEquipment) Number() protoreflec return protoreflect.EnumNumber(x) } -// The identification of a driver. +// The identification of a driver or co-driver. type DriverIdentification struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Tacho *DriverIdentification_Tacho `protobuf:"bytes,1,opt,name=tacho"` diff --git a/proto/gen/go/wayplatform/rfms/v5/emission_level.pb.go b/proto/gen/go/wayplatform/rfms/v5/emission_level.pb.go new file mode 100644 index 0000000..cdd86ff --- /dev/null +++ b/proto/gen/go/wayplatform/rfms/v5/emission_level.pb.go @@ -0,0 +1,213 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: wayplatform/rfms/v5/emission_level.proto + +package rfmsv5 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Well-known emission levels. +type EmissionLevel int32 + +const ( + // Default value. This value is not used. + EmissionLevel_EMISSION_LEVEL_UNSPECIFIED EmissionLevel = 0 + // Unknown emission level. + EmissionLevel_EMISSION_LEVEL_UNKNOWN EmissionLevel = 1 + // European Union, Heavy-Duty Truck and Bus Engines. + EmissionLevel_EURO_III EmissionLevel = 2 + EmissionLevel_EURO_III_EEV EmissionLevel = 3 + EmissionLevel_EURO_IV EmissionLevel = 4 + EmissionLevel_EURO_V EmissionLevel = 5 + EmissionLevel_EURO_VI EmissionLevel = 6 + EmissionLevel_EURO_VII EmissionLevel = 7 + // European Union, Nonroad Engines. + EmissionLevel_EURO_STAGE_III EmissionLevel = 8 + EmissionLevel_EURO_STAGE_IV EmissionLevel = 9 + EmissionLevel_EURO_STAGE_V EmissionLevel = 10 + // United_States, Heavy-Duty Truck and Bus Engines. + EmissionLevel_EPA_2004 EmissionLevel = 11 + EmissionLevel_EPA_2007 EmissionLevel = 12 + EmissionLevel_EPA_2010 EmissionLevel = 13 + EmissionLevel_EPA_2015_NOX10 EmissionLevel = 14 + EmissionLevel_EPA_2015_NOX05 EmissionLevel = 15 + EmissionLevel_EPA_2015_NOX02 EmissionLevel = 16 + // United_States, Nonroad Engines. + EmissionLevel_EPA_TIER_2 EmissionLevel = 17 + EmissionLevel_EPA_TIER_3 EmissionLevel = 18 + EmissionLevel_EPA_TIER_4_2008 EmissionLevel = 19 + EmissionLevel_EPA_TIER_4_2013 EmissionLevel = 20 + // Brazil, Heavy-Duty Truck and Bus Engines. + EmissionLevel_PROCONVE_P5 EmissionLevel = 21 + EmissionLevel_PROCONVE_P6 EmissionLevel = 22 + EmissionLevel_PROCONVE_P7 EmissionLevel = 23 + // Brazil, Nonroad Engines. + EmissionLevel_PROCONVE_MARI EmissionLevel = 24 +) + +// Enum value maps for EmissionLevel. +var ( + EmissionLevel_name = map[int32]string{ + 0: "EMISSION_LEVEL_UNSPECIFIED", + 1: "EMISSION_LEVEL_UNKNOWN", + 2: "EURO_III", + 3: "EURO_III_EEV", + 4: "EURO_IV", + 5: "EURO_V", + 6: "EURO_VI", + 7: "EURO_VII", + 8: "EURO_STAGE_III", + 9: "EURO_STAGE_IV", + 10: "EURO_STAGE_V", + 11: "EPA_2004", + 12: "EPA_2007", + 13: "EPA_2010", + 14: "EPA_2015_NOX10", + 15: "EPA_2015_NOX05", + 16: "EPA_2015_NOX02", + 17: "EPA_TIER_2", + 18: "EPA_TIER_3", + 19: "EPA_TIER_4_2008", + 20: "EPA_TIER_4_2013", + 21: "PROCONVE_P5", + 22: "PROCONVE_P6", + 23: "PROCONVE_P7", + 24: "PROCONVE_MARI", + } + EmissionLevel_value = map[string]int32{ + "EMISSION_LEVEL_UNSPECIFIED": 0, + "EMISSION_LEVEL_UNKNOWN": 1, + "EURO_III": 2, + "EURO_III_EEV": 3, + "EURO_IV": 4, + "EURO_V": 5, + "EURO_VI": 6, + "EURO_VII": 7, + "EURO_STAGE_III": 8, + "EURO_STAGE_IV": 9, + "EURO_STAGE_V": 10, + "EPA_2004": 11, + "EPA_2007": 12, + "EPA_2010": 13, + "EPA_2015_NOX10": 14, + "EPA_2015_NOX05": 15, + "EPA_2015_NOX02": 16, + "EPA_TIER_2": 17, + "EPA_TIER_3": 18, + "EPA_TIER_4_2008": 19, + "EPA_TIER_4_2013": 20, + "PROCONVE_P5": 21, + "PROCONVE_P6": 22, + "PROCONVE_P7": 23, + "PROCONVE_MARI": 24, + } +) + +func (x EmissionLevel) Enum() *EmissionLevel { + p := new(EmissionLevel) + *p = x + return p +} + +func (x EmissionLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EmissionLevel) Descriptor() protoreflect.EnumDescriptor { + return file_wayplatform_rfms_v5_emission_level_proto_enumTypes[0].Descriptor() +} + +func (EmissionLevel) Type() protoreflect.EnumType { + return &file_wayplatform_rfms_v5_emission_level_proto_enumTypes[0] +} + +func (x EmissionLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +var File_wayplatform_rfms_v5_emission_level_proto protoreflect.FileDescriptor + +const file_wayplatform_rfms_v5_emission_level_proto_rawDesc = "" + + "\n" + + "(wayplatform/rfms/v5/emission_level.proto\x12\x13wayplatform.rfms.v5*\xce\x03\n" + + "\rEmissionLevel\x12\x1e\n" + + "\x1aEMISSION_LEVEL_UNSPECIFIED\x10\x00\x12\x1a\n" + + "\x16EMISSION_LEVEL_UNKNOWN\x10\x01\x12\f\n" + + "\bEURO_III\x10\x02\x12\x10\n" + + "\fEURO_III_EEV\x10\x03\x12\v\n" + + "\aEURO_IV\x10\x04\x12\n" + + "\n" + + "\x06EURO_V\x10\x05\x12\v\n" + + "\aEURO_VI\x10\x06\x12\f\n" + + "\bEURO_VII\x10\a\x12\x12\n" + + "\x0eEURO_STAGE_III\x10\b\x12\x11\n" + + "\rEURO_STAGE_IV\x10\t\x12\x10\n" + + "\fEURO_STAGE_V\x10\n" + + "\x12\f\n" + + "\bEPA_2004\x10\v\x12\f\n" + + "\bEPA_2007\x10\f\x12\f\n" + + "\bEPA_2010\x10\r\x12\x12\n" + + "\x0eEPA_2015_NOX10\x10\x0e\x12\x12\n" + + "\x0eEPA_2015_NOX05\x10\x0f\x12\x12\n" + + "\x0eEPA_2015_NOX02\x10\x10\x12\x0e\n" + + "\n" + + "EPA_TIER_2\x10\x11\x12\x0e\n" + + "\n" + + "EPA_TIER_3\x10\x12\x12\x13\n" + + "\x0fEPA_TIER_4_2008\x10\x13\x12\x13\n" + + "\x0fEPA_TIER_4_2013\x10\x14\x12\x0f\n" + + "\vPROCONVE_P5\x10\x15\x12\x0f\n" + + "\vPROCONVE_P6\x10\x16\x12\x0f\n" + + "\vPROCONVE_P7\x10\x17\x12\x11\n" + + "\rPROCONVE_MARI\x10\x18B\xe4\x01\n" + + "\x17com.wayplatform.rfms.v5B\x12EmissionLevelProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" + +var file_wayplatform_rfms_v5_emission_level_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_wayplatform_rfms_v5_emission_level_proto_goTypes = []any{ + (EmissionLevel)(0), // 0: wayplatform.rfms.v5.EmissionLevel +} +var file_wayplatform_rfms_v5_emission_level_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_wayplatform_rfms_v5_emission_level_proto_init() } +func file_wayplatform_rfms_v5_emission_level_proto_init() { + if File_wayplatform_rfms_v5_emission_level_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_emission_level_proto_rawDesc), len(file_wayplatform_rfms_v5_emission_level_proto_rawDesc)), + NumEnums: 1, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_wayplatform_rfms_v5_emission_level_proto_goTypes, + DependencyIndexes: file_wayplatform_rfms_v5_emission_level_proto_depIdxs, + EnumInfos: file_wayplatform_rfms_v5_emission_level_proto_enumTypes, + }.Build() + File_wayplatform_rfms_v5_emission_level_proto = out.File + file_wayplatform_rfms_v5_emission_level_proto_goTypes = nil + file_wayplatform_rfms_v5_emission_level_proto_depIdxs = nil +} diff --git a/proto/gen/go/wayplatform/rfms/v5/gearbox_type.pb.go b/proto/gen/go/wayplatform/rfms/v5/gearbox_type.pb.go new file mode 100644 index 0000000..4e67d93 --- /dev/null +++ b/proto/gen/go/wayplatform/rfms/v5/gearbox_type.pb.go @@ -0,0 +1,140 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: wayplatform/rfms/v5/gearbox_type.proto + +package rfmsv5 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Well-known gearbox types. +// +// This enum is not exhaustive. It identifies standard gearbox types, as well as +// commonly used gearbox types across OEM-specific implementations of rFMS APIs. +type GearboxType int32 + +const ( + // Default value. This value is not used. + GearboxType_GEARBOX_TYPE_UNSPECIFIED GearboxType = 0 + // Unknown gearbox type. + GearboxType_GEARBOX_TYPE_UNKNOWN GearboxType = 1 + // Manual. + GearboxType_MANUAL GearboxType = 2 + // Automatic. + GearboxType_AUTOMATIC GearboxType = 3 + // Semi-automatic. + GearboxType_SEMI_AUTOMATIC GearboxType = 4 + // E.g. electrical. + GearboxType_NO_GEAR GearboxType = 5 + // Automated manual transmission. (Scania) + GearboxType_AMT GearboxType = 6 +) + +// Enum value maps for GearboxType. +var ( + GearboxType_name = map[int32]string{ + 0: "GEARBOX_TYPE_UNSPECIFIED", + 1: "GEARBOX_TYPE_UNKNOWN", + 2: "MANUAL", + 3: "AUTOMATIC", + 4: "SEMI_AUTOMATIC", + 5: "NO_GEAR", + 6: "AMT", + } + GearboxType_value = map[string]int32{ + "GEARBOX_TYPE_UNSPECIFIED": 0, + "GEARBOX_TYPE_UNKNOWN": 1, + "MANUAL": 2, + "AUTOMATIC": 3, + "SEMI_AUTOMATIC": 4, + "NO_GEAR": 5, + "AMT": 6, + } +) + +func (x GearboxType) Enum() *GearboxType { + p := new(GearboxType) + *p = x + return p +} + +func (x GearboxType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GearboxType) Descriptor() protoreflect.EnumDescriptor { + return file_wayplatform_rfms_v5_gearbox_type_proto_enumTypes[0].Descriptor() +} + +func (GearboxType) Type() protoreflect.EnumType { + return &file_wayplatform_rfms_v5_gearbox_type_proto_enumTypes[0] +} + +func (x GearboxType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +var File_wayplatform_rfms_v5_gearbox_type_proto protoreflect.FileDescriptor + +const file_wayplatform_rfms_v5_gearbox_type_proto_rawDesc = "" + + "\n" + + "&wayplatform/rfms/v5/gearbox_type.proto\x12\x13wayplatform.rfms.v5*\x8a\x01\n" + + "\vGearboxType\x12\x1c\n" + + "\x18GEARBOX_TYPE_UNSPECIFIED\x10\x00\x12\x18\n" + + "\x14GEARBOX_TYPE_UNKNOWN\x10\x01\x12\n" + + "\n" + + "\x06MANUAL\x10\x02\x12\r\n" + + "\tAUTOMATIC\x10\x03\x12\x12\n" + + "\x0eSEMI_AUTOMATIC\x10\x04\x12\v\n" + + "\aNO_GEAR\x10\x05\x12\a\n" + + "\x03AMT\x10\x06B\xe2\x01\n" + + "\x17com.wayplatform.rfms.v5B\x10GearboxTypeProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" + +var file_wayplatform_rfms_v5_gearbox_type_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_wayplatform_rfms_v5_gearbox_type_proto_goTypes = []any{ + (GearboxType)(0), // 0: wayplatform.rfms.v5.GearboxType +} +var file_wayplatform_rfms_v5_gearbox_type_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_wayplatform_rfms_v5_gearbox_type_proto_init() } +func file_wayplatform_rfms_v5_gearbox_type_proto_init() { + if File_wayplatform_rfms_v5_gearbox_type_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_gearbox_type_proto_rawDesc), len(file_wayplatform_rfms_v5_gearbox_type_proto_rawDesc)), + NumEnums: 1, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_wayplatform_rfms_v5_gearbox_type_proto_goTypes, + DependencyIndexes: file_wayplatform_rfms_v5_gearbox_type_proto_depIdxs, + EnumInfos: file_wayplatform_rfms_v5_gearbox_type_proto_enumTypes, + }.Build() + File_wayplatform_rfms_v5_gearbox_type_proto = out.File + file_wayplatform_rfms_v5_gearbox_type_proto_goTypes = nil + file_wayplatform_rfms_v5_gearbox_type_proto_depIdxs = nil +} diff --git a/proto/gen/go/wayplatform/rfms/v5/gnss_position.pb.go b/proto/gen/go/wayplatform/rfms/v5/gnss_position.pb.go index c847171..4186feb 100644 --- a/proto/gen/go/wayplatform/rfms/v5/gnss_position.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/gnss_position.pb.go @@ -23,7 +23,7 @@ const ( // A GNSS position. type GnssPosition struct { state protoimpl.MessageState `protogen:"opaque.v1"` - xxx_hidden_Time int64 `protobuf:"varint,1,opt,name=time"` + xxx_hidden_Time *string `protobuf:"bytes,1,opt,name=time"` xxx_hidden_Latitude float64 `protobuf:"fixed64,2,opt,name=latitude"` xxx_hidden_Longitude float64 `protobuf:"fixed64,3,opt,name=longitude"` xxx_hidden_HeadingDeg float64 `protobuf:"fixed64,4,opt,name=heading_deg,json=headingDeg"` @@ -60,11 +60,14 @@ func (x *GnssPosition) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -func (x *GnssPosition) GetTime() int64 { +func (x *GnssPosition) GetTime() string { if x != nil { - return x.xxx_hidden_Time + if x.xxx_hidden_Time != nil { + return *x.xxx_hidden_Time + } + return "" } - return 0 + return "" } func (x *GnssPosition) GetLatitude() float64 { @@ -102,8 +105,8 @@ func (x *GnssPosition) GetSpeedKmh() float64 { return 0 } -func (x *GnssPosition) SetTime(v int64) { - x.xxx_hidden_Time = v +func (x *GnssPosition) SetTime(v string) { + x.xxx_hidden_Time = &v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 6) } @@ -176,7 +179,7 @@ func (x *GnssPosition) HasSpeedKmh() bool { func (x *GnssPosition) ClearTime() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) - x.xxx_hidden_Time = 0 + x.xxx_hidden_Time = nil } func (x *GnssPosition) ClearLatitude() { @@ -207,8 +210,8 @@ func (x *GnssPosition) ClearSpeedKmh() { type GnssPosition_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - // The date and time the GNSS position was recorded. (Unix microseconds) - Time *int64 + // The time of the GNSS position data. (RFC 3339) + Time *string // The latitude of the vehicle. (WGS84 based) Latitude *float64 // The longitude of the vehicle. (WGS84 based) @@ -228,7 +231,7 @@ func (b0 GnssPosition_builder) Build() *GnssPosition { _, _ = b, x if b.Time != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 6) - x.xxx_hidden_Time = *b.Time + x.xxx_hidden_Time = b.Time } if b.Latitude != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 6) @@ -259,7 +262,7 @@ const file_wayplatform_rfms_v5_gnss_position_proto_rawDesc = "" + "\n" + "'wayplatform/rfms/v5/gnss_position.proto\x12\x13wayplatform.rfms.v5\"\xb9\x01\n" + "\fGnssPosition\x12\x12\n" + - "\x04time\x18\x01 \x01(\x03R\x04time\x12\x1a\n" + + "\x04time\x18\x01 \x01(\tR\x04time\x12\x1a\n" + "\blatitude\x18\x02 \x01(\x01R\blatitude\x12\x1c\n" + "\tlongitude\x18\x03 \x01(\x01R\tlongitude\x12\x1f\n" + "\vheading_deg\x18\x04 \x01(\x01R\n" + diff --git a/proto/gen/go/wayplatform/rfms/v5/snapshot_data.pb.go b/proto/gen/go/wayplatform/rfms/v5/snapshot_data.pb.go index 0fb4343..68352aa 100644 --- a/proto/gen/go/wayplatform/rfms/v5/snapshot_data.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/snapshot_data.pb.go @@ -28,7 +28,7 @@ type SnapshotData struct { xxx_hidden_TachographSpeedKmh float64 `protobuf:"fixed64,3,opt,name=tachograph_speed_kmh,json=tachographSpeedKmh"` xxx_hidden_EngineSpeedRpm float64 `protobuf:"fixed64,4,opt,name=engine_speed_rpm,json=engineSpeedRpm"` xxx_hidden_ElectricMotorSpeedRpm float64 `protobuf:"fixed64,5,opt,name=electric_motor_speed_rpm,json=electricMotorSpeedRpm"` - xxx_hidden_IgnitionState IgnitionState `protobuf:"varint,6,opt,name=ignition_state,json=ignitionState,enum=wayplatform.rfms.v5.IgnitionState"` + xxx_hidden_Ignition IgnitionState `protobuf:"varint,6,opt,name=ignition,enum=wayplatform.rfms.v5.IgnitionState"` xxx_hidden_FuelType FuelType `protobuf:"varint,7,opt,name=fuel_type,json=fuelType,enum=wayplatform.rfms.v5.FuelType"` xxx_hidden_UnknownFuelType *string `protobuf:"bytes,8,opt,name=unknown_fuel_type,json=unknownFuelType"` xxx_hidden_FuelLevel1Percent float64 `protobuf:"fixed64,9,opt,name=fuel_level1_percent,json=fuelLevel1Percent"` @@ -36,7 +36,7 @@ type SnapshotData struct { xxx_hidden_CatalystFuelLevelPercent float64 `protobuf:"fixed64,11,opt,name=catalyst_fuel_level_percent,json=catalystFuelLevelPercent"` xxx_hidden_Driver1WorkingState DriverWorkingState `protobuf:"varint,12,opt,name=driver1_working_state,json=driver1WorkingState,enum=wayplatform.rfms.v5.DriverWorkingState"` xxx_hidden_UnknownDriver1WorkingState *string `protobuf:"bytes,13,opt,name=unknown_driver1_working_state,json=unknownDriver1WorkingState"` - xxx_hidden_Driver2 *DriverIdentification `protobuf:"bytes,14,opt,name=driver2"` + xxx_hidden_Driver2Id *DriverIdentification `protobuf:"bytes,14,opt,name=driver2_id,json=driver2Id"` xxx_hidden_Driver2WorkingState DriverWorkingState `protobuf:"varint,15,opt,name=driver2_working_state,json=driver2WorkingState,enum=wayplatform.rfms.v5.DriverWorkingState"` xxx_hidden_UnknownDriver2WorkingState *string `protobuf:"bytes,16,opt,name=unknown_driver2_working_state,json=unknownDriver2WorkingState"` xxx_hidden_AmbientAirTemperatureC float64 `protobuf:"fixed64,17,opt,name=ambient_air_temperature_c,json=ambientAirTemperatureC"` @@ -46,9 +46,9 @@ type SnapshotData struct { xxx_hidden_BatteryPackChargingConnectionState ChargingConnectionState `protobuf:"varint,21,opt,name=battery_pack_charging_connection_state,json=batteryPackChargingConnectionState,enum=wayplatform.rfms.v5.ChargingConnectionState"` xxx_hidden_BatteryPackChargingDevice ChargingDevice `protobuf:"varint,22,opt,name=battery_pack_charging_device,json=batteryPackChargingDevice,enum=wayplatform.rfms.v5.ChargingDevice"` xxx_hidden_BatteryPackChargingPowerW float64 `protobuf:"fixed64,23,opt,name=battery_pack_charging_power_w,json=batteryPackChargingPowerW"` - xxx_hidden_BatteryPackEstimatedChargingCompletedTime int64 `protobuf:"varint,24,opt,name=battery_pack_estimated_charging_completed_time,json=batteryPackEstimatedChargingCompletedTime"` + xxx_hidden_BatteryPackEstimatedChargingCompletedTime *string `protobuf:"bytes,24,opt,name=battery_pack_estimated_charging_completed_time,json=batteryPackEstimatedChargingCompletedTime"` xxx_hidden_EstimatedDistanceToEmpty *SnapshotData_EstimatedDistanceToEmpty `protobuf:"bytes,25,opt,name=estimated_distance_to_empty,json=estimatedDistanceToEmpty"` - xxx_hidden_Axles *[]*Axle `protobuf:"bytes,26,rep,name=axles"` + xxx_hidden_VehicleAxles *[]*VehicleAxle `protobuf:"bytes,26,rep,name=vehicle_axles,json=vehicleAxles"` xxx_hidden_Trailers *[]*Trailer `protobuf:"bytes,27,rep,name=trailers"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 @@ -116,10 +116,10 @@ func (x *SnapshotData) GetElectricMotorSpeedRpm() float64 { return 0 } -func (x *SnapshotData) GetIgnitionState() IgnitionState { +func (x *SnapshotData) GetIgnition() IgnitionState { if x != nil { if protoimpl.X.Present(&(x.XXX_presence[0]), 5) { - return x.xxx_hidden_IgnitionState + return x.xxx_hidden_Ignition } } return IgnitionState_IGNITION_STATE_UNSPECIFIED @@ -184,9 +184,9 @@ func (x *SnapshotData) GetUnknownDriver1WorkingState() string { return "" } -func (x *SnapshotData) GetDriver2() *DriverIdentification { +func (x *SnapshotData) GetDriver2Id() *DriverIdentification { if x != nil { - return x.xxx_hidden_Driver2 + return x.xxx_hidden_Driver2Id } return nil } @@ -265,11 +265,14 @@ func (x *SnapshotData) GetBatteryPackChargingPowerW() float64 { return 0 } -func (x *SnapshotData) GetBatteryPackEstimatedChargingCompletedTime() int64 { +func (x *SnapshotData) GetBatteryPackEstimatedChargingCompletedTime() string { if x != nil { - return x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime + if x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime != nil { + return *x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime + } + return "" } - return 0 + return "" } func (x *SnapshotData) GetEstimatedDistanceToEmpty() *SnapshotData_EstimatedDistanceToEmpty { @@ -279,10 +282,10 @@ func (x *SnapshotData) GetEstimatedDistanceToEmpty() *SnapshotData_EstimatedDist return nil } -func (x *SnapshotData) GetAxles() []*Axle { +func (x *SnapshotData) GetVehicleAxles() []*VehicleAxle { if x != nil { - if x.xxx_hidden_Axles != nil { - return *x.xxx_hidden_Axles + if x.xxx_hidden_VehicleAxles != nil { + return *x.xxx_hidden_VehicleAxles } } return nil @@ -321,8 +324,8 @@ func (x *SnapshotData) SetElectricMotorSpeedRpm(v float64) { protoimpl.X.SetPresent(&(x.XXX_presence[0]), 4, 27) } -func (x *SnapshotData) SetIgnitionState(v IgnitionState) { - x.xxx_hidden_IgnitionState = v +func (x *SnapshotData) SetIgnition(v IgnitionState) { + x.xxx_hidden_Ignition = v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 5, 27) } @@ -361,8 +364,8 @@ func (x *SnapshotData) SetUnknownDriver1WorkingState(v string) { protoimpl.X.SetPresent(&(x.XXX_presence[0]), 12, 27) } -func (x *SnapshotData) SetDriver2(v *DriverIdentification) { - x.xxx_hidden_Driver2 = v +func (x *SnapshotData) SetDriver2Id(v *DriverIdentification) { + x.xxx_hidden_Driver2Id = v } func (x *SnapshotData) SetDriver2WorkingState(v DriverWorkingState) { @@ -410,8 +413,8 @@ func (x *SnapshotData) SetBatteryPackChargingPowerW(v float64) { protoimpl.X.SetPresent(&(x.XXX_presence[0]), 22, 27) } -func (x *SnapshotData) SetBatteryPackEstimatedChargingCompletedTime(v int64) { - x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime = v +func (x *SnapshotData) SetBatteryPackEstimatedChargingCompletedTime(v string) { + x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime = &v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 23, 27) } @@ -419,8 +422,8 @@ func (x *SnapshotData) SetEstimatedDistanceToEmpty(v *SnapshotData_EstimatedDist x.xxx_hidden_EstimatedDistanceToEmpty = v } -func (x *SnapshotData) SetAxles(v []*Axle) { - x.xxx_hidden_Axles = &v +func (x *SnapshotData) SetVehicleAxles(v []*VehicleAxle) { + x.xxx_hidden_VehicleAxles = &v } func (x *SnapshotData) SetTrailers(v []*Trailer) { @@ -462,7 +465,7 @@ func (x *SnapshotData) HasElectricMotorSpeedRpm() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 4) } -func (x *SnapshotData) HasIgnitionState() bool { +func (x *SnapshotData) HasIgnition() bool { if x == nil { return false } @@ -518,11 +521,11 @@ func (x *SnapshotData) HasUnknownDriver1WorkingState() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 12) } -func (x *SnapshotData) HasDriver2() bool { +func (x *SnapshotData) HasDriver2Id() bool { if x == nil { return false } - return x.xxx_hidden_Driver2 != nil + return x.xxx_hidden_Driver2Id != nil } func (x *SnapshotData) HasDriver2WorkingState() bool { @@ -626,9 +629,9 @@ func (x *SnapshotData) ClearElectricMotorSpeedRpm() { x.xxx_hidden_ElectricMotorSpeedRpm = 0 } -func (x *SnapshotData) ClearIgnitionState() { +func (x *SnapshotData) ClearIgnition() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 5) - x.xxx_hidden_IgnitionState = IgnitionState_IGNITION_STATE_UNSPECIFIED + x.xxx_hidden_Ignition = IgnitionState_IGNITION_STATE_UNSPECIFIED } func (x *SnapshotData) ClearFuelType() { @@ -666,8 +669,8 @@ func (x *SnapshotData) ClearUnknownDriver1WorkingState() { x.xxx_hidden_UnknownDriver1WorkingState = nil } -func (x *SnapshotData) ClearDriver2() { - x.xxx_hidden_Driver2 = nil +func (x *SnapshotData) ClearDriver2Id() { + x.xxx_hidden_Driver2Id = nil } func (x *SnapshotData) ClearDriver2WorkingState() { @@ -717,7 +720,7 @@ func (x *SnapshotData) ClearBatteryPackChargingPowerW() { func (x *SnapshotData) ClearBatteryPackEstimatedChargingCompletedTime() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 23) - x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime = 0 + x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime = nil } func (x *SnapshotData) ClearEstimatedDistanceToEmpty() { @@ -738,7 +741,7 @@ type SnapshotData_builder struct { // The electric motor speed of the vehicle. (rev/min) ElectricMotorSpeedRpm *float64 // The ignition state of the vehicle. - IgnitionState *IgnitionState + Ignition *IgnitionState // The fuel type currently being utilized by the vehicle. FuelType *FuelType // The unknown fuel type of the vehicle. @@ -762,7 +765,7 @@ type SnapshotData_builder struct { // Provided when the driver working state is DRIVER_WORKING_STATE_UNKNOWN. UnknownDriver1WorkingState *string // The driver identification of driver 2. - Driver2 *DriverIdentification + Driver2Id *DriverIdentification // The driver working state of the vehicle. Driver2WorkingState *DriverWorkingState // The unknown driver working state of the vehicle. @@ -789,12 +792,12 @@ type SnapshotData_builder struct { BatteryPackChargingDevice *ChargingDevice // The battery pack charging power of the vehicle. (W) BatteryPackChargingPowerW *float64 - // The estimated time when charging has reached the target level. (Unix micros) - BatteryPackEstimatedChargingCompletedTime *int64 + // The estimated time when charging has reached the target level. (RFC 3339) + BatteryPackEstimatedChargingCompletedTime *string // The estimated distance to empty of the vehicle. EstimatedDistanceToEmpty *SnapshotData_EstimatedDistanceToEmpty // The axles of the vehicle. - Axles []*Axle + VehicleAxles []*VehicleAxle // The trailers connected to the vehicle. Trailers []*Trailer } @@ -820,9 +823,9 @@ func (b0 SnapshotData_builder) Build() *SnapshotData { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 4, 27) x.xxx_hidden_ElectricMotorSpeedRpm = *b.ElectricMotorSpeedRpm } - if b.IgnitionState != nil { + if b.Ignition != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 5, 27) - x.xxx_hidden_IgnitionState = *b.IgnitionState + x.xxx_hidden_Ignition = *b.Ignition } if b.FuelType != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 6, 27) @@ -852,7 +855,7 @@ func (b0 SnapshotData_builder) Build() *SnapshotData { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 12, 27) x.xxx_hidden_UnknownDriver1WorkingState = b.UnknownDriver1WorkingState } - x.xxx_hidden_Driver2 = b.Driver2 + x.xxx_hidden_Driver2Id = b.Driver2Id if b.Driver2WorkingState != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 14, 27) x.xxx_hidden_Driver2WorkingState = *b.Driver2WorkingState @@ -891,10 +894,10 @@ func (b0 SnapshotData_builder) Build() *SnapshotData { } if b.BatteryPackEstimatedChargingCompletedTime != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 23, 27) - x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime = *b.BatteryPackEstimatedChargingCompletedTime + x.xxx_hidden_BatteryPackEstimatedChargingCompletedTime = b.BatteryPackEstimatedChargingCompletedTime } x.xxx_hidden_EstimatedDistanceToEmpty = b.EstimatedDistanceToEmpty - x.xxx_hidden_Axles = &b.Axles + x.xxx_hidden_VehicleAxles = &b.VehicleAxles x.xxx_hidden_Trailers = &b.Trailers return m0 } @@ -1073,14 +1076,14 @@ var File_wayplatform_rfms_v5_snapshot_data_proto protoreflect.FileDescriptor const file_wayplatform_rfms_v5_snapshot_data_proto_rawDesc = "" + "\n" + - "'wayplatform/rfms/v5/snapshot_data.proto\x12\x13wayplatform.rfms.v5\x1a\x1ewayplatform/rfms/v5/axle.proto\x1a3wayplatform/rfms/v5/charging_connection_state.proto\x1a)wayplatform/rfms/v5/charging_device.proto\x1a(wayplatform/rfms/v5/charging_state.proto\x1a/wayplatform/rfms/v5/driver_identification.proto\x1a.wayplatform/rfms/v5/driver_working_state.proto\x1a#wayplatform/rfms/v5/fuel_type.proto\x1a'wayplatform/rfms/v5/gnss_position.proto\x1a(wayplatform/rfms/v5/ignition_state.proto\x1a!wayplatform/rfms/v5/trailer.proto\"\x93\x10\n" + + "'wayplatform/rfms/v5/snapshot_data.proto\x12\x13wayplatform.rfms.v5\x1a3wayplatform/rfms/v5/charging_connection_state.proto\x1a)wayplatform/rfms/v5/charging_device.proto\x1a(wayplatform/rfms/v5/charging_state.proto\x1a/wayplatform/rfms/v5/driver_identification.proto\x1a.wayplatform/rfms/v5/driver_working_state.proto\x1a#wayplatform/rfms/v5/fuel_type.proto\x1a'wayplatform/rfms/v5/gnss_position.proto\x1a(wayplatform/rfms/v5/ignition_state.proto\x1a!wayplatform/rfms/v5/trailer.proto\x1a&wayplatform/rfms/v5/vehicle_axle.proto\"\xa3\x10\n" + "\fSnapshotData\x12F\n" + "\rgnss_position\x18\x01 \x01(\v2!.wayplatform.rfms.v5.GnssPositionR\fgnssPosition\x121\n" + "\x15wheel_based_speed_kmh\x18\x02 \x01(\x01R\x12wheelBasedSpeedKmh\x120\n" + "\x14tachograph_speed_kmh\x18\x03 \x01(\x01R\x12tachographSpeedKmh\x12(\n" + "\x10engine_speed_rpm\x18\x04 \x01(\x01R\x0eengineSpeedRpm\x127\n" + - "\x18electric_motor_speed_rpm\x18\x05 \x01(\x01R\x15electricMotorSpeedRpm\x12I\n" + - "\x0eignition_state\x18\x06 \x01(\x0e2\".wayplatform.rfms.v5.IgnitionStateR\rignitionState\x12:\n" + + "\x18electric_motor_speed_rpm\x18\x05 \x01(\x01R\x15electricMotorSpeedRpm\x12>\n" + + "\bignition\x18\x06 \x01(\x0e2\".wayplatform.rfms.v5.IgnitionStateR\bignition\x12:\n" + "\tfuel_type\x18\a \x01(\x0e2\x1d.wayplatform.rfms.v5.FuelTypeR\bfuelType\x12*\n" + "\x11unknown_fuel_type\x18\b \x01(\tR\x0funknownFuelType\x12.\n" + "\x13fuel_level1_percent\x18\t \x01(\x01R\x11fuelLevel1Percent\x12.\n" + @@ -1088,8 +1091,9 @@ const file_wayplatform_rfms_v5_snapshot_data_proto_rawDesc = "" + " \x01(\x01R\x11fuelLevel2Percent\x12=\n" + "\x1bcatalyst_fuel_level_percent\x18\v \x01(\x01R\x18catalystFuelLevelPercent\x12[\n" + "\x15driver1_working_state\x18\f \x01(\x0e2'.wayplatform.rfms.v5.DriverWorkingStateR\x13driver1WorkingState\x12A\n" + - "\x1dunknown_driver1_working_state\x18\r \x01(\tR\x1aunknownDriver1WorkingState\x12C\n" + - "\adriver2\x18\x0e \x01(\v2).wayplatform.rfms.v5.DriverIdentificationR\adriver2\x12[\n" + + "\x1dunknown_driver1_working_state\x18\r \x01(\tR\x1aunknownDriver1WorkingState\x12H\n" + + "\n" + + "driver2_id\x18\x0e \x01(\v2).wayplatform.rfms.v5.DriverIdentificationR\tdriver2Id\x12[\n" + "\x15driver2_working_state\x18\x0f \x01(\x0e2'.wayplatform.rfms.v5.DriverWorkingStateR\x13driver2WorkingState\x12A\n" + "\x1dunknown_driver2_working_state\x18\x10 \x01(\tR\x1aunknownDriver2WorkingState\x129\n" + "\x19ambient_air_temperature_c\x18\x11 \x01(\x01R\x16ambientAirTemperatureC\x120\n" + @@ -1099,9 +1103,9 @@ const file_wayplatform_rfms_v5_snapshot_data_proto_rawDesc = "" + "&battery_pack_charging_connection_state\x18\x15 \x01(\x0e2,.wayplatform.rfms.v5.ChargingConnectionStateR\"batteryPackChargingConnectionState\x12d\n" + "\x1cbattery_pack_charging_device\x18\x16 \x01(\x0e2#.wayplatform.rfms.v5.ChargingDeviceR\x19batteryPackChargingDevice\x12@\n" + "\x1dbattery_pack_charging_power_w\x18\x17 \x01(\x01R\x19batteryPackChargingPowerW\x12a\n" + - ".battery_pack_estimated_charging_completed_time\x18\x18 \x01(\x03R)batteryPackEstimatedChargingCompletedTime\x12y\n" + - "\x1bestimated_distance_to_empty\x18\x19 \x01(\v2:.wayplatform.rfms.v5.SnapshotData.EstimatedDistanceToEmptyR\x18estimatedDistanceToEmpty\x12/\n" + - "\x05axles\x18\x1a \x03(\v2\x19.wayplatform.rfms.v5.AxleR\x05axles\x128\n" + + ".battery_pack_estimated_charging_completed_time\x18\x18 \x01(\tR)batteryPackEstimatedChargingCompletedTime\x12y\n" + + "\x1bestimated_distance_to_empty\x18\x19 \x01(\v2:.wayplatform.rfms.v5.SnapshotData.EstimatedDistanceToEmptyR\x18estimatedDistanceToEmpty\x12E\n" + + "\rvehicle_axles\x18\x1a \x03(\v2 .wayplatform.rfms.v5.VehicleAxleR\fvehicleAxles\x128\n" + "\btrailers\x18\x1b \x03(\v2\x1c.wayplatform.rfms.v5.TrailerR\btrailers\x1a\x85\x01\n" + "\x18EstimatedDistanceToEmpty\x12\x17\n" + "\atotal_m\x18\x01 \x01(\x01R\x06totalM\x12\x15\n" + @@ -1122,21 +1126,21 @@ var file_wayplatform_rfms_v5_snapshot_data_proto_goTypes = []any{ (ChargingState)(0), // 7: wayplatform.rfms.v5.ChargingState (ChargingConnectionState)(0), // 8: wayplatform.rfms.v5.ChargingConnectionState (ChargingDevice)(0), // 9: wayplatform.rfms.v5.ChargingDevice - (*Axle)(nil), // 10: wayplatform.rfms.v5.Axle + (*VehicleAxle)(nil), // 10: wayplatform.rfms.v5.VehicleAxle (*Trailer)(nil), // 11: wayplatform.rfms.v5.Trailer } var file_wayplatform_rfms_v5_snapshot_data_proto_depIdxs = []int32{ 2, // 0: wayplatform.rfms.v5.SnapshotData.gnss_position:type_name -> wayplatform.rfms.v5.GnssPosition - 3, // 1: wayplatform.rfms.v5.SnapshotData.ignition_state:type_name -> wayplatform.rfms.v5.IgnitionState + 3, // 1: wayplatform.rfms.v5.SnapshotData.ignition:type_name -> wayplatform.rfms.v5.IgnitionState 4, // 2: wayplatform.rfms.v5.SnapshotData.fuel_type:type_name -> wayplatform.rfms.v5.FuelType 5, // 3: wayplatform.rfms.v5.SnapshotData.driver1_working_state:type_name -> wayplatform.rfms.v5.DriverWorkingState - 6, // 4: wayplatform.rfms.v5.SnapshotData.driver2:type_name -> wayplatform.rfms.v5.DriverIdentification + 6, // 4: wayplatform.rfms.v5.SnapshotData.driver2_id:type_name -> wayplatform.rfms.v5.DriverIdentification 5, // 5: wayplatform.rfms.v5.SnapshotData.driver2_working_state:type_name -> wayplatform.rfms.v5.DriverWorkingState 7, // 6: wayplatform.rfms.v5.SnapshotData.battery_pack_charging_state:type_name -> wayplatform.rfms.v5.ChargingState 8, // 7: wayplatform.rfms.v5.SnapshotData.battery_pack_charging_connection_state:type_name -> wayplatform.rfms.v5.ChargingConnectionState 9, // 8: wayplatform.rfms.v5.SnapshotData.battery_pack_charging_device:type_name -> wayplatform.rfms.v5.ChargingDevice 1, // 9: wayplatform.rfms.v5.SnapshotData.estimated_distance_to_empty:type_name -> wayplatform.rfms.v5.SnapshotData.EstimatedDistanceToEmpty - 10, // 10: wayplatform.rfms.v5.SnapshotData.axles:type_name -> wayplatform.rfms.v5.Axle + 10, // 10: wayplatform.rfms.v5.SnapshotData.vehicle_axles:type_name -> wayplatform.rfms.v5.VehicleAxle 11, // 11: wayplatform.rfms.v5.SnapshotData.trailers:type_name -> wayplatform.rfms.v5.Trailer 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type @@ -1150,7 +1154,6 @@ func file_wayplatform_rfms_v5_snapshot_data_proto_init() { if File_wayplatform_rfms_v5_snapshot_data_proto != nil { return } - file_wayplatform_rfms_v5_axle_proto_init() file_wayplatform_rfms_v5_charging_connection_state_proto_init() file_wayplatform_rfms_v5_charging_device_proto_init() file_wayplatform_rfms_v5_charging_state_proto_init() @@ -1160,6 +1163,7 @@ func file_wayplatform_rfms_v5_snapshot_data_proto_init() { file_wayplatform_rfms_v5_gnss_position_proto_init() file_wayplatform_rfms_v5_ignition_state_proto_init() file_wayplatform_rfms_v5_trailer_proto_init() + file_wayplatform_rfms_v5_vehicle_axle_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/proto/gen/go/wayplatform/rfms/v5/tachograph_type.pb.go b/proto/gen/go/wayplatform/rfms/v5/tachograph_type.pb.go new file mode 100644 index 0000000..c9bd6f8 --- /dev/null +++ b/proto/gen/go/wayplatform/rfms/v5/tachograph_type.pb.go @@ -0,0 +1,154 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: wayplatform/rfms/v5/tachograph_type.proto + +package rfmsv5 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Well-known tachograph types. +// +// This enum is not exhaustive. It identifies commonly used tachograph types across +// OEM-specific implementations of rFMS APIs. +type TachographType int32 + +const ( + // Default value. This value is not used. + TachographType_TACHOGRAPH_TYPE_UNSPECIFIED TachographType = 0 + // Unknown tachograph type. + TachographType_TACHOGRAPH_TYPE_UNKNOWN TachographType = 1 + // Modular tachograph. + TachographType_MTCO TachographType = 2 + // Digital tachograph, unknown generation. + TachographType_DTCO TachographType = 3 + // Digital tachograph generation 1. + TachographType_DTCO_G1 TachographType = 4 + // Digital tachograph generation 2. + TachographType_DTCO_G2 TachographType = 5 + // Tachograph simulator. + TachographType_TSU TachographType = 6 + // No tachograph in the vehicle. + TachographType_NONE TachographType = 7 + // Stoneridge Smart. (Scania) + TachographType_STONERIDGE_SMART TachographType = 8 + // Stoneridge Smart 2. (Scania) + TachographType_STONERIDGE_SMART2 TachographType = 9 +) + +// Enum value maps for TachographType. +var ( + TachographType_name = map[int32]string{ + 0: "TACHOGRAPH_TYPE_UNSPECIFIED", + 1: "TACHOGRAPH_TYPE_UNKNOWN", + 2: "MTCO", + 3: "DTCO", + 4: "DTCO_G1", + 5: "DTCO_G2", + 6: "TSU", + 7: "NONE", + 8: "STONERIDGE_SMART", + 9: "STONERIDGE_SMART2", + } + TachographType_value = map[string]int32{ + "TACHOGRAPH_TYPE_UNSPECIFIED": 0, + "TACHOGRAPH_TYPE_UNKNOWN": 1, + "MTCO": 2, + "DTCO": 3, + "DTCO_G1": 4, + "DTCO_G2": 5, + "TSU": 6, + "NONE": 7, + "STONERIDGE_SMART": 8, + "STONERIDGE_SMART2": 9, + } +) + +func (x TachographType) Enum() *TachographType { + p := new(TachographType) + *p = x + return p +} + +func (x TachographType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TachographType) Descriptor() protoreflect.EnumDescriptor { + return file_wayplatform_rfms_v5_tachograph_type_proto_enumTypes[0].Descriptor() +} + +func (TachographType) Type() protoreflect.EnumType { + return &file_wayplatform_rfms_v5_tachograph_type_proto_enumTypes[0] +} + +func (x TachographType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +var File_wayplatform_rfms_v5_tachograph_type_proto protoreflect.FileDescriptor + +const file_wayplatform_rfms_v5_tachograph_type_proto_rawDesc = "" + + "\n" + + ")wayplatform/rfms/v5/tachograph_type.proto\x12\x13wayplatform.rfms.v5*\xbc\x01\n" + + "\x0eTachographType\x12\x1f\n" + + "\x1bTACHOGRAPH_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" + + "\x17TACHOGRAPH_TYPE_UNKNOWN\x10\x01\x12\b\n" + + "\x04MTCO\x10\x02\x12\b\n" + + "\x04DTCO\x10\x03\x12\v\n" + + "\aDTCO_G1\x10\x04\x12\v\n" + + "\aDTCO_G2\x10\x05\x12\a\n" + + "\x03TSU\x10\x06\x12\b\n" + + "\x04NONE\x10\a\x12\x14\n" + + "\x10STONERIDGE_SMART\x10\b\x12\x15\n" + + "\x11STONERIDGE_SMART2\x10\tB\xe5\x01\n" + + "\x17com.wayplatform.rfms.v5B\x13TachographTypeProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" + +var file_wayplatform_rfms_v5_tachograph_type_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_wayplatform_rfms_v5_tachograph_type_proto_goTypes = []any{ + (TachographType)(0), // 0: wayplatform.rfms.v5.TachographType +} +var file_wayplatform_rfms_v5_tachograph_type_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_wayplatform_rfms_v5_tachograph_type_proto_init() } +func file_wayplatform_rfms_v5_tachograph_type_proto_init() { + if File_wayplatform_rfms_v5_tachograph_type_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_tachograph_type_proto_rawDesc), len(file_wayplatform_rfms_v5_tachograph_type_proto_rawDesc)), + NumEnums: 1, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_wayplatform_rfms_v5_tachograph_type_proto_goTypes, + DependencyIndexes: file_wayplatform_rfms_v5_tachograph_type_proto_depIdxs, + EnumInfos: file_wayplatform_rfms_v5_tachograph_type_proto_enumTypes, + }.Build() + File_wayplatform_rfms_v5_tachograph_type_proto = out.File + file_wayplatform_rfms_v5_tachograph_type_proto_goTypes = nil + file_wayplatform_rfms_v5_tachograph_type_proto_depIdxs = nil +} diff --git a/proto/gen/go/wayplatform/rfms/v5/trailer.pb.go b/proto/gen/go/wayplatform/rfms/v5/trailer.pb.go index 00ffab8..a4ddce3 100644 --- a/proto/gen/go/wayplatform/rfms/v5/trailer.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/trailer.pb.go @@ -109,6 +109,7 @@ type Trailer struct { xxx_hidden_CustomerName *string `protobuf:"bytes,4,opt,name=customer_name,json=customerName"` xxx_hidden_Type Trailer_Type `protobuf:"varint,5,opt,name=type,enum=wayplatform.rfms.v5.Trailer_Type"` xxx_hidden_AxleLoadSumKg float64 `protobuf:"fixed64,6,opt,name=axle_load_sum_kg,json=axleLoadSumKg"` + xxx_hidden_Axles *[]*Trailer_Axle `protobuf:"bytes,7,rep,name=axles"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -193,34 +194,47 @@ func (x *Trailer) GetAxleLoadSumKg() float64 { return 0 } +func (x *Trailer) GetAxles() []*Trailer_Axle { + if x != nil { + if x.xxx_hidden_Axles != nil { + return *x.xxx_hidden_Axles + } + } + return nil +} + func (x *Trailer) SetNumber(v int32) { x.xxx_hidden_Number = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 7) } func (x *Trailer) SetIdentificationData(v string) { x.xxx_hidden_IdentificationData = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 7) } func (x *Trailer) SetVin(v string) { x.xxx_hidden_Vin = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 7) } func (x *Trailer) SetCustomerName(v string) { x.xxx_hidden_CustomerName = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 7) } func (x *Trailer) SetType(v Trailer_Type) { x.xxx_hidden_Type = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 4, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 4, 7) } func (x *Trailer) SetAxleLoadSumKg(v float64) { x.xxx_hidden_AxleLoadSumKg = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 5, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 5, 7) +} + +func (x *Trailer) SetAxles(v []*Trailer_Axle) { + x.xxx_hidden_Axles = &v } func (x *Trailer) HasNumber() bool { @@ -316,6 +330,8 @@ type Trailer_builder struct { // The sum of the static vertical loads of the trailer axles. (kg) // The load is sent in the EBS22 message of ISO 11992-2. AxleLoadSumKg *float64 + // The trailer axles. + Axles []*Trailer_Axle } func (b0 Trailer_builder) Build() *Trailer { @@ -323,29 +339,30 @@ func (b0 Trailer_builder) Build() *Trailer { b, x := &b0, m0 _, _ = b, x if b.Number != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 7) x.xxx_hidden_Number = *b.Number } if b.IdentificationData != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 7) x.xxx_hidden_IdentificationData = b.IdentificationData } if b.Vin != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 7) x.xxx_hidden_Vin = b.Vin } if b.CustomerName != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 7) x.xxx_hidden_CustomerName = b.CustomerName } if b.Type != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 4, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 4, 7) x.xxx_hidden_Type = *b.Type } if b.AxleLoadSumKg != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 5, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 5, 7) x.xxx_hidden_AxleLoadSumKg = *b.AxleLoadSumKg } + x.xxx_hidden_Axles = &b.Axles return m0 } @@ -463,14 +480,15 @@ var File_wayplatform_rfms_v5_trailer_proto protoreflect.FileDescriptor const file_wayplatform_rfms_v5_trailer_proto_rawDesc = "" + "\n" + - "!wayplatform/rfms/v5/trailer.proto\x12\x13wayplatform.rfms.v5\"\xa5\x04\n" + + "!wayplatform/rfms/v5/trailer.proto\x12\x13wayplatform.rfms.v5\"\xde\x04\n" + "\aTrailer\x12\x16\n" + "\x06number\x18\x01 \x01(\x05R\x06number\x12/\n" + "\x13identification_data\x18\x02 \x01(\tR\x12identificationData\x12\x10\n" + "\x03vin\x18\x03 \x01(\tR\x03vin\x12#\n" + "\rcustomer_name\x18\x04 \x01(\tR\fcustomerName\x125\n" + "\x04type\x18\x05 \x01(\x0e2!.wayplatform.rfms.v5.Trailer.TypeR\x04type\x12'\n" + - "\x10axle_load_sum_kg\x18\x06 \x01(\x01R\raxleLoadSumKg\x1a;\n" + + "\x10axle_load_sum_kg\x18\x06 \x01(\x01R\raxleLoadSumKg\x127\n" + + "\x05axles\x18\a \x03(\v2!.wayplatform.rfms.v5.Trailer.AxleR\x05axles\x1a;\n" + "\x04Axle\x12\x1a\n" + "\bposition\x18\x01 \x01(\x05R\bposition\x12\x17\n" + "\aload_kg\x18\x02 \x01(\x01R\x06loadKg\"\xfc\x01\n" + @@ -498,11 +516,12 @@ var file_wayplatform_rfms_v5_trailer_proto_goTypes = []any{ } var file_wayplatform_rfms_v5_trailer_proto_depIdxs = []int32{ 0, // 0: wayplatform.rfms.v5.Trailer.type:type_name -> wayplatform.rfms.v5.Trailer.Type - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 2, // 1: wayplatform.rfms.v5.Trailer.axles:type_name -> wayplatform.rfms.v5.Trailer.Axle + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_wayplatform_rfms_v5_trailer_proto_init() } diff --git a/proto/gen/go/wayplatform/rfms/v5/trigger.pb.go b/proto/gen/go/wayplatform/rfms/v5/trigger.pb.go index ab91e4a..e44d63f 100644 --- a/proto/gen/go/wayplatform/rfms/v5/trigger.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/trigger.pb.go @@ -152,21 +152,65 @@ const ( Trigger_CONTEXT_UNSPECIFIED Trigger_Context = 0 // The context is unknown. Trigger_CONTEXT_UNKNOWN Trigger_Context = 1 - // The context is RFMS. + // RFMS. Trigger_RFMS Trigger_Context = 2 + // VOLVO TRUCKS. + Trigger_VOLVO_TRUCKS Trigger_Context = 3 + // SCANIA. + Trigger_SCANIA Trigger_Context = 4 + // DAIMLER. + Trigger_DAIMLER Trigger_Context = 5 + // IVECO. + Trigger_IVECO Trigger_Context = 6 + // DAF. + Trigger_DAF Trigger_Context = 7 + // MAN. + Trigger_MAN Trigger_Context = 8 + // RENAULT TRUCKS. + Trigger_RENAULT_TRUCKS Trigger_Context = 9 + // VDL. + Trigger_VDL Trigger_Context = 10 + // VOLVO BUSES. + Trigger_VOLVO_BUSES Trigger_Context = 11 + // IVECO BUS. + Trigger_IVECO_BUS Trigger_Context = 12 + // IRISBUS. + Trigger_IRISBUS Trigger_Context = 13 ) // Enum value maps for Trigger_Context. var ( Trigger_Context_name = map[int32]string{ - 0: "CONTEXT_UNSPECIFIED", - 1: "CONTEXT_UNKNOWN", - 2: "RFMS", + 0: "CONTEXT_UNSPECIFIED", + 1: "CONTEXT_UNKNOWN", + 2: "RFMS", + 3: "VOLVO_TRUCKS", + 4: "SCANIA", + 5: "DAIMLER", + 6: "IVECO", + 7: "DAF", + 8: "MAN", + 9: "RENAULT_TRUCKS", + 10: "VDL", + 11: "VOLVO_BUSES", + 12: "IVECO_BUS", + 13: "IRISBUS", } Trigger_Context_value = map[string]int32{ "CONTEXT_UNSPECIFIED": 0, "CONTEXT_UNKNOWN": 1, "RFMS": 2, + "VOLVO_TRUCKS": 3, + "SCANIA": 4, + "DAIMLER": 5, + "IVECO": 6, + "DAF": 7, + "MAN": 8, + "RENAULT_TRUCKS": 9, + "VDL": 10, + "VOLVO_BUSES": 11, + "IVECO_BUS": 12, + "IRISBUS": 13, } ) @@ -403,8 +447,8 @@ type Trigger struct { xxx_hidden_UnknownType *string `protobuf:"bytes,2,opt,name=unknown_type,json=unknownType"` xxx_hidden_Context Trigger_Context `protobuf:"varint,3,opt,name=context,enum=wayplatform.rfms.v5.Trigger_Context"` xxx_hidden_UnknownContext *string `protobuf:"bytes,4,opt,name=unknown_context,json=unknownContext"` - xxx_hidden_AdditionalInfo []string `protobuf:"bytes,5,rep,name=additional_info,json=additionalInfo"` - xxx_hidden_DriverInfo *DriverIdentification `protobuf:"bytes,6,opt,name=driver_info,json=driverInfo"` + xxx_hidden_TriggerInfo []string `protobuf:"bytes,5,rep,name=trigger_info,json=triggerInfo"` + xxx_hidden_DriverId *DriverIdentification `protobuf:"bytes,6,opt,name=driver_id,json=driverId"` xxx_hidden_PtoId *string `protobuf:"bytes,7,opt,name=pto_id,json=ptoId"` xxx_hidden_TellTaleInfo *TellTale `protobuf:"bytes,8,opt,name=tell_tale_info,json=tellTaleInfo"` xxx_hidden_ChargingStatusInfo *Trigger_ChargingStatusInfo `protobuf:"bytes,9,opt,name=charging_status_info,json=chargingStatusInfo"` @@ -479,16 +523,16 @@ func (x *Trigger) GetUnknownContext() string { return "" } -func (x *Trigger) GetAdditionalInfo() []string { +func (x *Trigger) GetTriggerInfo() []string { if x != nil { - return x.xxx_hidden_AdditionalInfo + return x.xxx_hidden_TriggerInfo } return nil } -func (x *Trigger) GetDriverInfo() *DriverIdentification { +func (x *Trigger) GetDriverId() *DriverIdentification { if x != nil { - return x.xxx_hidden_DriverInfo + return x.xxx_hidden_DriverId } return nil } @@ -551,12 +595,12 @@ func (x *Trigger) SetUnknownContext(v string) { protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 11) } -func (x *Trigger) SetAdditionalInfo(v []string) { - x.xxx_hidden_AdditionalInfo = v +func (x *Trigger) SetTriggerInfo(v []string) { + x.xxx_hidden_TriggerInfo = v } -func (x *Trigger) SetDriverInfo(v *DriverIdentification) { - x.xxx_hidden_DriverInfo = v +func (x *Trigger) SetDriverId(v *DriverIdentification) { + x.xxx_hidden_DriverId = v } func (x *Trigger) SetPtoId(v string) { @@ -608,11 +652,11 @@ func (x *Trigger) HasUnknownContext() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 3) } -func (x *Trigger) HasDriverInfo() bool { +func (x *Trigger) HasDriverId() bool { if x == nil { return false } - return x.xxx_hidden_DriverInfo != nil + return x.xxx_hidden_DriverId != nil } func (x *Trigger) HasPtoId() bool { @@ -670,8 +714,8 @@ func (x *Trigger) ClearUnknownContext() { x.xxx_hidden_UnknownContext = nil } -func (x *Trigger) ClearDriverInfo() { - x.xxx_hidden_DriverInfo = nil +func (x *Trigger) ClearDriverId() { + x.xxx_hidden_DriverId = nil } func (x *Trigger) ClearPtoId() { @@ -709,14 +753,14 @@ type Trigger_builder struct { // Additional OEM specific trigger info content. // Can be used for both OEM specific and rFMS defined triggers. // E.g. TRAILER_CONNECTED [id of trailer]. - AdditionalInfo []string + TriggerInfo []string // The driver identification. // Provided when the trigger type is DRIVER_LOGIN, DRIVER_LOGOUT, DRIVER_1_WORKING_STATE_CHANGED or DRIVER_2_WORKING_STATE_CHANGED. // For DRIVER_LOGIN it is the id of the driver that logged in. // For DRIVER_LOGOUT it is the id of the driver that logged out. // For DRIVER_1_WORKING_STATE_CHANGED it is the id of driver 1. // For DRIVER_2_WORKING_STATE_CHANGED it is the id of driver 2. - DriverInfo *DriverIdentification + DriverId *DriverIdentification // The id of a power take off. // Provided when the trigger type is PTO_ENABLED or PTO_DISABLED. PtoId *string @@ -754,8 +798,8 @@ func (b0 Trigger_builder) Build() *Trigger { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 11) x.xxx_hidden_UnknownContext = b.UnknownContext } - x.xxx_hidden_AdditionalInfo = b.AdditionalInfo - x.xxx_hidden_DriverInfo = b.DriverInfo + x.xxx_hidden_TriggerInfo = b.TriggerInfo + x.xxx_hidden_DriverId = b.DriverId if b.PtoId != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 6, 11) x.xxx_hidden_PtoId = b.PtoId @@ -1226,15 +1270,14 @@ var File_wayplatform_rfms_v5_trigger_proto protoreflect.FileDescriptor const file_wayplatform_rfms_v5_trigger_proto_rawDesc = "" + "\n" + - "!wayplatform/rfms/v5/trigger.proto\x12\x13wayplatform.rfms.v5\x1a3wayplatform/rfms/v5/charging_connection_state.proto\x1a/wayplatform/rfms/v5/driver_identification.proto\x1a#wayplatform/rfms/v5/tell_tale.proto\"\x90\x12\n" + + "!wayplatform/rfms/v5/trigger.proto\x12\x13wayplatform.rfms.v5\x1a3wayplatform/rfms/v5/charging_connection_state.proto\x1a/wayplatform/rfms/v5/driver_identification.proto\x1a#wayplatform/rfms/v5/tell_tale.proto\"\x99\x13\n" + "\aTrigger\x125\n" + "\x04type\x18\x01 \x01(\x0e2!.wayplatform.rfms.v5.Trigger.TypeR\x04type\x12!\n" + "\funknown_type\x18\x02 \x01(\tR\vunknownType\x12>\n" + "\acontext\x18\x03 \x01(\x0e2$.wayplatform.rfms.v5.Trigger.ContextR\acontext\x12'\n" + - "\x0funknown_context\x18\x04 \x01(\tR\x0eunknownContext\x12'\n" + - "\x0fadditional_info\x18\x05 \x03(\tR\x0eadditionalInfo\x12J\n" + - "\vdriver_info\x18\x06 \x01(\v2).wayplatform.rfms.v5.DriverIdentificationR\n" + - "driverInfo\x12\x15\n" + + "\x0funknown_context\x18\x04 \x01(\tR\x0eunknownContext\x12!\n" + + "\ftrigger_info\x18\x05 \x03(\tR\vtriggerInfo\x12F\n" + + "\tdriver_id\x18\x06 \x01(\v2).wayplatform.rfms.v5.DriverIdentificationR\bdriverId\x12\x15\n" + "\x06pto_id\x18\a \x01(\tR\x05ptoId\x12C\n" + "\x0etell_tale_info\x18\b \x01(\v2\x1d.wayplatform.rfms.v5.TellTaleR\ftellTaleInfo\x12a\n" + "\x14charging_status_info\x18\t \x01(\v2/.wayplatform.rfms.v5.Trigger.ChargingStatusInfoR\x12chargingStatusInfo\x12\x80\x01\n" + @@ -1307,11 +1350,24 @@ const file_wayplatform_rfms_v5_trigger_proto_rawDesc = "" + ".BATTERY_PACK_CHARGING_CONNECTION_STATUS_CHANGE\x10\x12\x12\x15\n" + "\x11TRAILER_CONNECTED\x10\x13\x12\x18\n" + "\x14TRAILER_DISCONNECTED\x10\x14\x12\t\n" + - "\x05ALARM\x10\x15\"A\n" + + "\x05ALARM\x10\x15\"\xd3\x01\n" + "\aContext\x12\x17\n" + "\x13CONTEXT_UNSPECIFIED\x10\x00\x12\x13\n" + "\x0fCONTEXT_UNKNOWN\x10\x01\x12\b\n" + - "\x04RFMS\x10\x02B\xde\x01\n" + + "\x04RFMS\x10\x02\x12\x10\n" + + "\fVOLVO_TRUCKS\x10\x03\x12\n" + + "\n" + + "\x06SCANIA\x10\x04\x12\v\n" + + "\aDAIMLER\x10\x05\x12\t\n" + + "\x05IVECO\x10\x06\x12\a\n" + + "\x03DAF\x10\a\x12\a\n" + + "\x03MAN\x10\b\x12\x12\n" + + "\x0eRENAULT_TRUCKS\x10\t\x12\a\n" + + "\x03VDL\x10\n" + + "\x12\x0f\n" + + "\vVOLVO_BUSES\x10\v\x12\r\n" + + "\tIVECO_BUS\x10\f\x12\v\n" + + "\aIRISBUS\x10\rB\xde\x01\n" + "\x17com.wayplatform.rfms.v5B\fTriggerProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" var file_wayplatform_rfms_v5_trigger_proto_enumTypes = make([]protoimpl.EnumInfo, 5) @@ -1333,7 +1389,7 @@ var file_wayplatform_rfms_v5_trigger_proto_goTypes = []any{ var file_wayplatform_rfms_v5_trigger_proto_depIdxs = []int32{ 0, // 0: wayplatform.rfms.v5.Trigger.type:type_name -> wayplatform.rfms.v5.Trigger.Type 1, // 1: wayplatform.rfms.v5.Trigger.context:type_name -> wayplatform.rfms.v5.Trigger.Context - 9, // 2: wayplatform.rfms.v5.Trigger.driver_info:type_name -> wayplatform.rfms.v5.DriverIdentification + 9, // 2: wayplatform.rfms.v5.Trigger.driver_id:type_name -> wayplatform.rfms.v5.DriverIdentification 10, // 3: wayplatform.rfms.v5.Trigger.tell_tale_info:type_name -> wayplatform.rfms.v5.TellTale 6, // 4: wayplatform.rfms.v5.Trigger.charging_status_info:type_name -> wayplatform.rfms.v5.Trigger.ChargingStatusInfo 7, // 5: wayplatform.rfms.v5.Trigger.charging_connection_status_info:type_name -> wayplatform.rfms.v5.Trigger.ChargingConnectionStatusInfo diff --git a/proto/gen/go/wayplatform/rfms/v5/vehicle.pb.go b/proto/gen/go/wayplatform/rfms/v5/vehicle.pb.go index 24577ca..994db40 100644 --- a/proto/gen/go/wayplatform/rfms/v5/vehicle.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/vehicle.pb.go @@ -20,118 +20,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// The brand of a vehicle. -type Vehicle_Brand int32 - -const ( - // Default value. This value is not used. - Vehicle_BRAND_UNSPECIFIED Vehicle_Brand = 0 - // Unknown brand. - Vehicle_BRAND_UNKNOWN Vehicle_Brand = 1 - // VOLVO TRUCKS. - Vehicle_VOLVO_TRUCKS Vehicle_Brand = 2 - // SCANIA. - Vehicle_SCANIA Vehicle_Brand = 3 - // DAIMLER. - Vehicle_DAIMLER Vehicle_Brand = 4 - // IVECO. - Vehicle_IVECO Vehicle_Brand = 5 - // DAF. - Vehicle_DAF Vehicle_Brand = 6 - // MAN. - Vehicle_MAN Vehicle_Brand = 7 - // RENAULT TRUCKS. - Vehicle_RENAULT_TRUCKS Vehicle_Brand = 8 - // VDL. - Vehicle_VDL Vehicle_Brand = 9 - // VOLVO BUSES. - Vehicle_VOLVO_BUSES Vehicle_Brand = 10 - // IVECO BUS. - Vehicle_IVECO_BUS Vehicle_Brand = 11 - // HEULIEZ. - Vehicle_HEULIEZ Vehicle_Brand = 12 - // VWTB. - Vehicle_VWTB Vehicle_Brand = 13 - // KENWORTH. - Vehicle_KENWORTH Vehicle_Brand = 14 - // PETERBILT. - Vehicle_PETERBILT Vehicle_Brand = 15 - // MACK TRUCKS. - Vehicle_MACK_TRUCKS Vehicle_Brand = 16 - // INTERNATIONAL. - Vehicle_INTERNATIONAL Vehicle_Brand = 17 - // IC BUS. - Vehicle_IC_BUS Vehicle_Brand = 18 -) - -// Enum value maps for Vehicle_Brand. -var ( - Vehicle_Brand_name = map[int32]string{ - 0: "BRAND_UNSPECIFIED", - 1: "BRAND_UNKNOWN", - 2: "VOLVO_TRUCKS", - 3: "SCANIA", - 4: "DAIMLER", - 5: "IVECO", - 6: "DAF", - 7: "MAN", - 8: "RENAULT_TRUCKS", - 9: "VDL", - 10: "VOLVO_BUSES", - 11: "IVECO_BUS", - 12: "HEULIEZ", - 13: "VWTB", - 14: "KENWORTH", - 15: "PETERBILT", - 16: "MACK_TRUCKS", - 17: "INTERNATIONAL", - 18: "IC_BUS", - } - Vehicle_Brand_value = map[string]int32{ - "BRAND_UNSPECIFIED": 0, - "BRAND_UNKNOWN": 1, - "VOLVO_TRUCKS": 2, - "SCANIA": 3, - "DAIMLER": 4, - "IVECO": 5, - "DAF": 6, - "MAN": 7, - "RENAULT_TRUCKS": 8, - "VDL": 9, - "VOLVO_BUSES": 10, - "IVECO_BUS": 11, - "HEULIEZ": 12, - "VWTB": 13, - "KENWORTH": 14, - "PETERBILT": 15, - "MACK_TRUCKS": 16, - "INTERNATIONAL": 17, - "IC_BUS": 18, - } -) - -func (x Vehicle_Brand) Enum() *Vehicle_Brand { - p := new(Vehicle_Brand) - *p = x - return p -} - -func (x Vehicle_Brand) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Vehicle_Brand) Descriptor() protoreflect.EnumDescriptor { - return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[0].Descriptor() -} - -func (Vehicle_Brand) Type() protoreflect.EnumType { - return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[0] -} - -func (x Vehicle_Brand) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - // The type of a vehicle. type Vehicle_Type int32 @@ -143,7 +31,9 @@ const ( Vehicle_TRUCK Vehicle_Type = 2 // A bus. Vehicle_BUS Vehicle_Type = 3 - // A van. + // A van.// + // This enum is not exhaustive. It identifies commonly used emission levels across + // OEM-specific implementations of rFMS APIs. Vehicle_VAN Vehicle_Type = 4 ) @@ -176,277 +66,19 @@ func (x Vehicle_Type) String() string { } func (Vehicle_Type) Descriptor() protoreflect.EnumDescriptor { - return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[1].Descriptor() + return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[0].Descriptor() } func (Vehicle_Type) Type() protoreflect.EnumType { - return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[1] + return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[0] } func (x Vehicle_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// The emission level of a vehicle. -type Vehicle_EmissionLevel int32 - -const ( - // Default value. This value is not used. - Vehicle_EMISSION_LEVEL_UNSPECIFIED Vehicle_EmissionLevel = 0 - // Unknown emission level. - Vehicle_EMISSION_LEVEL_UNKNOWN Vehicle_EmissionLevel = 1 - // European Union, Heavy-Duty Truck and Bus Engines. - Vehicle_EURO_III Vehicle_EmissionLevel = 2 - Vehicle_EURO_III_EEV Vehicle_EmissionLevel = 3 - Vehicle_EURO_IV Vehicle_EmissionLevel = 4 - Vehicle_EURO_V Vehicle_EmissionLevel = 5 - Vehicle_EURO_VI Vehicle_EmissionLevel = 6 - Vehicle_EURO_VII Vehicle_EmissionLevel = 7 - // European Union, Nonroad Engines. - Vehicle_EURO_STAGE_III Vehicle_EmissionLevel = 8 - Vehicle_EURO_STAGE_IV Vehicle_EmissionLevel = 9 - Vehicle_EURO_STAGE_V Vehicle_EmissionLevel = 10 - // United_States, Heavy-Duty Truck and Bus Engines. - Vehicle_EPA_2004 Vehicle_EmissionLevel = 11 - Vehicle_EPA_2007 Vehicle_EmissionLevel = 12 - Vehicle_EPA_2010 Vehicle_EmissionLevel = 13 - Vehicle_EPA_2015_NOX10 Vehicle_EmissionLevel = 14 - Vehicle_EPA_2015_NOX05 Vehicle_EmissionLevel = 15 - Vehicle_EPA_2015_NOX02 Vehicle_EmissionLevel = 16 - // United_States, Nonroad Engines. - Vehicle_EPA_TIER_2 Vehicle_EmissionLevel = 17 - Vehicle_EPA_TIER_3 Vehicle_EmissionLevel = 18 - Vehicle_EPA_TIER_4_2008 Vehicle_EmissionLevel = 19 - Vehicle_EPA_TIER_4_2013 Vehicle_EmissionLevel = 20 - // Brazil, Heavy-Duty Truck and Bus Engines. - Vehicle_PROCONVE_P5 Vehicle_EmissionLevel = 21 - Vehicle_PROCONVE_P6 Vehicle_EmissionLevel = 22 - Vehicle_PROCONVE_P7 Vehicle_EmissionLevel = 23 - // Brazil, Nonroad Engines. - Vehicle_PROCONVE_MARI Vehicle_EmissionLevel = 24 -) - -// Enum value maps for Vehicle_EmissionLevel. -var ( - Vehicle_EmissionLevel_name = map[int32]string{ - 0: "EMISSION_LEVEL_UNSPECIFIED", - 1: "EMISSION_LEVEL_UNKNOWN", - 2: "EURO_III", - 3: "EURO_III_EEV", - 4: "EURO_IV", - 5: "EURO_V", - 6: "EURO_VI", - 7: "EURO_VII", - 8: "EURO_STAGE_III", - 9: "EURO_STAGE_IV", - 10: "EURO_STAGE_V", - 11: "EPA_2004", - 12: "EPA_2007", - 13: "EPA_2010", - 14: "EPA_2015_NOX10", - 15: "EPA_2015_NOX05", - 16: "EPA_2015_NOX02", - 17: "EPA_TIER_2", - 18: "EPA_TIER_3", - 19: "EPA_TIER_4_2008", - 20: "EPA_TIER_4_2013", - 21: "PROCONVE_P5", - 22: "PROCONVE_P6", - 23: "PROCONVE_P7", - 24: "PROCONVE_MARI", - } - Vehicle_EmissionLevel_value = map[string]int32{ - "EMISSION_LEVEL_UNSPECIFIED": 0, - "EMISSION_LEVEL_UNKNOWN": 1, - "EURO_III": 2, - "EURO_III_EEV": 3, - "EURO_IV": 4, - "EURO_V": 5, - "EURO_VI": 6, - "EURO_VII": 7, - "EURO_STAGE_III": 8, - "EURO_STAGE_IV": 9, - "EURO_STAGE_V": 10, - "EPA_2004": 11, - "EPA_2007": 12, - "EPA_2010": 13, - "EPA_2015_NOX10": 14, - "EPA_2015_NOX05": 15, - "EPA_2015_NOX02": 16, - "EPA_TIER_2": 17, - "EPA_TIER_3": 18, - "EPA_TIER_4_2008": 19, - "EPA_TIER_4_2013": 20, - "PROCONVE_P5": 21, - "PROCONVE_P6": 22, - "PROCONVE_P7": 23, - "PROCONVE_MARI": 24, - } -) - -func (x Vehicle_EmissionLevel) Enum() *Vehicle_EmissionLevel { - p := new(Vehicle_EmissionLevel) - *p = x - return p -} - -func (x Vehicle_EmissionLevel) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Vehicle_EmissionLevel) Descriptor() protoreflect.EnumDescriptor { - return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[2].Descriptor() -} - -func (Vehicle_EmissionLevel) Type() protoreflect.EnumType { - return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[2] -} - -func (x Vehicle_EmissionLevel) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// The type of tachograph. -type Vehicle_TachographType int32 - -const ( - // Default value. This value is not used. - Vehicle_TACHOGRAPH_TYPE_UNSPECIFIED Vehicle_TachographType = 0 - // Unknown tachograph type. - Vehicle_TACHOGRAPH_TYPE_UNKNOWN Vehicle_TachographType = 1 - // Modular tachograph. - Vehicle_MTCO Vehicle_TachographType = 2 - // Digital tachograph, unknown generation. - Vehicle_DTCO Vehicle_TachographType = 3 - // Digital tachograph generation 1. - Vehicle_DTCO_G1 Vehicle_TachographType = 4 - // Digital tachograph generation 2. - Vehicle_DTCO_G2 Vehicle_TachographType = 5 - // Tachograph simulator. - Vehicle_TSU Vehicle_TachographType = 6 - // No tachograph in the vehicle. - Vehicle_NONE Vehicle_TachographType = 7 - // Stoneridge Smart. (Scania) - Vehicle_STONERIDGE_SMART Vehicle_TachographType = 8 - // Stoneridge Smart 2. (Scania) - Vehicle_STONERIDGE_SMART2 Vehicle_TachographType = 9 -) - -// Enum value maps for Vehicle_TachographType. -var ( - Vehicle_TachographType_name = map[int32]string{ - 0: "TACHOGRAPH_TYPE_UNSPECIFIED", - 1: "TACHOGRAPH_TYPE_UNKNOWN", - 2: "MTCO", - 3: "DTCO", - 4: "DTCO_G1", - 5: "DTCO_G2", - 6: "TSU", - 7: "NONE", - 8: "STONERIDGE_SMART", - 9: "STONERIDGE_SMART2", - } - Vehicle_TachographType_value = map[string]int32{ - "TACHOGRAPH_TYPE_UNSPECIFIED": 0, - "TACHOGRAPH_TYPE_UNKNOWN": 1, - "MTCO": 2, - "DTCO": 3, - "DTCO_G1": 4, - "DTCO_G2": 5, - "TSU": 6, - "NONE": 7, - "STONERIDGE_SMART": 8, - "STONERIDGE_SMART2": 9, - } -) - -func (x Vehicle_TachographType) Enum() *Vehicle_TachographType { - p := new(Vehicle_TachographType) - *p = x - return p -} - -func (x Vehicle_TachographType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Vehicle_TachographType) Descriptor() protoreflect.EnumDescriptor { - return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[3].Descriptor() -} - -func (Vehicle_TachographType) Type() protoreflect.EnumType { - return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[3] -} - -func (x Vehicle_TachographType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// The type of gearbox. -type Vehicle_GearboxType int32 - -const ( - // Default value. This value is not used. - Vehicle_GEARBOX_TYPE_UNSPECIFIED Vehicle_GearboxType = 0 - // Unknown gearbox type. - Vehicle_GEARBOX_TYPE_UNKNOWN Vehicle_GearboxType = 1 - // Manual. - Vehicle_MANUAL Vehicle_GearboxType = 2 - // Automatic. - Vehicle_AUTOMATIC Vehicle_GearboxType = 3 - // Semi-automatic. - Vehicle_SEMI_AUTOMATIC Vehicle_GearboxType = 4 - // E.g. electrical. - Vehicle_NO_GEAR Vehicle_GearboxType = 5 - // Automated manual transmission. (Scania) - Vehicle_AMT Vehicle_GearboxType = 6 -) - -// Enum value maps for Vehicle_GearboxType. -var ( - Vehicle_GearboxType_name = map[int32]string{ - 0: "GEARBOX_TYPE_UNSPECIFIED", - 1: "GEARBOX_TYPE_UNKNOWN", - 2: "MANUAL", - 3: "AUTOMATIC", - 4: "SEMI_AUTOMATIC", - 5: "NO_GEAR", - 6: "AMT", - } - Vehicle_GearboxType_value = map[string]int32{ - "GEARBOX_TYPE_UNSPECIFIED": 0, - "GEARBOX_TYPE_UNKNOWN": 1, - "MANUAL": 2, - "AUTOMATIC": 3, - "SEMI_AUTOMATIC": 4, - "NO_GEAR": 5, - "AMT": 6, - } -) - -func (x Vehicle_GearboxType) Enum() *Vehicle_GearboxType { - p := new(Vehicle_GearboxType) - *p = x - return p -} - -func (x Vehicle_GearboxType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Vehicle_GearboxType) Descriptor() protoreflect.EnumDescriptor { - return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[4].Descriptor() -} - -func (Vehicle_GearboxType) Type() protoreflect.EnumType { - return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[4] -} - -func (x Vehicle_GearboxType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - // The type of body on the chassis. +// This is used mainly for buses. type Vehicle_BodyType int32 const ( @@ -491,11 +123,11 @@ func (x Vehicle_BodyType) String() string { } func (Vehicle_BodyType) Descriptor() protoreflect.EnumDescriptor { - return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[5].Descriptor() + return file_wayplatform_rfms_v5_vehicle_proto_enumTypes[1].Descriptor() } func (Vehicle_BodyType) Type() protoreflect.EnumType { - return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[5] + return &file_wayplatform_rfms_v5_vehicle_proto_enumTypes[1] } func (x Vehicle_BodyType) Number() protoreflect.EnumNumber { @@ -508,15 +140,15 @@ type Vehicle struct { xxx_hidden_Vin *string `protobuf:"bytes,1,opt,name=vin"` xxx_hidden_CustomerVehicleName *string `protobuf:"bytes,2,opt,name=customer_vehicle_name,json=customerVehicleName"` xxx_hidden_RegistrationNumber *string `protobuf:"bytes,3,opt,name=registration_number,json=registrationNumber"` - xxx_hidden_Brand Vehicle_Brand `protobuf:"varint,4,opt,name=brand,enum=wayplatform.rfms.v5.Vehicle_Brand"` + xxx_hidden_Brand Brand `protobuf:"varint,4,opt,name=brand,enum=wayplatform.rfms.v5.Brand"` xxx_hidden_UnknownBrand *string `protobuf:"bytes,5,opt,name=unknown_brand,json=unknownBrand"` xxx_hidden_ProductionDate *Date `protobuf:"bytes,6,opt,name=production_date,json=productionDate"` xxx_hidden_Type Vehicle_Type `protobuf:"varint,7,opt,name=type,enum=wayplatform.rfms.v5.Vehicle_Type"` xxx_hidden_UnknownType *string `protobuf:"bytes,8,opt,name=unknown_type,json=unknownType"` xxx_hidden_Model *string `protobuf:"bytes,9,opt,name=model"` xxx_hidden_PossibleFuelTypes []FuelType `protobuf:"varint,10,rep,packed,name=possible_fuel_types,json=possibleFuelTypes,enum=wayplatform.rfms.v5.FuelType"` - xxx_hidden_UnknownPossibleFuelTypes []FuelType `protobuf:"varint,11,rep,packed,name=unknown_possible_fuel_types,json=unknownPossibleFuelTypes,enum=wayplatform.rfms.v5.FuelType"` - xxx_hidden_EmissionLevel Vehicle_EmissionLevel `protobuf:"varint,12,opt,name=emission_level,json=emissionLevel,enum=wayplatform.rfms.v5.Vehicle_EmissionLevel"` + xxx_hidden_UnknownPossibleFuelTypes []string `protobuf:"bytes,11,rep,name=unknown_possible_fuel_types,json=unknownPossibleFuelTypes"` + xxx_hidden_EmissionLevel EmissionLevel `protobuf:"varint,12,opt,name=emission_level,json=emissionLevel,enum=wayplatform.rfms.v5.EmissionLevel"` xxx_hidden_UnknownEmissionLevel *string `protobuf:"bytes,13,opt,name=unknown_emission_level,json=unknownEmissionLevel"` xxx_hidden_TellTaleCode *string `protobuf:"bytes,14,opt,name=tell_tale_code,json=tellTaleCode"` xxx_hidden_ChassisType *string `protobuf:"bytes,15,opt,name=chassis_type,json=chassisType"` @@ -524,14 +156,15 @@ type Vehicle struct { xxx_hidden_TotalFuelTankVolumeMl float64 `protobuf:"fixed64,17,opt,name=total_fuel_tank_volume_ml,json=totalFuelTankVolumeMl"` xxx_hidden_TotalFuelTankCapacityGaseousKg float64 `protobuf:"fixed64,18,opt,name=total_fuel_tank_capacity_gaseous_kg,json=totalFuelTankCapacityGaseousKg"` xxx_hidden_TotalBatteryPackCapacityWh float64 `protobuf:"fixed64,19,opt,name=total_battery_pack_capacity_wh,json=totalBatteryPackCapacityWh"` - xxx_hidden_TachographType Vehicle_TachographType `protobuf:"varint,20,opt,name=tachograph_type,json=tachographType,enum=wayplatform.rfms.v5.Vehicle_TachographType"` + xxx_hidden_TachographType TachographType `protobuf:"varint,20,opt,name=tachograph_type,json=tachographType,enum=wayplatform.rfms.v5.TachographType"` xxx_hidden_UnknownTachographType *string `protobuf:"bytes,21,opt,name=unknown_tachograph_type,json=unknownTachographType"` - xxx_hidden_GearboxType Vehicle_GearboxType `protobuf:"varint,22,opt,name=gearbox_type,json=gearboxType,enum=wayplatform.rfms.v5.Vehicle_GearboxType"` + xxx_hidden_GearboxType GearboxType `protobuf:"varint,22,opt,name=gearbox_type,json=gearboxType,enum=wayplatform.rfms.v5.GearboxType"` xxx_hidden_UnknownGearboxType *string `protobuf:"bytes,23,opt,name=unknown_gearbox_type,json=unknownGearboxType"` xxx_hidden_BodyType Vehicle_BodyType `protobuf:"varint,24,opt,name=body_type,json=bodyType,enum=wayplatform.rfms.v5.Vehicle_BodyType"` xxx_hidden_UnknownBodyType *string `protobuf:"bytes,25,opt,name=unknown_body_type,json=unknownBodyType"` xxx_hidden_DoorConfiguration []int32 `protobuf:"varint,26,rep,packed,name=door_configuration,json=doorConfiguration"` xxx_hidden_HasRampOrLift bool `protobuf:"varint,27,opt,name=has_ramp_or_lift,json=hasRampOrLift"` + xxx_hidden_AuthorizedPaths []string `protobuf:"bytes,28,rep,name=authorized_paths,json=authorizedPaths"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -593,13 +226,13 @@ func (x *Vehicle) GetRegistrationNumber() string { return "" } -func (x *Vehicle) GetBrand() Vehicle_Brand { +func (x *Vehicle) GetBrand() Brand { if x != nil { if protoimpl.X.Present(&(x.XXX_presence[0]), 3) { return x.xxx_hidden_Brand } } - return Vehicle_BRAND_UNSPECIFIED + return Brand_BRAND_UNSPECIFIED } func (x *Vehicle) GetUnknownBrand() string { @@ -655,20 +288,20 @@ func (x *Vehicle) GetPossibleFuelTypes() []FuelType { return nil } -func (x *Vehicle) GetUnknownPossibleFuelTypes() []FuelType { +func (x *Vehicle) GetUnknownPossibleFuelTypes() []string { if x != nil { return x.xxx_hidden_UnknownPossibleFuelTypes } return nil } -func (x *Vehicle) GetEmissionLevel() Vehicle_EmissionLevel { +func (x *Vehicle) GetEmissionLevel() EmissionLevel { if x != nil { if protoimpl.X.Present(&(x.XXX_presence[0]), 11) { return x.xxx_hidden_EmissionLevel } } - return Vehicle_EMISSION_LEVEL_UNSPECIFIED + return EmissionLevel_EMISSION_LEVEL_UNSPECIFIED } func (x *Vehicle) GetUnknownEmissionLevel() string { @@ -729,13 +362,13 @@ func (x *Vehicle) GetTotalBatteryPackCapacityWh() float64 { return 0 } -func (x *Vehicle) GetTachographType() Vehicle_TachographType { +func (x *Vehicle) GetTachographType() TachographType { if x != nil { if protoimpl.X.Present(&(x.XXX_presence[0]), 19) { return x.xxx_hidden_TachographType } } - return Vehicle_TACHOGRAPH_TYPE_UNSPECIFIED + return TachographType_TACHOGRAPH_TYPE_UNSPECIFIED } func (x *Vehicle) GetUnknownTachographType() string { @@ -748,13 +381,13 @@ func (x *Vehicle) GetUnknownTachographType() string { return "" } -func (x *Vehicle) GetGearboxType() Vehicle_GearboxType { +func (x *Vehicle) GetGearboxType() GearboxType { if x != nil { if protoimpl.X.Present(&(x.XXX_presence[0]), 21) { return x.xxx_hidden_GearboxType } } - return Vehicle_GEARBOX_TYPE_UNSPECIFIED + return GearboxType_GEARBOX_TYPE_UNSPECIFIED } func (x *Vehicle) GetUnknownGearboxType() string { @@ -800,29 +433,36 @@ func (x *Vehicle) GetHasRampOrLift() bool { return false } +func (x *Vehicle) GetAuthorizedPaths() []string { + if x != nil { + return x.xxx_hidden_AuthorizedPaths + } + return nil +} + func (x *Vehicle) SetVin(v string) { x.xxx_hidden_Vin = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 28) } func (x *Vehicle) SetCustomerVehicleName(v string) { x.xxx_hidden_CustomerVehicleName = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 28) } func (x *Vehicle) SetRegistrationNumber(v string) { x.xxx_hidden_RegistrationNumber = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 28) } -func (x *Vehicle) SetBrand(v Vehicle_Brand) { +func (x *Vehicle) SetBrand(v Brand) { x.xxx_hidden_Brand = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 28) } func (x *Vehicle) SetUnknownBrand(v string) { x.xxx_hidden_UnknownBrand = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 4, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 4, 28) } func (x *Vehicle) SetProductionDate(v *Date) { @@ -831,95 +471,95 @@ func (x *Vehicle) SetProductionDate(v *Date) { func (x *Vehicle) SetType(v Vehicle_Type) { x.xxx_hidden_Type = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 6, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 6, 28) } func (x *Vehicle) SetUnknownType(v string) { x.xxx_hidden_UnknownType = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 7, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 7, 28) } func (x *Vehicle) SetModel(v string) { x.xxx_hidden_Model = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 28) } func (x *Vehicle) SetPossibleFuelTypes(v []FuelType) { x.xxx_hidden_PossibleFuelTypes = v } -func (x *Vehicle) SetUnknownPossibleFuelTypes(v []FuelType) { +func (x *Vehicle) SetUnknownPossibleFuelTypes(v []string) { x.xxx_hidden_UnknownPossibleFuelTypes = v } -func (x *Vehicle) SetEmissionLevel(v Vehicle_EmissionLevel) { +func (x *Vehicle) SetEmissionLevel(v EmissionLevel) { x.xxx_hidden_EmissionLevel = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 11, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 11, 28) } func (x *Vehicle) SetUnknownEmissionLevel(v string) { x.xxx_hidden_UnknownEmissionLevel = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 12, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 12, 28) } func (x *Vehicle) SetTellTaleCode(v string) { x.xxx_hidden_TellTaleCode = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 13, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 13, 28) } func (x *Vehicle) SetChassisType(v string) { x.xxx_hidden_ChassisType = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 14, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 14, 28) } func (x *Vehicle) SetAxleCount(v int32) { x.xxx_hidden_AxleCount = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 15, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 15, 28) } func (x *Vehicle) SetTotalFuelTankVolumeMl(v float64) { x.xxx_hidden_TotalFuelTankVolumeMl = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 16, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 16, 28) } func (x *Vehicle) SetTotalFuelTankCapacityGaseousKg(v float64) { x.xxx_hidden_TotalFuelTankCapacityGaseousKg = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 17, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 17, 28) } func (x *Vehicle) SetTotalBatteryPackCapacityWh(v float64) { x.xxx_hidden_TotalBatteryPackCapacityWh = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 18, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 18, 28) } -func (x *Vehicle) SetTachographType(v Vehicle_TachographType) { +func (x *Vehicle) SetTachographType(v TachographType) { x.xxx_hidden_TachographType = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 19, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 19, 28) } func (x *Vehicle) SetUnknownTachographType(v string) { x.xxx_hidden_UnknownTachographType = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 20, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 20, 28) } -func (x *Vehicle) SetGearboxType(v Vehicle_GearboxType) { +func (x *Vehicle) SetGearboxType(v GearboxType) { x.xxx_hidden_GearboxType = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 21, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 21, 28) } func (x *Vehicle) SetUnknownGearboxType(v string) { x.xxx_hidden_UnknownGearboxType = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 22, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 22, 28) } func (x *Vehicle) SetBodyType(v Vehicle_BodyType) { x.xxx_hidden_BodyType = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 23, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 23, 28) } func (x *Vehicle) SetUnknownBodyType(v string) { x.xxx_hidden_UnknownBodyType = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 24, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 24, 28) } func (x *Vehicle) SetDoorConfiguration(v []int32) { @@ -928,7 +568,11 @@ func (x *Vehicle) SetDoorConfiguration(v []int32) { func (x *Vehicle) SetHasRampOrLift(v bool) { x.xxx_hidden_HasRampOrLift = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 26, 27) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 26, 28) +} + +func (x *Vehicle) SetAuthorizedPaths(v []string) { + x.xxx_hidden_AuthorizedPaths = v } func (x *Vehicle) HasVin() bool { @@ -1116,7 +760,7 @@ func (x *Vehicle) ClearRegistrationNumber() { func (x *Vehicle) ClearBrand() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 3) - x.xxx_hidden_Brand = Vehicle_BRAND_UNSPECIFIED + x.xxx_hidden_Brand = Brand_BRAND_UNSPECIFIED } func (x *Vehicle) ClearUnknownBrand() { @@ -1145,7 +789,7 @@ func (x *Vehicle) ClearModel() { func (x *Vehicle) ClearEmissionLevel() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 11) - x.xxx_hidden_EmissionLevel = Vehicle_EMISSION_LEVEL_UNSPECIFIED + x.xxx_hidden_EmissionLevel = EmissionLevel_EMISSION_LEVEL_UNSPECIFIED } func (x *Vehicle) ClearUnknownEmissionLevel() { @@ -1185,7 +829,7 @@ func (x *Vehicle) ClearTotalBatteryPackCapacityWh() { func (x *Vehicle) ClearTachographType() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 19) - x.xxx_hidden_TachographType = Vehicle_TACHOGRAPH_TYPE_UNSPECIFIED + x.xxx_hidden_TachographType = TachographType_TACHOGRAPH_TYPE_UNSPECIFIED } func (x *Vehicle) ClearUnknownTachographType() { @@ -1195,7 +839,7 @@ func (x *Vehicle) ClearUnknownTachographType() { func (x *Vehicle) ClearGearboxType() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 21) - x.xxx_hidden_GearboxType = Vehicle_GEARBOX_TYPE_UNSPECIFIED + x.xxx_hidden_GearboxType = GearboxType_GEARBOX_TYPE_UNSPECIFIED } func (x *Vehicle) ClearUnknownGearboxType() { @@ -1222,13 +866,14 @@ type Vehicle_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. // The vehicle identification number (VIN) of the vehicle. + // See ISO 3779 (17 characters) Vin *string // The customer's name for the vehicle. CustomerVehicleName *string // The registration number (license plate) of the vehicle. RegistrationNumber *string // The brand of the vehicle. - Brand *Vehicle_Brand + Brand *Brand // The unknown brand of the vehicle. // This is used when the type is BRAND_UNKNOWN. UnknownBrand *string @@ -1240,15 +885,16 @@ type Vehicle_builder struct { // This is used when type is TYPE_UNKNOWN. UnknownType *string // The model of the vehicle. + // OEM-specific value. Model *string // The possible fuel types supported by this vehicle. // This does NOT indicate which fuel type that is presently being used. PossibleFuelTypes []FuelType // The unknown possible fuel types of the vehicle. // This is used when possible_fuel_types contains unknown fuel types. - UnknownPossibleFuelTypes []FuelType + UnknownPossibleFuelTypes []string // The emission level of the vehicle. - EmissionLevel *Vehicle_EmissionLevel + EmissionLevel *EmissionLevel // The unknown emission level of the vehicle. // This is used when emission_level is EMISSION_LEVEL_UNKNOWN. UnknownEmissionLevel *string @@ -1257,26 +903,30 @@ type Vehicle_builder struct { // depending on vehicle type. TellTaleCode *string // The chassis type of the vehicle. + // This is used mainly for buses. ChassisType *string // The number of axles on the vehicle. AxleCount *int32 - // The total fuel tank volume of the vehicle. + // The total fuel tank volume of the vehicle. (ml) TotalFuelTankVolumeMl *float64 - // The total fuel tank capacity of the vehicle. + // The total gas tank capacity of the vehicle. (kg) TotalFuelTankCapacityGaseousKg *float64 - // The total battery pack capacity of the vehicle. + // The total battery pack capacity of the vehicle. (Wh) + // The value comes from the vehicle's specification. + // The value is static, i.e. does not take aging into consideration. TotalBatteryPackCapacityWh *float64 // The type of tachograph in the vehicle. - TachographType *Vehicle_TachographType + TachographType *TachographType // The unknown tachograph type of the vehicle. // This is used when tachograph_type is TACH_TYPE_UNKNOWN. UnknownTachographType *string // The type of gearbox in the vehicle. - GearboxType *Vehicle_GearboxType + GearboxType *GearboxType // The unknown gearbox type of the vehicle. // This is used when gearbox_type is GEARBOX_TYPE_UNKNOWN. UnknownGearboxType *string // The type of body on the chassis. + // This is used mainly for buses. BodyType *Vehicle_BodyType // The unknown body type of the vehicle. // This is used when body_type is BODY_TYPE_UNKNOWN. @@ -1287,6 +937,9 @@ type Vehicle_builder struct { DoorConfiguration []int32 // If the vehicle is equipped with a ramp or not. This is used mainly for buses. HasRampOrLift *bool + // Paths that the client is authorized to call. + // Example: ["/vehiclestatuses", "/vehiclepositions"] + AuthorizedPaths []string } func (b0 Vehicle_builder) Build() *Vehicle { @@ -1294,101 +947,102 @@ func (b0 Vehicle_builder) Build() *Vehicle { b, x := &b0, m0 _, _ = b, x if b.Vin != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 28) x.xxx_hidden_Vin = b.Vin } if b.CustomerVehicleName != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 28) x.xxx_hidden_CustomerVehicleName = b.CustomerVehicleName } if b.RegistrationNumber != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 28) x.xxx_hidden_RegistrationNumber = b.RegistrationNumber } if b.Brand != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 28) x.xxx_hidden_Brand = *b.Brand } if b.UnknownBrand != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 4, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 4, 28) x.xxx_hidden_UnknownBrand = b.UnknownBrand } x.xxx_hidden_ProductionDate = b.ProductionDate if b.Type != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 6, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 6, 28) x.xxx_hidden_Type = *b.Type } if b.UnknownType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 7, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 7, 28) x.xxx_hidden_UnknownType = b.UnknownType } if b.Model != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 28) x.xxx_hidden_Model = b.Model } x.xxx_hidden_PossibleFuelTypes = b.PossibleFuelTypes x.xxx_hidden_UnknownPossibleFuelTypes = b.UnknownPossibleFuelTypes if b.EmissionLevel != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 11, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 11, 28) x.xxx_hidden_EmissionLevel = *b.EmissionLevel } if b.UnknownEmissionLevel != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 12, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 12, 28) x.xxx_hidden_UnknownEmissionLevel = b.UnknownEmissionLevel } if b.TellTaleCode != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 13, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 13, 28) x.xxx_hidden_TellTaleCode = b.TellTaleCode } if b.ChassisType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 14, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 14, 28) x.xxx_hidden_ChassisType = b.ChassisType } if b.AxleCount != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 15, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 15, 28) x.xxx_hidden_AxleCount = *b.AxleCount } if b.TotalFuelTankVolumeMl != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 16, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 16, 28) x.xxx_hidden_TotalFuelTankVolumeMl = *b.TotalFuelTankVolumeMl } if b.TotalFuelTankCapacityGaseousKg != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 17, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 17, 28) x.xxx_hidden_TotalFuelTankCapacityGaseousKg = *b.TotalFuelTankCapacityGaseousKg } if b.TotalBatteryPackCapacityWh != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 18, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 18, 28) x.xxx_hidden_TotalBatteryPackCapacityWh = *b.TotalBatteryPackCapacityWh } if b.TachographType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 19, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 19, 28) x.xxx_hidden_TachographType = *b.TachographType } if b.UnknownTachographType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 20, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 20, 28) x.xxx_hidden_UnknownTachographType = b.UnknownTachographType } if b.GearboxType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 21, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 21, 28) x.xxx_hidden_GearboxType = *b.GearboxType } if b.UnknownGearboxType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 22, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 22, 28) x.xxx_hidden_UnknownGearboxType = b.UnknownGearboxType } if b.BodyType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 23, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 23, 28) x.xxx_hidden_BodyType = *b.BodyType } if b.UnknownBodyType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 24, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 24, 28) x.xxx_hidden_UnknownBodyType = b.UnknownBodyType } x.xxx_hidden_DoorConfiguration = b.DoorConfiguration if b.HasRampOrLift != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 26, 27) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 26, 28) x.xxx_hidden_HasRampOrLift = *b.HasRampOrLift } + x.xxx_hidden_AuthorizedPaths = b.AuthorizedPaths return m0 } @@ -1396,21 +1050,21 @@ var File_wayplatform_rfms_v5_vehicle_proto protoreflect.FileDescriptor const file_wayplatform_rfms_v5_vehicle_proto_rawDesc = "" + "\n" + - "!wayplatform/rfms/v5/vehicle.proto\x12\x13wayplatform.rfms.v5\x1a\x1ewayplatform/rfms/v5/date.proto\x1a#wayplatform/rfms/v5/fuel_type.proto\"\xc2\x15\n" + + "!wayplatform/rfms/v5/vehicle.proto\x12\x13wayplatform.rfms.v5\x1a\x1fwayplatform/rfms/v5/brand.proto\x1a\x1ewayplatform/rfms/v5/date.proto\x1a(wayplatform/rfms/v5/emission_level.proto\x1a#wayplatform/rfms/v5/fuel_type.proto\x1a&wayplatform/rfms/v5/gearbox_type.proto\x1a)wayplatform/rfms/v5/tachograph_type.proto\"\xf4\f\n" + "\aVehicle\x12\x10\n" + "\x03vin\x18\x01 \x01(\tR\x03vin\x122\n" + "\x15customer_vehicle_name\x18\x02 \x01(\tR\x13customerVehicleName\x12/\n" + - "\x13registration_number\x18\x03 \x01(\tR\x12registrationNumber\x128\n" + - "\x05brand\x18\x04 \x01(\x0e2\".wayplatform.rfms.v5.Vehicle.BrandR\x05brand\x12#\n" + + "\x13registration_number\x18\x03 \x01(\tR\x12registrationNumber\x120\n" + + "\x05brand\x18\x04 \x01(\x0e2\x1a.wayplatform.rfms.v5.BrandR\x05brand\x12#\n" + "\runknown_brand\x18\x05 \x01(\tR\funknownBrand\x12B\n" + "\x0fproduction_date\x18\x06 \x01(\v2\x19.wayplatform.rfms.v5.DateR\x0eproductionDate\x125\n" + "\x04type\x18\a \x01(\x0e2!.wayplatform.rfms.v5.Vehicle.TypeR\x04type\x12!\n" + "\funknown_type\x18\b \x01(\tR\vunknownType\x12\x14\n" + "\x05model\x18\t \x01(\tR\x05model\x12M\n" + "\x13possible_fuel_types\x18\n" + - " \x03(\x0e2\x1d.wayplatform.rfms.v5.FuelTypeR\x11possibleFuelTypes\x12\\\n" + - "\x1bunknown_possible_fuel_types\x18\v \x03(\x0e2\x1d.wayplatform.rfms.v5.FuelTypeR\x18unknownPossibleFuelTypes\x12Q\n" + - "\x0eemission_level\x18\f \x01(\x0e2*.wayplatform.rfms.v5.Vehicle.EmissionLevelR\remissionLevel\x124\n" + + " \x03(\x0e2\x1d.wayplatform.rfms.v5.FuelTypeR\x11possibleFuelTypes\x12=\n" + + "\x1bunknown_possible_fuel_types\x18\v \x03(\tR\x18unknownPossibleFuelTypes\x12I\n" + + "\x0eemission_level\x18\f \x01(\x0e2\".wayplatform.rfms.v5.EmissionLevelR\remissionLevel\x124\n" + "\x16unknown_emission_level\x18\r \x01(\tR\x14unknownEmissionLevel\x12$\n" + "\x0etell_tale_code\x18\x0e \x01(\tR\ftellTaleCode\x12!\n" + "\fchassis_type\x18\x0f \x01(\tR\vchassisType\x12\x1d\n" + @@ -1418,94 +1072,22 @@ const file_wayplatform_rfms_v5_vehicle_proto_rawDesc = "" + "axle_count\x18\x10 \x01(\x05R\taxleCount\x128\n" + "\x19total_fuel_tank_volume_ml\x18\x11 \x01(\x01R\x15totalFuelTankVolumeMl\x12K\n" + "#total_fuel_tank_capacity_gaseous_kg\x18\x12 \x01(\x01R\x1etotalFuelTankCapacityGaseousKg\x12B\n" + - "\x1etotal_battery_pack_capacity_wh\x18\x13 \x01(\x01R\x1atotalBatteryPackCapacityWh\x12T\n" + - "\x0ftachograph_type\x18\x14 \x01(\x0e2+.wayplatform.rfms.v5.Vehicle.TachographTypeR\x0etachographType\x126\n" + - "\x17unknown_tachograph_type\x18\x15 \x01(\tR\x15unknownTachographType\x12K\n" + - "\fgearbox_type\x18\x16 \x01(\x0e2(.wayplatform.rfms.v5.Vehicle.GearboxTypeR\vgearboxType\x120\n" + + "\x1etotal_battery_pack_capacity_wh\x18\x13 \x01(\x01R\x1atotalBatteryPackCapacityWh\x12L\n" + + "\x0ftachograph_type\x18\x14 \x01(\x0e2#.wayplatform.rfms.v5.TachographTypeR\x0etachographType\x126\n" + + "\x17unknown_tachograph_type\x18\x15 \x01(\tR\x15unknownTachographType\x12C\n" + + "\fgearbox_type\x18\x16 \x01(\x0e2 .wayplatform.rfms.v5.GearboxTypeR\vgearboxType\x120\n" + "\x14unknown_gearbox_type\x18\x17 \x01(\tR\x12unknownGearboxType\x12B\n" + "\tbody_type\x18\x18 \x01(\x0e2%.wayplatform.rfms.v5.Vehicle.BodyTypeR\bbodyType\x12*\n" + "\x11unknown_body_type\x18\x19 \x01(\tR\x0funknownBodyType\x12-\n" + "\x12door_configuration\x18\x1a \x03(\x05R\x11doorConfiguration\x12'\n" + - "\x10has_ramp_or_lift\x18\x1b \x01(\bR\rhasRampOrLift\"\x9a\x02\n" + - "\x05Brand\x12\x15\n" + - "\x11BRAND_UNSPECIFIED\x10\x00\x12\x11\n" + - "\rBRAND_UNKNOWN\x10\x01\x12\x10\n" + - "\fVOLVO_TRUCKS\x10\x02\x12\n" + - "\n" + - "\x06SCANIA\x10\x03\x12\v\n" + - "\aDAIMLER\x10\x04\x12\t\n" + - "\x05IVECO\x10\x05\x12\a\n" + - "\x03DAF\x10\x06\x12\a\n" + - "\x03MAN\x10\a\x12\x12\n" + - "\x0eRENAULT_TRUCKS\x10\b\x12\a\n" + - "\x03VDL\x10\t\x12\x0f\n" + - "\vVOLVO_BUSES\x10\n" + - "\x12\r\n" + - "\tIVECO_BUS\x10\v\x12\v\n" + - "\aHEULIEZ\x10\f\x12\b\n" + - "\x04VWTB\x10\r\x12\f\n" + - "\bKENWORTH\x10\x0e\x12\r\n" + - "\tPETERBILT\x10\x0f\x12\x0f\n" + - "\vMACK_TRUCKS\x10\x10\x12\x11\n" + - "\rINTERNATIONAL\x10\x11\x12\n" + - "\n" + - "\x06IC_BUS\x10\x12\"K\n" + + "\x10has_ramp_or_lift\x18\x1b \x01(\bR\rhasRampOrLift\x12)\n" + + "\x10authorized_paths\x18\x1c \x03(\tR\x0fauthorizedPaths\"K\n" + "\x04Type\x12\x14\n" + "\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n" + "\fTYPE_UNKNOWN\x10\x01\x12\t\n" + "\x05TRUCK\x10\x02\x12\a\n" + "\x03BUS\x10\x03\x12\a\n" + - "\x03VAN\x10\x04\"\xce\x03\n" + - "\rEmissionLevel\x12\x1e\n" + - "\x1aEMISSION_LEVEL_UNSPECIFIED\x10\x00\x12\x1a\n" + - "\x16EMISSION_LEVEL_UNKNOWN\x10\x01\x12\f\n" + - "\bEURO_III\x10\x02\x12\x10\n" + - "\fEURO_III_EEV\x10\x03\x12\v\n" + - "\aEURO_IV\x10\x04\x12\n" + - "\n" + - "\x06EURO_V\x10\x05\x12\v\n" + - "\aEURO_VI\x10\x06\x12\f\n" + - "\bEURO_VII\x10\a\x12\x12\n" + - "\x0eEURO_STAGE_III\x10\b\x12\x11\n" + - "\rEURO_STAGE_IV\x10\t\x12\x10\n" + - "\fEURO_STAGE_V\x10\n" + - "\x12\f\n" + - "\bEPA_2004\x10\v\x12\f\n" + - "\bEPA_2007\x10\f\x12\f\n" + - "\bEPA_2010\x10\r\x12\x12\n" + - "\x0eEPA_2015_NOX10\x10\x0e\x12\x12\n" + - "\x0eEPA_2015_NOX05\x10\x0f\x12\x12\n" + - "\x0eEPA_2015_NOX02\x10\x10\x12\x0e\n" + - "\n" + - "EPA_TIER_2\x10\x11\x12\x0e\n" + - "\n" + - "EPA_TIER_3\x10\x12\x12\x13\n" + - "\x0fEPA_TIER_4_2008\x10\x13\x12\x13\n" + - "\x0fEPA_TIER_4_2013\x10\x14\x12\x0f\n" + - "\vPROCONVE_P5\x10\x15\x12\x0f\n" + - "\vPROCONVE_P6\x10\x16\x12\x0f\n" + - "\vPROCONVE_P7\x10\x17\x12\x11\n" + - "\rPROCONVE_MARI\x10\x18\"\xbc\x01\n" + - "\x0eTachographType\x12\x1f\n" + - "\x1bTACHOGRAPH_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" + - "\x17TACHOGRAPH_TYPE_UNKNOWN\x10\x01\x12\b\n" + - "\x04MTCO\x10\x02\x12\b\n" + - "\x04DTCO\x10\x03\x12\v\n" + - "\aDTCO_G1\x10\x04\x12\v\n" + - "\aDTCO_G2\x10\x05\x12\a\n" + - "\x03TSU\x10\x06\x12\b\n" + - "\x04NONE\x10\a\x12\x14\n" + - "\x10STONERIDGE_SMART\x10\b\x12\x15\n" + - "\x11STONERIDGE_SMART2\x10\t\"\x8a\x01\n" + - "\vGearboxType\x12\x1c\n" + - "\x18GEARBOX_TYPE_UNSPECIFIED\x10\x00\x12\x18\n" + - "\x14GEARBOX_TYPE_UNKNOWN\x10\x01\x12\n" + - "\n" + - "\x06MANUAL\x10\x02\x12\r\n" + - "\tAUTOMATIC\x10\x03\x12\x12\n" + - "\x0eSEMI_AUTOMATIC\x10\x04\x12\v\n" + - "\aNO_GEAR\x10\x05\x12\a\n" + - "\x03AMT\x10\x06\"h\n" + + "\x03VAN\x10\x04\"h\n" + "\bBodyType\x12\x19\n" + "\x15BODY_TYPE_UNSPECIFIED\x10\x00\x12\x15\n" + "\x11BODY_TYPE_UNKNOWN\x10\x01\x12\f\n" + @@ -1514,34 +1096,33 @@ const file_wayplatform_rfms_v5_vehicle_proto_rawDesc = "" + "\x05COACH\x10\x04B\xde\x01\n" + "\x17com.wayplatform.rfms.v5B\fVehicleProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" -var file_wayplatform_rfms_v5_vehicle_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_wayplatform_rfms_v5_vehicle_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_wayplatform_rfms_v5_vehicle_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_wayplatform_rfms_v5_vehicle_proto_goTypes = []any{ - (Vehicle_Brand)(0), // 0: wayplatform.rfms.v5.Vehicle.Brand - (Vehicle_Type)(0), // 1: wayplatform.rfms.v5.Vehicle.Type - (Vehicle_EmissionLevel)(0), // 2: wayplatform.rfms.v5.Vehicle.EmissionLevel - (Vehicle_TachographType)(0), // 3: wayplatform.rfms.v5.Vehicle.TachographType - (Vehicle_GearboxType)(0), // 4: wayplatform.rfms.v5.Vehicle.GearboxType - (Vehicle_BodyType)(0), // 5: wayplatform.rfms.v5.Vehicle.BodyType - (*Vehicle)(nil), // 6: wayplatform.rfms.v5.Vehicle - (*Date)(nil), // 7: wayplatform.rfms.v5.Date - (FuelType)(0), // 8: wayplatform.rfms.v5.FuelType + (Vehicle_Type)(0), // 0: wayplatform.rfms.v5.Vehicle.Type + (Vehicle_BodyType)(0), // 1: wayplatform.rfms.v5.Vehicle.BodyType + (*Vehicle)(nil), // 2: wayplatform.rfms.v5.Vehicle + (Brand)(0), // 3: wayplatform.rfms.v5.Brand + (*Date)(nil), // 4: wayplatform.rfms.v5.Date + (FuelType)(0), // 5: wayplatform.rfms.v5.FuelType + (EmissionLevel)(0), // 6: wayplatform.rfms.v5.EmissionLevel + (TachographType)(0), // 7: wayplatform.rfms.v5.TachographType + (GearboxType)(0), // 8: wayplatform.rfms.v5.GearboxType } var file_wayplatform_rfms_v5_vehicle_proto_depIdxs = []int32{ - 0, // 0: wayplatform.rfms.v5.Vehicle.brand:type_name -> wayplatform.rfms.v5.Vehicle.Brand - 7, // 1: wayplatform.rfms.v5.Vehicle.production_date:type_name -> wayplatform.rfms.v5.Date - 1, // 2: wayplatform.rfms.v5.Vehicle.type:type_name -> wayplatform.rfms.v5.Vehicle.Type - 8, // 3: wayplatform.rfms.v5.Vehicle.possible_fuel_types:type_name -> wayplatform.rfms.v5.FuelType - 8, // 4: wayplatform.rfms.v5.Vehicle.unknown_possible_fuel_types:type_name -> wayplatform.rfms.v5.FuelType - 2, // 5: wayplatform.rfms.v5.Vehicle.emission_level:type_name -> wayplatform.rfms.v5.Vehicle.EmissionLevel - 3, // 6: wayplatform.rfms.v5.Vehicle.tachograph_type:type_name -> wayplatform.rfms.v5.Vehicle.TachographType - 4, // 7: wayplatform.rfms.v5.Vehicle.gearbox_type:type_name -> wayplatform.rfms.v5.Vehicle.GearboxType - 5, // 8: wayplatform.rfms.v5.Vehicle.body_type:type_name -> wayplatform.rfms.v5.Vehicle.BodyType - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 3, // 0: wayplatform.rfms.v5.Vehicle.brand:type_name -> wayplatform.rfms.v5.Brand + 4, // 1: wayplatform.rfms.v5.Vehicle.production_date:type_name -> wayplatform.rfms.v5.Date + 0, // 2: wayplatform.rfms.v5.Vehicle.type:type_name -> wayplatform.rfms.v5.Vehicle.Type + 5, // 3: wayplatform.rfms.v5.Vehicle.possible_fuel_types:type_name -> wayplatform.rfms.v5.FuelType + 6, // 4: wayplatform.rfms.v5.Vehicle.emission_level:type_name -> wayplatform.rfms.v5.EmissionLevel + 7, // 5: wayplatform.rfms.v5.Vehicle.tachograph_type:type_name -> wayplatform.rfms.v5.TachographType + 8, // 6: wayplatform.rfms.v5.Vehicle.gearbox_type:type_name -> wayplatform.rfms.v5.GearboxType + 1, // 7: wayplatform.rfms.v5.Vehicle.body_type:type_name -> wayplatform.rfms.v5.Vehicle.BodyType + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_wayplatform_rfms_v5_vehicle_proto_init() } @@ -1549,14 +1130,18 @@ func file_wayplatform_rfms_v5_vehicle_proto_init() { if File_wayplatform_rfms_v5_vehicle_proto != nil { return } + file_wayplatform_rfms_v5_brand_proto_init() file_wayplatform_rfms_v5_date_proto_init() + file_wayplatform_rfms_v5_emission_level_proto_init() file_wayplatform_rfms_v5_fuel_type_proto_init() + file_wayplatform_rfms_v5_gearbox_type_proto_init() + file_wayplatform_rfms_v5_tachograph_type_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_vehicle_proto_rawDesc), len(file_wayplatform_rfms_v5_vehicle_proto_rawDesc)), - NumEnums: 6, + NumEnums: 2, NumMessages: 1, NumExtensions: 0, NumServices: 0, diff --git a/proto/gen/go/wayplatform/rfms/v5/axle.pb.go b/proto/gen/go/wayplatform/rfms/v5/vehicle_axle.pb.go similarity index 58% rename from proto/gen/go/wayplatform/rfms/v5/axle.pb.go rename to proto/gen/go/wayplatform/rfms/v5/vehicle_axle.pb.go index 33416f4..e520091 100644 --- a/proto/gen/go/wayplatform/rfms/v5/axle.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/vehicle_axle.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.36.6 // protoc (unknown) -// source: wayplatform/rfms/v5/axle.proto +// source: wayplatform/rfms/v5/vehicle_axle.proto package rfmsv5 @@ -21,32 +21,32 @@ const ( ) // A vehicle axle. -type Axle struct { +type VehicleAxle struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Position int32 `protobuf:"varint,1,opt,name=position"` xxx_hidden_LoadKg float64 `protobuf:"fixed64,2,opt,name=load_kg,json=loadKg"` - xxx_hidden_Tires *[]*Axle_Tire `protobuf:"bytes,3,rep,name=tires"` + xxx_hidden_Tires *[]*VehicleAxle_Tire `protobuf:"bytes,3,rep,name=tires"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *Axle) Reset() { - *x = Axle{} - mi := &file_wayplatform_rfms_v5_axle_proto_msgTypes[0] +func (x *VehicleAxle) Reset() { + *x = VehicleAxle{} + mi := &file_wayplatform_rfms_v5_vehicle_axle_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *Axle) String() string { +func (x *VehicleAxle) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Axle) ProtoMessage() {} +func (*VehicleAxle) ProtoMessage() {} -func (x *Axle) ProtoReflect() protoreflect.Message { - mi := &file_wayplatform_rfms_v5_axle_proto_msgTypes[0] +func (x *VehicleAxle) ProtoReflect() protoreflect.Message { + mi := &file_wayplatform_rfms_v5_vehicle_axle_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57,21 +57,21 @@ func (x *Axle) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -func (x *Axle) GetPosition() int32 { +func (x *VehicleAxle) GetPosition() int32 { if x != nil { return x.xxx_hidden_Position } return 0 } -func (x *Axle) GetLoadKg() float64 { +func (x *VehicleAxle) GetLoadKg() float64 { if x != nil { return x.xxx_hidden_LoadKg } return 0 } -func (x *Axle) GetTires() []*Axle_Tire { +func (x *VehicleAxle) GetTires() []*VehicleAxle_Tire { if x != nil { if x.xxx_hidden_Tires != nil { return *x.xxx_hidden_Tires @@ -80,45 +80,45 @@ func (x *Axle) GetTires() []*Axle_Tire { return nil } -func (x *Axle) SetPosition(v int32) { +func (x *VehicleAxle) SetPosition(v int32) { x.xxx_hidden_Position = v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 3) } -func (x *Axle) SetLoadKg(v float64) { +func (x *VehicleAxle) SetLoadKg(v float64) { x.xxx_hidden_LoadKg = v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 3) } -func (x *Axle) SetTires(v []*Axle_Tire) { +func (x *VehicleAxle) SetTires(v []*VehicleAxle_Tire) { x.xxx_hidden_Tires = &v } -func (x *Axle) HasPosition() bool { +func (x *VehicleAxle) HasPosition() bool { if x == nil { return false } return protoimpl.X.Present(&(x.XXX_presence[0]), 0) } -func (x *Axle) HasLoadKg() bool { +func (x *VehicleAxle) HasLoadKg() bool { if x == nil { return false } return protoimpl.X.Present(&(x.XXX_presence[0]), 1) } -func (x *Axle) ClearPosition() { +func (x *VehicleAxle) ClearPosition() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) x.xxx_hidden_Position = 0 } -func (x *Axle) ClearLoadKg() { +func (x *VehicleAxle) ClearLoadKg() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1) x.xxx_hidden_LoadKg = 0 } -type Axle_builder struct { +type VehicleAxle_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. // The position of the axle. @@ -126,11 +126,11 @@ type Axle_builder struct { // The static vertical load of the axle. (kg) LoadKg *float64 // The tires on the axle. - Tires []*Axle_Tire + Tires []*VehicleAxle_Tire } -func (b0 Axle_builder) Build() *Axle { - m0 := &Axle{} +func (b0 VehicleAxle_builder) Build() *VehicleAxle { + m0 := &VehicleAxle{} b, x := &b0, m0 _, _ = b, x if b.Position != nil { @@ -146,7 +146,7 @@ func (b0 Axle_builder) Build() *Axle { } // A tire on an axle. -type Axle_Tire struct { +type VehicleAxle_Tire struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Position int32 `protobuf:"varint,1,opt,name=position"` xxx_hidden_PressureKpa float64 `protobuf:"fixed64,2,opt,name=pressure_kpa,json=pressureKpa"` @@ -156,21 +156,21 @@ type Axle_Tire struct { sizeCache protoimpl.SizeCache } -func (x *Axle_Tire) Reset() { - *x = Axle_Tire{} - mi := &file_wayplatform_rfms_v5_axle_proto_msgTypes[1] +func (x *VehicleAxle_Tire) Reset() { + *x = VehicleAxle_Tire{} + mi := &file_wayplatform_rfms_v5_vehicle_axle_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *Axle_Tire) String() string { +func (x *VehicleAxle_Tire) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Axle_Tire) ProtoMessage() {} +func (*VehicleAxle_Tire) ProtoMessage() {} -func (x *Axle_Tire) ProtoReflect() protoreflect.Message { - mi := &file_wayplatform_rfms_v5_axle_proto_msgTypes[1] +func (x *VehicleAxle_Tire) ProtoReflect() protoreflect.Message { + mi := &file_wayplatform_rfms_v5_vehicle_axle_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -181,55 +181,55 @@ func (x *Axle_Tire) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -func (x *Axle_Tire) GetPosition() int32 { +func (x *VehicleAxle_Tire) GetPosition() int32 { if x != nil { return x.xxx_hidden_Position } return 0 } -func (x *Axle_Tire) GetPressureKpa() float64 { +func (x *VehicleAxle_Tire) GetPressureKpa() float64 { if x != nil { return x.xxx_hidden_PressureKpa } return 0 } -func (x *Axle_Tire) SetPosition(v int32) { +func (x *VehicleAxle_Tire) SetPosition(v int32) { x.xxx_hidden_Position = v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 2) } -func (x *Axle_Tire) SetPressureKpa(v float64) { +func (x *VehicleAxle_Tire) SetPressureKpa(v float64) { x.xxx_hidden_PressureKpa = v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 2) } -func (x *Axle_Tire) HasPosition() bool { +func (x *VehicleAxle_Tire) HasPosition() bool { if x == nil { return false } return protoimpl.X.Present(&(x.XXX_presence[0]), 0) } -func (x *Axle_Tire) HasPressureKpa() bool { +func (x *VehicleAxle_Tire) HasPressureKpa() bool { if x == nil { return false } return protoimpl.X.Present(&(x.XXX_presence[0]), 1) } -func (x *Axle_Tire) ClearPosition() { +func (x *VehicleAxle_Tire) ClearPosition() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) x.xxx_hidden_Position = 0 } -func (x *Axle_Tire) ClearPressureKpa() { +func (x *VehicleAxle_Tire) ClearPressureKpa() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1) x.xxx_hidden_PressureKpa = 0 } -type Axle_Tire_builder struct { +type VehicleAxle_Tire_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. // Tire position (on the specified axle) from 1 to 15, @@ -240,8 +240,8 @@ type Axle_Tire_builder struct { PressureKpa *float64 } -func (b0 Axle_Tire_builder) Build() *Axle_Tire { - m0 := &Axle_Tire{} +func (b0 VehicleAxle_Tire_builder) Build() *VehicleAxle_Tire { + m0 := &VehicleAxle_Tire{} b, x := &b0, m0 _, _ = b, x if b.Position != nil { @@ -255,27 +255,27 @@ func (b0 Axle_Tire_builder) Build() *Axle_Tire { return m0 } -var File_wayplatform_rfms_v5_axle_proto protoreflect.FileDescriptor +var File_wayplatform_rfms_v5_vehicle_axle_proto protoreflect.FileDescriptor -const file_wayplatform_rfms_v5_axle_proto_rawDesc = "" + +const file_wayplatform_rfms_v5_vehicle_axle_proto_rawDesc = "" + "\n" + - "\x1ewayplatform/rfms/v5/axle.proto\x12\x13wayplatform.rfms.v5\"\xb8\x01\n" + - "\x04Axle\x12\x1a\n" + + "&wayplatform/rfms/v5/vehicle_axle.proto\x12\x13wayplatform.rfms.v5\"\xc6\x01\n" + + "\vVehicleAxle\x12\x1a\n" + "\bposition\x18\x01 \x01(\x05R\bposition\x12\x17\n" + - "\aload_kg\x18\x02 \x01(\x01R\x06loadKg\x124\n" + - "\x05tires\x18\x03 \x03(\v2\x1e.wayplatform.rfms.v5.Axle.TireR\x05tires\x1aE\n" + + "\aload_kg\x18\x02 \x01(\x01R\x06loadKg\x12;\n" + + "\x05tires\x18\x03 \x03(\v2%.wayplatform.rfms.v5.VehicleAxle.TireR\x05tires\x1aE\n" + "\x04Tire\x12\x1a\n" + "\bposition\x18\x01 \x01(\x05R\bposition\x12!\n" + - "\fpressure_kpa\x18\x02 \x01(\x01R\vpressureKpaB\xdb\x01\n" + - "\x17com.wayplatform.rfms.v5B\tAxleProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" + "\fpressure_kpa\x18\x02 \x01(\x01R\vpressureKpaB\xe2\x01\n" + + "\x17com.wayplatform.rfms.v5B\x10VehicleAxleProtoP\x01ZGgithub.com/way-platform/rfms-go/proto/gen/go/wayplatform/rfms/v5;rfmsv5\xa2\x02\x03WRX\xaa\x02\x13Wayplatform.Rfms.V5\xca\x02\x13Wayplatform\\Rfms\\V5\xe2\x02\x1fWayplatform\\Rfms\\V5\\GPBMetadata\xea\x02\x15Wayplatform::Rfms::V5b\beditionsp\xe8\a" -var file_wayplatform_rfms_v5_axle_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_wayplatform_rfms_v5_axle_proto_goTypes = []any{ - (*Axle)(nil), // 0: wayplatform.rfms.v5.Axle - (*Axle_Tire)(nil), // 1: wayplatform.rfms.v5.Axle.Tire +var file_wayplatform_rfms_v5_vehicle_axle_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_wayplatform_rfms_v5_vehicle_axle_proto_goTypes = []any{ + (*VehicleAxle)(nil), // 0: wayplatform.rfms.v5.VehicleAxle + (*VehicleAxle_Tire)(nil), // 1: wayplatform.rfms.v5.VehicleAxle.Tire } -var file_wayplatform_rfms_v5_axle_proto_depIdxs = []int32{ - 1, // 0: wayplatform.rfms.v5.Axle.tires:type_name -> wayplatform.rfms.v5.Axle.Tire +var file_wayplatform_rfms_v5_vehicle_axle_proto_depIdxs = []int32{ + 1, // 0: wayplatform.rfms.v5.VehicleAxle.tires:type_name -> wayplatform.rfms.v5.VehicleAxle.Tire 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name @@ -283,26 +283,26 @@ var file_wayplatform_rfms_v5_axle_proto_depIdxs = []int32{ 0, // [0:1] is the sub-list for field type_name } -func init() { file_wayplatform_rfms_v5_axle_proto_init() } -func file_wayplatform_rfms_v5_axle_proto_init() { - if File_wayplatform_rfms_v5_axle_proto != nil { +func init() { file_wayplatform_rfms_v5_vehicle_axle_proto_init() } +func file_wayplatform_rfms_v5_vehicle_axle_proto_init() { + if File_wayplatform_rfms_v5_vehicle_axle_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_axle_proto_rawDesc), len(file_wayplatform_rfms_v5_axle_proto_rawDesc)), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_wayplatform_rfms_v5_vehicle_axle_proto_rawDesc), len(file_wayplatform_rfms_v5_vehicle_axle_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_wayplatform_rfms_v5_axle_proto_goTypes, - DependencyIndexes: file_wayplatform_rfms_v5_axle_proto_depIdxs, - MessageInfos: file_wayplatform_rfms_v5_axle_proto_msgTypes, + GoTypes: file_wayplatform_rfms_v5_vehicle_axle_proto_goTypes, + DependencyIndexes: file_wayplatform_rfms_v5_vehicle_axle_proto_depIdxs, + MessageInfos: file_wayplatform_rfms_v5_vehicle_axle_proto_msgTypes, }.Build() - File_wayplatform_rfms_v5_axle_proto = out.File - file_wayplatform_rfms_v5_axle_proto_goTypes = nil - file_wayplatform_rfms_v5_axle_proto_depIdxs = nil + File_wayplatform_rfms_v5_vehicle_axle_proto = out.File + file_wayplatform_rfms_v5_vehicle_axle_proto_goTypes = nil + file_wayplatform_rfms_v5_vehicle_axle_proto_depIdxs = nil } diff --git a/proto/gen/go/wayplatform/rfms/v5/vehicle_position.pb.go b/proto/gen/go/wayplatform/rfms/v5/vehicle_position.pb.go index bca7626..c3c0950 100644 --- a/proto/gen/go/wayplatform/rfms/v5/vehicle_position.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/vehicle_position.pb.go @@ -25,8 +25,8 @@ type VehiclePosition struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Vin *string `protobuf:"bytes,1,opt,name=vin"` xxx_hidden_Trigger *Trigger `protobuf:"bytes,2,opt,name=trigger"` - xxx_hidden_CreateTime int64 `protobuf:"varint,3,opt,name=create_time,json=createTime"` - xxx_hidden_ReceiveTime int64 `protobuf:"varint,4,opt,name=receive_time,json=receiveTime"` + xxx_hidden_CreateTime *string `protobuf:"bytes,3,opt,name=create_time,json=createTime"` + xxx_hidden_ReceiveTime *string `protobuf:"bytes,4,opt,name=receive_time,json=receiveTime"` xxx_hidden_GnssPosition *GnssPosition `protobuf:"bytes,5,opt,name=gnss_position,json=gnssPosition"` xxx_hidden_WheelBasedSpeedKmh float64 `protobuf:"fixed64,6,opt,name=wheel_based_speed_kmh,json=wheelBasedSpeedKmh"` xxx_hidden_TachographSpeedKmh float64 `protobuf:"fixed64,7,opt,name=tachograph_speed_kmh,json=tachographSpeedKmh"` @@ -78,18 +78,24 @@ func (x *VehiclePosition) GetTrigger() *Trigger { return nil } -func (x *VehiclePosition) GetCreateTime() int64 { +func (x *VehiclePosition) GetCreateTime() string { if x != nil { - return x.xxx_hidden_CreateTime + if x.xxx_hidden_CreateTime != nil { + return *x.xxx_hidden_CreateTime + } + return "" } - return 0 + return "" } -func (x *VehiclePosition) GetReceiveTime() int64 { +func (x *VehiclePosition) GetReceiveTime() string { if x != nil { - return x.xxx_hidden_ReceiveTime + if x.xxx_hidden_ReceiveTime != nil { + return *x.xxx_hidden_ReceiveTime + } + return "" } - return 0 + return "" } func (x *VehiclePosition) GetGnssPosition() *GnssPosition { @@ -122,13 +128,13 @@ func (x *VehiclePosition) SetTrigger(v *Trigger) { x.xxx_hidden_Trigger = v } -func (x *VehiclePosition) SetCreateTime(v int64) { - x.xxx_hidden_CreateTime = v +func (x *VehiclePosition) SetCreateTime(v string) { + x.xxx_hidden_CreateTime = &v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 7) } -func (x *VehiclePosition) SetReceiveTime(v int64) { - x.xxx_hidden_ReceiveTime = v +func (x *VehiclePosition) SetReceiveTime(v string) { + x.xxx_hidden_ReceiveTime = &v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 7) } @@ -206,12 +212,12 @@ func (x *VehiclePosition) ClearTrigger() { func (x *VehiclePosition) ClearCreateTime() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 2) - x.xxx_hidden_CreateTime = 0 + x.xxx_hidden_CreateTime = nil } func (x *VehiclePosition) ClearReceiveTime() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 3) - x.xxx_hidden_ReceiveTime = 0 + x.xxx_hidden_ReceiveTime = nil } func (x *VehiclePosition) ClearGnssPosition() { @@ -232,13 +238,14 @@ type VehiclePosition_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. // The vehicle identification number (VIN) of the vehicle. + // See ISO 3779 (17 characters). Vin *string // The type of trigger that caused the vehicle position to be sent. Trigger *Trigger - // The date and time the vehicle position was created. (Unix microseconds) - CreateTime *int64 - // The date and time the vehicle position was received. (Unix microseconds) - ReceiveTime *int64 + // The date and time the vehicle position was created. (RFC 3339) + CreateTime *string + // The date and time the vehicle position was received. (RFC 3339) + ReceiveTime *string // The GNSS position of the vehicle. GnssPosition *GnssPosition // Speed of the vehicle as calculated from wheel or tailshaft speed. (km/h) @@ -258,11 +265,11 @@ func (b0 VehiclePosition_builder) Build() *VehiclePosition { x.xxx_hidden_Trigger = b.Trigger if b.CreateTime != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 7) - x.xxx_hidden_CreateTime = *b.CreateTime + x.xxx_hidden_CreateTime = b.CreateTime } if b.ReceiveTime != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 7) - x.xxx_hidden_ReceiveTime = *b.ReceiveTime + x.xxx_hidden_ReceiveTime = b.ReceiveTime } x.xxx_hidden_GnssPosition = b.GnssPosition if b.WheelBasedSpeedKmh != nil { @@ -284,9 +291,9 @@ const file_wayplatform_rfms_v5_vehicle_position_proto_rawDesc = "" + "\x0fVehiclePosition\x12\x10\n" + "\x03vin\x18\x01 \x01(\tR\x03vin\x126\n" + "\atrigger\x18\x02 \x01(\v2\x1c.wayplatform.rfms.v5.TriggerR\atrigger\x12\x1f\n" + - "\vcreate_time\x18\x03 \x01(\x03R\n" + + "\vcreate_time\x18\x03 \x01(\tR\n" + "createTime\x12!\n" + - "\freceive_time\x18\x04 \x01(\x03R\vreceiveTime\x12F\n" + + "\freceive_time\x18\x04 \x01(\tR\vreceiveTime\x12F\n" + "\rgnss_position\x18\x05 \x01(\v2!.wayplatform.rfms.v5.GnssPositionR\fgnssPosition\x121\n" + "\x15wheel_based_speed_kmh\x18\x06 \x01(\x01R\x12wheelBasedSpeedKmh\x120\n" + "\x14tachograph_speed_kmh\x18\a \x01(\x01R\x12tachographSpeedKmhB\xe6\x01\n" + diff --git a/proto/gen/go/wayplatform/rfms/v5/vehicle_status.pb.go b/proto/gen/go/wayplatform/rfms/v5/vehicle_status.pb.go index 1486f9b..b6faa9f 100644 --- a/proto/gen/go/wayplatform/rfms/v5/vehicle_status.pb.go +++ b/proto/gen/go/wayplatform/rfms/v5/vehicle_status.pb.go @@ -74,61 +74,61 @@ func (x VehicleStatus_StateOfDoors) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Lock state of a door. -type VehicleStatus_Door_LockState int32 +// Enabled state of a bus door. +type VehicleStatus_Door_EnabledState int32 const ( - VehicleStatus_Door_LOCK_STATE_UNSPECIFIED VehicleStatus_Door_LockState = 0 - VehicleStatus_Door_LOCK_STATE_UNKNOWN VehicleStatus_Door_LockState = 1 - VehicleStatus_Door_LOCK_STATE_ERROR VehicleStatus_Door_LockState = 2 - VehicleStatus_Door_LOCK_STATE_NOT_AVAILABLE VehicleStatus_Door_LockState = 3 - VehicleStatus_Door_UNLOCKED VehicleStatus_Door_LockState = 4 - VehicleStatus_Door_LOCKED VehicleStatus_Door_LockState = 5 + VehicleStatus_Door_ENABLED_STATE_UNSPECIFIED VehicleStatus_Door_EnabledState = 0 + VehicleStatus_Door_ENABLED_STATE_UNKNOWN VehicleStatus_Door_EnabledState = 1 + VehicleStatus_Door_ENABLED_STATE_ERROR VehicleStatus_Door_EnabledState = 2 + VehicleStatus_Door_ENABLED_STATE_NOT_AVAILABLE VehicleStatus_Door_EnabledState = 3 + VehicleStatus_Door_ENABLED VehicleStatus_Door_EnabledState = 4 + VehicleStatus_Door_DISABLED VehicleStatus_Door_EnabledState = 5 ) -// Enum value maps for VehicleStatus_Door_LockState. +// Enum value maps for VehicleStatus_Door_EnabledState. var ( - VehicleStatus_Door_LockState_name = map[int32]string{ - 0: "LOCK_STATE_UNSPECIFIED", - 1: "LOCK_STATE_UNKNOWN", - 2: "LOCK_STATE_ERROR", - 3: "LOCK_STATE_NOT_AVAILABLE", - 4: "UNLOCKED", - 5: "LOCKED", + VehicleStatus_Door_EnabledState_name = map[int32]string{ + 0: "ENABLED_STATE_UNSPECIFIED", + 1: "ENABLED_STATE_UNKNOWN", + 2: "ENABLED_STATE_ERROR", + 3: "ENABLED_STATE_NOT_AVAILABLE", + 4: "ENABLED", + 5: "DISABLED", } - VehicleStatus_Door_LockState_value = map[string]int32{ - "LOCK_STATE_UNSPECIFIED": 0, - "LOCK_STATE_UNKNOWN": 1, - "LOCK_STATE_ERROR": 2, - "LOCK_STATE_NOT_AVAILABLE": 3, - "UNLOCKED": 4, - "LOCKED": 5, + VehicleStatus_Door_EnabledState_value = map[string]int32{ + "ENABLED_STATE_UNSPECIFIED": 0, + "ENABLED_STATE_UNKNOWN": 1, + "ENABLED_STATE_ERROR": 2, + "ENABLED_STATE_NOT_AVAILABLE": 3, + "ENABLED": 4, + "DISABLED": 5, } ) -func (x VehicleStatus_Door_LockState) Enum() *VehicleStatus_Door_LockState { - p := new(VehicleStatus_Door_LockState) +func (x VehicleStatus_Door_EnabledState) Enum() *VehicleStatus_Door_EnabledState { + p := new(VehicleStatus_Door_EnabledState) *p = x return p } -func (x VehicleStatus_Door_LockState) String() string { +func (x VehicleStatus_Door_EnabledState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (VehicleStatus_Door_LockState) Descriptor() protoreflect.EnumDescriptor { +func (VehicleStatus_Door_EnabledState) Descriptor() protoreflect.EnumDescriptor { return file_wayplatform_rfms_v5_vehicle_status_proto_enumTypes[1].Descriptor() } -func (VehicleStatus_Door_LockState) Type() protoreflect.EnumType { +func (VehicleStatus_Door_EnabledState) Type() protoreflect.EnumType { return &file_wayplatform_rfms_v5_vehicle_status_proto_enumTypes[1] } -func (x VehicleStatus_Door_LockState) Number() protoreflect.EnumNumber { +func (x VehicleStatus_Door_EnabledState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Open state of a door. +// Open state of a bus door. type VehicleStatus_Door_OpenState int32 const ( @@ -182,57 +182,57 @@ func (x VehicleStatus_Door_OpenState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Enabled state of a door. -type VehicleStatus_Door_EnabledState int32 +// Lock state of a bus door. +type VehicleStatus_Door_LockState int32 const ( - VehicleStatus_Door_ENABLED_STATE_UNSPECIFIED VehicleStatus_Door_EnabledState = 0 - VehicleStatus_Door_ENABLED_STATE_UNKNOWN VehicleStatus_Door_EnabledState = 1 - VehicleStatus_Door_ENABLED_STATE_ERROR VehicleStatus_Door_EnabledState = 2 - VehicleStatus_Door_ENABLED_STATE_NOT_AVAILABLE VehicleStatus_Door_EnabledState = 3 - VehicleStatus_Door_ENABLED VehicleStatus_Door_EnabledState = 4 - VehicleStatus_Door_DISABLED VehicleStatus_Door_EnabledState = 5 + VehicleStatus_Door_LOCK_STATE_UNSPECIFIED VehicleStatus_Door_LockState = 0 + VehicleStatus_Door_LOCK_STATE_UNKNOWN VehicleStatus_Door_LockState = 1 + VehicleStatus_Door_LOCK_STATE_ERROR VehicleStatus_Door_LockState = 2 + VehicleStatus_Door_LOCK_STATE_NOT_AVAILABLE VehicleStatus_Door_LockState = 3 + VehicleStatus_Door_UNLOCKED VehicleStatus_Door_LockState = 4 + VehicleStatus_Door_LOCKED VehicleStatus_Door_LockState = 5 ) -// Enum value maps for VehicleStatus_Door_EnabledState. +// Enum value maps for VehicleStatus_Door_LockState. var ( - VehicleStatus_Door_EnabledState_name = map[int32]string{ - 0: "ENABLED_STATE_UNSPECIFIED", - 1: "ENABLED_STATE_UNKNOWN", - 2: "ENABLED_STATE_ERROR", - 3: "ENABLED_STATE_NOT_AVAILABLE", - 4: "ENABLED", - 5: "DISABLED", + VehicleStatus_Door_LockState_name = map[int32]string{ + 0: "LOCK_STATE_UNSPECIFIED", + 1: "LOCK_STATE_UNKNOWN", + 2: "LOCK_STATE_ERROR", + 3: "LOCK_STATE_NOT_AVAILABLE", + 4: "UNLOCKED", + 5: "LOCKED", } - VehicleStatus_Door_EnabledState_value = map[string]int32{ - "ENABLED_STATE_UNSPECIFIED": 0, - "ENABLED_STATE_UNKNOWN": 1, - "ENABLED_STATE_ERROR": 2, - "ENABLED_STATE_NOT_AVAILABLE": 3, - "ENABLED": 4, - "DISABLED": 5, + VehicleStatus_Door_LockState_value = map[string]int32{ + "LOCK_STATE_UNSPECIFIED": 0, + "LOCK_STATE_UNKNOWN": 1, + "LOCK_STATE_ERROR": 2, + "LOCK_STATE_NOT_AVAILABLE": 3, + "UNLOCKED": 4, + "LOCKED": 5, } ) -func (x VehicleStatus_Door_EnabledState) Enum() *VehicleStatus_Door_EnabledState { - p := new(VehicleStatus_Door_EnabledState) +func (x VehicleStatus_Door_LockState) Enum() *VehicleStatus_Door_LockState { + p := new(VehicleStatus_Door_LockState) *p = x return p } -func (x VehicleStatus_Door_EnabledState) String() string { +func (x VehicleStatus_Door_LockState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (VehicleStatus_Door_EnabledState) Descriptor() protoreflect.EnumDescriptor { +func (VehicleStatus_Door_LockState) Descriptor() protoreflect.EnumDescriptor { return file_wayplatform_rfms_v5_vehicle_status_proto_enumTypes[3].Descriptor() } -func (VehicleStatus_Door_EnabledState) Type() protoreflect.EnumType { +func (VehicleStatus_Door_LockState) Type() protoreflect.EnumType { return &file_wayplatform_rfms_v5_vehicle_status_proto_enumTypes[3] } -func (x VehicleStatus_Door_EnabledState) Number() protoreflect.EnumNumber { +func (x VehicleStatus_Door_LockState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } @@ -241,12 +241,12 @@ type VehicleStatus struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Vin *string `protobuf:"bytes,1,opt,name=vin"` xxx_hidden_Trigger *Trigger `protobuf:"bytes,2,opt,name=trigger"` - xxx_hidden_CreateTime int64 `protobuf:"varint,3,opt,name=create_time,json=createTime"` - xxx_hidden_ReceiveTime int64 `protobuf:"varint,4,opt,name=receive_time,json=receiveTime"` - xxx_hidden_TotalVehicleDistanceM int64 `protobuf:"varint,5,opt,name=total_vehicle_distance_m,json=totalVehicleDistanceM"` + xxx_hidden_CreateTime *string `protobuf:"bytes,3,opt,name=create_time,json=createTime"` + xxx_hidden_ReceiveTime *string `protobuf:"bytes,4,opt,name=receive_time,json=receiveTime"` + xxx_hidden_HrTotalVehicleDistanceM float64 `protobuf:"fixed64,5,opt,name=hr_total_vehicle_distance_m,json=hrTotalVehicleDistanceM"` xxx_hidden_TotalEngineHours float64 `protobuf:"fixed64,6,opt,name=total_engine_hours,json=totalEngineHours"` xxx_hidden_TotalElectricMotorHours float64 `protobuf:"fixed64,7,opt,name=total_electric_motor_hours,json=totalElectricMotorHours"` - xxx_hidden_Driver1 *DriverIdentification `protobuf:"bytes,8,opt,name=driver1"` + xxx_hidden_Driver1Id *DriverIdentification `protobuf:"bytes,8,opt,name=driver1_id,json=driver1Id"` xxx_hidden_GrossCombinationVehicleWeightKg float64 `protobuf:"fixed64,9,opt,name=gross_combination_vehicle_weight_kg,json=grossCombinationVehicleWeightKg"` xxx_hidden_EngineTotalFuelUsedMl float64 `protobuf:"fixed64,10,opt,name=engine_total_fuel_used_ml,json=engineTotalFuelUsedMl"` xxx_hidden_TotalFuelUsedGaseousKg float64 `protobuf:"fixed64,11,opt,name=total_fuel_used_gaseous_kg,json=totalFuelUsedGaseousKg"` @@ -255,9 +255,9 @@ type VehicleStatus struct { xxx_hidden_StateOfDoors VehicleStatus_StateOfDoors `protobuf:"varint,14,opt,name=state_of_doors,json=stateOfDoors,enum=wayplatform.rfms.v5.VehicleStatus_StateOfDoors"` xxx_hidden_UnknownStateOfDoors *string `protobuf:"bytes,15,opt,name=unknown_state_of_doors,json=unknownStateOfDoors"` xxx_hidden_Doors *[]*VehicleStatus_Door `protobuf:"bytes,16,rep,name=doors"` - xxx_hidden_AccumulatedData *AccumulatedData `protobuf:"bytes,17,opt,name=accumulated_data,json=accumulatedData"` xxx_hidden_SnapshotData *SnapshotData `protobuf:"bytes,18,opt,name=snapshot_data,json=snapshotData"` xxx_hidden_UptimeData *UptimeData `protobuf:"bytes,19,opt,name=uptime_data,json=uptimeData"` + xxx_hidden_AccumulatedData *AccumulatedData `protobuf:"bytes,17,opt,name=accumulated_data,json=accumulatedData"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -306,23 +306,29 @@ func (x *VehicleStatus) GetTrigger() *Trigger { return nil } -func (x *VehicleStatus) GetCreateTime() int64 { +func (x *VehicleStatus) GetCreateTime() string { if x != nil { - return x.xxx_hidden_CreateTime + if x.xxx_hidden_CreateTime != nil { + return *x.xxx_hidden_CreateTime + } + return "" } - return 0 + return "" } -func (x *VehicleStatus) GetReceiveTime() int64 { +func (x *VehicleStatus) GetReceiveTime() string { if x != nil { - return x.xxx_hidden_ReceiveTime + if x.xxx_hidden_ReceiveTime != nil { + return *x.xxx_hidden_ReceiveTime + } + return "" } - return 0 + return "" } -func (x *VehicleStatus) GetTotalVehicleDistanceM() int64 { +func (x *VehicleStatus) GetHrTotalVehicleDistanceM() float64 { if x != nil { - return x.xxx_hidden_TotalVehicleDistanceM + return x.xxx_hidden_HrTotalVehicleDistanceM } return 0 } @@ -341,9 +347,9 @@ func (x *VehicleStatus) GetTotalElectricMotorHours() float64 { return 0 } -func (x *VehicleStatus) GetDriver1() *DriverIdentification { +func (x *VehicleStatus) GetDriver1Id() *DriverIdentification { if x != nil { - return x.xxx_hidden_Driver1 + return x.xxx_hidden_Driver1Id } return nil } @@ -411,23 +417,23 @@ func (x *VehicleStatus) GetDoors() []*VehicleStatus_Door { return nil } -func (x *VehicleStatus) GetAccumulatedData() *AccumulatedData { +func (x *VehicleStatus) GetSnapshotData() *SnapshotData { if x != nil { - return x.xxx_hidden_AccumulatedData + return x.xxx_hidden_SnapshotData } return nil } -func (x *VehicleStatus) GetSnapshotData() *SnapshotData { +func (x *VehicleStatus) GetUptimeData() *UptimeData { if x != nil { - return x.xxx_hidden_SnapshotData + return x.xxx_hidden_UptimeData } return nil } -func (x *VehicleStatus) GetUptimeData() *UptimeData { +func (x *VehicleStatus) GetAccumulatedData() *AccumulatedData { if x != nil { - return x.xxx_hidden_UptimeData + return x.xxx_hidden_AccumulatedData } return nil } @@ -441,18 +447,18 @@ func (x *VehicleStatus) SetTrigger(v *Trigger) { x.xxx_hidden_Trigger = v } -func (x *VehicleStatus) SetCreateTime(v int64) { - x.xxx_hidden_CreateTime = v +func (x *VehicleStatus) SetCreateTime(v string) { + x.xxx_hidden_CreateTime = &v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 19) } -func (x *VehicleStatus) SetReceiveTime(v int64) { - x.xxx_hidden_ReceiveTime = v +func (x *VehicleStatus) SetReceiveTime(v string) { + x.xxx_hidden_ReceiveTime = &v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 19) } -func (x *VehicleStatus) SetTotalVehicleDistanceM(v int64) { - x.xxx_hidden_TotalVehicleDistanceM = v +func (x *VehicleStatus) SetHrTotalVehicleDistanceM(v float64) { + x.xxx_hidden_HrTotalVehicleDistanceM = v protoimpl.X.SetPresent(&(x.XXX_presence[0]), 4, 19) } @@ -466,8 +472,8 @@ func (x *VehicleStatus) SetTotalElectricMotorHours(v float64) { protoimpl.X.SetPresent(&(x.XXX_presence[0]), 6, 19) } -func (x *VehicleStatus) SetDriver1(v *DriverIdentification) { - x.xxx_hidden_Driver1 = v +func (x *VehicleStatus) SetDriver1Id(v *DriverIdentification) { + x.xxx_hidden_Driver1Id = v } func (x *VehicleStatus) SetGrossCombinationVehicleWeightKg(v float64) { @@ -509,10 +515,6 @@ func (x *VehicleStatus) SetDoors(v []*VehicleStatus_Door) { x.xxx_hidden_Doors = &v } -func (x *VehicleStatus) SetAccumulatedData(v *AccumulatedData) { - x.xxx_hidden_AccumulatedData = v -} - func (x *VehicleStatus) SetSnapshotData(v *SnapshotData) { x.xxx_hidden_SnapshotData = v } @@ -521,6 +523,10 @@ func (x *VehicleStatus) SetUptimeData(v *UptimeData) { x.xxx_hidden_UptimeData = v } +func (x *VehicleStatus) SetAccumulatedData(v *AccumulatedData) { + x.xxx_hidden_AccumulatedData = v +} + func (x *VehicleStatus) HasVin() bool { if x == nil { return false @@ -549,7 +555,7 @@ func (x *VehicleStatus) HasReceiveTime() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 3) } -func (x *VehicleStatus) HasTotalVehicleDistanceM() bool { +func (x *VehicleStatus) HasHrTotalVehicleDistanceM() bool { if x == nil { return false } @@ -570,11 +576,11 @@ func (x *VehicleStatus) HasTotalElectricMotorHours() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 6) } -func (x *VehicleStatus) HasDriver1() bool { +func (x *VehicleStatus) HasDriver1Id() bool { if x == nil { return false } - return x.xxx_hidden_Driver1 != nil + return x.xxx_hidden_Driver1Id != nil } func (x *VehicleStatus) HasGrossCombinationVehicleWeightKg() bool { @@ -626,25 +632,25 @@ func (x *VehicleStatus) HasUnknownStateOfDoors() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 14) } -func (x *VehicleStatus) HasAccumulatedData() bool { +func (x *VehicleStatus) HasSnapshotData() bool { if x == nil { return false } - return x.xxx_hidden_AccumulatedData != nil + return x.xxx_hidden_SnapshotData != nil } -func (x *VehicleStatus) HasSnapshotData() bool { +func (x *VehicleStatus) HasUptimeData() bool { if x == nil { return false } - return x.xxx_hidden_SnapshotData != nil + return x.xxx_hidden_UptimeData != nil } -func (x *VehicleStatus) HasUptimeData() bool { +func (x *VehicleStatus) HasAccumulatedData() bool { if x == nil { return false } - return x.xxx_hidden_UptimeData != nil + return x.xxx_hidden_AccumulatedData != nil } func (x *VehicleStatus) ClearVin() { @@ -658,17 +664,17 @@ func (x *VehicleStatus) ClearTrigger() { func (x *VehicleStatus) ClearCreateTime() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 2) - x.xxx_hidden_CreateTime = 0 + x.xxx_hidden_CreateTime = nil } func (x *VehicleStatus) ClearReceiveTime() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 3) - x.xxx_hidden_ReceiveTime = 0 + x.xxx_hidden_ReceiveTime = nil } -func (x *VehicleStatus) ClearTotalVehicleDistanceM() { +func (x *VehicleStatus) ClearHrTotalVehicleDistanceM() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 4) - x.xxx_hidden_TotalVehicleDistanceM = 0 + x.xxx_hidden_HrTotalVehicleDistanceM = 0 } func (x *VehicleStatus) ClearTotalEngineHours() { @@ -681,8 +687,8 @@ func (x *VehicleStatus) ClearTotalElectricMotorHours() { x.xxx_hidden_TotalElectricMotorHours = 0 } -func (x *VehicleStatus) ClearDriver1() { - x.xxx_hidden_Driver1 = nil +func (x *VehicleStatus) ClearDriver1Id() { + x.xxx_hidden_Driver1Id = nil } func (x *VehicleStatus) ClearGrossCombinationVehicleWeightKg() { @@ -720,10 +726,6 @@ func (x *VehicleStatus) ClearUnknownStateOfDoors() { x.xxx_hidden_UnknownStateOfDoors = nil } -func (x *VehicleStatus) ClearAccumulatedData() { - x.xxx_hidden_AccumulatedData = nil -} - func (x *VehicleStatus) ClearSnapshotData() { x.xxx_hidden_SnapshotData = nil } @@ -732,6 +734,10 @@ func (x *VehicleStatus) ClearUptimeData() { x.xxx_hidden_UptimeData = nil } +func (x *VehicleStatus) ClearAccumulatedData() { + x.xxx_hidden_AccumulatedData = nil +} + type VehicleStatus_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -739,37 +745,59 @@ type VehicleStatus_builder struct { Vin *string // The type of trigger that caused the vehicle status to be sent. Trigger *Trigger - // The date and time the vehicle status was created. (Unix microseconds) - CreateTime *int64 - // The date and time the vehicle status was received. (Unix microseconds) - ReceiveTime *int64 + // The date and time the vehicle status was created. (RFC 3339) + CreateTime *string + // The date and time the vehicle status was received. (RFC 3339) + ReceiveTime *string // The total distance travelled by the vehicle during its operation in meters. // Should not be reset during lifetime of the vehicle. - TotalVehicleDistanceM *int64 + HrTotalVehicleDistanceM *float64 // The total hours of operation for the vehicle combustion engine during its lifetime. // Should not be reset during lifetime of the engine. TotalEngineHours *float64 - // The total hours of operation for the vehicle electric motor during its lifetime. - // Should not be reset during lifetime of the electric motor. + // The total hours the electric motor is ready for propulsion + // (i.e. crank mode) during its lifetime. + // + // At least one of total_engine_hours or total_electric_motor_hours is mandatory. + // + // Should not be reset during lifetime of the motor. TotalElectricMotorHours *float64 // The driver identification of driver 1. - Driver1 *DriverIdentification + Driver1Id *DriverIdentification // The gross combination vehicle weight in kg. GrossCombinationVehicleWeightKg *float64 - // The total fuel the vehicle has used during its lifetime in liters. + // The total fuel the vehicle has used during its lifetime in ml. + // + // At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg + // or total_electric_energy_used_wh is mandatory. + // // Should not be reset during lifetime of the vehicle. EngineTotalFuelUsedMl *float64 - // The total fuel the vehicle has used during its lifetime in liters. + // Total fuel consumed in kg. + // + // (trip drive fuel + trip PTO governor moving fuel + trip PTO governor non-moving fuel + // - trip idle fuel) over the life of the engine. + // + // At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg + // or total_electric_energy_used_wh is mandatory. + // // Should not be reset during lifetime of the vehicle. TotalFuelUsedGaseousKg *float64 - // The total electric energy the vehicle has used during its lifetime in Wh. + // Total electric energy consumed by the vehicle, excluding when plugged in (vehicle coupler) + // for charging, (incl. motor, PTO, cooling, etc.) during its lifetime, in Wh. + // + // Recuperation is subtracted from the value. + // + // At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg + // or total_electric_energy_used_wh is mandatory. + // // Should not be reset during lifetime of the vehicle. TotalElectricEnergyUsedWh *float64 - // The total electric energy recuperated by the vehicle during its lifetime in Wh. + // Total electric energy recuperated by the vehicle during its lifetime, in watt hours. // Should not be reset during lifetime of the vehicle. TotalElectricEnergyRecuperatedWh *float64 // The status of the doors of the vehicle. - // Should not be reset during lifetime of the vehicle. + // Bus specific parameter. StateOfDoors *VehicleStatus_StateOfDoors // The unknown state of the doors of the vehicle. // Provided when the state of the doors is STATE_OF_DOORS_UNKNOWN. @@ -777,12 +805,12 @@ type VehicleStatus_builder struct { // Individual status for each door. // Bus specific parameter. Doors []*VehicleStatus_Door - // Accumulated data for the vehicle. - AccumulatedData *AccumulatedData // Snapshot data for the vehicle. SnapshotData *SnapshotData // Uptime data for the vehicle. UptimeData *UptimeData + // Accumulated data for the vehicle. + AccumulatedData *AccumulatedData } func (b0 VehicleStatus_builder) Build() *VehicleStatus { @@ -796,15 +824,15 @@ func (b0 VehicleStatus_builder) Build() *VehicleStatus { x.xxx_hidden_Trigger = b.Trigger if b.CreateTime != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 19) - x.xxx_hidden_CreateTime = *b.CreateTime + x.xxx_hidden_CreateTime = b.CreateTime } if b.ReceiveTime != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 19) - x.xxx_hidden_ReceiveTime = *b.ReceiveTime + x.xxx_hidden_ReceiveTime = b.ReceiveTime } - if b.TotalVehicleDistanceM != nil { + if b.HrTotalVehicleDistanceM != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 4, 19) - x.xxx_hidden_TotalVehicleDistanceM = *b.TotalVehicleDistanceM + x.xxx_hidden_HrTotalVehicleDistanceM = *b.HrTotalVehicleDistanceM } if b.TotalEngineHours != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 5, 19) @@ -814,7 +842,7 @@ func (b0 VehicleStatus_builder) Build() *VehicleStatus { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 6, 19) x.xxx_hidden_TotalElectricMotorHours = *b.TotalElectricMotorHours } - x.xxx_hidden_Driver1 = b.Driver1 + x.xxx_hidden_Driver1Id = b.Driver1Id if b.GrossCombinationVehicleWeightKg != nil { protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 19) x.xxx_hidden_GrossCombinationVehicleWeightKg = *b.GrossCombinationVehicleWeightKg @@ -844,13 +872,13 @@ func (b0 VehicleStatus_builder) Build() *VehicleStatus { x.xxx_hidden_UnknownStateOfDoors = b.UnknownStateOfDoors } x.xxx_hidden_Doors = &b.Doors - x.xxx_hidden_AccumulatedData = b.AccumulatedData x.xxx_hidden_SnapshotData = b.SnapshotData x.xxx_hidden_UptimeData = b.UptimeData + x.xxx_hidden_AccumulatedData = b.AccumulatedData return m0 } -// Information about a door on a bus. +// Information about a door. type VehicleStatus_Door struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Number int32 `protobuf:"varint,1,opt,name=number"` @@ -1077,21 +1105,21 @@ func (x *VehicleStatus_Door) ClearUnknownLockState() { type VehicleStatus_Door_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - // The number of the door. + // The number of the bus door. Number *int32 - // The enabled state of the door. + // The enabled state of the bus door. EnabledState *VehicleStatus_Door_EnabledState - // The unknown enabled state of the door. + // The unknown enabled state of the bus door. // Provided when the enabled state is ENABLED_STATE_UNKNOWN. UnknownEnabledState *string - // The open state of the door. + // The open state of the bus door. OpenState *VehicleStatus_Door_OpenState - // The unknown open state of the door. + // The unknown open state of the bus door. // Provided when the open state is OPEN_STATE_UNKNOWN. UnknownOpenState *string - // The lock state of the door. + // The lock state of the bus door. LockState *VehicleStatus_Door_LockState - // The unknown lock state of the door. + // The unknown lock state of the bus door. // Provided when the lock state is LOCK_STATE_UNKNOWN. UnknownLockState *string } @@ -1135,17 +1163,18 @@ var File_wayplatform_rfms_v5_vehicle_status_proto protoreflect.FileDescriptor const file_wayplatform_rfms_v5_vehicle_status_proto_rawDesc = "" + "\n" + - "(wayplatform/rfms/v5/vehicle_status.proto\x12\x13wayplatform.rfms.v5\x1a*wayplatform/rfms/v5/accumulated_data.proto\x1a/wayplatform/rfms/v5/driver_identification.proto\x1a'wayplatform/rfms/v5/snapshot_data.proto\x1a!wayplatform/rfms/v5/trigger.proto\x1a%wayplatform/rfms/v5/uptime_data.proto\"\xae\x11\n" + + "(wayplatform/rfms/v5/vehicle_status.proto\x12\x13wayplatform.rfms.v5\x1a*wayplatform/rfms/v5/accumulated_data.proto\x1a/wayplatform/rfms/v5/driver_identification.proto\x1a'wayplatform/rfms/v5/snapshot_data.proto\x1a!wayplatform/rfms/v5/trigger.proto\x1a%wayplatform/rfms/v5/uptime_data.proto\"\xb8\x11\n" + "\rVehicleStatus\x12\x10\n" + "\x03vin\x18\x01 \x01(\tR\x03vin\x126\n" + "\atrigger\x18\x02 \x01(\v2\x1c.wayplatform.rfms.v5.TriggerR\atrigger\x12\x1f\n" + - "\vcreate_time\x18\x03 \x01(\x03R\n" + + "\vcreate_time\x18\x03 \x01(\tR\n" + "createTime\x12!\n" + - "\freceive_time\x18\x04 \x01(\x03R\vreceiveTime\x127\n" + - "\x18total_vehicle_distance_m\x18\x05 \x01(\x03R\x15totalVehicleDistanceM\x12,\n" + + "\freceive_time\x18\x04 \x01(\tR\vreceiveTime\x12<\n" + + "\x1bhr_total_vehicle_distance_m\x18\x05 \x01(\x01R\x17hrTotalVehicleDistanceM\x12,\n" + "\x12total_engine_hours\x18\x06 \x01(\x01R\x10totalEngineHours\x12;\n" + - "\x1atotal_electric_motor_hours\x18\a \x01(\x01R\x17totalElectricMotorHours\x12C\n" + - "\adriver1\x18\b \x01(\v2).wayplatform.rfms.v5.DriverIdentificationR\adriver1\x12L\n" + + "\x1atotal_electric_motor_hours\x18\a \x01(\x01R\x17totalElectricMotorHours\x12H\n" + + "\n" + + "driver1_id\x18\b \x01(\v2).wayplatform.rfms.v5.DriverIdentificationR\tdriver1Id\x12L\n" + "#gross_combination_vehicle_weight_kg\x18\t \x01(\x01R\x1fgrossCombinationVehicleWeightKg\x128\n" + "\x19engine_total_fuel_used_ml\x18\n" + " \x01(\x01R\x15engineTotalFuelUsedMl\x12:\n" + @@ -1154,11 +1183,11 @@ const file_wayplatform_rfms_v5_vehicle_status_proto_rawDesc = "" + "$total_electric_energy_recuperated_wh\x18\r \x01(\x01R totalElectricEnergyRecuperatedWh\x12U\n" + "\x0estate_of_doors\x18\x0e \x01(\x0e2/.wayplatform.rfms.v5.VehicleStatus.StateOfDoorsR\fstateOfDoors\x123\n" + "\x16unknown_state_of_doors\x18\x0f \x01(\tR\x13unknownStateOfDoors\x12=\n" + - "\x05doors\x18\x10 \x03(\v2'.wayplatform.rfms.v5.VehicleStatus.DoorR\x05doors\x12O\n" + - "\x10accumulated_data\x18\x11 \x01(\v2$.wayplatform.rfms.v5.AccumulatedDataR\x0faccumulatedData\x12F\n" + + "\x05doors\x18\x10 \x03(\v2'.wayplatform.rfms.v5.VehicleStatus.DoorR\x05doors\x12F\n" + "\rsnapshot_data\x18\x12 \x01(\v2!.wayplatform.rfms.v5.SnapshotDataR\fsnapshotData\x12@\n" + "\vuptime_data\x18\x13 \x01(\v2\x1f.wayplatform.rfms.v5.UptimeDataR\n" + - "uptimeData\x1a\xe9\x06\n" + + "uptimeData\x12O\n" + + "\x10accumulated_data\x18\x11 \x01(\v2$.wayplatform.rfms.v5.AccumulatedDataR\x0faccumulatedData\x1a\xe9\x06\n" + "\x04Door\x12\x16\n" + "\x06number\x18\x01 \x01(\x05R\x06number\x12Y\n" + "\renabled_state\x18\x02 \x01(\x0e24.wayplatform.rfms.v5.VehicleStatus.Door.EnabledStateR\fenabledState\x122\n" + @@ -1168,15 +1197,14 @@ const file_wayplatform_rfms_v5_vehicle_status_proto_rawDesc = "" + "\x12unknown_open_state\x18\x05 \x01(\tR\x10unknownOpenState\x12P\n" + "\n" + "lock_state\x18\x06 \x01(\x0e21.wayplatform.rfms.v5.VehicleStatus.Door.LockStateR\tlockState\x12,\n" + - "\x12unknown_lock_state\x18\a \x01(\tR\x10unknownLockState\"\x8d\x01\n" + - "\tLockState\x12\x1a\n" + - "\x16LOCK_STATE_UNSPECIFIED\x10\x00\x12\x16\n" + - "\x12LOCK_STATE_UNKNOWN\x10\x01\x12\x14\n" + - "\x10LOCK_STATE_ERROR\x10\x02\x12\x1c\n" + - "\x18LOCK_STATE_NOT_AVAILABLE\x10\x03\x12\f\n" + - "\bUNLOCKED\x10\x04\x12\n" + - "\n" + - "\x06LOCKED\x10\x05\"\x89\x01\n" + + "\x12unknown_lock_state\x18\a \x01(\tR\x10unknownLockState\"\x9d\x01\n" + + "\fEnabledState\x12\x1d\n" + + "\x19ENABLED_STATE_UNSPECIFIED\x10\x00\x12\x19\n" + + "\x15ENABLED_STATE_UNKNOWN\x10\x01\x12\x17\n" + + "\x13ENABLED_STATE_ERROR\x10\x02\x12\x1f\n" + + "\x1bENABLED_STATE_NOT_AVAILABLE\x10\x03\x12\v\n" + + "\aENABLED\x10\x04\x12\f\n" + + "\bDISABLED\x10\x05\"\x89\x01\n" + "\tOpenState\x12\x1a\n" + "\x16OPEN_STATE_UNSPECIFIED\x10\x00\x12\x16\n" + "\x12OPEN_STATE_UNKNOWN\x10\x01\x12\x14\n" + @@ -1184,14 +1212,15 @@ const file_wayplatform_rfms_v5_vehicle_status_proto_rawDesc = "" + "\x18OPEN_STATE_NOT_AVAILABLE\x10\x03\x12\n" + "\n" + "\x06CLOSED\x10\x04\x12\b\n" + - "\x04OPEN\x10\x05\"\x9d\x01\n" + - "\fEnabledState\x12\x1d\n" + - "\x19ENABLED_STATE_UNSPECIFIED\x10\x00\x12\x19\n" + - "\x15ENABLED_STATE_UNKNOWN\x10\x01\x12\x17\n" + - "\x13ENABLED_STATE_ERROR\x10\x02\x12\x1f\n" + - "\x1bENABLED_STATE_NOT_AVAILABLE\x10\x03\x12\v\n" + - "\aENABLED\x10\x04\x12\f\n" + - "\bDISABLED\x10\x05\"\xbd\x01\n" + + "\x04OPEN\x10\x05\"\x8d\x01\n" + + "\tLockState\x12\x1a\n" + + "\x16LOCK_STATE_UNSPECIFIED\x10\x00\x12\x16\n" + + "\x12LOCK_STATE_UNKNOWN\x10\x01\x12\x14\n" + + "\x10LOCK_STATE_ERROR\x10\x02\x12\x1c\n" + + "\x18LOCK_STATE_NOT_AVAILABLE\x10\x03\x12\f\n" + + "\bUNLOCKED\x10\x04\x12\n" + + "\n" + + "\x06LOCKED\x10\x05\"\xbd\x01\n" + "\fStateOfDoors\x12\x1e\n" + "\x1aSTATE_OF_DOORS_UNSPECIFIED\x10\x00\x12\x1a\n" + "\x16STATE_OF_DOORS_UNKNOWN\x10\x01\x12\x18\n" + @@ -1205,28 +1234,28 @@ var file_wayplatform_rfms_v5_vehicle_status_proto_enumTypes = make([]protoimpl.E var file_wayplatform_rfms_v5_vehicle_status_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_wayplatform_rfms_v5_vehicle_status_proto_goTypes = []any{ (VehicleStatus_StateOfDoors)(0), // 0: wayplatform.rfms.v5.VehicleStatus.StateOfDoors - (VehicleStatus_Door_LockState)(0), // 1: wayplatform.rfms.v5.VehicleStatus.Door.LockState + (VehicleStatus_Door_EnabledState)(0), // 1: wayplatform.rfms.v5.VehicleStatus.Door.EnabledState (VehicleStatus_Door_OpenState)(0), // 2: wayplatform.rfms.v5.VehicleStatus.Door.OpenState - (VehicleStatus_Door_EnabledState)(0), // 3: wayplatform.rfms.v5.VehicleStatus.Door.EnabledState + (VehicleStatus_Door_LockState)(0), // 3: wayplatform.rfms.v5.VehicleStatus.Door.LockState (*VehicleStatus)(nil), // 4: wayplatform.rfms.v5.VehicleStatus (*VehicleStatus_Door)(nil), // 5: wayplatform.rfms.v5.VehicleStatus.Door (*Trigger)(nil), // 6: wayplatform.rfms.v5.Trigger (*DriverIdentification)(nil), // 7: wayplatform.rfms.v5.DriverIdentification - (*AccumulatedData)(nil), // 8: wayplatform.rfms.v5.AccumulatedData - (*SnapshotData)(nil), // 9: wayplatform.rfms.v5.SnapshotData - (*UptimeData)(nil), // 10: wayplatform.rfms.v5.UptimeData + (*SnapshotData)(nil), // 8: wayplatform.rfms.v5.SnapshotData + (*UptimeData)(nil), // 9: wayplatform.rfms.v5.UptimeData + (*AccumulatedData)(nil), // 10: wayplatform.rfms.v5.AccumulatedData } var file_wayplatform_rfms_v5_vehicle_status_proto_depIdxs = []int32{ 6, // 0: wayplatform.rfms.v5.VehicleStatus.trigger:type_name -> wayplatform.rfms.v5.Trigger - 7, // 1: wayplatform.rfms.v5.VehicleStatus.driver1:type_name -> wayplatform.rfms.v5.DriverIdentification + 7, // 1: wayplatform.rfms.v5.VehicleStatus.driver1_id:type_name -> wayplatform.rfms.v5.DriverIdentification 0, // 2: wayplatform.rfms.v5.VehicleStatus.state_of_doors:type_name -> wayplatform.rfms.v5.VehicleStatus.StateOfDoors 5, // 3: wayplatform.rfms.v5.VehicleStatus.doors:type_name -> wayplatform.rfms.v5.VehicleStatus.Door - 8, // 4: wayplatform.rfms.v5.VehicleStatus.accumulated_data:type_name -> wayplatform.rfms.v5.AccumulatedData - 9, // 5: wayplatform.rfms.v5.VehicleStatus.snapshot_data:type_name -> wayplatform.rfms.v5.SnapshotData - 10, // 6: wayplatform.rfms.v5.VehicleStatus.uptime_data:type_name -> wayplatform.rfms.v5.UptimeData - 3, // 7: wayplatform.rfms.v5.VehicleStatus.Door.enabled_state:type_name -> wayplatform.rfms.v5.VehicleStatus.Door.EnabledState + 8, // 4: wayplatform.rfms.v5.VehicleStatus.snapshot_data:type_name -> wayplatform.rfms.v5.SnapshotData + 9, // 5: wayplatform.rfms.v5.VehicleStatus.uptime_data:type_name -> wayplatform.rfms.v5.UptimeData + 10, // 6: wayplatform.rfms.v5.VehicleStatus.accumulated_data:type_name -> wayplatform.rfms.v5.AccumulatedData + 1, // 7: wayplatform.rfms.v5.VehicleStatus.Door.enabled_state:type_name -> wayplatform.rfms.v5.VehicleStatus.Door.EnabledState 2, // 8: wayplatform.rfms.v5.VehicleStatus.Door.open_state:type_name -> wayplatform.rfms.v5.VehicleStatus.Door.OpenState - 1, // 9: wayplatform.rfms.v5.VehicleStatus.Door.lock_state:type_name -> wayplatform.rfms.v5.VehicleStatus.Door.LockState + 3, // 9: wayplatform.rfms.v5.VehicleStatus.Door.lock_state:type_name -> wayplatform.rfms.v5.VehicleStatus.Door.LockState 10, // [10:10] is the sub-list for method output_type 10, // [10:10] is the sub-list for method input_type 10, // [10:10] is the sub-list for extension type_name diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.AccumulatedData.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.AccumulatedData.pubsub.proto index f0b7c80..26e64a7 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.AccumulatedData.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.AccumulatedData.pubsub.proto @@ -18,26 +18,26 @@ message AccumulatedData { repeated LabelClass pto_active_class = 16; optional int32 brake_pedal_speed_over_zero_count = 17; optional double brake_pedal_speed_over_zero_distance_m = 18; - repeated FromToClass acceleration_pedal_position_class = 19; - repeated FromToClass brake_pedal_position_class = 20; - repeated FromToClass acceleration_class = 21; - repeated FromToClass high_acceleration_class = 22; - repeated FromToClass retarder_torque_class = 23; + repeated FromToClass acceleration_pedal_position_class_percent = 19; + repeated FromToClass brake_pedal_position_class_percent = 20; + repeated FromToClass acceleration_class_mps2 = 21; + repeated FromToClass high_acceleration_class_mps2 = 22; + repeated FromToClass retarder_torque_class_percent = 23; repeated LabelClass driving_without_torque_class = 24; - repeated FromToClassCombustion engine_torque_class = 25; - repeated FromToClassElectrical electric_motor_torque_class = 26; - repeated FromToClassCombustion engine_torque_at_current_speed_class = 27; - repeated FromToClassElectrical electric_motor_torque_at_current_speed_class = 28; - repeated FromToClass vehicle_speed_class = 29; - repeated FromToClass engine_speed_class = 30; - repeated FromToClass acceleration_during_brake_class = 31; + repeated FromToClassCombustion engine_torque_class_percent = 25; + repeated FromToClassElectrical electric_motor_torque_class_percent = 26; + repeated FromToClassCombustion engine_torque_at_current_speed_class_percent = 27; + repeated FromToClassElectrical electric_motor_torque_at_current_speed_class_percent = 28; + repeated FromToClass vehicle_speed_class_kmh = 29; + repeated FromToClass engine_speed_class_rpm = 30; + repeated FromToClass acceleration_during_brake_class_mps2 = 31; repeated LabelClass selected_gear_class = 32; repeated LabelClass current_gear_class = 33; optional int32 chairlift_count = 34; optional int32 stop_request_count = 35; optional int32 kneeling_count = 36; optional int32 pram_request_count = 37; - repeated FromToClassElectrical electric_power_recuperation_class = 38; + repeated FromToClassElectrical electric_power_recuperation_class_kw = 38; message LabelClass { optional string label = 1; optional double duration_s = 2; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.GnssPosition.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.GnssPosition.pubsub.proto index 5c34447..e6611a5 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.GnssPosition.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.GnssPosition.pubsub.proto @@ -1,6 +1,6 @@ syntax = "proto2"; message GnssPosition { - optional int64 time = 1; + optional string time = 1; optional double latitude = 2; optional double longitude = 3; optional double heading_deg = 4; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.SnapshotData.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.SnapshotData.pubsub.proto index e731424..befca0e 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.SnapshotData.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.SnapshotData.pubsub.proto @@ -5,7 +5,7 @@ message SnapshotData { optional double tachograph_speed_kmh = 3; optional double engine_speed_rpm = 4; optional double electric_motor_speed_rpm = 5; - optional int32 ignition_state = 6; + optional int32 ignition = 6; optional int32 fuel_type = 7; optional string unknown_fuel_type = 8; optional double fuel_level1_percent = 9; @@ -13,7 +13,7 @@ message SnapshotData { optional double catalyst_fuel_level_percent = 11; optional int32 driver1_working_state = 12; optional string unknown_driver1_working_state = 13; - optional Inline_wayplatform_rfms_v5_DriverIdentification driver2 = 14; + optional Inline_wayplatform_rfms_v5_DriverIdentification driver2_id = 14; optional int32 driver2_working_state = 15; optional string unknown_driver2_working_state = 16; optional double ambient_air_temperature_c = 17; @@ -23,9 +23,9 @@ message SnapshotData { optional int32 battery_pack_charging_connection_state = 21; optional int32 battery_pack_charging_device = 22; optional double battery_pack_charging_power_w = 23; - optional int64 battery_pack_estimated_charging_completed_time = 24; + optional string battery_pack_estimated_charging_completed_time = 24; optional EstimatedDistanceToEmpty estimated_distance_to_empty = 25; - repeated Inline_wayplatform_rfms_v5_Axle axles = 26; + repeated Inline_wayplatform_rfms_v5_VehicleAxle vehicle_axles = 26; repeated Inline_wayplatform_rfms_v5_Trailer trailers = 27; message EstimatedDistanceToEmpty { optional double total_m = 1; @@ -34,7 +34,7 @@ message SnapshotData { optional double battery_pack_m = 4; } message Inline_wayplatform_rfms_v5_GnssPosition { - optional int64 time = 1; + optional string time = 1; optional double latitude = 2; optional double longitude = 3; optional double heading_deg = 4; @@ -67,7 +67,7 @@ message SnapshotData { optional string driver_id = 2; } } - message Inline_wayplatform_rfms_v5_Axle { + message Inline_wayplatform_rfms_v5_VehicleAxle { optional int32 position = 1; optional double load_kg = 2; repeated Tire tires = 3; @@ -83,6 +83,7 @@ message SnapshotData { optional string customer_name = 4; optional int32 type = 5; optional double axle_load_sum_kg = 6; + repeated Axle axles = 7; message Axle { optional int32 position = 1; optional double load_kg = 2; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.Trailer.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.Trailer.pubsub.proto index 817c38a..1a753b4 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.Trailer.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.Trailer.pubsub.proto @@ -6,6 +6,7 @@ message Trailer { optional string customer_name = 4; optional int32 type = 5; optional double axle_load_sum_kg = 6; + repeated Axle axles = 7; message Axle { optional int32 position = 1; optional double load_kg = 2; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.Trigger.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.Trigger.pubsub.proto index 1ed7197..585dc2a 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.Trigger.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.Trigger.pubsub.proto @@ -4,8 +4,8 @@ message Trigger { optional string unknown_type = 2; optional int32 context = 3; optional string unknown_context = 4; - repeated string additional_info = 5; - optional Inline_wayplatform_rfms_v5_DriverIdentification driver_info = 6; + repeated string trigger_info = 5; + optional Inline_wayplatform_rfms_v5_DriverIdentification driver_id = 6; optional string pto_id = 7; optional Inline_wayplatform_rfms_v5_TellTale tell_tale_info = 8; optional ChargingStatusInfo charging_status_info = 9; @@ -202,5 +202,16 @@ message Trigger { CONTEXT_UNSPECIFIED = 0; CONTEXT_UNKNOWN = 1; RFMS = 2; + VOLVO_TRUCKS = 3; + SCANIA = 4; + DAIMLER = 5; + IVECO = 6; + DAF = 7; + MAN = 8; + RENAULT_TRUCKS = 9; + VDL = 10; + VOLVO_BUSES = 11; + IVECO_BUS = 12; + IRISBUS = 13; } } diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.Vehicle.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.Vehicle.pubsub.proto index 1693961..fa3ed1d 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.Vehicle.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.Vehicle.pubsub.proto @@ -10,7 +10,7 @@ message Vehicle { optional string unknown_type = 8; optional string model = 9; repeated int32 possible_fuel_types = 10; - repeated int32 unknown_possible_fuel_types = 11; + repeated string unknown_possible_fuel_types = 11; optional int32 emission_level = 12; optional string unknown_emission_level = 13; optional string tell_tale_code = 14; @@ -27,32 +27,12 @@ message Vehicle { optional string unknown_body_type = 25; repeated int32 door_configuration = 26; optional bool has_ramp_or_lift = 27; + repeated string authorized_paths = 28; message Inline_wayplatform_rfms_v5_Date { optional int32 day = 1; optional int32 month = 2; optional int32 year = 3; } - enum Brand { - BRAND_UNSPECIFIED = 0; - BRAND_UNKNOWN = 1; - VOLVO_TRUCKS = 2; - SCANIA = 3; - DAIMLER = 4; - IVECO = 5; - DAF = 6; - MAN = 7; - RENAULT_TRUCKS = 8; - VDL = 9; - VOLVO_BUSES = 10; - IVECO_BUS = 11; - HEULIEZ = 12; - VWTB = 13; - KENWORTH = 14; - PETERBILT = 15; - MACK_TRUCKS = 16; - INTERNATIONAL = 17; - IC_BUS = 18; - } enum Type { TYPE_UNSPECIFIED = 0; TYPE_UNKNOWN = 1; @@ -60,54 +40,6 @@ message Vehicle { BUS = 3; VAN = 4; } - enum EmissionLevel { - EMISSION_LEVEL_UNSPECIFIED = 0; - EMISSION_LEVEL_UNKNOWN = 1; - EURO_III = 2; - EURO_III_EEV = 3; - EURO_IV = 4; - EURO_V = 5; - EURO_VI = 6; - EURO_VII = 7; - EURO_STAGE_III = 8; - EURO_STAGE_IV = 9; - EURO_STAGE_V = 10; - EPA_2004 = 11; - EPA_2007 = 12; - EPA_2010 = 13; - EPA_2015_NOX10 = 14; - EPA_2015_NOX05 = 15; - EPA_2015_NOX02 = 16; - EPA_TIER_2 = 17; - EPA_TIER_3 = 18; - EPA_TIER_4_2008 = 19; - EPA_TIER_4_2013 = 20; - PROCONVE_P5 = 21; - PROCONVE_P6 = 22; - PROCONVE_P7 = 23; - PROCONVE_MARI = 24; - } - enum TachographType { - TACHOGRAPH_TYPE_UNSPECIFIED = 0; - TACHOGRAPH_TYPE_UNKNOWN = 1; - MTCO = 2; - DTCO = 3; - DTCO_G1 = 4; - DTCO_G2 = 5; - TSU = 6; - NONE = 7; - STONERIDGE_SMART = 8; - STONERIDGE_SMART2 = 9; - } - enum GearboxType { - GEARBOX_TYPE_UNSPECIFIED = 0; - GEARBOX_TYPE_UNKNOWN = 1; - MANUAL = 2; - AUTOMATIC = 3; - SEMI_AUTOMATIC = 4; - NO_GEAR = 5; - AMT = 6; - } enum BodyType { BODY_TYPE_UNSPECIFIED = 0; BODY_TYPE_UNKNOWN = 1; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.Axle.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.VehicleAxle.pubsub.proto similarity index 90% rename from proto/gen/pubsub/wayplatform.rfms.v5.Axle.pubsub.proto rename to proto/gen/pubsub/wayplatform.rfms.v5.VehicleAxle.pubsub.proto index 8329c09..8a6bb68 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.Axle.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.VehicleAxle.pubsub.proto @@ -1,5 +1,5 @@ syntax = "proto2"; -message Axle { +message VehicleAxle { optional int32 position = 1; optional double load_kg = 2; repeated Tire tires = 3; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.VehiclePosition.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.VehiclePosition.pubsub.proto index d7b0b60..2d178d3 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.VehiclePosition.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.VehiclePosition.pubsub.proto @@ -2,8 +2,8 @@ syntax = "proto2"; message VehiclePosition { optional string vin = 1; optional Inline_wayplatform_rfms_v5_Trigger trigger = 2; - optional int64 create_time = 3; - optional int64 receive_time = 4; + optional string create_time = 3; + optional string receive_time = 4; optional Inline_wayplatform_rfms_v5_GnssPosition gnss_position = 5; optional double wheel_based_speed_kmh = 6; optional double tachograph_speed_kmh = 7; @@ -129,8 +129,8 @@ message VehiclePosition { optional string unknown_type = 2; optional int32 context = 3; optional string unknown_context = 4; - repeated string additional_info = 5; - optional Inline_wayplatform_rfms_v5_DriverIdentification driver_info = 6; + repeated string trigger_info = 5; + optional Inline_wayplatform_rfms_v5_DriverIdentification driver_id = 6; optional string pto_id = 7; optional Inline_wayplatform_rfms_v5_TellTale tell_tale_info = 8; optional ChargingStatusInfo charging_status_info = 9; @@ -210,10 +210,21 @@ message VehiclePosition { CONTEXT_UNSPECIFIED = 0; CONTEXT_UNKNOWN = 1; RFMS = 2; + VOLVO_TRUCKS = 3; + SCANIA = 4; + DAIMLER = 5; + IVECO = 6; + DAF = 7; + MAN = 8; + RENAULT_TRUCKS = 9; + VDL = 10; + VOLVO_BUSES = 11; + IVECO_BUS = 12; + IRISBUS = 13; } } message Inline_wayplatform_rfms_v5_GnssPosition { - optional int64 time = 1; + optional string time = 1; optional double latitude = 2; optional double longitude = 3; optional double heading_deg = 4; diff --git a/proto/gen/pubsub/wayplatform.rfms.v5.VehicleStatus.pubsub.proto b/proto/gen/pubsub/wayplatform.rfms.v5.VehicleStatus.pubsub.proto index dbd18bb..e41d0f3 100644 --- a/proto/gen/pubsub/wayplatform.rfms.v5.VehicleStatus.pubsub.proto +++ b/proto/gen/pubsub/wayplatform.rfms.v5.VehicleStatus.pubsub.proto @@ -2,12 +2,12 @@ syntax = "proto2"; message VehicleStatus { optional string vin = 1; optional Inline_wayplatform_rfms_v5_Trigger trigger = 2; - optional int64 create_time = 3; - optional int64 receive_time = 4; - optional int64 total_vehicle_distance_m = 5; + optional string create_time = 3; + optional string receive_time = 4; + optional double hr_total_vehicle_distance_m = 5; optional double total_engine_hours = 6; optional double total_electric_motor_hours = 7; - optional Inline_wayplatform_rfms_v5_DriverIdentification driver1 = 8; + optional Inline_wayplatform_rfms_v5_DriverIdentification driver1_id = 8; optional double gross_combination_vehicle_weight_kg = 9; optional double engine_total_fuel_used_ml = 10; optional double total_fuel_used_gaseous_kg = 11; @@ -16,9 +16,9 @@ message VehicleStatus { optional int32 state_of_doors = 14; optional string unknown_state_of_doors = 15; repeated Door doors = 16; - optional Inline_wayplatform_rfms_v5_AccumulatedData accumulated_data = 17; optional Inline_wayplatform_rfms_v5_SnapshotData snapshot_data = 18; optional Inline_wayplatform_rfms_v5_UptimeData uptime_data = 19; + optional Inline_wayplatform_rfms_v5_AccumulatedData accumulated_data = 17; message Door { optional int32 number = 1; optional int32 enabled_state = 2; @@ -27,13 +27,13 @@ message VehicleStatus { optional string unknown_open_state = 5; optional int32 lock_state = 6; optional string unknown_lock_state = 7; - enum LockState { - LOCK_STATE_UNSPECIFIED = 0; - LOCK_STATE_UNKNOWN = 1; - LOCK_STATE_ERROR = 2; - LOCK_STATE_NOT_AVAILABLE = 3; - UNLOCKED = 4; - LOCKED = 5; + enum EnabledState { + ENABLED_STATE_UNSPECIFIED = 0; + ENABLED_STATE_UNKNOWN = 1; + ENABLED_STATE_ERROR = 2; + ENABLED_STATE_NOT_AVAILABLE = 3; + ENABLED = 4; + DISABLED = 5; } enum OpenState { OPEN_STATE_UNSPECIFIED = 0; @@ -43,13 +43,13 @@ message VehicleStatus { CLOSED = 4; OPEN = 5; } - enum EnabledState { - ENABLED_STATE_UNSPECIFIED = 0; - ENABLED_STATE_UNKNOWN = 1; - ENABLED_STATE_ERROR = 2; - ENABLED_STATE_NOT_AVAILABLE = 3; - ENABLED = 4; - DISABLED = 5; + enum LockState { + LOCK_STATE_UNSPECIFIED = 0; + LOCK_STATE_UNKNOWN = 1; + LOCK_STATE_ERROR = 2; + LOCK_STATE_NOT_AVAILABLE = 3; + UNLOCKED = 4; + LOCKED = 5; } } message Inline_wayplatform_rfms_v5_DriverIdentification { @@ -174,8 +174,8 @@ message VehicleStatus { optional string unknown_type = 2; optional int32 context = 3; optional string unknown_context = 4; - repeated string additional_info = 5; - optional Inline_wayplatform_rfms_v5_DriverIdentification driver_info = 6; + repeated string trigger_info = 5; + optional Inline_wayplatform_rfms_v5_DriverIdentification driver_id = 6; optional string pto_id = 7; optional Inline_wayplatform_rfms_v5_TellTale tell_tale_info = 8; optional ChargingStatusInfo charging_status_info = 9; @@ -255,89 +255,28 @@ message VehicleStatus { CONTEXT_UNSPECIFIED = 0; CONTEXT_UNKNOWN = 1; RFMS = 2; - } - } - message Inline_wayplatform_rfms_v5_AccumulatedData { - optional double wheel_based_speed_over_zero_duration_s = 1; - optional double wheel_based_speed_over_zero_fuel_ml = 2; - optional double wheel_based_speed_over_zero_fuel_gaseous_kg = 3; - optional double wheel_based_speed_over_zero_electric_energy_consumption_wh = 4; - optional double wheel_based_speed_zero_duration_s = 5; - optional double wheel_based_speed_zero_distance_m = 6; - optional double wheel_based_speed_zero_fuel_ml = 7; - optional double wheel_based_speed_zero_fuel_gaseous_kg = 8; - optional double wheel_based_speed_zero_electric_energy_consumption_wh = 9; - optional double cruise_control_active_distance_m = 10; - optional double cruise_control_active_duration_s = 11; - optional double cruise_control_active_fuel_consumption_ml = 12; - optional double cruise_control_active_fuel_consumption_gaseous_kg = 13; - optional double cruise_control_active_electric_energy_consumption_wh = 14; - optional double aux_electric_energy_consumption_wh = 15; - repeated LabelClass pto_active_class = 16; - optional int32 brake_pedal_speed_over_zero_count = 17; - optional double brake_pedal_speed_over_zero_distance_m = 18; - repeated FromToClass acceleration_pedal_position_class = 19; - repeated FromToClass brake_pedal_position_class = 20; - repeated FromToClass acceleration_class = 21; - repeated FromToClass high_acceleration_class = 22; - repeated FromToClass retarder_torque_class = 23; - repeated LabelClass driving_without_torque_class = 24; - repeated FromToClassCombustion engine_torque_class = 25; - repeated FromToClassElectrical electric_motor_torque_class = 26; - repeated FromToClassCombustion engine_torque_at_current_speed_class = 27; - repeated FromToClassElectrical electric_motor_torque_at_current_speed_class = 28; - repeated FromToClass vehicle_speed_class = 29; - repeated FromToClass engine_speed_class = 30; - repeated FromToClass acceleration_during_brake_class = 31; - repeated LabelClass selected_gear_class = 32; - repeated LabelClass current_gear_class = 33; - optional int32 chairlift_count = 34; - optional int32 stop_request_count = 35; - optional int32 kneeling_count = 36; - optional int32 pram_request_count = 37; - repeated FromToClassElectrical electric_power_recuperation_class = 38; - message LabelClass { - optional string label = 1; - optional double duration_s = 2; - optional double distance_m = 3; - optional double fuel_consumption_ml = 4; - optional double fuel_consumption_gaseous_kg = 5; - optional double electric_energy_consumption_wh = 6; - } - message FromToClass { - optional double from = 1; - optional double to = 2; - optional double duration_s = 3; - optional double distance_m = 4; - optional double fuel_consumption_ml = 5; - optional double fuel_consumption_gaseous_kg = 6; - optional double electric_energy_consumption_wh = 7; - } - message FromToClassCombustion { - optional double from = 1; - optional double to = 2; - optional double duration_s = 3; - optional double distance_m = 4; - optional double fuel_consumption_ml = 5; - optional double fuel_consumption_gaseous_kg = 6; - } - message FromToClassElectrical { - optional double from = 1; - optional double to = 2; - optional double duration_s = 3; - optional double distance_m = 4; - optional double electric_energy_consumption_wh = 5; + VOLVO_TRUCKS = 3; + SCANIA = 4; + DAIMLER = 5; + IVECO = 6; + DAF = 7; + MAN = 8; + RENAULT_TRUCKS = 9; + VDL = 10; + VOLVO_BUSES = 11; + IVECO_BUS = 12; + IRISBUS = 13; } } message Inline_wayplatform_rfms_v5_GnssPosition { - optional int64 time = 1; + optional string time = 1; optional double latitude = 2; optional double longitude = 3; optional double heading_deg = 4; optional double altitude_m = 5; optional double speed_kmh = 6; } - message Inline_wayplatform_rfms_v5_Axle { + message Inline_wayplatform_rfms_v5_VehicleAxle { optional int32 position = 1; optional double load_kg = 2; repeated Tire tires = 3; @@ -353,6 +292,7 @@ message VehicleStatus { optional string customer_name = 4; optional int32 type = 5; optional double axle_load_sum_kg = 6; + repeated Axle axles = 7; message Axle { optional int32 position = 1; optional double load_kg = 2; @@ -377,7 +317,7 @@ message VehicleStatus { optional double tachograph_speed_kmh = 3; optional double engine_speed_rpm = 4; optional double electric_motor_speed_rpm = 5; - optional int32 ignition_state = 6; + optional int32 ignition = 6; optional int32 fuel_type = 7; optional string unknown_fuel_type = 8; optional double fuel_level1_percent = 9; @@ -385,7 +325,7 @@ message VehicleStatus { optional double catalyst_fuel_level_percent = 11; optional int32 driver1_working_state = 12; optional string unknown_driver1_working_state = 13; - optional Inline_wayplatform_rfms_v5_DriverIdentification driver2 = 14; + optional Inline_wayplatform_rfms_v5_DriverIdentification driver2_id = 14; optional int32 driver2_working_state = 15; optional string unknown_driver2_working_state = 16; optional double ambient_air_temperature_c = 17; @@ -395,9 +335,9 @@ message VehicleStatus { optional int32 battery_pack_charging_connection_state = 21; optional int32 battery_pack_charging_device = 22; optional double battery_pack_charging_power_w = 23; - optional int64 battery_pack_estimated_charging_completed_time = 24; + optional string battery_pack_estimated_charging_completed_time = 24; optional EstimatedDistanceToEmpty estimated_distance_to_empty = 25; - repeated Inline_wayplatform_rfms_v5_Axle axles = 26; + repeated Inline_wayplatform_rfms_v5_VehicleAxle vehicle_axles = 26; repeated Inline_wayplatform_rfms_v5_Trailer trailers = 27; message EstimatedDistanceToEmpty { optional double total_m = 1; @@ -434,6 +374,78 @@ message VehicleStatus { } } } + message Inline_wayplatform_rfms_v5_AccumulatedData { + optional double wheel_based_speed_over_zero_duration_s = 1; + optional double wheel_based_speed_over_zero_fuel_ml = 2; + optional double wheel_based_speed_over_zero_fuel_gaseous_kg = 3; + optional double wheel_based_speed_over_zero_electric_energy_consumption_wh = 4; + optional double wheel_based_speed_zero_duration_s = 5; + optional double wheel_based_speed_zero_distance_m = 6; + optional double wheel_based_speed_zero_fuel_ml = 7; + optional double wheel_based_speed_zero_fuel_gaseous_kg = 8; + optional double wheel_based_speed_zero_electric_energy_consumption_wh = 9; + optional double cruise_control_active_distance_m = 10; + optional double cruise_control_active_duration_s = 11; + optional double cruise_control_active_fuel_consumption_ml = 12; + optional double cruise_control_active_fuel_consumption_gaseous_kg = 13; + optional double cruise_control_active_electric_energy_consumption_wh = 14; + optional double aux_electric_energy_consumption_wh = 15; + repeated LabelClass pto_active_class = 16; + optional int32 brake_pedal_speed_over_zero_count = 17; + optional double brake_pedal_speed_over_zero_distance_m = 18; + repeated FromToClass acceleration_pedal_position_class_percent = 19; + repeated FromToClass brake_pedal_position_class_percent = 20; + repeated FromToClass acceleration_class_mps2 = 21; + repeated FromToClass high_acceleration_class_mps2 = 22; + repeated FromToClass retarder_torque_class_percent = 23; + repeated LabelClass driving_without_torque_class = 24; + repeated FromToClassCombustion engine_torque_class_percent = 25; + repeated FromToClassElectrical electric_motor_torque_class_percent = 26; + repeated FromToClassCombustion engine_torque_at_current_speed_class_percent = 27; + repeated FromToClassElectrical electric_motor_torque_at_current_speed_class_percent = 28; + repeated FromToClass vehicle_speed_class_kmh = 29; + repeated FromToClass engine_speed_class_rpm = 30; + repeated FromToClass acceleration_during_brake_class_mps2 = 31; + repeated LabelClass selected_gear_class = 32; + repeated LabelClass current_gear_class = 33; + optional int32 chairlift_count = 34; + optional int32 stop_request_count = 35; + optional int32 kneeling_count = 36; + optional int32 pram_request_count = 37; + repeated FromToClassElectrical electric_power_recuperation_class_kw = 38; + message LabelClass { + optional string label = 1; + optional double duration_s = 2; + optional double distance_m = 3; + optional double fuel_consumption_ml = 4; + optional double fuel_consumption_gaseous_kg = 5; + optional double electric_energy_consumption_wh = 6; + } + message FromToClass { + optional double from = 1; + optional double to = 2; + optional double duration_s = 3; + optional double distance_m = 4; + optional double fuel_consumption_ml = 5; + optional double fuel_consumption_gaseous_kg = 6; + optional double electric_energy_consumption_wh = 7; + } + message FromToClassCombustion { + optional double from = 1; + optional double to = 2; + optional double duration_s = 3; + optional double distance_m = 4; + optional double fuel_consumption_ml = 5; + optional double fuel_consumption_gaseous_kg = 6; + } + message FromToClassElectrical { + optional double from = 1; + optional double to = 2; + optional double duration_s = 3; + optional double distance_m = 4; + optional double electric_energy_consumption_wh = 5; + } + } enum StateOfDoors { STATE_OF_DOORS_UNSPECIFIED = 0; STATE_OF_DOORS_UNKNOWN = 1; diff --git a/proto/wayplatform/rfms/v5/accumulated_data.proto b/proto/wayplatform/rfms/v5/accumulated_data.proto index d3d3d39..49c1a92 100644 --- a/proto/wayplatform/rfms/v5/accumulated_data.proto +++ b/proto/wayplatform/rfms/v5/accumulated_data.proto @@ -66,79 +66,231 @@ message AccumulatedData { // The total distance the vehicle has driven where the brake pedal has been used. (m) double brake_pedal_speed_over_zero_distance_m = 18; - repeated FromToClass acceleration_pedal_position_class = 19; - - repeated FromToClass brake_pedal_position_class = 20; - - repeated FromToClass acceleration_class = 21; - - repeated FromToClass high_acceleration_class = 22; - - repeated FromToClass retarder_torque_class = 23; - + // Histogram of stats for acceleration pedal position intervals. (percent) + // + // Default: + // Min interval: [0%, 20%) + // Max interval: [80%, 100%] + // Bucket count: 5 + // Bucket width: 20% + repeated FromToClass acceleration_pedal_position_class_percent = 19; + + // Histogram of stats for brake pedal position intervals. (percent) + // + // Default: + // Min interval: [0%, 20%) + // Max interval: [80%, 100%] + // Bucket count: 5 + // Bucket width: 20% + repeated FromToClass brake_pedal_position_class_percent = 20; + + // Histogram of stats for acceleration intervals. (m/s2) + // + // Default: + // Min interval: (..., -1.1) + // Mid interval: (-0.1, 0.1) + // Max interval: [1.1, ...) + // Bucket count: 11 + // Bucket width: 0.2 + repeated FromToClass acceleration_class_mps2 = 21; + + // Histogram of stats for acceleration intervals. (m/s2) + // + // Default: + // Min interval: (..., -1.1) + // Mid interval: (-0.1, 0.1) + // Max interval: [1.1, ...) + // Bucket count: 11 + // Bucket width: 0.2 + repeated FromToClass high_acceleration_class_mps2 = 22; + + // Histogram of stats by retarder usage. (%) + // + // Default: + // Min interval: (0%, 20%) + // Max interval: [80%, 100%] + // Bucket count: 5 + // Bucket width: 20% + repeated FromToClass retarder_torque_class_percent = 23; + + // Histogram of stats when driving without torque, with gear (clutch is engaged). + // + // Labels: + // DRIVING_WITHOUT_TORQUE repeated LabelClass driving_without_torque_class = 24; - repeated FromToClassCombustion engine_torque_class = 25; - - repeated FromToClassElectrical electric_motor_torque_class = 26; - - repeated FromToClassCombustion engine_torque_at_current_speed_class = 27; - - repeated FromToClassElectrical electric_motor_torque_at_current_speed_class = 28; - - repeated FromToClass vehicle_speed_class = 29; - - repeated FromToClass engine_speed_class = 30; - - repeated FromToClass acceleration_during_brake_class = 31; - + // Histogram of stats by EEC1 value (Actual Engine-Percent Torque). (%) + // + // Default: + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + repeated FromToClassCombustion engine_torque_class_percent = 25; + + // Histogram of stats by electric engine torque (Actual Engine-Percent Torque). (%) + // + // Default: + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + repeated FromToClassElectrical electric_motor_torque_class_percent = 26; + + // Histogram of stats based on EEC2 value (Engine Percent Load At Current Speed). (%) + // + // Default: + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + repeated FromToClassCombustion engine_torque_at_current_speed_class_percent = 27; + + // Histogram of stats based on electric motor EEC2 value. (Engine Percent Load At Current Speed). + // + // Default: + // Min interval: [0%, 10%) + // Max interval: [90%, 100%] + // Bucket count: 10 + // Bucket width: 10% + repeated FromToClassElectrical electric_motor_torque_at_current_speed_class_percent = 28; + + // Histogram of stats based on vehicle speed. (km/h) + // Engine on (RPM>0 or electric motor in crank mode). + // + // Default: + // Min interval: [0km/h, 4km/h) + // Max interval: [156km/h, ...) + // Bucket count: 40 + // Bucket width: 4km/h + repeated FromToClass vehicle_speed_class_kmh = 29; + + // Histogram of stats based on the RPM of the combustion engine. (rpm) + // Only mandatory if the vehicle has a combustion engine for propulsion. + // + // Default: + // Min interval: [0rpm, 400pm) + // Max interval: [3600rpm, ...) + // Bucket count: 10 + // Bucket width: 400rpm + repeated FromToClass engine_speed_class_rpm = 30; + + // Histogram of stats based on the acceleration during braking. (m/s2) + // + // Default: + // Min interval: [..., -1.1m/s2) + // Mid interval: (-0.1m/s2, 0.1m/s2) + // Max interval: [1.1m/s2, ...) + // Bucket count: 13 + // Bucket width: 0.2m/s2 + repeated FromToClass acceleration_during_brake_class_mps2 = 31; + + // Histogram of stats based on the currently selected gear. + // On class per gear. Park is also a gear. + // Gear is formatted according to SPN 524 and supplied as a decimal value. + // + // Example: + // 0 = Neutral + // 1 = 1st gear + // 2 = 2nd gear + // + // This is mainly used for buses. repeated LabelClass selected_gear_class = 32; + // Histogram of stats based on the currently used gear. + // On class per gear. Park is also a gear. + // Gear is formatted according to SPN 524 and supplied as a decimal value. + // + // Example: + // 0 = Neutral + // 1 = 1st gear + // 2 = 2nd gear + // + // This is mainly used for buses. repeated LabelClass current_gear_class = 33; + // The total number of times the chairlift has been outside the bus. + // This is mainly used for buses. int32 chairlift_count = 34; + // The total number of stop requests made. + // This is mainly used for buses. int32 stop_request_count = 35; + // The total number of times the bus has knelt. + // This is mainly used for buses. int32 kneeling_count = 36; + // The total number of pram requests made. + // This is mainly used for buses. int32 pram_request_count = 37; - repeated FromToClassElectrical electric_power_recuperation_class = 38; + // Classes refer to the recuperated electric power. (kw) + // Minimum 11 classes. + // [0, 100) [100, 200) [200, 300) ... [900, 1000), [1000, ...] + repeated FromToClassElectrical electric_power_recuperation_class_kw = 38; + // A histogram bucket of operational stats with a label. message LabelClass { + // The label of the class. string label = 1; + // The duration of the class. (s) double duration_s = 2; + // The distance of the class. (m) double distance_m = 3; + // The liquid fuel consumption of the class. (ml) double fuel_consumption_ml = 4; + // The gaseous fuel consumption of the class. (kg) double fuel_consumption_gaseous_kg = 5; + // The electric energy consumption of the class. (wh) double electric_energy_consumption_wh = 6; } + // A histogram bucket of operational stats with an interval [from,to). message FromToClass { + // The from value of the bucket interval. (inclusive) double from = 1; + // The to value of the bucket interval. (exclusive) double to = 2; + // The total duration of the bucket. (s) double duration_s = 3; + // The total distance of the bucket. (m) double distance_m = 4; + // The total liquid fuel consumption of the bucket. (ml) double fuel_consumption_ml = 5; + // The total gaseous fuel consumption of the bucket. (kg) double fuel_consumption_gaseous_kg = 6; + // The total electric energy consumption of the bucket. (wh) double electric_energy_consumption_wh = 7; } + // A histogram bucket of combustion engine operational stats with an interval [from,to). message FromToClassCombustion { + // The from value of the bucket interval. (inclusive) double from = 1; + // The to value of the bucket interval. (exclusive) double to = 2; + // The total duration of the bucket. (s) double duration_s = 3; + // The total distance of the bucket. (m) double distance_m = 4; + // The total liquid fuel consumption of the bucket. (ml) double fuel_consumption_ml = 5; + // The total gaseous fuel consumption of the bucket. (kg) double fuel_consumption_gaseous_kg = 6; } + // A histogram bucket of electrical engine operational stats with an interval [from,to). message FromToClassElectrical { + // The from value of the bucket interval. (inclusive) double from = 1; + // The to value of the bucket interval. (exclusive) double to = 2; + // The total duration of the bucket. (s) double duration_s = 3; + // The total distance of the bucket. (m) double distance_m = 4; + // The total electric energy consumption of the bucket. (wh) double electric_energy_consumption_wh = 5; } } diff --git a/proto/wayplatform/rfms/v5/brand.proto b/proto/wayplatform/rfms/v5/brand.proto new file mode 100644 index 0000000..ef8a889 --- /dev/null +++ b/proto/wayplatform/rfms/v5/brand.proto @@ -0,0 +1,45 @@ +edition = "2023"; + +package wayplatform.rfms.v5; + +// A vehicle brand. +enum Brand { + // Default value. This value is not used. + BRAND_UNSPECIFIED = 0; + // Unknown brand. + BRAND_UNKNOWN = 1; + // VOLVO TRUCKS. + VOLVO_TRUCKS = 2; + // SCANIA. + SCANIA = 3; + // DAIMLER. + DAIMLER = 4; + // IVECO. + IVECO = 5; + // DAF. + DAF = 6; + // MAN. + MAN = 7; + // RENAULT TRUCKS. + RENAULT_TRUCKS = 8; + // VDL. + VDL = 9; + // VOLVO BUSES. + VOLVO_BUSES = 10; + // IVECO BUS. + IVECO_BUS = 11; + // HEULIEZ. + HEULIEZ = 12; + // VWTB. + VWTB = 13; + // KENWORTH. + KENWORTH = 14; + // PETERBILT. + PETERBILT = 15; + // MACK TRUCKS. + MACK_TRUCKS = 16; + // INTERNATIONAL. + INTERNATIONAL = 17; + // IC BUS. + IC_BUS = 18; +} diff --git a/proto/wayplatform/rfms/v5/driver_identification.proto b/proto/wayplatform/rfms/v5/driver_identification.proto index ae94e7b..0b7d8b4 100644 --- a/proto/wayplatform/rfms/v5/driver_identification.proto +++ b/proto/wayplatform/rfms/v5/driver_identification.proto @@ -2,7 +2,7 @@ edition = "2023"; package wayplatform.rfms.v5; -// The identification of a driver. +// The identification of a driver or co-driver. message DriverIdentification { // The identification of a driver using the Tacho card. Tacho tacho = 1; diff --git a/proto/wayplatform/rfms/v5/emission_level.proto b/proto/wayplatform/rfms/v5/emission_level.proto new file mode 100644 index 0000000..c014ca3 --- /dev/null +++ b/proto/wayplatform/rfms/v5/emission_level.proto @@ -0,0 +1,40 @@ +edition = "2023"; + +package wayplatform.rfms.v5; + +// Well-known emission levels. +enum EmissionLevel { + // Default value. This value is not used. + EMISSION_LEVEL_UNSPECIFIED = 0; + // Unknown emission level. + EMISSION_LEVEL_UNKNOWN = 1; + // European Union, Heavy-Duty Truck and Bus Engines. + EURO_III = 2; + EURO_III_EEV = 3; + EURO_IV = 4; + EURO_V = 5; + EURO_VI = 6; + EURO_VII = 7; + // European Union, Nonroad Engines. + EURO_STAGE_III = 8; + EURO_STAGE_IV = 9; + EURO_STAGE_V = 10; + // United_States, Heavy-Duty Truck and Bus Engines. + EPA_2004 = 11; + EPA_2007 = 12; + EPA_2010 = 13; + EPA_2015_NOX10 = 14; + EPA_2015_NOX05 = 15; + EPA_2015_NOX02 = 16; + // United_States, Nonroad Engines. + EPA_TIER_2 = 17; + EPA_TIER_3 = 18; + EPA_TIER_4_2008 = 19; + EPA_TIER_4_2013 = 20; + // Brazil, Heavy-Duty Truck and Bus Engines. + PROCONVE_P5 = 21; + PROCONVE_P6 = 22; + PROCONVE_P7 = 23; + // Brazil, Nonroad Engines. + PROCONVE_MARI = 24; +} diff --git a/proto/wayplatform/rfms/v5/gearbox_type.proto b/proto/wayplatform/rfms/v5/gearbox_type.proto new file mode 100644 index 0000000..e932585 --- /dev/null +++ b/proto/wayplatform/rfms/v5/gearbox_type.proto @@ -0,0 +1,24 @@ +edition = "2023"; + +package wayplatform.rfms.v5; + +// Well-known gearbox types. +// +// This enum is not exhaustive. It identifies standard gearbox types, as well as +// commonly used gearbox types across OEM-specific implementations of rFMS APIs. +enum GearboxType { + // Default value. This value is not used. + GEARBOX_TYPE_UNSPECIFIED = 0; + // Unknown gearbox type. + GEARBOX_TYPE_UNKNOWN = 1; + // Manual. + MANUAL = 2; + // Automatic. + AUTOMATIC = 3; + // Semi-automatic. + SEMI_AUTOMATIC = 4; + // E.g. electrical. + NO_GEAR = 5; + // Automated manual transmission. (Scania) + AMT = 6; +} diff --git a/proto/wayplatform/rfms/v5/gnss_position.proto b/proto/wayplatform/rfms/v5/gnss_position.proto index 2d91225..1893280 100644 --- a/proto/wayplatform/rfms/v5/gnss_position.proto +++ b/proto/wayplatform/rfms/v5/gnss_position.proto @@ -4,8 +4,8 @@ package wayplatform.rfms.v5; // A GNSS position. message GnssPosition { - // The date and time the GNSS position was recorded. (Unix microseconds) - int64 time = 1; + // The time of the GNSS position data. (RFC 3339) + string time = 1; // The latitude of the vehicle. (WGS84 based) double latitude = 2; // The longitude of the vehicle. (WGS84 based) diff --git a/proto/wayplatform/rfms/v5/snapshot_data.proto b/proto/wayplatform/rfms/v5/snapshot_data.proto index 32106dd..8c48b6f 100644 --- a/proto/wayplatform/rfms/v5/snapshot_data.proto +++ b/proto/wayplatform/rfms/v5/snapshot_data.proto @@ -2,7 +2,6 @@ edition = "2023"; package wayplatform.rfms.v5; -import "wayplatform/rfms/v5/axle.proto"; import "wayplatform/rfms/v5/charging_connection_state.proto"; import "wayplatform/rfms/v5/charging_device.proto"; import "wayplatform/rfms/v5/charging_state.proto"; @@ -12,6 +11,7 @@ import "wayplatform/rfms/v5/fuel_type.proto"; import "wayplatform/rfms/v5/gnss_position.proto"; import "wayplatform/rfms/v5/ignition_state.proto"; import "wayplatform/rfms/v5/trailer.proto"; +import "wayplatform/rfms/v5/vehicle_axle.proto"; // Snapshot data for a vehicle. message SnapshotData { @@ -31,7 +31,7 @@ message SnapshotData { double electric_motor_speed_rpm = 5; // The ignition state of the vehicle. - IgnitionState ignition_state = 6; + IgnitionState ignition = 6; // The fuel type currently being utilized by the vehicle. FuelType fuel_type = 7; @@ -63,7 +63,7 @@ message SnapshotData { string unknown_driver1_working_state = 13; // The driver identification of driver 2. - DriverIdentification driver2 = 14; + DriverIdentification driver2_id = 14; // The driver working state of the vehicle. DriverWorkingState driver2_working_state = 15; @@ -100,18 +100,12 @@ message SnapshotData { // The battery pack charging power of the vehicle. (W) double battery_pack_charging_power_w = 23; - // The estimated time when charging has reached the target level. (Unix micros) - int64 battery_pack_estimated_charging_completed_time = 24; + // The estimated time when charging has reached the target level. (RFC 3339) + string battery_pack_estimated_charging_completed_time = 24; // The estimated distance to empty of the vehicle. EstimatedDistanceToEmpty estimated_distance_to_empty = 25; - // The axles of the vehicle. - repeated Axle axles = 26; - - // The trailers connected to the vehicle. - repeated Trailer trailers = 27; - // The estimated distance to empty of the vehicle. message EstimatedDistanceToEmpty { // The estimated distance to empty of the vehicle. (m) @@ -126,4 +120,10 @@ message SnapshotData { // The estimated distance to empty of the vehicle. (m) double battery_pack_m = 4; } + + // The axles of the vehicle. + repeated VehicleAxle vehicle_axles = 26; + + // The trailers connected to the vehicle. + repeated Trailer trailers = 27; } diff --git a/proto/wayplatform/rfms/v5/tachograph_type.proto b/proto/wayplatform/rfms/v5/tachograph_type.proto new file mode 100644 index 0000000..b72e6e6 --- /dev/null +++ b/proto/wayplatform/rfms/v5/tachograph_type.proto @@ -0,0 +1,30 @@ +edition = "2023"; + +package wayplatform.rfms.v5; + +// Well-known tachograph types. +// +// This enum is not exhaustive. It identifies commonly used tachograph types across +// OEM-specific implementations of rFMS APIs. +enum TachographType { + // Default value. This value is not used. + TACHOGRAPH_TYPE_UNSPECIFIED = 0; + // Unknown tachograph type. + TACHOGRAPH_TYPE_UNKNOWN = 1; + // Modular tachograph. + MTCO = 2; + // Digital tachograph, unknown generation. + DTCO = 3; + // Digital tachograph generation 1. + DTCO_G1 = 4; + // Digital tachograph generation 2. + DTCO_G2 = 5; + // Tachograph simulator. + TSU = 6; + // No tachograph in the vehicle. + NONE = 7; + // Stoneridge Smart. (Scania) + STONERIDGE_SMART = 8; + // Stoneridge Smart 2. (Scania) + STONERIDGE_SMART2 = 9; +} diff --git a/proto/wayplatform/rfms/v5/tell_tale.proto b/proto/wayplatform/rfms/v5/tell_tale.proto index c6cf7d4..ca8a939 100644 --- a/proto/wayplatform/rfms/v5/tell_tale.proto +++ b/proto/wayplatform/rfms/v5/tell_tale.proto @@ -7,18 +7,6 @@ message TellTale { // The type of tell tale. Type type = 1; - // The unknown tell tale type. Used when the type is TYPE_UNKNOWN. - string unknown_type = 2; - - // The OEM specific type. Used when the type is TYPE_OEM_SPECIFIC. - string oem_specific_type = 3; - - // The state of the tell tale. - State state = 4; - - // The unknown state. Used when the state is STATE_UNKNOWN. - string unknown_state = 5; - // The type of a tell tale. enum Type { // Default value. This value is unused. @@ -99,6 +87,18 @@ message TellTale { WATER_IN_FUEL_INDICATOR = 72; } + // The unknown tell tale type. Used when the type is TYPE_UNKNOWN. + string unknown_type = 2; + + // The OEM specific type. Used when the type is TYPE_OEM_SPECIFIC. + string oem_specific_type = 3; + + // The state of the tell tale. + State state = 4; + + // The unknown state. Used when the state is STATE_UNKNOWN. + string unknown_state = 5; + // The state of a tell tale. enum State { // Default value. This value is unused. diff --git a/proto/wayplatform/rfms/v5/trailer.proto b/proto/wayplatform/rfms/v5/trailer.proto index 7b3e4a0..edf40f9 100644 --- a/proto/wayplatform/rfms/v5/trailer.proto +++ b/proto/wayplatform/rfms/v5/trailer.proto @@ -24,10 +24,6 @@ message Trailer { // The trailer type. Type type = 5; - // The sum of the static vertical loads of the trailer axles. (kg) - // The load is sent in the EBS22 message of ISO 11992-2. - double axle_load_sum_kg = 6; - // The type of a trailer. enum Type { // Default value. This value is not used. @@ -64,6 +60,13 @@ message Trailer { TOWING_FULL_TRAILER = 10; } + // The sum of the static vertical loads of the trailer axles. (kg) + // The load is sent in the EBS22 message of ISO 11992-2. + double axle_load_sum_kg = 6; + + // The trailer axles. + repeated Axle axles = 7; + // A trailer axle. message Axle { // The position of the axle from 1 to 15, 1 being in the front diff --git a/proto/wayplatform/rfms/v5/trigger.proto b/proto/wayplatform/rfms/v5/trigger.proto index d6f3871..8dfd2c0 100644 --- a/proto/wayplatform/rfms/v5/trigger.proto +++ b/proto/wayplatform/rfms/v5/trigger.proto @@ -11,48 +11,6 @@ message Trigger { // Trigger type for context RFMS. Type type = 1; - // The unknown trigger type. Used when the type is TYPE_UNKNOWN. - string unknown_type = 2; - - // The context of the trigger. - Context context = 3; - - // The unknown context. Used when the context is CONTEXT_UNKNOWN. - string unknown_context = 4; - - // Additional OEM specific trigger info content. - // Can be used for both OEM specific and rFMS defined triggers. - // E.g. TRAILER_CONNECTED [id of trailer]. - repeated string additional_info = 5; - - // The driver identification. - // Provided when the trigger type is DRIVER_LOGIN, DRIVER_LOGOUT, DRIVER_1_WORKING_STATE_CHANGED or DRIVER_2_WORKING_STATE_CHANGED. - // For DRIVER_LOGIN it is the id of the driver that logged in. - // For DRIVER_LOGOUT it is the id of the driver that logged out. - // For DRIVER_1_WORKING_STATE_CHANGED it is the id of driver 1. - // For DRIVER_2_WORKING_STATE_CHANGED it is the id of driver 2. - DriverIdentification driver_info = 6; - - // The id of a power take off. - // Provided when the trigger type is PTO_ENABLED or PTO_DISABLED. - string pto_id = 7; - - // Additional tell tale information. - // Provided when the trigger type is TELL_TALE. - TellTale tell_tale_info = 8; - - // Additional charging status information. - // Provided when the trigger type is BATTERY_PACK_CHARGING_STATUS_CHANGE. - ChargingStatusInfo charging_status_info = 9; - - // Additional charging connection status information. - // Provided when the trigger type is BATTERY_PACK_CHARGING_CONNECTION_STATUS_CHANGE. - ChargingConnectionStatusInfo charging_connection_status_info = 10; - - // Additional alarm information. - // Provided when the trigger type is ALARM. - AlarmInfo alarm_info = 11; - // The type of trigger that caused the vehicle position to be sent. enum Type { // Default value. This value is not used. @@ -122,6 +80,48 @@ message Trigger { ALARM = 21; } + // The unknown trigger type. Used when the type is TYPE_UNKNOWN. + string unknown_type = 2; + + // The context of the trigger. + Context context = 3; + + // The unknown context. Used when the context is CONTEXT_UNKNOWN. + string unknown_context = 4; + + // Additional OEM specific trigger info content. + // Can be used for both OEM specific and rFMS defined triggers. + // E.g. TRAILER_CONNECTED [id of trailer]. + repeated string trigger_info = 5; + + // The driver identification. + // Provided when the trigger type is DRIVER_LOGIN, DRIVER_LOGOUT, DRIVER_1_WORKING_STATE_CHANGED or DRIVER_2_WORKING_STATE_CHANGED. + // For DRIVER_LOGIN it is the id of the driver that logged in. + // For DRIVER_LOGOUT it is the id of the driver that logged out. + // For DRIVER_1_WORKING_STATE_CHANGED it is the id of driver 1. + // For DRIVER_2_WORKING_STATE_CHANGED it is the id of driver 2. + DriverIdentification driver_id = 6; + + // The id of a power take off. + // Provided when the trigger type is PTO_ENABLED or PTO_DISABLED. + string pto_id = 7; + + // Additional tell tale information. + // Provided when the trigger type is TELL_TALE. + TellTale tell_tale_info = 8; + + // Additional charging status information. + // Provided when the trigger type is BATTERY_PACK_CHARGING_STATUS_CHANGE. + ChargingStatusInfo charging_status_info = 9; + + // Additional charging connection status information. + // Provided when the trigger type is BATTERY_PACK_CHARGING_CONNECTION_STATUS_CHANGE. + ChargingConnectionStatusInfo charging_connection_status_info = 10; + + // Additional alarm information. + // Provided when the trigger type is ALARM. + AlarmInfo alarm_info = 11; + // The context of a trigger. enum Context { // Default value. This value is not used. @@ -130,8 +130,41 @@ message Trigger { // The context is unknown. CONTEXT_UNKNOWN = 1; - // The context is RFMS. + // RFMS. RFMS = 2; + + // VOLVO TRUCKS. + VOLVO_TRUCKS = 3; + + // SCANIA. + SCANIA = 4; + + // DAIMLER. + DAIMLER = 5; + + // IVECO. + IVECO = 6; + + // DAF. + DAF = 7; + + // MAN. + MAN = 8; + + // RENAULT TRUCKS. + RENAULT_TRUCKS = 9; + + // VDL. + VDL = 10; + + // VOLVO BUSES. + VOLVO_BUSES = 11; + + // IVECO BUS. + IVECO_BUS = 12; + + // IRISBUS. + IRISBUS = 13; } // Information about a charging status. @@ -139,12 +172,6 @@ message Trigger { // The event that caused the charging status to be sent. Event event = 1; - // The unknown event. Used when the event is EVENT_UNKNOWN. - string unknown_event = 2; - - // Event detail. - string detail = 3; - // The charging status event. enum Event { // Default value. This value is not used. @@ -174,6 +201,12 @@ message Trigger { // The charging level has reached a predefined level. (Charging levels are outside the scope of rFMS). CHARGING_LEVEL = 8; } + + // The unknown event. Used when the event is EVENT_UNKNOWN. + string unknown_event = 2; + + // Event detail. + string detail = 3; } // Additonal information about the charging connection status. @@ -190,18 +223,6 @@ message Trigger { // The type of alarm. Type type = 1; - // The unknown type. Used when the type is TYPE_UNKNOWN. - string unknown_type = 2; - - // The state of the alarm. - State state = 3; - - // The unknown state. Used when the state is STATE_UNKNOWN. - string unknown_state = 4; - - // OEM specific details. - repeated string details = 5; - // The type of alarm. enum Type { // Default value. This value is not used. @@ -220,6 +241,12 @@ message Trigger { CARGO_TEMPERATURE = 6; } + // The unknown type. Used when the type is TYPE_UNKNOWN. + string unknown_type = 2; + + // The state of the alarm. + State state = 3; + // State of an alarm. enum State { // Default value. This value is not used. @@ -239,5 +266,11 @@ message Trigger { // The alarm is untriggered in an authorized way. UNTRIGGERED = 7; } + + // The unknown state. Used when the state is STATE_UNKNOWN. + string unknown_state = 4; + + // OEM specific details. + repeated string details = 5; } } diff --git a/proto/wayplatform/rfms/v5/vehicle.proto b/proto/wayplatform/rfms/v5/vehicle.proto index 8093ab4..7c19641 100644 --- a/proto/wayplatform/rfms/v5/vehicle.proto +++ b/proto/wayplatform/rfms/v5/vehicle.proto @@ -2,12 +2,17 @@ edition = "2023"; package wayplatform.rfms.v5; +import "wayplatform/rfms/v5/brand.proto"; import "wayplatform/rfms/v5/date.proto"; +import "wayplatform/rfms/v5/emission_level.proto"; import "wayplatform/rfms/v5/fuel_type.proto"; +import "wayplatform/rfms/v5/gearbox_type.proto"; +import "wayplatform/rfms/v5/tachograph_type.proto"; // A vehicle. message Vehicle { // The vehicle identification number (VIN) of the vehicle. + // See ISO 3779 (17 characters) string vin = 1; // The customer's name for the vehicle. @@ -29,11 +34,27 @@ message Vehicle { // The type of vehicle. Type type = 7; + // The type of a vehicle. + enum Type { + TYPE_UNSPECIFIED = 0; + // Unknown vehicle type. + TYPE_UNKNOWN = 1; + // A truck. + TRUCK = 2; + // A bus. + BUS = 3; + // A van.// + // This enum is not exhaustive. It identifies commonly used emission levels across + // OEM-specific implementations of rFMS APIs. + VAN = 4; + } + // The unknown type of the vehicle. // This is used when type is TYPE_UNKNOWN. string unknown_type = 8; // The model of the vehicle. + // OEM-specific value. string model = 9; // The possible fuel types supported by this vehicle. @@ -42,7 +63,7 @@ message Vehicle { // The unknown possible fuel types of the vehicle. // This is used when possible_fuel_types contains unknown fuel types. - repeated FuelType unknown_possible_fuel_types = 11; + repeated string unknown_possible_fuel_types = 11; // The emission level of the vehicle. EmissionLevel emission_level = 12; @@ -57,18 +78,21 @@ message Vehicle { string tell_tale_code = 14; // The chassis type of the vehicle. + // This is used mainly for buses. string chassis_type = 15; // The number of axles on the vehicle. int32 axle_count = 16; - // The total fuel tank volume of the vehicle. + // The total fuel tank volume of the vehicle. (ml) double total_fuel_tank_volume_ml = 17; - // The total fuel tank capacity of the vehicle. + // The total gas tank capacity of the vehicle. (kg) double total_fuel_tank_capacity_gaseous_kg = 18; - // The total battery pack capacity of the vehicle. + // The total battery pack capacity of the vehicle. (Wh) + // The value comes from the vehicle's specification. + // The value is static, i.e. does not take aging into consideration. double total_battery_pack_capacity_wh = 19; // The type of tachograph in the vehicle. @@ -86,155 +110,11 @@ message Vehicle { string unknown_gearbox_type = 23; // The type of body on the chassis. + // This is used mainly for buses. BodyType body_type = 24; - // The unknown body type of the vehicle. - // This is used when body_type is BODY_TYPE_UNKNOWN. - string unknown_body_type = 25; - - // The door configuration of the vehicle. The door order definition is OEM - // specific. E.g. [1, 2, 2] means the bus has 3 doors: 1 front door, double - // doors for door 2 and 3. This is used mainly for buses. - repeated int32 door_configuration = 26; - - // If the vehicle is equipped with a ramp or not. This is used mainly for buses. - bool has_ramp_or_lift = 27; - - // The brand of a vehicle. - enum Brand { - // Default value. This value is not used. - BRAND_UNSPECIFIED = 0; - // Unknown brand. - BRAND_UNKNOWN = 1; - // VOLVO TRUCKS. - VOLVO_TRUCKS = 2; - // SCANIA. - SCANIA = 3; - // DAIMLER. - DAIMLER = 4; - // IVECO. - IVECO = 5; - // DAF. - DAF = 6; - // MAN. - MAN = 7; - // RENAULT TRUCKS. - RENAULT_TRUCKS = 8; - // VDL. - VDL = 9; - // VOLVO BUSES. - VOLVO_BUSES = 10; - // IVECO BUS. - IVECO_BUS = 11; - // HEULIEZ. - HEULIEZ = 12; - // VWTB. - VWTB = 13; - // KENWORTH. - KENWORTH = 14; - // PETERBILT. - PETERBILT = 15; - // MACK TRUCKS. - MACK_TRUCKS = 16; - // INTERNATIONAL. - INTERNATIONAL = 17; - // IC BUS. - IC_BUS = 18; - } - - // The type of a vehicle. - enum Type { - TYPE_UNSPECIFIED = 0; - // Unknown vehicle type. - TYPE_UNKNOWN = 1; - // A truck. - TRUCK = 2; - // A bus. - BUS = 3; - // A van. - VAN = 4; - } - - // The emission level of a vehicle. - enum EmissionLevel { - // Default value. This value is not used. - EMISSION_LEVEL_UNSPECIFIED = 0; - // Unknown emission level. - EMISSION_LEVEL_UNKNOWN = 1; - // European Union, Heavy-Duty Truck and Bus Engines. - EURO_III = 2; - EURO_III_EEV = 3; - EURO_IV = 4; - EURO_V = 5; - EURO_VI = 6; - EURO_VII = 7; - // European Union, Nonroad Engines. - EURO_STAGE_III = 8; - EURO_STAGE_IV = 9; - EURO_STAGE_V = 10; - // United_States, Heavy-Duty Truck and Bus Engines. - EPA_2004 = 11; - EPA_2007 = 12; - EPA_2010 = 13; - EPA_2015_NOX10 = 14; - EPA_2015_NOX05 = 15; - EPA_2015_NOX02 = 16; - // United_States, Nonroad Engines. - EPA_TIER_2 = 17; - EPA_TIER_3 = 18; - EPA_TIER_4_2008 = 19; - EPA_TIER_4_2013 = 20; - // Brazil, Heavy-Duty Truck and Bus Engines. - PROCONVE_P5 = 21; - PROCONVE_P6 = 22; - PROCONVE_P7 = 23; - // Brazil, Nonroad Engines. - PROCONVE_MARI = 24; - } - - // The type of tachograph. - enum TachographType { - // Default value. This value is not used. - TACHOGRAPH_TYPE_UNSPECIFIED = 0; - // Unknown tachograph type. - TACHOGRAPH_TYPE_UNKNOWN = 1; - // Modular tachograph. - MTCO = 2; - // Digital tachograph, unknown generation. - DTCO = 3; - // Digital tachograph generation 1. - DTCO_G1 = 4; - // Digital tachograph generation 2. - DTCO_G2 = 5; - // Tachograph simulator. - TSU = 6; - // No tachograph in the vehicle. - NONE = 7; - // Stoneridge Smart. (Scania) - STONERIDGE_SMART = 8; - // Stoneridge Smart 2. (Scania) - STONERIDGE_SMART2 = 9; - } - - // The type of gearbox. - enum GearboxType { - // Default value. This value is not used. - GEARBOX_TYPE_UNSPECIFIED = 0; - // Unknown gearbox type. - GEARBOX_TYPE_UNKNOWN = 1; - // Manual. - MANUAL = 2; - // Automatic. - AUTOMATIC = 3; - // Semi-automatic. - SEMI_AUTOMATIC = 4; - // E.g. electrical. - NO_GEAR = 5; - // Automated manual transmission. (Scania) - AMT = 6; - } - // The type of body on the chassis. + // This is used mainly for buses. enum BodyType { // Default value. This value is not used. BODY_TYPE_UNSPECIFIED = 0; @@ -247,4 +127,20 @@ message Vehicle { // Coach. COACH = 4; } + + // The unknown body type of the vehicle. + // This is used when body_type is BODY_TYPE_UNKNOWN. + string unknown_body_type = 25; + + // The door configuration of the vehicle. The door order definition is OEM + // specific. E.g. [1, 2, 2] means the bus has 3 doors: 1 front door, double + // doors for door 2 and 3. This is used mainly for buses. + repeated int32 door_configuration = 26; + + // If the vehicle is equipped with a ramp or not. This is used mainly for buses. + bool has_ramp_or_lift = 27; + + // Paths that the client is authorized to call. + // Example: ["/vehiclestatuses", "/vehiclepositions"] + repeated string authorized_paths = 28; } diff --git a/proto/wayplatform/rfms/v5/axle.proto b/proto/wayplatform/rfms/v5/vehicle_axle.proto similarity index 96% rename from proto/wayplatform/rfms/v5/axle.proto rename to proto/wayplatform/rfms/v5/vehicle_axle.proto index e2fb6b9..d6d83e2 100644 --- a/proto/wayplatform/rfms/v5/axle.proto +++ b/proto/wayplatform/rfms/v5/vehicle_axle.proto @@ -3,7 +3,7 @@ edition = "2023"; package wayplatform.rfms.v5; // A vehicle axle. -message Axle { +message VehicleAxle { // The position of the axle. int32 position = 1; diff --git a/proto/wayplatform/rfms/v5/vehicle_position.proto b/proto/wayplatform/rfms/v5/vehicle_position.proto index bd9899a..2c8b3f0 100644 --- a/proto/wayplatform/rfms/v5/vehicle_position.proto +++ b/proto/wayplatform/rfms/v5/vehicle_position.proto @@ -8,17 +8,24 @@ import "wayplatform/rfms/v5/trigger.proto"; // A vehicle position. message VehiclePosition { // The vehicle identification number (VIN) of the vehicle. + // See ISO 3779 (17 characters). string vin = 1; + // The type of trigger that caused the vehicle position to be sent. Trigger trigger = 2; - // The date and time the vehicle position was created. (Unix microseconds) - int64 create_time = 3; - // The date and time the vehicle position was received. (Unix microseconds) - int64 receive_time = 4; + + // The date and time the vehicle position was created. (RFC 3339) + string create_time = 3; + + // The date and time the vehicle position was received. (RFC 3339) + string receive_time = 4; + // The GNSS position of the vehicle. GnssPosition gnss_position = 5; + // Speed of the vehicle as calculated from wheel or tailshaft speed. (km/h) double wheel_based_speed_kmh = 6; + // Speed of the vehicle registered by the tachograph. (km/h) double tachograph_speed_kmh = 7; } diff --git a/proto/wayplatform/rfms/v5/vehicle_status.proto b/proto/wayplatform/rfms/v5/vehicle_status.proto index 9467b51..451a299 100644 --- a/proto/wayplatform/rfms/v5/vehicle_status.proto +++ b/proto/wayplatform/rfms/v5/vehicle_status.proto @@ -16,66 +16,71 @@ message VehicleStatus { // The type of trigger that caused the vehicle status to be sent. Trigger trigger = 2; - // The date and time the vehicle status was created. (Unix microseconds) - int64 create_time = 3; + // The date and time the vehicle status was created. (RFC 3339) + string create_time = 3; - // The date and time the vehicle status was received. (Unix microseconds) - int64 receive_time = 4; + // The date and time the vehicle status was received. (RFC 3339) + string receive_time = 4; // The total distance travelled by the vehicle during its operation in meters. // Should not be reset during lifetime of the vehicle. - int64 total_vehicle_distance_m = 5; + double hr_total_vehicle_distance_m = 5; // The total hours of operation for the vehicle combustion engine during its lifetime. // Should not be reset during lifetime of the engine. double total_engine_hours = 6; - // The total hours of operation for the vehicle electric motor during its lifetime. - // Should not be reset during lifetime of the electric motor. + // The total hours the electric motor is ready for propulsion + // (i.e. crank mode) during its lifetime. + // + // At least one of total_engine_hours or total_electric_motor_hours is mandatory. + // + // Should not be reset during lifetime of the motor. double total_electric_motor_hours = 7; // The driver identification of driver 1. - DriverIdentification driver1 = 8; + DriverIdentification driver1_id = 8; // The gross combination vehicle weight in kg. double gross_combination_vehicle_weight_kg = 9; - // The total fuel the vehicle has used during its lifetime in liters. + // The total fuel the vehicle has used during its lifetime in ml. + // + // At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg + // or total_electric_energy_used_wh is mandatory. + // // Should not be reset during lifetime of the vehicle. double engine_total_fuel_used_ml = 10; - // The total fuel the vehicle has used during its lifetime in liters. + // Total fuel consumed in kg. + // + // (trip drive fuel + trip PTO governor moving fuel + trip PTO governor non-moving fuel + // + trip idle fuel) over the life of the engine. + // + // At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg + // or total_electric_energy_used_wh is mandatory. + // // Should not be reset during lifetime of the vehicle. double total_fuel_used_gaseous_kg = 11; - // The total electric energy the vehicle has used during its lifetime in Wh. + // Total electric energy consumed by the vehicle, excluding when plugged in (vehicle coupler) + // for charging, (incl. motor, PTO, cooling, etc.) during its lifetime, in Wh. + // + // Recuperation is subtracted from the value. + // + // At least one of engine_total_fuel_used_ml, total_fuel_used_gaseous_kg + // or total_electric_energy_used_wh is mandatory. + // // Should not be reset during lifetime of the vehicle. double total_electric_energy_used_wh = 12; - // The total electric energy recuperated by the vehicle during its lifetime in Wh. + // Total electric energy recuperated by the vehicle during its lifetime, in watt hours. // Should not be reset during lifetime of the vehicle. double total_electric_energy_recuperated_wh = 13; // The status of the doors of the vehicle. - // Should not be reset during lifetime of the vehicle. - StateOfDoors state_of_doors = 14; - - // The unknown state of the doors of the vehicle. - // Provided when the state of the doors is STATE_OF_DOORS_UNKNOWN. - string unknown_state_of_doors = 15; - - // Individual status for each door. // Bus specific parameter. - repeated Door doors = 16; - - // Accumulated data for the vehicle. - AccumulatedData accumulated_data = 17; - - // Snapshot data for the vehicle. - SnapshotData snapshot_data = 18; - - // Uptime data for the vehicle. - UptimeData uptime_data = 19; + StateOfDoors state_of_doors = 14; // The state of the doors of a bus. enum StateOfDoors { @@ -87,33 +92,57 @@ message VehicleStatus { AT_LEAST_ONE_DOOR_ENABLED = 5; } - // Information about a door on a bus. + // The unknown state of the doors of the vehicle. + // Provided when the state of the doors is STATE_OF_DOORS_UNKNOWN. + string unknown_state_of_doors = 15; + + // Individual status for each door. + // Bus specific parameter. + repeated Door doors = 16; + + // Information about a door. message Door { - // The number of the door. + // The number of the bus door. int32 number = 1; - // The enabled state of the door. + // The enabled state of the bus door. EnabledState enabled_state = 2; - // The unknown enabled state of the door. + // Enabled state of a bus door. + enum EnabledState { + ENABLED_STATE_UNSPECIFIED = 0; + ENABLED_STATE_UNKNOWN = 1; + ENABLED_STATE_ERROR = 2; + ENABLED_STATE_NOT_AVAILABLE = 3; + ENABLED = 4; + DISABLED = 5; + } + + // The unknown enabled state of the bus door. // Provided when the enabled state is ENABLED_STATE_UNKNOWN. string unknown_enabled_state = 3; - // The open state of the door. + // The open state of the bus door. OpenState open_state = 4; - // The unknown open state of the door. + // Open state of a bus door. + enum OpenState { + OPEN_STATE_UNSPECIFIED = 0; + OPEN_STATE_UNKNOWN = 1; + OPEN_STATE_ERROR = 2; + OPEN_STATE_NOT_AVAILABLE = 3; + CLOSED = 4; + OPEN = 5; + } + + // The unknown open state of the bus door. // Provided when the open state is OPEN_STATE_UNKNOWN. string unknown_open_state = 5; - // The lock state of the door. + // The lock state of the bus door. LockState lock_state = 6; - // The unknown lock state of the door. - // Provided when the lock state is LOCK_STATE_UNKNOWN. - string unknown_lock_state = 7; - - // Lock state of a door. + // Lock state of a bus door. enum LockState { LOCK_STATE_UNSPECIFIED = 0; LOCK_STATE_UNKNOWN = 1; @@ -123,24 +152,17 @@ message VehicleStatus { LOCKED = 5; } - // Open state of a door. - enum OpenState { - OPEN_STATE_UNSPECIFIED = 0; - OPEN_STATE_UNKNOWN = 1; - OPEN_STATE_ERROR = 2; - OPEN_STATE_NOT_AVAILABLE = 3; - CLOSED = 4; - OPEN = 5; - } - - // Enabled state of a door. - enum EnabledState { - ENABLED_STATE_UNSPECIFIED = 0; - ENABLED_STATE_UNKNOWN = 1; - ENABLED_STATE_ERROR = 2; - ENABLED_STATE_NOT_AVAILABLE = 3; - ENABLED = 4; - DISABLED = 5; - } + // The unknown lock state of the bus door. + // Provided when the lock state is LOCK_STATE_UNKNOWN. + string unknown_lock_state = 7; } + + // Snapshot data for the vehicle. + SnapshotData snapshot_data = 18; + + // Uptime data for the vehicle. + UptimeData uptime_data = 19; + + // Accumulated data for the vehicle. + AccumulatedData accumulated_data = 17; }