diff options
author | Christopher Peplin <chris.peplin@rhubarbtech.com> | 2014-09-29 21:52:34 -0400 |
---|---|---|
committer | Christopher Peplin <chris.peplin@rhubarbtech.com> | 2014-09-29 21:53:27 -0400 |
commit | 68ce7c57c76496efb28c385428b0e2d797d8df74 (patch) | |
tree | 688a88b4f13d1a63ac6d16e80fbaf1c4bd829409 | |
parent | 1e8b40f719ac43ea53e414e311d9387757630de6 (diff) |
Add a command to enable/disable pre-defined OBD-II requests.
See openxc/vi-firmware#303.
-rw-r--r-- | README.md | 23 | ||||
-rw-r--r-- | gen/cpp/openxc.pb | 14 | ||||
-rw-r--r-- | gen/cpp/openxc.pb.c | 14 | ||||
-rw-r--r-- | gen/cpp/openxc.pb.h | 28 | ||||
-rw-r--r-- | gen/java/com/openxc/BinaryMessages.java | 703 | ||||
-rw-r--r-- | gen/python/openxc_pb2.py | 111 | ||||
-rw-r--r-- | openxc.proto | 6 |
7 files changed, 805 insertions, 94 deletions
@@ -349,6 +349,27 @@ messages will be in the new format. { "command_response": "payload_format", "status": true} +#### Automatic Pre-Defined OBD-II PID Requests + +The `predefined_obd2` command enables and disables the querying for and +translating of a set of pre-defined OBD-II PIDs from the attached vehicle. When +enabled, the VI will query the vehicle to see if these PIDs are claimed to be +supported and for those that are, it will set up recurring requests. The +responses will be output as simple vehicle messages, with the names defined in +the "Signals Defined from Diagnostic Messages" section below. + +**Request** + + { "command": "predefined_obd2", + "enabled": true + } + +**Response** + +f the predefined requests were enabled or disabled successfully, the `status` in +the response will be `true`. + + { "command_response": "predefined_obd2", "status": true} ### Trace File Format @@ -451,7 +472,7 @@ manufacturers may support custom message names. * numerical, -179.0 to 179.0 degrees with standard GPS accuracy * 1Hz -### Signals from Diagnostics Messages +### Signals from Diagnostic Messages This set of signals is often retreived from OBD-II requests. The units can be found in the [OBD-II standard](http://en.wikipedia.org/wiki/OBD-II_PIDs#Mode_01). diff --git a/gen/cpp/openxc.pb b/gen/cpp/openxc.pb index 716d2689..eef93e61 100644 --- a/gen/cpp/openxc.pb +++ b/gen/cpp/openxc.pb @@ -1,5 +1,5 @@ - + openxc.protoopenxc" VehicleMessage) type (2.openxc.VehicleMessage.Type' @@ -21,13 +21,14 @@ RawMessage bus ( message_id (
-data (" +data (" ControlCommand) type (2.openxc.ControlCommand.Type< diagnostic_request (2 .openxc.DiagnosticControlCommandG passthrough_mode_request (2%.openxc.PassthroughModeControlCommandO acceptance_filter_bypass_command (2%.openxc.AcceptanceFilterBypassCommand< -payload_format_command (2.openxc.PayloadFormatCommand"u +payload_format_command (2.openxc.PayloadFormatCommandO + predefined_obd2_requests_command (2%.openxc.PredefinedObd2RequestsCommand" Type VERSION
DEVICE_ID @@ -35,7 +36,8 @@ message_id (
DIAGNOSTIC PASSTHROUGH ACCEPTANCE_FILTER_BYPASS -PAYLOAD_FORMAT" +PAYLOAD_FORMAT +PREDEFINED_OBD2_REQUESTS" DiagnosticControlCommand* request (2.openxc.DiagnosticRequest7 action (2'.openxc.DiagnosticControlCommand.Action" @@ -53,7 +55,9 @@ DIAGNOSTIC format (2*.openxc.PayloadFormatCommand.PayloadFormat"'
PayloadFormat JSON -PROTOBUF"] +PROTOBUF"0 +PredefinedObd2RequestsCommand +enabled ("] CommandResponse) type (2.openxc.ControlCommand.Type message ( diff --git a/gen/cpp/openxc.pb.c b/gen/cpp/openxc.pb.c index ffc0ec66..ac31b7ec 100644 --- a/gen/cpp/openxc.pb.c +++ b/gen/cpp/openxc.pb.c @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.3.1 at Sat Sep 27 21:46:00 2014. */ +/* Generated by nanopb-0.3.1 at Mon Sep 29 21:53:25 2014. */ #include "openxc.pb.h" @@ -26,12 +26,13 @@ const pb_field_t openxc_RawMessage_fields[4] = { PB_LAST_FIELD }; -const pb_field_t openxc_ControlCommand_fields[6] = { +const pb_field_t openxc_ControlCommand_fields[7] = { PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_ControlCommand, type, type, 0), PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, diagnostic_request, type, &openxc_DiagnosticControlCommand_fields), PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, passthrough_mode_request, diagnostic_request, &openxc_PassthroughModeControlCommand_fields), PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, acceptance_filter_bypass_command, passthrough_mode_request, &openxc_AcceptanceFilterBypassCommand_fields), PB_FIELD( 5, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, payload_format_command, acceptance_filter_bypass_command, &openxc_PayloadFormatCommand_fields), + PB_FIELD( 6, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, predefined_obd2_requests_command, payload_format_command, &openxc_PredefinedObd2RequestsCommand_fields), PB_LAST_FIELD }; @@ -58,6 +59,11 @@ const pb_field_t openxc_PayloadFormatCommand_fields[2] = { PB_LAST_FIELD }; +const pb_field_t openxc_PredefinedObd2RequestsCommand_fields[2] = { + PB_FIELD( 1, BOOL , OPTIONAL, STATIC , FIRST, openxc_PredefinedObd2RequestsCommand, enabled, enabled, 0), + PB_LAST_FIELD +}; + const pb_field_t openxc_CommandResponse_fields[4] = { PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_CommandResponse, type, type, 0), PB_FIELD( 2, STRING , OPTIONAL, STATIC , OTHER, openxc_CommandResponse, message, type, 0), @@ -116,7 +122,7 @@ const pb_field_t openxc_TranslatedMessage_fields[5] = { * numbers or field sizes that are larger than what can fit in 8 or 16 bit * field descriptors. */ -PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, raw_message) < 65536 && pb_membersize(openxc_VehicleMessage, translated_message) < 65536 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 65536 && pb_membersize(openxc_VehicleMessage, control_command) < 65536 && pb_membersize(openxc_VehicleMessage, command_response) < 65536 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 65536 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 65536 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 65536 && pb_membersize(openxc_ControlCommand, payload_format_command) < 65536 && pb_membersize(openxc_DiagnosticControlCommand, request) < 65536 && pb_membersize(openxc_TranslatedMessage, value) < 65536 && pb_membersize(openxc_TranslatedMessage, event) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_RawMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_TranslatedMessage) +PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, raw_message) < 65536 && pb_membersize(openxc_VehicleMessage, translated_message) < 65536 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 65536 && pb_membersize(openxc_VehicleMessage, control_command) < 65536 && pb_membersize(openxc_VehicleMessage, command_response) < 65536 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 65536 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 65536 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 65536 && pb_membersize(openxc_ControlCommand, payload_format_command) < 65536 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 65536 && pb_membersize(openxc_DiagnosticControlCommand, request) < 65536 && pb_membersize(openxc_TranslatedMessage, value) < 65536 && pb_membersize(openxc_TranslatedMessage, event) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_RawMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_TranslatedMessage) #endif #if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT) @@ -127,7 +133,7 @@ PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, raw_message) < 65536 && p * numbers or field sizes that are larger than what can fit in the default * 8 bit descriptors. */ -PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, raw_message) < 256 && pb_membersize(openxc_VehicleMessage, translated_message) < 256 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 256 && pb_membersize(openxc_VehicleMessage, control_command) < 256 && pb_membersize(openxc_VehicleMessage, command_response) < 256 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 256 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 256 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 256 && pb_membersize(openxc_ControlCommand, payload_format_command) < 256 && pb_membersize(openxc_DiagnosticControlCommand, request) < 256 && pb_membersize(openxc_TranslatedMessage, value) < 256 && pb_membersize(openxc_TranslatedMessage, event) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_RawMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_TranslatedMessage) +PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, raw_message) < 256 && pb_membersize(openxc_VehicleMessage, translated_message) < 256 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 256 && pb_membersize(openxc_VehicleMessage, control_command) < 256 && pb_membersize(openxc_VehicleMessage, command_response) < 256 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 256 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 256 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 256 && pb_membersize(openxc_ControlCommand, payload_format_command) < 256 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 256 && pb_membersize(openxc_DiagnosticControlCommand, request) < 256 && pb_membersize(openxc_TranslatedMessage, value) < 256 && pb_membersize(openxc_TranslatedMessage, event) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_RawMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_TranslatedMessage) #endif diff --git a/gen/cpp/openxc.pb.h b/gen/cpp/openxc.pb.h index 2df9a94b..4af15de9 100644 --- a/gen/cpp/openxc.pb.h +++ b/gen/cpp/openxc.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.3.1 at Sat Sep 27 21:46:00 2014. */ +/* Generated by nanopb-0.3.1 at Mon Sep 29 21:53:25 2014. */ #ifndef PB_OPENXC_PB_H_INCLUDED #define PB_OPENXC_PB_H_INCLUDED @@ -28,7 +28,8 @@ typedef enum _openxc_ControlCommand_Type { openxc_ControlCommand_Type_DIAGNOSTIC = 3, openxc_ControlCommand_Type_PASSTHROUGH = 4, openxc_ControlCommand_Type_ACCEPTANCE_FILTER_BYPASS = 5, - openxc_ControlCommand_Type_PAYLOAD_FORMAT = 6 + openxc_ControlCommand_Type_PAYLOAD_FORMAT = 6, + openxc_ControlCommand_Type_PREDEFINED_OBD2_REQUESTS = 7 } openxc_ControlCommand_Type; typedef enum _openxc_DiagnosticControlCommand_Action { @@ -145,6 +146,11 @@ typedef struct _openxc_PayloadFormatCommand { openxc_PayloadFormatCommand_PayloadFormat format; } openxc_PayloadFormatCommand; +typedef struct _openxc_PredefinedObd2RequestsCommand { + bool has_enabled; + bool enabled; +} openxc_PredefinedObd2RequestsCommand; + typedef PB_BYTES_ARRAY_T(8) openxc_RawMessage_data_t; typedef struct _openxc_RawMessage { @@ -185,6 +191,8 @@ typedef struct _openxc_ControlCommand { openxc_AcceptanceFilterBypassCommand acceptance_filter_bypass_command; bool has_payload_format_command; openxc_PayloadFormatCommand payload_format_command; + bool has_predefined_obd2_requests_command; + openxc_PredefinedObd2RequestsCommand predefined_obd2_requests_command; } openxc_ControlCommand; typedef struct _openxc_VehicleMessage { @@ -207,11 +215,12 @@ typedef struct _openxc_VehicleMessage { /* Initializer values for message structs */ #define openxc_VehicleMessage_init_default {false, (openxc_VehicleMessage_Type)0, false, openxc_RawMessage_init_default, false, openxc_TranslatedMessage_init_default, false, openxc_DiagnosticResponse_init_default, false, openxc_ControlCommand_init_default, false, openxc_CommandResponse_init_default} #define openxc_RawMessage_init_default {false, 0, false, 0, false, {0, {0}}} -#define openxc_ControlCommand_init_default {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_default, false, openxc_PassthroughModeControlCommand_init_default, false, openxc_AcceptanceFilterBypassCommand_init_default, false, openxc_PayloadFormatCommand_init_default} +#define openxc_ControlCommand_init_default {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_default, false, openxc_PassthroughModeControlCommand_init_default, false, openxc_AcceptanceFilterBypassCommand_init_default, false, openxc_PayloadFormatCommand_init_default, false, openxc_PredefinedObd2RequestsCommand_init_default} #define openxc_DiagnosticControlCommand_init_default {false, openxc_DiagnosticRequest_init_default, false, (openxc_DiagnosticControlCommand_Action)0} #define openxc_PassthroughModeControlCommand_init_default {false, 0, false, 0} #define openxc_AcceptanceFilterBypassCommand_init_default {false, 0, false, 0} #define openxc_PayloadFormatCommand_init_default {false, (openxc_PayloadFormatCommand_PayloadFormat)0} +#define openxc_PredefinedObd2RequestsCommand_init_default {false, 0} #define openxc_CommandResponse_init_default {false, (openxc_ControlCommand_Type)0, false, "", false, 0} #define openxc_DiagnosticRequest_init_default {false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0, false, 0, false, "", false, (openxc_DiagnosticRequest_DecodedType)0} #define openxc_DiagnosticResponse_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0} @@ -219,11 +228,12 @@ typedef struct _openxc_VehicleMessage { #define openxc_TranslatedMessage_init_default {false, (openxc_TranslatedMessage_Type)0, false, "", false, openxc_DynamicField_init_default, false, openxc_DynamicField_init_default} #define openxc_VehicleMessage_init_zero {false, (openxc_VehicleMessage_Type)0, false, openxc_RawMessage_init_zero, false, openxc_TranslatedMessage_init_zero, false, openxc_DiagnosticResponse_init_zero, false, openxc_ControlCommand_init_zero, false, openxc_CommandResponse_init_zero} #define openxc_RawMessage_init_zero {false, 0, false, 0, false, {0, {0}}} -#define openxc_ControlCommand_init_zero {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_zero, false, openxc_PassthroughModeControlCommand_init_zero, false, openxc_AcceptanceFilterBypassCommand_init_zero, false, openxc_PayloadFormatCommand_init_zero} +#define openxc_ControlCommand_init_zero {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_zero, false, openxc_PassthroughModeControlCommand_init_zero, false, openxc_AcceptanceFilterBypassCommand_init_zero, false, openxc_PayloadFormatCommand_init_zero, false, openxc_PredefinedObd2RequestsCommand_init_zero} #define openxc_DiagnosticControlCommand_init_zero {false, openxc_DiagnosticRequest_init_zero, false, (openxc_DiagnosticControlCommand_Action)0} #define openxc_PassthroughModeControlCommand_init_zero {false, 0, false, 0} #define openxc_AcceptanceFilterBypassCommand_init_zero {false, 0, false, 0} #define openxc_PayloadFormatCommand_init_zero {false, (openxc_PayloadFormatCommand_PayloadFormat)0} +#define openxc_PredefinedObd2RequestsCommand_init_zero {false, 0} #define openxc_CommandResponse_init_zero {false, (openxc_ControlCommand_Type)0, false, "", false, 0} #define openxc_DiagnosticRequest_init_zero {false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0, false, 0, false, "", false, (openxc_DiagnosticRequest_DecodedType)0} #define openxc_DiagnosticResponse_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0} @@ -260,6 +270,7 @@ typedef struct _openxc_VehicleMessage { #define openxc_PassthroughModeControlCommand_bus_tag 1 #define openxc_PassthroughModeControlCommand_enabled_tag 2 #define openxc_PayloadFormatCommand_format_tag 1 +#define openxc_PredefinedObd2RequestsCommand_enabled_tag 1 #define openxc_RawMessage_bus_tag 1 #define openxc_RawMessage_message_id_tag 2 #define openxc_RawMessage_data_tag 3 @@ -274,6 +285,7 @@ typedef struct _openxc_VehicleMessage { #define openxc_ControlCommand_passthrough_mode_request_tag 3 #define openxc_ControlCommand_acceptance_filter_bypass_command_tag 4 #define openxc_ControlCommand_payload_format_command_tag 5 +#define openxc_ControlCommand_predefined_obd2_requests_command_tag 6 #define openxc_VehicleMessage_type_tag 1 #define openxc_VehicleMessage_raw_message_tag 2 #define openxc_VehicleMessage_translated_message_tag 3 @@ -284,11 +296,12 @@ typedef struct _openxc_VehicleMessage { /* Struct field encoding specification for nanopb */ extern const pb_field_t openxc_VehicleMessage_fields[7]; extern const pb_field_t openxc_RawMessage_fields[4]; -extern const pb_field_t openxc_ControlCommand_fields[6]; +extern const pb_field_t openxc_ControlCommand_fields[7]; extern const pb_field_t openxc_DiagnosticControlCommand_fields[3]; extern const pb_field_t openxc_PassthroughModeControlCommand_fields[3]; extern const pb_field_t openxc_AcceptanceFilterBypassCommand_fields[3]; extern const pb_field_t openxc_PayloadFormatCommand_fields[2]; +extern const pb_field_t openxc_PredefinedObd2RequestsCommand_fields[2]; extern const pb_field_t openxc_CommandResponse_fields[4]; extern const pb_field_t openxc_DiagnosticRequest_fields[10]; extern const pb_field_t openxc_DiagnosticResponse_fields[9]; @@ -296,13 +309,14 @@ extern const pb_field_t openxc_DynamicField_fields[5]; extern const pb_field_t openxc_TranslatedMessage_fields[5]; /* Maximum encoded size of messages (where known) */ -#define openxc_VehicleMessage_size 712 +#define openxc_VehicleMessage_size 716 #define openxc_RawMessage_size 27 -#define openxc_ControlCommand_size 122 +#define openxc_ControlCommand_size 126 #define openxc_DiagnosticControlCommand_size 76 #define openxc_PassthroughModeControlCommand_size 13 #define openxc_AcceptanceFilterBypassCommand_size 13 #define openxc_PayloadFormatCommand_size 6 +#define openxc_PredefinedObd2RequestsCommand_size 2 #define openxc_CommandResponse_size 139 #define openxc_DiagnosticRequest_size 68 #define openxc_DiagnosticResponse_size 56 diff --git a/gen/java/com/openxc/BinaryMessages.java b/gen/java/com/openxc/BinaryMessages.java index bf424fbc..b3d1be43 100644 --- a/gen/java/com/openxc/BinaryMessages.java +++ b/gen/java/com/openxc/BinaryMessages.java @@ -2111,6 +2111,20 @@ public final class BinaryMessages { * <code>optional .openxc.PayloadFormatCommand payload_format_command = 5;</code> */ com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder getPayloadFormatCommandOrBuilder(); + + // optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6; + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + boolean hasPredefinedObd2RequestsCommand(); + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getPredefinedObd2RequestsCommand(); + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder getPredefinedObd2RequestsCommandOrBuilder(); } /** * Protobuf type {@code openxc.ControlCommand} @@ -2226,6 +2240,19 @@ public final class BinaryMessages { bitField0_ |= 0x00000010; break; } + case 50: { + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder subBuilder = null; + if (((bitField0_ & 0x00000020) == 0x00000020)) { + subBuilder = predefinedObd2RequestsCommand_.toBuilder(); + } + predefinedObd2RequestsCommand_ = input.readMessage(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(predefinedObd2RequestsCommand_); + predefinedObd2RequestsCommand_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000020; + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -2294,6 +2321,10 @@ public final class BinaryMessages { * <code>PAYLOAD_FORMAT = 6;</code> */ PAYLOAD_FORMAT(5, 6), + /** + * <code>PREDEFINED_OBD2_REQUESTS = 7;</code> + */ + PREDEFINED_OBD2_REQUESTS(6, 7), ; /** @@ -2320,6 +2351,10 @@ public final class BinaryMessages { * <code>PAYLOAD_FORMAT = 6;</code> */ public static final int PAYLOAD_FORMAT_VALUE = 6; + /** + * <code>PREDEFINED_OBD2_REQUESTS = 7;</code> + */ + public static final int PREDEFINED_OBD2_REQUESTS_VALUE = 7; public final int getNumber() { return value; } @@ -2332,6 +2367,7 @@ public final class BinaryMessages { case 4: return PASSTHROUGH; case 5: return ACCEPTANCE_FILTER_BYPASS; case 6: return PAYLOAD_FORMAT; + case 7: return PREDEFINED_OBD2_REQUESTS; default: return null; } } @@ -2488,12 +2524,35 @@ public final class BinaryMessages { return payloadFormatCommand_; } + // optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6; + public static final int PREDEFINED_OBD2_REQUESTS_COMMAND_FIELD_NUMBER = 6; + private com.openxc.BinaryMessages.PredefinedObd2RequestsCommand predefinedObd2RequestsCommand_; + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public boolean hasPredefinedObd2RequestsCommand() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getPredefinedObd2RequestsCommand() { + return predefinedObd2RequestsCommand_; + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder getPredefinedObd2RequestsCommandOrBuilder() { + return predefinedObd2RequestsCommand_; + } + private void initFields() { type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION; diagnosticRequest_ = com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance(); passthroughModeRequest_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance(); acceptanceFilterBypassCommand_ = com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance(); payloadFormatCommand_ = com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance(); + predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -2522,6 +2581,9 @@ public final class BinaryMessages { if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeMessage(5, payloadFormatCommand_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeMessage(6, predefinedObd2RequestsCommand_); + } getUnknownFields().writeTo(output); } @@ -2551,6 +2613,10 @@ public final class BinaryMessages { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, payloadFormatCommand_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, predefinedObd2RequestsCommand_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -2663,6 +2729,7 @@ public final class BinaryMessages { getPassthroughModeRequestFieldBuilder(); getAcceptanceFilterBypassCommandFieldBuilder(); getPayloadFormatCommandFieldBuilder(); + getPredefinedObd2RequestsCommandFieldBuilder(); } } private static Builder create() { @@ -2697,6 +2764,12 @@ public final class BinaryMessages { payloadFormatCommandBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); + if (predefinedObd2RequestsCommandBuilder_ == null) { + predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance(); + } else { + predefinedObd2RequestsCommandBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -2761,6 +2834,14 @@ public final class BinaryMessages { } else { result.payloadFormatCommand_ = payloadFormatCommandBuilder_.build(); } + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + if (predefinedObd2RequestsCommandBuilder_ == null) { + result.predefinedObd2RequestsCommand_ = predefinedObd2RequestsCommand_; + } else { + result.predefinedObd2RequestsCommand_ = predefinedObd2RequestsCommandBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -2792,6 +2873,9 @@ public final class BinaryMessages { if (other.hasPayloadFormatCommand()) { mergePayloadFormatCommand(other.getPayloadFormatCommand()); } + if (other.hasPredefinedObd2RequestsCommand()) { + mergePredefinedObd2RequestsCommand(other.getPredefinedObd2RequestsCommand()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -3323,6 +3407,123 @@ public final class BinaryMessages { return payloadFormatCommandBuilder_; } + // optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6; + private com.openxc.BinaryMessages.PredefinedObd2RequestsCommand predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder, com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder> predefinedObd2RequestsCommandBuilder_; + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public boolean hasPredefinedObd2RequestsCommand() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getPredefinedObd2RequestsCommand() { + if (predefinedObd2RequestsCommandBuilder_ == null) { + return predefinedObd2RequestsCommand_; + } else { + return predefinedObd2RequestsCommandBuilder_.getMessage(); + } + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public Builder setPredefinedObd2RequestsCommand(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand value) { + if (predefinedObd2RequestsCommandBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + predefinedObd2RequestsCommand_ = value; + onChanged(); + } else { + predefinedObd2RequestsCommandBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + return this; + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public Builder setPredefinedObd2RequestsCommand( + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder builderForValue) { + if (predefinedObd2RequestsCommandBuilder_ == null) { + predefinedObd2RequestsCommand_ = builderForValue.build(); + onChanged(); + } else { + predefinedObd2RequestsCommandBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + return this; + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public Builder mergePredefinedObd2RequestsCommand(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand value) { + if (predefinedObd2RequestsCommandBuilder_ == null) { + if (((bitField0_ & 0x00000020) == 0x00000020) && + predefinedObd2RequestsCommand_ != com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance()) { + predefinedObd2RequestsCommand_ = + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.newBuilder(predefinedObd2RequestsCommand_).mergeFrom(value).buildPartial(); + } else { + predefinedObd2RequestsCommand_ = value; + } + onChanged(); + } else { + predefinedObd2RequestsCommandBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + return this; + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public Builder clearPredefinedObd2RequestsCommand() { + if (predefinedObd2RequestsCommandBuilder_ == null) { + predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance(); + onChanged(); + } else { + predefinedObd2RequestsCommandBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + return this; + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder getPredefinedObd2RequestsCommandBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getPredefinedObd2RequestsCommandFieldBuilder().getBuilder(); + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder getPredefinedObd2RequestsCommandOrBuilder() { + if (predefinedObd2RequestsCommandBuilder_ != null) { + return predefinedObd2RequestsCommandBuilder_.getMessageOrBuilder(); + } else { + return predefinedObd2RequestsCommand_; + } + } + /** + * <code>optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;</code> + */ + private com.google.protobuf.SingleFieldBuilder< + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder, com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder> + getPredefinedObd2RequestsCommandFieldBuilder() { + if (predefinedObd2RequestsCommandBuilder_ == null) { + predefinedObd2RequestsCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder, com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder>( + predefinedObd2RequestsCommand_, + getParentForChildren(), + isClean()); + predefinedObd2RequestsCommand_ = null; + } + return predefinedObd2RequestsCommandBuilder_; + } + // @@protoc_insertion_point(builder_scope:openxc.ControlCommand) } @@ -5454,6 +5655,402 @@ public final class BinaryMessages { // @@protoc_insertion_point(class_scope:openxc.PayloadFormatCommand) } + public interface PredefinedObd2RequestsCommandOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional bool enabled = 1; + /** + * <code>optional bool enabled = 1;</code> + */ + boolean hasEnabled(); + /** + * <code>optional bool enabled = 1;</code> + */ + boolean getEnabled(); + } + /** + * Protobuf type {@code openxc.PredefinedObd2RequestsCommand} + */ + public static final class PredefinedObd2RequestsCommand extends + com.google.protobuf.GeneratedMessage + implements PredefinedObd2RequestsCommandOrBuilder { + // Use PredefinedObd2RequestsCommand.newBuilder() to construct. + private PredefinedObd2RequestsCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private PredefinedObd2RequestsCommand(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final PredefinedObd2RequestsCommand defaultInstance; + public static PredefinedObd2RequestsCommand getDefaultInstance() { + return defaultInstance; + } + + public PredefinedObd2RequestsCommand getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private PredefinedObd2RequestsCommand( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 8: { + bitField0_ |= 0x00000001; + enabled_ = input.readBool(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.class, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder.class); + } + + public static com.google.protobuf.Parser<PredefinedObd2RequestsCommand> PARSER = + new com.google.protobuf.AbstractParser<PredefinedObd2RequestsCommand>() { + public PredefinedObd2RequestsCommand parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PredefinedObd2RequestsCommand(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser<PredefinedObd2RequestsCommand> getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional bool enabled = 1; + public static final int ENABLED_FIELD_NUMBER = 1; + private boolean enabled_; + /** + * <code>optional bool enabled = 1;</code> + */ + public boolean hasEnabled() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * <code>optional bool enabled = 1;</code> + */ + public boolean getEnabled() { + return enabled_; + } + + private void initFields() { + enabled_ = false; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBool(1, enabled_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, enabled_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code openxc.PredefinedObd2RequestsCommand} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.class, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder.class); + } + + // Construct using com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + enabled_ = false; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_descriptor; + } + + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getDefaultInstanceForType() { + return com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance(); + } + + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand build() { + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand buildPartial() { + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand result = new com.openxc.BinaryMessages.PredefinedObd2RequestsCommand(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.enabled_ = enabled_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.openxc.BinaryMessages.PredefinedObd2RequestsCommand) { + return mergeFrom((com.openxc.BinaryMessages.PredefinedObd2RequestsCommand)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand other) { + if (other == com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance()) return this; + if (other.hasEnabled()) { + setEnabled(other.getEnabled()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.openxc.BinaryMessages.PredefinedObd2RequestsCommand) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional bool enabled = 1; + private boolean enabled_ ; + /** + * <code>optional bool enabled = 1;</code> + */ + public boolean hasEnabled() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * <code>optional bool enabled = 1;</code> + */ + public boolean getEnabled() { + return enabled_; + } + /** + * <code>optional bool enabled = 1;</code> + */ + public Builder setEnabled(boolean value) { + bitField0_ |= 0x00000001; + enabled_ = value; + onChanged(); + return this; + } + /** + * <code>optional bool enabled = 1;</code> + */ + public Builder clearEnabled() { + bitField0_ = (bitField0_ & ~0x00000001); + enabled_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:openxc.PredefinedObd2RequestsCommand) + } + + static { + defaultInstance = new PredefinedObd2RequestsCommand(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:openxc.PredefinedObd2RequestsCommand) + } + public interface CommandResponseOrBuilder extends com.google.protobuf.MessageOrBuilder { @@ -10268,6 +10865,11 @@ public final class BinaryMessages { com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_openxc_PayloadFormatCommand_fieldAccessorTable; private static com.google.protobuf.Descriptors.Descriptor + internal_static_openxc_PredefinedObd2RequestsCommand_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor internal_static_openxc_CommandResponse_descriptor; private static com.google.protobuf.GeneratedMessage.FieldAccessorTable @@ -10313,7 +10915,7 @@ public final class BinaryMessages { "ANSLATED\020\002\022\016\n\nDIAGNOSTIC\020\003\022\023\n\017CONTROL_CO", "MMAND\020\004\022\024\n\020COMMAND_RESPONSE\020\005\";\n\nRawMess" + "age\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004" + - "data\030\003 \001(\014\"\310\003\n\016ControlCommand\022)\n\004type\030\001 " + + "data\030\003 \001(\014\"\270\004\n\016ControlCommand\022)\n\004type\030\001 " + "\001(\0162\033.openxc.ControlCommand.Type\022<\n\022diag" + "nostic_request\030\002 \001(\0132 .openxc.Diagnostic" + "ControlCommand\022G\n\030passthrough_mode_reque" + @@ -10321,44 +10923,49 @@ public final class BinaryMessages { "Command\022O\n acceptance_filter_bypass_comm" + "and\030\004 \001(\0132%.openxc.AcceptanceFilterBypas" + "sCommand\022<\n\026payload_format_command\030\005 \001(\013", - "2\034.openxc.PayloadFormatCommand\"u\n\004Type\022\013" + - "\n\007VERSION\020\001\022\r\n\tDEVICE_ID\020\002\022\016\n\nDIAGNOSTIC" + - "\020\003\022\017\n\013PASSTHROUGH\020\004\022\034\n\030ACCEPTANCE_FILTER" + - "_BYPASS\020\005\022\022\n\016PAYLOAD_FORMAT\020\006\"\236\001\n\030Diagno" + - "sticControlCommand\022*\n\007request\030\001 \001(\0132\031.op" + - "enxc.DiagnosticRequest\0227\n\006action\030\002 \001(\0162\'" + - ".openxc.DiagnosticControlCommand.Action\"" + - "\035\n\006Action\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\002\"=\n\035Passth" + - "roughModeControlCommand\022\013\n\003bus\030\001 \001(\005\022\017\n\007" + - "enabled\030\002 \001(\010\"<\n\035AcceptanceFilterBypassC", - "ommand\022\013\n\003bus\030\001 \001(\005\022\016\n\006bypass\030\002 \001(\010\"{\n\024P" + - "ayloadFormatCommand\022:\n\006format\030\001 \001(\0162*.op" + - "enxc.PayloadFormatCommand.PayloadFormat\"" + - "\'\n\rPayloadFormat\022\010\n\004JSON\020\001\022\014\n\010PROTOBUF\020\002" + - "\"]\n\017CommandResponse\022)\n\004type\030\001 \001(\0162\033.open" + - "xc.ControlCommand.Type\022\017\n\007message\030\002 \001(\t\022" + - "\016\n\006status\030\003 \001(\010\"\375\001\n\021DiagnosticRequest\022\013\n" + - "\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004mode\030\003" + - " \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007payload\030\005 \001(\014\022\032\n\022mu" + - "ltiple_responses\030\006 \001(\010\022\021\n\tfrequency\030\007 \001(", - "\001\022\014\n\004name\030\010 \001(\t\022;\n\014decoded_type\030\t \001(\0162%." + - "openxc.DiagnosticRequest.DecodedType\"!\n\013" + - "DecodedType\022\010\n\004NONE\020\001\022\010\n\004OBD2\020\002\"\241\001\n\022Diag" + - "nosticResponse\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_i" + - "d\030\002 \001(\r\022\014\n\004mode\030\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007su" + - "ccess\030\005 \001(\010\022\036\n\026negative_response_code\030\006 " + - "\001(\r\022\017\n\007payload\030\007 \001(\014\022\r\n\005value\030\010 \001(\001\"\242\001\n\014" + - "DynamicField\022\'\n\004type\030\001 \001(\0162\031.openxc.Dyna" + - "micField.Type\022\024\n\014string_value\030\002 \001(\t\022\025\n\rn" + - "umeric_value\030\003 \001(\001\022\025\n\rboolean_value\030\004 \001(", - "\010\"%\n\004Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL\020\003" + - "\"\367\001\n\021TranslatedMessage\022,\n\004type\030\001 \001(\0162\036.o" + - "penxc.TranslatedMessage.Type\022\014\n\004name\030\002 \001" + - "(\t\022#\n\005value\030\003 \001(\0132\024.openxc.DynamicField\022" + - "#\n\005event\030\004 \001(\0132\024.openxc.DynamicField\"\\\n\004" + - "Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL\020\003\022\022\n\016E" + - "VENTED_STRING\020\004\022\017\n\013EVENTED_NUM\020\005\022\020\n\014EVEN" + - "TED_BOOL\020\006B\034\n\ncom.openxcB\016BinaryMessages" + "2\034.openxc.PayloadFormatCommand\022O\n predef" + + "ined_obd2_requests_command\030\006 \001(\0132%.openx" + + "c.PredefinedObd2RequestsCommand\"\223\001\n\004Type" + + "\022\013\n\007VERSION\020\001\022\r\n\tDEVICE_ID\020\002\022\016\n\nDIAGNOST" + + "IC\020\003\022\017\n\013PASSTHROUGH\020\004\022\034\n\030ACCEPTANCE_FILT" + + "ER_BYPASS\020\005\022\022\n\016PAYLOAD_FORMAT\020\006\022\034\n\030PREDE" + + "FINED_OBD2_REQUESTS\020\007\"\236\001\n\030DiagnosticCont" + + "rolCommand\022*\n\007request\030\001 \001(\0132\031.openxc.Dia" + + "gnosticRequest\0227\n\006action\030\002 \001(\0162\'.openxc." + + "DiagnosticControlCommand.Action\"\035\n\006Actio", + "n\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\002\"=\n\035PassthroughMod" + + "eControlCommand\022\013\n\003bus\030\001 \001(\005\022\017\n\007enabled\030" + + "\002 \001(\010\"<\n\035AcceptanceFilterBypassCommand\022\013" + + "\n\003bus\030\001 \001(\005\022\016\n\006bypass\030\002 \001(\010\"{\n\024PayloadFo" + + "rmatCommand\022:\n\006format\030\001 \001(\0162*.openxc.Pay" + + "loadFormatCommand.PayloadFormat\"\'\n\rPaylo" + + "adFormat\022\010\n\004JSON\020\001\022\014\n\010PROTOBUF\020\002\"0\n\035Pred" + + "efinedObd2RequestsCommand\022\017\n\007enabled\030\001 \001" + + "(\010\"]\n\017CommandResponse\022)\n\004type\030\001 \001(\0162\033.op" + + "enxc.ControlCommand.Type\022\017\n\007message\030\002 \001(", + "\t\022\016\n\006status\030\003 \001(\010\"\375\001\n\021DiagnosticRequest\022" + + "\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004mode" + + "\030\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007payload\030\005 \001(\014\022\032\n\022" + + "multiple_responses\030\006 \001(\010\022\021\n\tfrequency\030\007 " + + "\001(\001\022\014\n\004name\030\010 \001(\t\022;\n\014decoded_type\030\t \001(\0162" + + "%.openxc.DiagnosticRequest.DecodedType\"!" + + "\n\013DecodedType\022\010\n\004NONE\020\001\022\010\n\004OBD2\020\002\"\241\001\n\022Di" + + "agnosticResponse\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage" + + "_id\030\002 \001(\r\022\014\n\004mode\030\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007" + + "success\030\005 \001(\010\022\036\n\026negative_response_code\030", + "\006 \001(\r\022\017\n\007payload\030\007 \001(\014\022\r\n\005value\030\010 \001(\001\"\242\001" + + "\n\014DynamicField\022\'\n\004type\030\001 \001(\0162\031.openxc.Dy" + + "namicField.Type\022\024\n\014string_value\030\002 \001(\t\022\025\n" + + "\rnumeric_value\030\003 \001(\001\022\025\n\rboolean_value\030\004 " + + "\001(\010\"%\n\004Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL" + + "\020\003\"\367\001\n\021TranslatedMessage\022,\n\004type\030\001 \001(\0162\036" + + ".openxc.TranslatedMessage.Type\022\014\n\004name\030\002" + + " \001(\t\022#\n\005value\030\003 \001(\0132\024.openxc.DynamicFiel" + + "d\022#\n\005event\030\004 \001(\0132\024.openxc.DynamicField\"\\" + + "\n\004Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL\020\003\022\022\n", + "\016EVENTED_STRING\020\004\022\017\n\013EVENTED_NUM\020\005\022\020\n\014EV" + + "ENTED_BOOL\020\006B\034\n\ncom.openxcB\016BinaryMessag" + + "es" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -10382,7 +10989,7 @@ public final class BinaryMessages { internal_static_openxc_ControlCommand_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_ControlCommand_descriptor, - new java.lang.String[] { "Type", "DiagnosticRequest", "PassthroughModeRequest", "AcceptanceFilterBypassCommand", "PayloadFormatCommand", }); + new java.lang.String[] { "Type", "DiagnosticRequest", "PassthroughModeRequest", "AcceptanceFilterBypassCommand", "PayloadFormatCommand", "PredefinedObd2RequestsCommand", }); internal_static_openxc_DiagnosticControlCommand_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_openxc_DiagnosticControlCommand_fieldAccessorTable = new @@ -10407,32 +11014,38 @@ public final class BinaryMessages { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_PayloadFormatCommand_descriptor, new java.lang.String[] { "Format", }); - internal_static_openxc_CommandResponse_descriptor = + internal_static_openxc_PredefinedObd2RequestsCommand_descriptor = getDescriptor().getMessageTypes().get(7); + internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_openxc_PredefinedObd2RequestsCommand_descriptor, + new java.lang.String[] { "Enabled", }); + internal_static_openxc_CommandResponse_descriptor = + getDescriptor().getMessageTypes().get(8); internal_static_openxc_CommandResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_CommandResponse_descriptor, new java.lang.String[] { "Type", "Message", "Status", }); internal_static_openxc_DiagnosticRequest_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(9); internal_static_openxc_DiagnosticRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_DiagnosticRequest_descriptor, new java.lang.String[] { "Bus", "MessageId", "Mode", "Pid", "Payload", "MultipleResponses", "Frequency", "Name", "DecodedType", }); internal_static_openxc_DiagnosticResponse_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(10); internal_static_openxc_DiagnosticResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_DiagnosticResponse_descriptor, new java.lang.String[] { "Bus", "MessageId", "Mode", "Pid", "Success", "NegativeResponseCode", "Payload", "Value", }); internal_static_openxc_DynamicField_descriptor = - getDescriptor().getMessageTypes().get(10); + getDescriptor().getMessageTypes().get(11); internal_static_openxc_DynamicField_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_DynamicField_descriptor, new java.lang.String[] { "Type", "StringValue", "NumericValue", "BooleanValue", }); internal_static_openxc_TranslatedMessage_descriptor = - getDescriptor().getMessageTypes().get(11); + getDescriptor().getMessageTypes().get(12); internal_static_openxc_TranslatedMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_openxc_TranslatedMessage_descriptor, diff --git a/gen/python/openxc_pb2.py b/gen/python/openxc_pb2.py index 35e63518..140bc4b9 100644 --- a/gen/python/openxc_pb2.py +++ b/gen/python/openxc_pb2.py @@ -13,7 +13,7 @@ from google.protobuf import descriptor_pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='openxc.proto', package='openxc', - serialized_pb='\n\x0copenxc.proto\x12\x06openxc\"\x94\x03\n\x0eVehicleMessage\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.VehicleMessage.Type\x12\'\n\x0braw_message\x18\x02 \x01(\x0b\x32\x12.openxc.RawMessage\x12\x35\n\x12translated_message\x18\x03 \x01(\x0b\x32\x19.openxc.TranslatedMessage\x12\x37\n\x13\x64iagnostic_response\x18\x04 \x01(\x0b\x32\x1a.openxc.DiagnosticResponse\x12/\n\x0f\x63ontrol_command\x18\x05 \x01(\x0b\x32\x16.openxc.ControlCommand\x12\x31\n\x10\x63ommand_response\x18\x06 \x01(\x0b\x32\x17.openxc.CommandResponse\"Z\n\x04Type\x12\x07\n\x03RAW\x10\x01\x12\x0e\n\nTRANSLATED\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x13\n\x0f\x43ONTROL_COMMAND\x10\x04\x12\x14\n\x10\x43OMMAND_RESPONSE\x10\x05\";\n\nRawMessage\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\xc8\x03\n\x0e\x43ontrolCommand\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12<\n\x12\x64iagnostic_request\x18\x02 \x01(\x0b\x32 .openxc.DiagnosticControlCommand\x12G\n\x18passthrough_mode_request\x18\x03 \x01(\x0b\x32%.openxc.PassthroughModeControlCommand\x12O\n acceptance_filter_bypass_command\x18\x04 \x01(\x0b\x32%.openxc.AcceptanceFilterBypassCommand\x12<\n\x16payload_format_command\x18\x05 \x01(\x0b\x32\x1c.openxc.PayloadFormatCommand\"u\n\x04Type\x12\x0b\n\x07VERSION\x10\x01\x12\r\n\tDEVICE_ID\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x0f\n\x0bPASSTHROUGH\x10\x04\x12\x1c\n\x18\x41\x43\x43\x45PTANCE_FILTER_BYPASS\x10\x05\x12\x12\n\x0ePAYLOAD_FORMAT\x10\x06\"\x9e\x01\n\x18\x44iagnosticControlCommand\x12*\n\x07request\x18\x01 \x01(\x0b\x32\x19.openxc.DiagnosticRequest\x12\x37\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\'.openxc.DiagnosticControlCommand.Action\"\x1d\n\x06\x41\x63tion\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06\x43\x41NCEL\x10\x02\"=\n\x1dPassthroughModeControlCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"<\n\x1d\x41\x63\x63\x65ptanceFilterBypassCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0e\n\x06\x62ypass\x18\x02 \x01(\x08\"{\n\x14PayloadFormatCommand\x12:\n\x06\x66ormat\x18\x01 \x01(\x0e\x32*.openxc.PayloadFormatCommand.PayloadFormat\"\'\n\rPayloadFormat\x12\x08\n\x04JSON\x10\x01\x12\x0c\n\x08PROTOBUF\x10\x02\"]\n\x0f\x43ommandResponse\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x08\"\xfd\x01\n\x11\x44iagnosticRequest\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x1a\n\x12multiple_responses\x18\x06 \x01(\x08\x12\x11\n\tfrequency\x18\x07 \x01(\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12;\n\x0c\x64\x65\x63oded_type\x18\t \x01(\x0e\x32%.openxc.DiagnosticRequest.DecodedType\"!\n\x0b\x44\x65\x63odedType\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04OBD2\x10\x02\"\xa1\x01\n\x12\x44iagnosticResponse\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07success\x18\x05 \x01(\x08\x12\x1e\n\x16negative_response_code\x18\x06 \x01(\r\x12\x0f\n\x07payload\x18\x07 \x01(\x0c\x12\r\n\x05value\x18\x08 \x01(\x01\"\xa2\x01\n\x0c\x44ynamicField\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.openxc.DynamicField.Type\x12\x14\n\x0cstring_value\x18\x02 \x01(\t\x12\x15\n\rnumeric_value\x18\x03 \x01(\x01\x12\x15\n\rboolean_value\x18\x04 \x01(\x08\"%\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\"\xf7\x01\n\x11TranslatedMessage\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.openxc.TranslatedMessage.Type\x12\x0c\n\x04name\x18\x02 \x01(\t\x12#\n\x05value\x18\x03 \x01(\x0b\x32\x14.openxc.DynamicField\x12#\n\x05\x65vent\x18\x04 \x01(\x0b\x32\x14.openxc.DynamicField\"\\\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x12\x12\n\x0e\x45VENTED_STRING\x10\x04\x12\x0f\n\x0b\x45VENTED_NUM\x10\x05\x12\x10\n\x0c\x45VENTED_BOOL\x10\x06\x42\x1c\n\ncom.openxcB\x0e\x42inaryMessages') + serialized_pb='\n\x0copenxc.proto\x12\x06openxc\"\x94\x03\n\x0eVehicleMessage\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.VehicleMessage.Type\x12\'\n\x0braw_message\x18\x02 \x01(\x0b\x32\x12.openxc.RawMessage\x12\x35\n\x12translated_message\x18\x03 \x01(\x0b\x32\x19.openxc.TranslatedMessage\x12\x37\n\x13\x64iagnostic_response\x18\x04 \x01(\x0b\x32\x1a.openxc.DiagnosticResponse\x12/\n\x0f\x63ontrol_command\x18\x05 \x01(\x0b\x32\x16.openxc.ControlCommand\x12\x31\n\x10\x63ommand_response\x18\x06 \x01(\x0b\x32\x17.openxc.CommandResponse\"Z\n\x04Type\x12\x07\n\x03RAW\x10\x01\x12\x0e\n\nTRANSLATED\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x13\n\x0f\x43ONTROL_COMMAND\x10\x04\x12\x14\n\x10\x43OMMAND_RESPONSE\x10\x05\";\n\nRawMessage\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\xb8\x04\n\x0e\x43ontrolCommand\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12<\n\x12\x64iagnostic_request\x18\x02 \x01(\x0b\x32 .openxc.DiagnosticControlCommand\x12G\n\x18passthrough_mode_request\x18\x03 \x01(\x0b\x32%.openxc.PassthroughModeControlCommand\x12O\n acceptance_filter_bypass_command\x18\x04 \x01(\x0b\x32%.openxc.AcceptanceFilterBypassCommand\x12<\n\x16payload_format_command\x18\x05 \x01(\x0b\x32\x1c.openxc.PayloadFormatCommand\x12O\n predefined_obd2_requests_command\x18\x06 \x01(\x0b\x32%.openxc.PredefinedObd2RequestsCommand\"\x93\x01\n\x04Type\x12\x0b\n\x07VERSION\x10\x01\x12\r\n\tDEVICE_ID\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x0f\n\x0bPASSTHROUGH\x10\x04\x12\x1c\n\x18\x41\x43\x43\x45PTANCE_FILTER_BYPASS\x10\x05\x12\x12\n\x0ePAYLOAD_FORMAT\x10\x06\x12\x1c\n\x18PREDEFINED_OBD2_REQUESTS\x10\x07\"\x9e\x01\n\x18\x44iagnosticControlCommand\x12*\n\x07request\x18\x01 \x01(\x0b\x32\x19.openxc.DiagnosticRequest\x12\x37\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\'.openxc.DiagnosticControlCommand.Action\"\x1d\n\x06\x41\x63tion\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06\x43\x41NCEL\x10\x02\"=\n\x1dPassthroughModeControlCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"<\n\x1d\x41\x63\x63\x65ptanceFilterBypassCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0e\n\x06\x62ypass\x18\x02 \x01(\x08\"{\n\x14PayloadFormatCommand\x12:\n\x06\x66ormat\x18\x01 \x01(\x0e\x32*.openxc.PayloadFormatCommand.PayloadFormat\"\'\n\rPayloadFormat\x12\x08\n\x04JSON\x10\x01\x12\x0c\n\x08PROTOBUF\x10\x02\"0\n\x1dPredefinedObd2RequestsCommand\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"]\n\x0f\x43ommandResponse\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x08\"\xfd\x01\n\x11\x44iagnosticRequest\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x1a\n\x12multiple_responses\x18\x06 \x01(\x08\x12\x11\n\tfrequency\x18\x07 \x01(\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12;\n\x0c\x64\x65\x63oded_type\x18\t \x01(\x0e\x32%.openxc.DiagnosticRequest.DecodedType\"!\n\x0b\x44\x65\x63odedType\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04OBD2\x10\x02\"\xa1\x01\n\x12\x44iagnosticResponse\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07success\x18\x05 \x01(\x08\x12\x1e\n\x16negative_response_code\x18\x06 \x01(\r\x12\x0f\n\x07payload\x18\x07 \x01(\x0c\x12\r\n\x05value\x18\x08 \x01(\x01\"\xa2\x01\n\x0c\x44ynamicField\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.openxc.DynamicField.Type\x12\x14\n\x0cstring_value\x18\x02 \x01(\t\x12\x15\n\rnumeric_value\x18\x03 \x01(\x01\x12\x15\n\rboolean_value\x18\x04 \x01(\x08\"%\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\"\xf7\x01\n\x11TranslatedMessage\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.openxc.TranslatedMessage.Type\x12\x0c\n\x04name\x18\x02 \x01(\t\x12#\n\x05value\x18\x03 \x01(\x0b\x32\x14.openxc.DynamicField\x12#\n\x05\x65vent\x18\x04 \x01(\x0b\x32\x14.openxc.DynamicField\"\\\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x12\x12\n\x0e\x45VENTED_STRING\x10\x04\x12\x0f\n\x0b\x45VENTED_NUM\x10\x05\x12\x10\n\x0c\x45VENTED_BOOL\x10\x06\x42\x1c\n\ncom.openxcB\x0e\x42inaryMessages') @@ -80,11 +80,15 @@ _CONTROLCOMMAND_TYPE = _descriptor.EnumDescriptor( name='PAYLOAD_FORMAT', index=5, number=6, options=None, type=None), + _descriptor.EnumValueDescriptor( + name='PREDEFINED_OBD2_REQUESTS', index=6, number=7, + options=None, + type=None), ], containing_type=None, options=None, - serialized_start=832, - serialized_end=949, + serialized_start=914, + serialized_end=1061, ) _DIAGNOSTICCONTROLCOMMAND_ACTION = _descriptor.EnumDescriptor( @@ -104,8 +108,8 @@ _DIAGNOSTICCONTROLCOMMAND_ACTION = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1081, - serialized_end=1110, + serialized_start=1193, + serialized_end=1222, ) _PAYLOADFORMATCOMMAND_PAYLOADFORMAT = _descriptor.EnumDescriptor( @@ -125,8 +129,8 @@ _PAYLOADFORMATCOMMAND_PAYLOADFORMAT = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1321, - serialized_end=1360, + serialized_start=1433, + serialized_end=1472, ) _DIAGNOSTICREQUEST_DECODEDTYPE = _descriptor.EnumDescriptor( @@ -146,8 +150,8 @@ _DIAGNOSTICREQUEST_DECODEDTYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1678, - serialized_end=1711, + serialized_start=1840, + serialized_end=1873, ) _DYNAMICFIELD_TYPE = _descriptor.EnumDescriptor( @@ -171,8 +175,8 @@ _DYNAMICFIELD_TYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=2003, - serialized_end=2040, + serialized_start=2165, + serialized_end=2202, ) _TRANSLATEDMESSAGE_TYPE = _descriptor.EnumDescriptor( @@ -208,8 +212,8 @@ _TRANSLATEDMESSAGE_TYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=2198, - serialized_end=2290, + serialized_start=2360, + serialized_end=2452, ) @@ -361,6 +365,13 @@ _CONTROLCOMMAND = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), + _descriptor.FieldDescriptor( + name='predefined_obd2_requests_command', full_name='openxc.ControlCommand.predefined_obd2_requests_command', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), ], extensions=[ ], @@ -372,7 +383,7 @@ _CONTROLCOMMAND = _descriptor.Descriptor( is_extendable=False, extension_ranges=[], serialized_start=493, - serialized_end=949, + serialized_end=1061, ) @@ -407,8 +418,8 @@ _DIAGNOSTICCONTROLCOMMAND = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=952, - serialized_end=1110, + serialized_start=1064, + serialized_end=1222, ) @@ -442,8 +453,8 @@ _PASSTHROUGHMODECONTROLCOMMAND = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1112, - serialized_end=1173, + serialized_start=1224, + serialized_end=1285, ) @@ -477,8 +488,8 @@ _ACCEPTANCEFILTERBYPASSCOMMAND = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1175, - serialized_end=1235, + serialized_start=1287, + serialized_end=1347, ) @@ -506,8 +517,36 @@ _PAYLOADFORMATCOMMAND = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1237, - serialized_end=1360, + serialized_start=1349, + serialized_end=1472, +) + + +_PREDEFINEDOBD2REQUESTSCOMMAND = _descriptor.Descriptor( + name='PredefinedObd2RequestsCommand', + full_name='openxc.PredefinedObd2RequestsCommand', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='enabled', full_name='openxc.PredefinedObd2RequestsCommand.enabled', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1474, + serialized_end=1522, ) @@ -548,8 +587,8 @@ _COMMANDRESPONSE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1362, - serialized_end=1455, + serialized_start=1524, + serialized_end=1617, ) @@ -633,8 +672,8 @@ _DIAGNOSTICREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1458, - serialized_end=1711, + serialized_start=1620, + serialized_end=1873, ) @@ -710,8 +749,8 @@ _DIAGNOSTICRESPONSE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1714, - serialized_end=1875, + serialized_start=1876, + serialized_end=2037, ) @@ -760,8 +799,8 @@ _DYNAMICFIELD = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1878, - serialized_end=2040, + serialized_start=2040, + serialized_end=2202, ) @@ -810,8 +849,8 @@ _TRANSLATEDMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2043, - serialized_end=2290, + serialized_start=2205, + serialized_end=2452, ) _VEHICLEMESSAGE.fields_by_name['type'].enum_type = _VEHICLEMESSAGE_TYPE @@ -826,6 +865,7 @@ _CONTROLCOMMAND.fields_by_name['diagnostic_request'].message_type = _DIAGNOSTICC _CONTROLCOMMAND.fields_by_name['passthrough_mode_request'].message_type = _PASSTHROUGHMODECONTROLCOMMAND _CONTROLCOMMAND.fields_by_name['acceptance_filter_bypass_command'].message_type = _ACCEPTANCEFILTERBYPASSCOMMAND _CONTROLCOMMAND.fields_by_name['payload_format_command'].message_type = _PAYLOADFORMATCOMMAND +_CONTROLCOMMAND.fields_by_name['predefined_obd2_requests_command'].message_type = _PREDEFINEDOBD2REQUESTSCOMMAND _CONTROLCOMMAND_TYPE.containing_type = _CONTROLCOMMAND; _DIAGNOSTICCONTROLCOMMAND.fields_by_name['request'].message_type = _DIAGNOSTICREQUEST _DIAGNOSTICCONTROLCOMMAND.fields_by_name['action'].enum_type = _DIAGNOSTICCONTROLCOMMAND_ACTION @@ -848,6 +888,7 @@ DESCRIPTOR.message_types_by_name['DiagnosticControlCommand'] = _DIAGNOSTICCONTRO DESCRIPTOR.message_types_by_name['PassthroughModeControlCommand'] = _PASSTHROUGHMODECONTROLCOMMAND DESCRIPTOR.message_types_by_name['AcceptanceFilterBypassCommand'] = _ACCEPTANCEFILTERBYPASSCOMMAND DESCRIPTOR.message_types_by_name['PayloadFormatCommand'] = _PAYLOADFORMATCOMMAND +DESCRIPTOR.message_types_by_name['PredefinedObd2RequestsCommand'] = _PREDEFINEDOBD2REQUESTSCOMMAND DESCRIPTOR.message_types_by_name['CommandResponse'] = _COMMANDRESPONSE DESCRIPTOR.message_types_by_name['DiagnosticRequest'] = _DIAGNOSTICREQUEST DESCRIPTOR.message_types_by_name['DiagnosticResponse'] = _DIAGNOSTICRESPONSE @@ -896,6 +937,12 @@ class PayloadFormatCommand(_message.Message): # @@protoc_insertion_point(class_scope:openxc.PayloadFormatCommand) +class PredefinedObd2RequestsCommand(_message.Message): + __metaclass__ = _reflection.GeneratedProtocolMessageType + DESCRIPTOR = _PREDEFINEDOBD2REQUESTSCOMMAND + + # @@protoc_insertion_point(class_scope:openxc.PredefinedObd2RequestsCommand) + class CommandResponse(_message.Message): __metaclass__ = _reflection.GeneratedProtocolMessageType DESCRIPTOR = _COMMANDRESPONSE diff --git a/openxc.proto b/openxc.proto index f54c0906..c2b7f7c2 100644 --- a/openxc.proto +++ b/openxc.proto @@ -29,6 +29,7 @@ message ControlCommand { PASSTHROUGH = 4; ACCEPTANCE_FILTER_BYPASS = 5; PAYLOAD_FORMAT = 6; + PREDEFINED_OBD2_REQUESTS = 7; } optional Type type = 1; @@ -36,6 +37,7 @@ message ControlCommand { optional PassthroughModeControlCommand passthrough_mode_request = 3; optional AcceptanceFilterBypassCommand acceptance_filter_bypass_command = 4; optional PayloadFormatCommand payload_format_command = 5; + optional PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6; } message DiagnosticControlCommand { @@ -64,6 +66,10 @@ message PayloadFormatCommand { optional PayloadFormat format = 1; } +message PredefinedObd2RequestsCommand { + optional bool enabled = 1; +} + message CommandResponse { optional ControlCommand.Type type = 1; optional string message = 2; |