Simplify passthrough command to just a boolean.
authorChristopher Peplin <chris.peplin@rhubarbtech.com>
Sun, 21 Sep 2014 02:56:37 +0000 (22:56 -0400)
committerChristopher Peplin <chris.peplin@rhubarbtech.com>
Sun, 21 Sep 2014 02:56:37 +0000 (22:56 -0400)
README.md
gen/cpp/openxc.pb
gen/cpp/openxc.pb.c
gen/cpp/openxc.pb.h
gen/java/com/openxc/BinaryMessages.java
gen/python/openxc_pb2.py
openxc.proto

index feb40c4..258fb53 100644 (file)
--- a/README.md
+++ b/README.md
@@ -281,22 +281,18 @@ MAC address of an included Bluetooth module) into into the outgoing data stream.
 
 #### Passthrough CAN Mode
 
-The `passthrough` command controls the passthrough mode for each of the CAN
-buses. There are three passthrough modes:
-
-* `off` - Only the specified simple vehicle messages are processed and output
-  from the VI.
-* `filtered` - If the CAN acceptance filter is not otherwise disabled, only the
-  pre-defined CAN messages (i.e. those compiled with the firmware) will be
-  output in the low-level CAN format from VI.
-* `unfiltered` - All received CAN messages will be passed through from the bus
-  to the VI's output.
+The `passthrough` command controls whether low-level CAN messages are passed
+through from the CAN bus through the VI to the output stream. If the CAN
+acceptance filter is in bypass mode and passthrough is enabled, the output
+stream will include all received CAN messages. If the bypass filter is enabled,
+only those CAN messages that have been pre-defined in the firmware are
+forwarded.
 
 **Request**
 
     { "command": "passthrough"
       "bus": 1,
-      "mode":
+      "enabled": true
     }
 
 **Response**
index aa30236..90fe877 100644 (file)
@@ -1,5 +1,5 @@
 
-\83\10
+\94\ f
 \fopenxc.proto\12\ 6openxc"\94\ 3
 \ eVehicleMessage\12)
 \ 4type\18\ 1 \ 1(\ e2\e.openxc.VehicleMessage.Type\12'
@@ -38,15 +38,10 @@ DIAGNOSTIC\10\ 3\12\ f
 \ 6Action\12\a
 \ 3ADD\10\ 1\12
 
-\ 6CANCEL\10\ 2"«\ 1
+\ 6CANCEL\10\ 2"=
 \1dPassthroughModeControlCommand\12\v
-\ 3bus\18\ 1 \ 1(\ 5\12C
-\ 4mode\18\ 2 \ 1(\ e25.openxc.PassthroughModeControlCommand.PassthroughMode"8
-\ fPassthroughMode\12\a
-\ 3OFF\10\ 1\12\f
-\bFILTERED\10\ 2\12\ e
-
-UNFILTERED\10\ 3"]
+\ 3bus\18\ 1 \ 1(\ 5\12\ f
+\aenabled\18\ 2 \ 1(\b"]
 \ fCommandResponse\12)
 \ 4type\18\ 1 \ 1(\ e2\e.openxc.ControlCommand.Type\12\ f
 \amessage\18\ 2 \ 1(  \12\ e
index 2ca5768..f11ad59 100644 (file)
@@ -1,5 +1,5 @@
 /* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.1 at Sat Sep 20 21:59:09 2014. */
+/* Generated by nanopb-0.3.1 at Sat Sep 20 22:56:34 2014. */
 
 #include "openxc.pb.h"
 
@@ -41,7 +41,7 @@ const pb_field_t openxc_DiagnosticControlCommand_fields[3] = {
 
 const pb_field_t openxc_PassthroughModeControlCommand_fields[3] = {
     PB_FIELD(  1, INT32   , OPTIONAL, STATIC  , FIRST, openxc_PassthroughModeControlCommand, bus, bus, 0),
-    PB_FIELD(  2, ENUM    , OPTIONAL, STATIC  , OTHER, openxc_PassthroughModeControlCommand, mode, bus, 0),
+    PB_FIELD(  2, BOOL    , OPTIONAL, STATIC  , OTHER, openxc_PassthroughModeControlCommand, enabled, bus, 0),
     PB_LAST_FIELD
 };
 
index 555a672..4c86b88 100644 (file)
@@ -1,5 +1,5 @@
 /* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.1 at Sat Sep 20 21:59:09 2014. */
+/* Generated by nanopb-0.3.1 at Sat Sep 20 22:56:34 2014. */
 
 #ifndef PB_OPENXC_PB_H_INCLUDED
 #define PB_OPENXC_PB_H_INCLUDED
@@ -34,12 +34,6 @@ typedef enum _openxc_DiagnosticControlCommand_Action {
     openxc_DiagnosticControlCommand_Action_CANCEL = 2
 } openxc_DiagnosticControlCommand_Action;
 
-typedef enum _openxc_PassthroughModeControlCommand_PassthroughMode {
-    openxc_PassthroughModeControlCommand_PassthroughMode_OFF = 1,
-    openxc_PassthroughModeControlCommand_PassthroughMode_FILTERED = 2,
-    openxc_PassthroughModeControlCommand_PassthroughMode_UNFILTERED = 3
-} openxc_PassthroughModeControlCommand_PassthroughMode;
-
 typedef enum _openxc_DiagnosticRequest_DecodedType {
     openxc_DiagnosticRequest_DecodedType_NONE = 1,
     openxc_DiagnosticRequest_DecodedType_OBD2 = 2
@@ -128,8 +122,8 @@ typedef struct _openxc_DynamicField {
 typedef struct _openxc_PassthroughModeControlCommand {
     bool has_bus;
     int32_t bus;
-    bool has_mode;
-    openxc_PassthroughModeControlCommand_PassthroughMode mode;
+    bool has_enabled;
+    bool enabled;
 } openxc_PassthroughModeControlCommand;
 
 typedef PB_BYTES_ARRAY_T(8) openxc_RawMessage_data_t;
@@ -192,7 +186,7 @@ typedef struct _openxc_VehicleMessage {
 #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}
 #define openxc_DiagnosticControlCommand_init_default {false, openxc_DiagnosticRequest_init_default, false, (openxc_DiagnosticControlCommand_Action)0}
-#define openxc_PassthroughModeControlCommand_init_default {false, 0, false, (openxc_PassthroughModeControlCommand_PassthroughMode)0}
+#define openxc_PassthroughModeControlCommand_init_default {false, 0, 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}
@@ -202,7 +196,7 @@ typedef struct _openxc_VehicleMessage {
 #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}
 #define openxc_DiagnosticControlCommand_init_zero {false, openxc_DiagnosticRequest_init_zero, false, (openxc_DiagnosticControlCommand_Action)0}
-#define openxc_PassthroughModeControlCommand_init_zero {false, 0, false, (openxc_PassthroughModeControlCommand_PassthroughMode)0}
+#define openxc_PassthroughModeControlCommand_init_zero {false, 0, 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}
@@ -235,7 +229,7 @@ typedef struct _openxc_VehicleMessage {
 #define openxc_DynamicField_numeric_value_tag    3
 #define openxc_DynamicField_boolean_value_tag    4
 #define openxc_PassthroughModeControlCommand_bus_tag 1
-#define openxc_PassthroughModeControlCommand_mode_tag 2
+#define openxc_PassthroughModeControlCommand_enabled_tag 2
 #define openxc_RawMessage_bus_tag                1
 #define openxc_RawMessage_message_id_tag         2
 #define openxc_RawMessage_data_tag               3
@@ -268,11 +262,11 @@ 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               693
+#define openxc_VehicleMessage_size               689
 #define openxc_RawMessage_size                   27
-#define openxc_ControlCommand_size               103
+#define openxc_ControlCommand_size               99
 #define openxc_DiagnosticControlCommand_size     76
-#define openxc_PassthroughModeControlCommand_size 17
+#define openxc_PassthroughModeControlCommand_size 13
 #define openxc_CommandResponse_size              139
 #define openxc_DiagnosticRequest_size            68
 #define openxc_DiagnosticResponse_size           56
index 31e3249..4d83a4d 100644 (file)
@@ -3624,15 +3624,15 @@ public final class BinaryMessages {
      */
     int getBus();
 
-    // optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;
+    // optional bool enabled = 2;
     /**
-     * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+     * <code>optional bool enabled = 2;</code>
      */
-    boolean hasMode();
+    boolean hasEnabled();
     /**
-     * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+     * <code>optional bool enabled = 2;</code>
      */
-    com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode getMode();
+    boolean getEnabled();
   }
   /**
    * Protobuf type {@code openxc.PassthroughModeControlCommand}
@@ -3691,14 +3691,8 @@ public final class BinaryMessages {
               break;
             }
             case 16: {
-              int rawValue = input.readEnum();
-              com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode value = com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode.valueOf(rawValue);
-              if (value == null) {
-                unknownFields.mergeVarintField(2, rawValue);
-              } else {
-                bitField0_ |= 0x00000002;
-                mode_ = value;
-              }
+              bitField0_ |= 0x00000002;
+              enabled_ = input.readBool();
               break;
             }
           }
@@ -3740,97 +3734,6 @@ public final class BinaryMessages {
       return PARSER;
     }
 
-    /**
-     * Protobuf enum {@code openxc.PassthroughModeControlCommand.PassthroughMode}
-     */
-    public enum PassthroughMode
-        implements com.google.protobuf.ProtocolMessageEnum {
-      /**
-       * <code>OFF = 1;</code>
-       */
-      OFF(0, 1),
-      /**
-       * <code>FILTERED = 2;</code>
-       */
-      FILTERED(1, 2),
-      /**
-       * <code>UNFILTERED = 3;</code>
-       */
-      UNFILTERED(2, 3),
-      ;
-
-      /**
-       * <code>OFF = 1;</code>
-       */
-      public static final int OFF_VALUE = 1;
-      /**
-       * <code>FILTERED = 2;</code>
-       */
-      public static final int FILTERED_VALUE = 2;
-      /**
-       * <code>UNFILTERED = 3;</code>
-       */
-      public static final int UNFILTERED_VALUE = 3;
-
-
-      public final int getNumber() { return value; }
-
-      public static PassthroughMode valueOf(int value) {
-        switch (value) {
-          case 1: return OFF;
-          case 2: return FILTERED;
-          case 3: return UNFILTERED;
-          default: return null;
-        }
-      }
-
-      public static com.google.protobuf.Internal.EnumLiteMap<PassthroughMode>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static com.google.protobuf.Internal.EnumLiteMap<PassthroughMode>
-          internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<PassthroughMode>() {
-              public PassthroughMode findValueByNumber(int number) {
-                return PassthroughMode.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.PassthroughModeControlCommand.getDescriptor().getEnumTypes().get(0);
-      }
-
-      private static final PassthroughMode[] VALUES = values();
-
-      public static PassthroughMode 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 PassthroughMode(int index, int value) {
-        this.index = index;
-        this.value = value;
-      }
-
-      // @@protoc_insertion_point(enum_scope:openxc.PassthroughModeControlCommand.PassthroughMode)
-    }
-
     private int bitField0_;
     // optional int32 bus = 1;
     public static final int BUS_FIELD_NUMBER = 1;
@@ -3848,25 +3751,25 @@ public final class BinaryMessages {
       return bus_;
     }
 
-    // optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;
-    public static final int MODE_FIELD_NUMBER = 2;
-    private com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode mode_;
+    // optional bool enabled = 2;
+    public static final int ENABLED_FIELD_NUMBER = 2;
+    private boolean enabled_;
     /**
-     * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+     * <code>optional bool enabled = 2;</code>
      */
-    public boolean hasMode() {
+    public boolean hasEnabled() {
       return ((bitField0_ & 0x00000002) == 0x00000002);
     }
     /**
-     * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+     * <code>optional bool enabled = 2;</code>
      */
-    public com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode getMode() {
-      return mode_;
+    public boolean getEnabled() {
+      return enabled_;
     }
 
     private void initFields() {
       bus_ = 0;
-      mode_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode.OFF;
+      enabled_ = false;
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -3884,7 +3787,7 @@ public final class BinaryMessages {
         output.writeInt32(1, bus_);
       }
       if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeEnum(2, mode_.getNumber());
+        output.writeBool(2, enabled_);
       }
       getUnknownFields().writeTo(output);
     }
@@ -3901,7 +3804,7 @@ public final class BinaryMessages {
       }
       if (((bitField0_ & 0x00000002) == 0x00000002)) {
         size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(2, mode_.getNumber());
+          .computeBoolSize(2, enabled_);
       }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
@@ -4021,7 +3924,7 @@ public final class BinaryMessages {
         super.clear();
         bus_ = 0;
         bitField0_ = (bitField0_ & ~0x00000001);
-        mode_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode.OFF;
+        enabled_ = false;
         bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
@@ -4058,7 +3961,7 @@ public final class BinaryMessages {
         if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
           to_bitField0_ |= 0x00000002;
         }
-        result.mode_ = mode_;
+        result.enabled_ = enabled_;
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -4078,8 +3981,8 @@ public final class BinaryMessages {
         if (other.hasBus()) {
           setBus(other.getBus());
         }
-        if (other.hasMode()) {
-          setMode(other.getMode());
+        if (other.hasEnabled()) {
+          setEnabled(other.getEnabled());
         }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
@@ -4141,38 +4044,35 @@ public final class BinaryMessages {
         return this;
       }
 
-      // optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;
-      private com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode mode_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode.OFF;
+      // optional bool enabled = 2;
+      private boolean enabled_ ;
       /**
-       * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+       * <code>optional bool enabled = 2;</code>
        */
-      public boolean hasMode() {
+      public boolean hasEnabled() {
         return ((bitField0_ & 0x00000002) == 0x00000002);
       }
       /**
-       * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+       * <code>optional bool enabled = 2;</code>
        */
-      public com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode getMode() {
-        return mode_;
+      public boolean getEnabled() {
+        return enabled_;
       }
       /**
-       * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+       * <code>optional bool enabled = 2;</code>
        */
-      public Builder setMode(com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
+      public Builder setEnabled(boolean value) {
         bitField0_ |= 0x00000002;
-        mode_ = value;
+        enabled_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>optional .openxc.PassthroughModeControlCommand.PassthroughMode mode = 2;</code>
+       * <code>optional bool enabled = 2;</code>
        */
-      public Builder clearMode() {
+      public Builder clearEnabled() {
         bitField0_ = (bitField0_ & ~0x00000002);
-        mode_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.PassthroughMode.OFF;
+        enabled_ = false;
         onChanged();
         return this;
       }
@@ -9047,36 +8947,33 @@ public final class BinaryMessages {
       "\030DiagnosticControlCommand\022*\n\007request\030\001 \001",
       "(\0132\031.openxc.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\"\253\001" +
-      "\n\035PassthroughModeControlCommand\022\013\n\003bus\030\001" +
-      " \001(\005\022C\n\004mode\030\002 \001(\01625.openxc.PassthroughM" +
-      "odeControlCommand.PassthroughMode\"8\n\017Pas" +
-      "sthroughMode\022\007\n\003OFF\020\001\022\014\n\010FILTERED\020\002\022\016\n\nU" +
-      "NFILTERED\020\003\"]\n\017CommandResponse\022)\n\004type\030\001" +
-      " \001(\0162\033.openxc.ControlCommand.Type\022\017\n\007mes" +
-      "sage\030\002 \001(\t\022\016\n\006status\030\003 \001(\010\"\375\001\n\021Diagnosti",
-      "cRequest\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\022multiple_responses\030\006 \001(\010\022\021\n\tfre" +
-      "quency\030\007 \001(\001\022\014\n\004name\030\010 \001(\t\022;\n\014decoded_ty" +
-      "pe\030\t \001(\0162%.openxc.DiagnosticRequest.Deco" +
-      "dedType\"!\n\013DecodedType\022\010\n\004NONE\020\001\022\010\n\004OBD2" +
-      "\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\003pid\030" +
-      "\004 \001(\r\022\017\n\007success\030\005 \001(\010\022\036\n\026negative_respo" +
-      "nse_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.DynamicField.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\004typ" +
-      "e\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.Dy" +
-      "namicField\022#\n\005event\030\004 \001(\0132\024.openxc.Dynam" +
-      "icField\"\\\n\004Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004" +
-      "BOOL\020\003\022\022\n\016EVENTED_STRING\020\004\022\017\n\013EVENTED_NU",
-      "M\020\005\022\020\n\014EVENTED_BOOL\020\006B\034\n\ncom.openxcB\016Bin" +
-      "aryMessages"
+      "Action\"\035\n\006Action\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\002\"=\n" +
+      "\035PassthroughModeControlCommand\022\013\n\003bus\030\001 " +
+      "\001(\005\022\017\n\007enabled\030\002 \001(\010\"]\n\017CommandResponse\022" +
+      ")\n\004type\030\001 \001(\0162\033.openxc.ControlCommand.Ty" +
+      "pe\022\017\n\007message\030\002 \001(\t\022\016\n\006status\030\003 \001(\010\"\375\001\n\021" +
+      "DiagnosticRequest\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessag" +
+      "e_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\022multiple_responses\030\006 \001",
+      "(\010\022\021\n\tfrequency\030\007 \001(\001\022\014\n\004name\030\010 \001(\t\022;\n\014d" +
+      "ecoded_type\030\t \001(\0162%.openxc.DiagnosticReq" +
+      "uest.DecodedType\"!\n\013DecodedType\022\010\n\004NONE\020" +
+      "\001\022\010\n\004OBD2\020\002\"\241\001\n\022DiagnosticResponse\022\013\n\003bu" +
+      "s\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\007success\030\005 \001(\010\022\036\n\026negat" +
+      "ive_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.DynamicField.Type\022\024\n\014str" +
+      "ing_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\021TranslatedMessa" +
+      "ge\022,\n\004type\030\001 \001(\0162\036.openxc.TranslatedMess" +
+      "age.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.ope" +
+      "nxc.DynamicField\"\\\n\004Type\022\n\n\006STRING\020\001\022\007\n\003" +
+      "NUM\020\002\022\010\n\004BOOL\020\003\022\022\n\016EVENTED_STRING\020\004\022\017\n\013E" +
+      "VENTED_NUM\020\005\022\020\n\014EVENTED_BOOL\020\006B\034\n\ncom.op" +
+      "enxcB\016BinaryMessages"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
       new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -9112,7 +9009,7 @@ public final class BinaryMessages {
           internal_static_openxc_PassthroughModeControlCommand_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_PassthroughModeControlCommand_descriptor,
-              new java.lang.String[] { "Bus", "Mode", });
+              new java.lang.String[] { "Bus", "Enabled", });
           internal_static_openxc_CommandResponse_descriptor =
             getDescriptor().getMessageTypes().get(5);
           internal_static_openxc_CommandResponse_fieldAccessorTable = new
index 38be6b4..d5f50ad 100644 (file)
@@ -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\"\x87\x02\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\"C\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\"\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\"\xab\x01\n\x1dPassthroughModeControlCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x43\n\x04mode\x18\x02 \x01(\x0e\x32\x35.openxc.PassthroughModeControlCommand.PassthroughMode\"8\n\x0fPassthroughMode\x12\x07\n\x03OFF\x10\x01\x12\x0c\n\x08\x46ILTERED\x10\x02\x12\x0e\n\nUNFILTERED\x10\x03\"]\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\"\x87\x02\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\"C\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\"\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\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')
 
 
 
@@ -100,31 +100,6 @@ _DIAGNOSTICCONTROLCOMMAND_ACTION = _descriptor.EnumDescriptor(
   serialized_end=917,
 )
 
-_PASSTHROUGHMODECONTROLCOMMAND_PASSTHROUGHMODE = _descriptor.EnumDescriptor(
-  name='PassthroughMode',
-  full_name='openxc.PassthroughModeControlCommand.PassthroughMode',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='OFF', index=0, number=1,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='FILTERED', index=1, number=2,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='UNFILTERED', index=2, number=3,
-      options=None,
-      type=None),
-  ],
-  containing_type=None,
-  options=None,
-  serialized_start=1035,
-  serialized_end=1091,
-)
-
 _DIAGNOSTICREQUEST_DECODEDTYPE = _descriptor.EnumDescriptor(
   name='DecodedType',
   full_name='openxc.DiagnosticRequest.DecodedType',
@@ -142,8 +117,8 @@ _DIAGNOSTICREQUEST_DECODEDTYPE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=1409,
-  serialized_end=1442,
+  serialized_start=1298,
+  serialized_end=1331,
 )
 
 _DYNAMICFIELD_TYPE = _descriptor.EnumDescriptor(
@@ -167,8 +142,8 @@ _DYNAMICFIELD_TYPE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=1734,
-  serialized_end=1771,
+  serialized_start=1623,
+  serialized_end=1660,
 )
 
 _TRANSLATEDMESSAGE_TYPE = _descriptor.EnumDescriptor(
@@ -204,8 +179,8 @@ _TRANSLATEDMESSAGE_TYPE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=1929,
-  serialized_end=2021,
+  serialized_start=1818,
+  serialized_end=1910,
 )
 
 
@@ -409,9 +384,9 @@ _PASSTHROUGHMODECONTROLCOMMAND = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       options=None),
     _descriptor.FieldDescriptor(
-      name='mode', full_name='openxc.PassthroughModeControlCommand.mode', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=1,
+      name='enabled', full_name='openxc.PassthroughModeControlCommand.enabled', index=1,
+      number=2, 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),
@@ -420,13 +395,12 @@ _PASSTHROUGHMODECONTROLCOMMAND = _descriptor.Descriptor(
   ],
   nested_types=[],
   enum_types=[
-    _PASSTHROUGHMODECONTROLCOMMAND_PASSTHROUGHMODE,
   ],
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=920,
-  serialized_end=1091,
+  serialized_start=919,
+  serialized_end=980,
 )
 
 
@@ -467,8 +441,8 @@ _COMMANDRESPONSE = _descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1093,
-  serialized_end=1186,
+  serialized_start=982,
+  serialized_end=1075,
 )
 
 
@@ -552,8 +526,8 @@ _DIAGNOSTICREQUEST = _descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1189,
-  serialized_end=1442,
+  serialized_start=1078,
+  serialized_end=1331,
 )
 
 
@@ -629,8 +603,8 @@ _DIAGNOSTICRESPONSE = _descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1445,
-  serialized_end=1606,
+  serialized_start=1334,
+  serialized_end=1495,
 )
 
 
@@ -679,8 +653,8 @@ _DYNAMICFIELD = _descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1609,
-  serialized_end=1771,
+  serialized_start=1498,
+  serialized_end=1660,
 )
 
 
@@ -729,8 +703,8 @@ _TRANSLATEDMESSAGE = _descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1774,
-  serialized_end=2021,
+  serialized_start=1663,
+  serialized_end=1910,
 )
 
 _VEHICLEMESSAGE.fields_by_name['type'].enum_type = _VEHICLEMESSAGE_TYPE
@@ -747,8 +721,6 @@ _CONTROLCOMMAND_TYPE.containing_type = _CONTROLCOMMAND;
 _DIAGNOSTICCONTROLCOMMAND.fields_by_name['request'].message_type = _DIAGNOSTICREQUEST
 _DIAGNOSTICCONTROLCOMMAND.fields_by_name['action'].enum_type = _DIAGNOSTICCONTROLCOMMAND_ACTION
 _DIAGNOSTICCONTROLCOMMAND_ACTION.containing_type = _DIAGNOSTICCONTROLCOMMAND;
-_PASSTHROUGHMODECONTROLCOMMAND.fields_by_name['mode'].enum_type = _PASSTHROUGHMODECONTROLCOMMAND_PASSTHROUGHMODE
-_PASSTHROUGHMODECONTROLCOMMAND_PASSTHROUGHMODE.containing_type = _PASSTHROUGHMODECONTROLCOMMAND;
 _COMMANDRESPONSE.fields_by_name['type'].enum_type = _CONTROLCOMMAND_TYPE
 _DIAGNOSTICREQUEST.fields_by_name['decoded_type'].enum_type = _DIAGNOSTICREQUEST_DECODEDTYPE
 _DIAGNOSTICREQUEST_DECODEDTYPE.containing_type = _DIAGNOSTICREQUEST;
index fd61b6c..1be1df8 100644 (file)
@@ -42,14 +42,8 @@ message DiagnosticControlCommand {
 }
 
 message PassthroughModeControlCommand {
-    enum PassthroughMode {
-        OFF = 1;
-        FILTERED = 2;
-        UNFILTERED = 3;
-    }
-
     optional int32 bus = 1;
-    optional PassthroughMode mode = 2;
+    optional bool enabled = 2;
 }
 
 message CommandResponse {