-ü\ 5
-\fopenxc.proto\12\ 6openxc"¼\ 1
+«
+\fopenxc.proto\12\ 6openxc"\85\ 2
\ eVehicleMessage\12)
\ 4type\18\ 1 \ 1(\ e2\e.openxc.VehicleMessage.Type\12'
\vraw_message\18\ 2 \ 1(\v2\12.openxc.RawMessage\125
-\12translated_message\18\ 3 \ 1(\v2\19.openxc.TranslatedMessage"\1f
+\12translated_message\18\ 3 \ 1(\v2\19.openxc.TranslatedMessage\127
+\13diagnostic_response\18\ 4 \ 1(\v2\1a.openxc.DiagnosticResponse"/
\ 4Type\12\a
\ 3RAW\10\ 1\12\ e
-TRANSLATED\10\ 2";
+TRANSLATED\10\ 2\12\ e
+
+DIAGNOSTIC\10\ 3";
RawMessage\12\v
\ 3bus\18\ 1 \ 1(\ 5\12\12
message_id\18\ 2 \ 1(\r\12\f
-\ 4data\18\ 3 \ 1(\ 4"\91\ 1
-\11DiagnosticMessage\12\v
+\ 4data\18\ 3 \ 1(\f"¦\ 1
+\ eControlCommand\12)
+\ 4type\18\ 1 \ 1(\ e2\e.openxc.ControlCommand.Type\125
+\12diagnostic_request\18\ 2 \ 1(\v2\19.openxc.DiagnosticRequest"2
+\ 4Type\12\v
+\aVERSION\10\ 1\12\r
+ DEVICE_ID\10\ 2\12\ e
+
+DIAGNOSTIC\10\ 3"ª\ 1
+\11DiagnosticRequest\12\v
+\ 3bus\18\ 1 \ 1(\ 5\12\12
+
+message_id\18\ 2 \ 1(\r\12\f
+\ 4mode\18\ 3 \ 1(\r\12\v
+\ 3pid\18\ 4 \ 1(\r\12\ f
+\apayload\18\ 5 \ 1(\f\12\15
+\rparse_payload\18\ 6 \ 1(\b\12\ e
+\ 6factor\18\a \ 1(\ 1\12\ e
+\ 6offset\18\b \ 1(\ 1\12\11
+ frequency\18 \ 1(\ 1"¡\ 1
+\12DiagnosticResponse\12\v
\ 3bus\18\ 1 \ 1(\ 5\12\12
message_id\18\ 2 \ 1(\r\12\f
\ 3pid\18\ 4 \ 1(\r\12\ f
\asuccess\18\ 5 \ 1(\b\12\1e
\16negative_response_code\18\ 6 \ 1(\r\12\ f
-\apayload\18\a \ 1(\f"µ\ 2
+\apayload\18\a \ 1(\f\12\r
+\ 5value\18\b \ 1(\ 1"µ\ 2
\11TranslatedMessage\12,
\ 4type\18\ 1 \ 1(\ e2\1e.openxc.TranslatedMessage.Type\12\f
\ 4name\18\ 2 \ 1( \12\14