diff options
Diffstat (limited to 'build/resources/main/VehiclePrecisionLocation.proto')
-rw-r--r-- | build/resources/main/VehiclePrecisionLocation.proto | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/build/resources/main/VehiclePrecisionLocation.proto b/build/resources/main/VehiclePrecisionLocation.proto new file mode 100644 index 0000000..7e132ec --- /dev/null +++ b/build/resources/main/VehiclePrecisionLocation.proto @@ -0,0 +1,82 @@ +syntax = "proto3"; /** +* <h1>Precise Vehicle Location</h1> +*<p>This set of messages define how to acquire vehicle location, either on demand or by interval and events.</p> +*<h2>Message Orchestration</h2> +*<p><img src="doc/images/mqttLocation.png" alt="HeaderMessage.puml"></p> +*<h2>MQTT Topic Design</h2> +*<table> +* <thead> +* <tr> +* <th>Direction</th> +* <th>Subscribe Topic</th> +* <th>Publish Topic</th> +* </tr> +* </thead> +* <tbody> +* <tr> +* <td>Vehicle to Cloud</td> +* <td>vloc/"*"</td> +* <td>vloc/<device_id></td> +* </tr> +* <tr> +* <td>Cloud to Vehicle</td> +* <td><device_id>/vloc</td> +* <td><device_id>/vloc</td> +* </tr> +* </tbody> +* </table> +*/ + +package messages; +import "messages/VehicleMessageHeader.proto"; +message RequestCurrentVehicleLocationTest +/// Requests vehicle location on demand +{ + string vehicle_identity = 1; /// At most this identity should be all that is required to trigger the request for location and should contain a salted hash + +} + +message ResponseCurrentVehicleLocation +/// Response to vehicle location request +{ + VehicleMessageHeading vehicleMessageHeading =1; + VehicleCurrentLocation vehicleCurrentLocation =2; + ResponseStatusEnum responseStatus = 3; +} + +enum ResponseStatusEnum { + SUCCESS = 0; /// A good GPS Location response was possible and GPS data is being returned in the payload + FAIL_NO_RESPONSE = 1; /// No GPS information was able to be retrieved + FAIL_DEGRADED_RESPONSE = 2; // GPS location available but degraded accuracy +} + +message PublishCurrentVehicleLocation /// This is the event based version, proactively publishing location data without a cloud side request +{ + VehicleMessageHeading vehicleMessageHeading =1; + VehicleCurrentLocation vehicleCurrentLocation =2; +} + +message VehicleCurrentLocation { + string Timestamp = 1; + double Latitude = 2; + double Longitude = 3; + double Heading = 4; + double HorizontalAccuracy = 5; + double Altitude = 6; + double VerticalAccuracy = 7; + + VehicleCurrentLocationGNSSReceiver GNSSReceiver = 8; +} + +message VehicleCurrentLocationGNSSReceiver { + string FixType = 1; + VehicleCurrentLocationGNSSReceiverMountingPosition MountingPosition = 2; +} + +message VehicleCurrentLocationGNSSReceiverMountingPosition { + int32 X = 1; + int32 Y = 2; + int32 Z = 3; +} + + |