aboutsummaryrefslogtreecommitdiffstats
path: root/build/resources/main/VehicleMessageHeader.proto
diff options
context:
space:
mode:
Diffstat (limited to 'build/resources/main/VehicleMessageHeader.proto')
-rw-r--r--build/resources/main/VehicleMessageHeader.proto49
1 files changed, 49 insertions, 0 deletions
diff --git a/build/resources/main/VehicleMessageHeader.proto b/build/resources/main/VehicleMessageHeader.proto
new file mode 100644
index 0000000..2a6cda0
--- /dev/null
+++ b/build/resources/main/VehicleMessageHeader.proto
@@ -0,0 +1,49 @@
+syntax = "proto3";/**
+*<h1>Vehicle Message Header</h1>
+*<p>
+* This message defines an application message header for messages past across the system. This is useful because the standard MQTT message headers are typically local to the broker of the system, so while the MQTT headers are useful for QoS assurances and message debugging they do not necessarily correlate the messages to the services deeper in the vehicle or the cloud services.
+*</p>
+*<h2>Message Orchestration</h2>
+*<p><img src="doc/images/VehicleMessageHeader.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>No Topic</td>
+* <td>No Topic</td>
+* </tr>
+* <tr>
+* <td>Cloud to Vehicle</td>
+* <td>No Topic</td>
+* <td>No Topic</td>
+* </tr>
+* </tbody>
+* </table>
+*/
+
+
+package messages;
+message VehicleMessageHeading {
+int32 message_id = 1; // Unique Application message_id. When initiated from channels like Mobile or API Gateways this should persist all the way to the vehilce, returning as a correlation id.
+int32 correlation_id = 2; // For request/response and other multi-message patterns this should be populated with the message_id of the first message in the chain.
+string vehicle_identity = 3; // this should be salted and hashed version of the VIN or other Vehicle Identification.
+string vehicle_device_id = 7; // this can be any unique identifier for the vehicle, we recommend using the fingerprint on the client's unique x.509 certificate.
+int64 message_timestamp = 4; // EPOCH timestamp when the message was created
+double protocol_version = 5; // version of the protocol schema/data model being used.
+lat_long location = 6; // GNSS latitude and longtitude
+
+}
+
+message lat_long {
+ double latitude = 1; // GNSS latitude
+ double longitude = 2; // GNSS longitude
+}
+