summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Peplin <chris.peplin@rhubarbtech.com>2014-10-06 21:30:28 -0400
committerChristopher Peplin <chris.peplin@rhubarbtech.com>2014-10-06 21:30:39 -0400
commitf340bc6909f84a83dbb8a4d7ca3ba1002b31b110 (patch)
treeb4530764ad5e5b56eabf0e707b3a5ea84ff065e2
parentab2066f086fa6cec7a29c019f51933023d4d5419 (diff)
Add a field to CAN messages to explicitly set the frame format.
See openxc/vi-firmware:230.
-rw-r--r--JSON.mkd4
-rw-r--r--gen/cpp/openxc.pb10
-rw-r--r--gen/cpp/openxc.pb.c5
-rw-r--r--gen/cpp/openxc.pb.h20
-rw-r--r--gen/java/com/openxc/BinaryMessages.java282
-rw-r--r--gen/python/openxc_pb2.py105
-rw-r--r--openxc.proto5
7 files changed, 329 insertions, 102 deletions
diff --git a/JSON.mkd b/JSON.mkd
index 4704574c..804efa45 100644
--- a/JSON.mkd
+++ b/JSON.mkd
@@ -53,6 +53,10 @@ The format for a raw CAN message:
complete string must have an even number of characters. The `0x` prefix is
optional.
+**format** - (optional) explicitly set the frame format for the CAN message, one
+ of `standard` or `extended`. If the `id` is greater than `0x7ff`, the extended
+ frame format will be selected automatically.
+
## Diagnostic Messages
### Requests
diff --git a/gen/cpp/openxc.pb b/gen/cpp/openxc.pb
index eef93e61..66f214fe 100644
--- a/gen/cpp/openxc.pb
+++ b/gen/cpp/openxc.pb
@@ -1,5 +1,5 @@
-²
+Ž
openxc.protoopenxc"”
VehicleMessage)
type (2.openxc.VehicleMessage.Type'
@@ -15,13 +15,17 @@ TRANSLATED
DIAGNOSTIC
CONTROL_COMMAND
-COMMAND_RESPONSE";
+COMMAND_RESPONSE"–
RawMessage
bus (
message_id ( 
-data ( "¸
+data ( .
+format (2.openxc.RawMessage.FrameFormat")
+ FrameFormat
+STANDARD
+EXTENDED"¸
ControlCommand)
type (2.openxc.ControlCommand.Type<
diagnostic_request ( 2 .openxc.DiagnosticControlCommandG
diff --git a/gen/cpp/openxc.pb.c b/gen/cpp/openxc.pb.c
index ac31b7ec..3a5ca0ff 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 Mon Sep 29 21:53:25 2014. */
+/* Generated by nanopb-0.3.1 at Mon Oct 6 21:30:25 2014. */
#include "openxc.pb.h"
@@ -19,10 +19,11 @@ const pb_field_t openxc_VehicleMessage_fields[7] = {
PB_LAST_FIELD
};
-const pb_field_t openxc_RawMessage_fields[4] = {
+const pb_field_t openxc_RawMessage_fields[5] = {
PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, openxc_RawMessage, bus, bus, 0),
PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, openxc_RawMessage, message_id, bus, 0),
PB_FIELD( 3, BYTES , OPTIONAL, STATIC , OTHER, openxc_RawMessage, data, message_id, 0),
+ PB_FIELD( 4, ENUM , OPTIONAL, STATIC , OTHER, openxc_RawMessage, format, data, 0),
PB_LAST_FIELD
};
diff --git a/gen/cpp/openxc.pb.h b/gen/cpp/openxc.pb.h
index 4af15de9..5f11ec1b 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 Mon Sep 29 21:53:25 2014. */
+/* Generated by nanopb-0.3.1 at Mon Oct 6 21:30:25 2014. */
#ifndef PB_OPENXC_PB_H_INCLUDED
#define PB_OPENXC_PB_H_INCLUDED
@@ -22,6 +22,11 @@ typedef enum _openxc_VehicleMessage_Type {
openxc_VehicleMessage_Type_COMMAND_RESPONSE = 5
} openxc_VehicleMessage_Type;
+typedef enum _openxc_RawMessage_FrameFormat {
+ openxc_RawMessage_FrameFormat_STANDARD = 1,
+ openxc_RawMessage_FrameFormat_EXTENDED = 2
+} openxc_RawMessage_FrameFormat;
+
typedef enum _openxc_ControlCommand_Type {
openxc_ControlCommand_Type_VERSION = 1,
openxc_ControlCommand_Type_DEVICE_ID = 2,
@@ -160,6 +165,8 @@ typedef struct _openxc_RawMessage {
uint32_t message_id;
bool has_data;
openxc_RawMessage_data_t data;
+ bool has_format;
+ openxc_RawMessage_FrameFormat format;
} openxc_RawMessage;
typedef struct _openxc_DiagnosticControlCommand {
@@ -214,7 +221,7 @@ 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_RawMessage_init_default {false, 0, false, 0, false, {0, {0}}, false, (openxc_RawMessage_FrameFormat)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, 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}
@@ -227,7 +234,7 @@ typedef struct _openxc_VehicleMessage {
#define openxc_DynamicField_init_default {false, (openxc_DynamicField_Type)0, false, "", false, 0, false, 0}
#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_RawMessage_init_zero {false, 0, false, 0, false, {0, {0}}, false, (openxc_RawMessage_FrameFormat)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, 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}
@@ -274,6 +281,7 @@ typedef struct _openxc_VehicleMessage {
#define openxc_RawMessage_bus_tag 1
#define openxc_RawMessage_message_id_tag 2
#define openxc_RawMessage_data_tag 3
+#define openxc_RawMessage_format_tag 4
#define openxc_DiagnosticControlCommand_request_tag 1
#define openxc_DiagnosticControlCommand_action_tag 2
#define openxc_TranslatedMessage_type_tag 1
@@ -295,7 +303,7 @@ 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_RawMessage_fields[5];
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];
@@ -309,8 +317,8 @@ 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 716
-#define openxc_RawMessage_size 27
+#define openxc_VehicleMessage_size 722
+#define openxc_RawMessage_size 33
#define openxc_ControlCommand_size 126
#define openxc_DiagnosticControlCommand_size 76
#define openxc_PassthroughModeControlCommand_size 13
diff --git a/gen/java/com/openxc/BinaryMessages.java b/gen/java/com/openxc/BinaryMessages.java
index b3d1be43..0937ef5d 100644
--- a/gen/java/com/openxc/BinaryMessages.java
+++ b/gen/java/com/openxc/BinaryMessages.java
@@ -1514,6 +1514,16 @@ public final class BinaryMessages {
* <code>optional bytes data = 3;</code>
*/
com.google.protobuf.ByteString getData();
+
+ // optional .openxc.RawMessage.FrameFormat format = 4;
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ boolean hasFormat();
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ com.openxc.BinaryMessages.RawMessage.FrameFormat getFormat();
}
/**
* Protobuf type {@code openxc.RawMessage}
@@ -1581,6 +1591,17 @@ public final class BinaryMessages {
data_ = input.readBytes();
break;
}
+ case 32: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.RawMessage.FrameFormat value = com.openxc.BinaryMessages.RawMessage.FrameFormat.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(4, rawValue);
+ } else {
+ bitField0_ |= 0x00000008;
+ format_ = value;
+ }
+ break;
+ }
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@@ -1620,6 +1641,88 @@ public final class BinaryMessages {
return PARSER;
}
+ /**
+ * Protobuf enum {@code openxc.RawMessage.FrameFormat}
+ */
+ public enum FrameFormat
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <code>STANDARD = 1;</code>
+ */
+ STANDARD(0, 1),
+ /**
+ * <code>EXTENDED = 2;</code>
+ */
+ EXTENDED(1, 2),
+ ;
+
+ /**
+ * <code>STANDARD = 1;</code>
+ */
+ public static final int STANDARD_VALUE = 1;
+ /**
+ * <code>EXTENDED = 2;</code>
+ */
+ public static final int EXTENDED_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static FrameFormat valueOf(int value) {
+ switch (value) {
+ case 1: return STANDARD;
+ case 2: return EXTENDED;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<FrameFormat>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<FrameFormat>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<FrameFormat>() {
+ public FrameFormat findValueByNumber(int number) {
+ return FrameFormat.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.RawMessage.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final FrameFormat[] VALUES = values();
+
+ public static FrameFormat valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private FrameFormat(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.RawMessage.FrameFormat)
+ }
+
private int bitField0_;
// optional int32 bus = 1;
public static final int BUS_FIELD_NUMBER = 1;
@@ -1669,10 +1772,27 @@ public final class BinaryMessages {
return data_;
}
+ // optional .openxc.RawMessage.FrameFormat format = 4;
+ public static final int FORMAT_FIELD_NUMBER = 4;
+ private com.openxc.BinaryMessages.RawMessage.FrameFormat format_;
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ public boolean hasFormat() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ public com.openxc.BinaryMessages.RawMessage.FrameFormat getFormat() {
+ return format_;
+ }
+
private void initFields() {
bus_ = 0;
messageId_ = 0;
data_ = com.google.protobuf.ByteString.EMPTY;
+ format_ = com.openxc.BinaryMessages.RawMessage.FrameFormat.STANDARD;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@@ -1695,6 +1815,9 @@ public final class BinaryMessages {
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeBytes(3, data_);
}
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeEnum(4, format_.getNumber());
+ }
getUnknownFields().writeTo(output);
}
@@ -1716,6 +1839,10 @@ public final class BinaryMessages {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(3, data_);
}
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(4, format_.getNumber());
+ }
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@@ -1838,6 +1965,8 @@ public final class BinaryMessages {
bitField0_ = (bitField0_ & ~0x00000002);
data_ = com.google.protobuf.ByteString.EMPTY;
bitField0_ = (bitField0_ & ~0x00000004);
+ format_ = com.openxc.BinaryMessages.RawMessage.FrameFormat.STANDARD;
+ bitField0_ = (bitField0_ & ~0x00000008);
return this;
}
@@ -1878,6 +2007,10 @@ public final class BinaryMessages {
to_bitField0_ |= 0x00000004;
}
result.data_ = data_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.format_ = format_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@@ -1903,6 +2036,9 @@ public final class BinaryMessages {
if (other.hasData()) {
setData(other.getData());
}
+ if (other.hasFormat()) {
+ setFormat(other.getFormat());
+ }
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@@ -2032,6 +2168,42 @@ public final class BinaryMessages {
return this;
}
+ // optional .openxc.RawMessage.FrameFormat format = 4;
+ private com.openxc.BinaryMessages.RawMessage.FrameFormat format_ = com.openxc.BinaryMessages.RawMessage.FrameFormat.STANDARD;
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ public boolean hasFormat() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ public com.openxc.BinaryMessages.RawMessage.FrameFormat getFormat() {
+ return format_;
+ }
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ public Builder setFormat(com.openxc.BinaryMessages.RawMessage.FrameFormat value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ format_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional .openxc.RawMessage.FrameFormat format = 4;</code>
+ */
+ public Builder clearFormat() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ format_ = com.openxc.BinaryMessages.RawMessage.FrameFormat.STANDARD;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:openxc.RawMessage)
}
@@ -10913,59 +11085,61 @@ public final class BinaryMessages {
"ommand\0221\n\020command_response\030\006 \001(\0132\027.openx" +
"c.CommandResponse\"Z\n\004Type\022\007\n\003RAW\020\001\022\016\n\nTR" +
"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\"\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" +
- "st\030\003 \001(\0132%.openxc.PassthroughModeControl" +
- "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\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"
+ "MMAND\020\004\022\024\n\020COMMAND_RESPONSE\020\005\"\226\001\n\nRawMes" +
+ "sage\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n" +
+ "\004data\030\003 \001(\014\022.\n\006format\030\004 \001(\0162\036.openxc.Raw" +
+ "Message.FrameFormat\")\n\013FrameFormat\022\014\n\010ST" +
+ "ANDARD\020\001\022\014\n\010EXTENDED\020\002\"\270\004\n\016ControlComman" +
+ "d\022)\n\004type\030\001 \001(\0162\033.openxc.ControlCommand." +
+ "Type\022<\n\022diagnostic_request\030\002 \001(\0132 .openx" +
+ "c.DiagnosticControlCommand\022G\n\030passthroug" +
+ "h_mode_request\030\003 \001(\0132%.openxc.Passthroug" +
+ "hModeControlCommand\022O\n acceptance_filter",
+ "_bypass_command\030\004 \001(\0132%.openxc.Acceptanc" +
+ "eFilterBypassCommand\022<\n\026payload_format_c" +
+ "ommand\030\005 \001(\0132\034.openxc.PayloadFormatComma" +
+ "nd\022O\n predefined_obd2_requests_command\030\006" +
+ " \001(\0132%.openxc.PredefinedObd2RequestsComm" +
+ "and\"\223\001\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\030ACC" +
+ "EPTANCE_FILTER_BYPASS\020\005\022\022\n\016PAYLOAD_FORMA" +
+ "T\020\006\022\034\n\030PREDEFINED_OBD2_REQUESTS\020\007\"\236\001\n\030Di" +
+ "agnosticControlCommand\022*\n\007request\030\001 \001(\0132",
+ "\031.openxc.DiagnosticRequest\0227\n\006action\030\002 \001" +
+ "(\0162\'.openxc.DiagnosticControlCommand.Act" +
+ "ion\"\035\n\006Action\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\002\"=\n\035Pa" +
+ "ssthroughModeControlCommand\022\013\n\003bus\030\001 \001(\005" +
+ "\022\017\n\007enabled\030\002 \001(\010\"<\n\035AcceptanceFilterByp" +
+ "assCommand\022\013\n\003bus\030\001 \001(\005\022\016\n\006bypass\030\002 \001(\010\"" +
+ "{\n\024PayloadFormatCommand\022:\n\006format\030\001 \001(\0162" +
+ "*.openxc.PayloadFormatCommand.PayloadFor" +
+ "mat\"\'\n\rPayloadFormat\022\010\n\004JSON\020\001\022\014\n\010PROTOB" +
+ "UF\020\002\"0\n\035PredefinedObd2RequestsCommand\022\017\n",
+ "\007enabled\030\001 \001(\010\"]\n\017CommandResponse\022)\n\004typ" +
+ "e\030\001 \001(\0162\033.openxc.ControlCommand.Type\022\017\n\007" +
+ "message\030\002 \001(\t\022\016\n\006status\030\003 \001(\010\"\375\001\n\021Diagno" +
+ "sticRequest\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\007paylo" +
+ "ad\030\005 \001(\014\022\032\n\022multiple_responses\030\006 \001(\010\022\021\n\t" +
+ "frequency\030\007 \001(\001\022\014\n\004name\030\010 \001(\t\022;\n\014decoded" +
+ "_type\030\t \001(\0162%.openxc.DiagnosticRequest.D" +
+ "ecodedType\"!\n\013DecodedType\022\010\n\004NONE\020\001\022\010\n\004O" +
+ "BD2\020\002\"\241\001\n\022DiagnosticResponse\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\003p" +
+ "id\030\004 \001(\r\022\017\n\007success\030\005 \001(\010\022\036\n\026negative_re" +
+ "sponse_code\030\006 \001(\r\022\017\n\007payload\030\007 \001(\014\022\r\n\005va" +
+ "lue\030\010 \001(\001\"\242\001\n\014DynamicField\022\'\n\004type\030\001 \001(\016" +
+ "2\031.openxc.DynamicField.Type\022\024\n\014string_va" +
+ "lue\030\002 \001(\t\022\025\n\rnumeric_value\030\003 \001(\001\022\025\n\rbool" +
+ "ean_value\030\004 \001(\010\"%\n\004Type\022\n\n\006STRING\020\001\022\007\n\003N" +
+ "UM\020\002\022\010\n\004BOOL\020\003\"\367\001\n\021TranslatedMessage\022,\n\004" +
+ "type\030\001 \001(\0162\036.openxc.TranslatedMessage.Ty" +
+ "pe\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.Dy" +
+ "namicField\"\\\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\014EVENTED_BOOL\020\006B\034\n\ncom.openxcB\016" +
+ "BinaryMessages"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -10983,7 +11157,7 @@ public final class BinaryMessages {
internal_static_openxc_RawMessage_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_openxc_RawMessage_descriptor,
- new java.lang.String[] { "Bus", "MessageId", "Data", });
+ new java.lang.String[] { "Bus", "MessageId", "Data", "Format", });
internal_static_openxc_ControlCommand_descriptor =
getDescriptor().getMessageTypes().get(2);
internal_static_openxc_ControlCommand_fieldAccessorTable = new
diff --git a/gen/python/openxc_pb2.py b/gen/python/openxc_pb2.py
index 140bc4b9..b2721d33 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\"\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')
+ 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\"\x96\x01\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\x12.\n\x06\x66ormat\x18\x04 \x01(\x0e\x32\x1e.openxc.RawMessage.FrameFormat\")\n\x0b\x46rameFormat\x12\x0c\n\x08STANDARD\x10\x01\x12\x0c\n\x08\x45XTENDED\x10\x02\"\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')
@@ -50,6 +50,27 @@ _VEHICLEMESSAGE_TYPE = _descriptor.EnumDescriptor(
serialized_end=429,
)
+_RAWMESSAGE_FRAMEFORMAT = _descriptor.EnumDescriptor(
+ name='FrameFormat',
+ full_name='openxc.RawMessage.FrameFormat',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='STANDARD', index=0, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='EXTENDED', index=1, number=2,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=541,
+ serialized_end=582,
+)
+
_CONTROLCOMMAND_TYPE = _descriptor.EnumDescriptor(
name='Type',
full_name='openxc.ControlCommand.Type',
@@ -87,8 +108,8 @@ _CONTROLCOMMAND_TYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
- serialized_start=914,
- serialized_end=1061,
+ serialized_start=1006,
+ serialized_end=1153,
)
_DIAGNOSTICCONTROLCOMMAND_ACTION = _descriptor.EnumDescriptor(
@@ -108,8 +129,8 @@ _DIAGNOSTICCONTROLCOMMAND_ACTION = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
- serialized_start=1193,
- serialized_end=1222,
+ serialized_start=1285,
+ serialized_end=1314,
)
_PAYLOADFORMATCOMMAND_PAYLOADFORMAT = _descriptor.EnumDescriptor(
@@ -129,8 +150,8 @@ _PAYLOADFORMATCOMMAND_PAYLOADFORMAT = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
- serialized_start=1433,
- serialized_end=1472,
+ serialized_start=1525,
+ serialized_end=1564,
)
_DIAGNOSTICREQUEST_DECODEDTYPE = _descriptor.EnumDescriptor(
@@ -150,8 +171,8 @@ _DIAGNOSTICREQUEST_DECODEDTYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
- serialized_start=1840,
- serialized_end=1873,
+ serialized_start=1932,
+ serialized_end=1965,
)
_DYNAMICFIELD_TYPE = _descriptor.EnumDescriptor(
@@ -175,8 +196,8 @@ _DYNAMICFIELD_TYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
- serialized_start=2165,
- serialized_end=2202,
+ serialized_start=2257,
+ serialized_end=2294,
)
_TRANSLATEDMESSAGE_TYPE = _descriptor.EnumDescriptor(
@@ -212,8 +233,8 @@ _TRANSLATEDMESSAGE_TYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
- serialized_start=2360,
- serialized_end=2452,
+ serialized_start=2452,
+ serialized_end=2544,
)
@@ -309,17 +330,25 @@ _RAWMESSAGE = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
+ _descriptor.FieldDescriptor(
+ name='format', full_name='openxc.RawMessage.format', index=3,
+ number=4, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
+ _RAWMESSAGE_FRAMEFORMAT,
],
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=431,
- serialized_end=490,
+ serialized_start=432,
+ serialized_end=582,
)
@@ -382,8 +411,8 @@ _CONTROLCOMMAND = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=493,
- serialized_end=1061,
+ serialized_start=585,
+ serialized_end=1153,
)
@@ -418,8 +447,8 @@ _DIAGNOSTICCONTROLCOMMAND = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1064,
- serialized_end=1222,
+ serialized_start=1156,
+ serialized_end=1314,
)
@@ -453,8 +482,8 @@ _PASSTHROUGHMODECONTROLCOMMAND = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1224,
- serialized_end=1285,
+ serialized_start=1316,
+ serialized_end=1377,
)
@@ -488,8 +517,8 @@ _ACCEPTANCEFILTERBYPASSCOMMAND = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1287,
- serialized_end=1347,
+ serialized_start=1379,
+ serialized_end=1439,
)
@@ -517,8 +546,8 @@ _PAYLOADFORMATCOMMAND = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1349,
- serialized_end=1472,
+ serialized_start=1441,
+ serialized_end=1564,
)
@@ -545,8 +574,8 @@ _PREDEFINEDOBD2REQUESTSCOMMAND = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1474,
- serialized_end=1522,
+ serialized_start=1566,
+ serialized_end=1614,
)
@@ -587,8 +616,8 @@ _COMMANDRESPONSE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1524,
- serialized_end=1617,
+ serialized_start=1616,
+ serialized_end=1709,
)
@@ -672,8 +701,8 @@ _DIAGNOSTICREQUEST = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1620,
- serialized_end=1873,
+ serialized_start=1712,
+ serialized_end=1965,
)
@@ -749,8 +778,8 @@ _DIAGNOSTICRESPONSE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1876,
- serialized_end=2037,
+ serialized_start=1968,
+ serialized_end=2129,
)
@@ -799,8 +828,8 @@ _DYNAMICFIELD = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=2040,
- serialized_end=2202,
+ serialized_start=2132,
+ serialized_end=2294,
)
@@ -849,8 +878,8 @@ _TRANSLATEDMESSAGE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=2205,
- serialized_end=2452,
+ serialized_start=2297,
+ serialized_end=2544,
)
_VEHICLEMESSAGE.fields_by_name['type'].enum_type = _VEHICLEMESSAGE_TYPE
@@ -860,6 +889,8 @@ _VEHICLEMESSAGE.fields_by_name['diagnostic_response'].message_type = _DIAGNOSTIC
_VEHICLEMESSAGE.fields_by_name['control_command'].message_type = _CONTROLCOMMAND
_VEHICLEMESSAGE.fields_by_name['command_response'].message_type = _COMMANDRESPONSE
_VEHICLEMESSAGE_TYPE.containing_type = _VEHICLEMESSAGE;
+_RAWMESSAGE.fields_by_name['format'].enum_type = _RAWMESSAGE_FRAMEFORMAT
+_RAWMESSAGE_FRAMEFORMAT.containing_type = _RAWMESSAGE;
_CONTROLCOMMAND.fields_by_name['type'].enum_type = _CONTROLCOMMAND_TYPE
_CONTROLCOMMAND.fields_by_name['diagnostic_request'].message_type = _DIAGNOSTICCONTROLCOMMAND
_CONTROLCOMMAND.fields_by_name['passthrough_mode_request'].message_type = _PASSTHROUGHMODECONTROLCOMMAND
diff --git a/openxc.proto b/openxc.proto
index c2b7f7c2..3b23be5c 100644
--- a/openxc.proto
+++ b/openxc.proto
@@ -16,9 +16,14 @@ message VehicleMessage {
}
message RawMessage {
+ enum FrameFormat {
+ STANDARD = 1;
+ EXTENDED = 2;
+ }
optional int32 bus = 1;
optional uint32 message_id = 2;
optional bytes data = 3;
+ optional FrameFormat format = 4;
}
message ControlCommand {