Remove 'update' feature of diag request commands.
[apps/agl-service-can-low-level.git] / gen / java / com / openxc / BinaryMessages.java
index 922b8c5..a30e70f 100644 (file)
@@ -3355,45 +3355,60 @@ public final class BinaryMessages {
      */
     com.google.protobuf.ByteString getPayload();
 
-    // optional bool parse_payload = 6;
+    // optional bool multiple_responses = 6;
     /**
-     * <code>optional bool parse_payload = 6;</code>
+     * <code>optional bool multiple_responses = 6;</code>
      */
-    boolean hasParsePayload();
+    boolean hasMultipleResponses();
     /**
-     * <code>optional bool parse_payload = 6;</code>
+     * <code>optional bool multiple_responses = 6;</code>
      */
-    boolean getParsePayload();
+    boolean getMultipleResponses();
 
-    // optional double factor = 7;
+    // optional double frequency = 7;
     /**
-     * <code>optional double factor = 7;</code>
+     * <code>optional double frequency = 7;</code>
      */
-    boolean hasFactor();
+    boolean hasFrequency();
     /**
-     * <code>optional double factor = 7;</code>
+     * <code>optional double frequency = 7;</code>
      */
-    double getFactor();
+    double getFrequency();
 
-    // optional double offset = 8;
+    // optional string name = 8;
+    /**
+     * <code>optional string name = 8;</code>
+     */
+    boolean hasName();
     /**
-     * <code>optional double offset = 8;</code>
+     * <code>optional string name = 8;</code>
      */
-    boolean hasOffset();
+    java.lang.String getName();
     /**
-     * <code>optional double offset = 8;</code>
+     * <code>optional string name = 8;</code>
      */
-    double getOffset();
+    com.google.protobuf.ByteString
+        getNameBytes();
 
-    // optional double frequency = 9;
+    // optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;
     /**
-     * <code>optional double frequency = 9;</code>
+     * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
      */
-    boolean hasFrequency();
+    boolean hasDecodedType();
     /**
-     * <code>optional double frequency = 9;</code>
+     * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
      */
-    double getFrequency();
+    com.openxc.BinaryMessages.DiagnosticRequest.DecodedType getDecodedType();
+
+    // optional .openxc.DiagnosticRequest.Action action = 10;
+    /**
+     * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+     */
+    boolean hasAction();
+    /**
+     * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+     */
+    com.openxc.BinaryMessages.DiagnosticRequest.Action getAction();
   }
   /**
    * Protobuf type {@code openxc.DiagnosticRequest}
@@ -3473,22 +3488,39 @@ public final class BinaryMessages {
             }
             case 48: {
               bitField0_ |= 0x00000020;
-              parsePayload_ = input.readBool();
+              multipleResponses_ = input.readBool();
               break;
             }
             case 57: {
               bitField0_ |= 0x00000040;
-              factor_ = input.readDouble();
+              frequency_ = input.readDouble();
               break;
             }
-            case 65: {
+            case 66: {
               bitField0_ |= 0x00000080;
-              offset_ = input.readDouble();
+              name_ = input.readBytes();
               break;
             }
-            case 73: {
-              bitField0_ |= 0x00000100;
-              frequency_ = input.readDouble();
+            case 72: {
+              int rawValue = input.readEnum();
+              com.openxc.BinaryMessages.DiagnosticRequest.DecodedType value = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(9, rawValue);
+              } else {
+                bitField0_ |= 0x00000100;
+                decodedType_ = value;
+              }
+              break;
+            }
+            case 80: {
+              int rawValue = input.readEnum();
+              com.openxc.BinaryMessages.DiagnosticRequest.Action value = com.openxc.BinaryMessages.DiagnosticRequest.Action.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(10, rawValue);
+              } else {
+                bitField0_ |= 0x00000200;
+                action_ = value;
+              }
               break;
             }
           }
@@ -3530,6 +3562,170 @@ public final class BinaryMessages {
       return PARSER;
     }
 
+    /**
+     * Protobuf enum {@code openxc.DiagnosticRequest.DecodedType}
+     */
+    public enum DecodedType
+        implements com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>NONE = 1;</code>
+       */
+      NONE(0, 1),
+      /**
+       * <code>OBD2 = 2;</code>
+       */
+      OBD2(1, 2),
+      ;
+
+      /**
+       * <code>NONE = 1;</code>
+       */
+      public static final int NONE_VALUE = 1;
+      /**
+       * <code>OBD2 = 2;</code>
+       */
+      public static final int OBD2_VALUE = 2;
+
+
+      public final int getNumber() { return value; }
+
+      public static DecodedType valueOf(int value) {
+        switch (value) {
+          case 1: return NONE;
+          case 2: return OBD2;
+          default: return null;
+        }
+      }
+
+      public static com.google.protobuf.Internal.EnumLiteMap<DecodedType>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static com.google.protobuf.Internal.EnumLiteMap<DecodedType>
+          internalValueMap =
+            new com.google.protobuf.Internal.EnumLiteMap<DecodedType>() {
+              public DecodedType findValueByNumber(int number) {
+                return DecodedType.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.DiagnosticRequest.getDescriptor().getEnumTypes().get(0);
+      }
+
+      private static final DecodedType[] VALUES = values();
+
+      public static DecodedType 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 DecodedType(int index, int value) {
+        this.index = index;
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:openxc.DiagnosticRequest.DecodedType)
+    }
+
+    /**
+     * Protobuf enum {@code openxc.DiagnosticRequest.Action}
+     */
+    public enum Action
+        implements com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>ADD = 1;</code>
+       */
+      ADD(0, 1),
+      /**
+       * <code>CANCEL = 3;</code>
+       */
+      CANCEL(1, 3),
+      ;
+
+      /**
+       * <code>ADD = 1;</code>
+       */
+      public static final int ADD_VALUE = 1;
+      /**
+       * <code>CANCEL = 3;</code>
+       */
+      public static final int CANCEL_VALUE = 3;
+
+
+      public final int getNumber() { return value; }
+
+      public static Action valueOf(int value) {
+        switch (value) {
+          case 1: return ADD;
+          case 3: return CANCEL;
+          default: return null;
+        }
+      }
+
+      public static com.google.protobuf.Internal.EnumLiteMap<Action>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static com.google.protobuf.Internal.EnumLiteMap<Action>
+          internalValueMap =
+            new com.google.protobuf.Internal.EnumLiteMap<Action>() {
+              public Action findValueByNumber(int number) {
+                return Action.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.DiagnosticRequest.getDescriptor().getEnumTypes().get(1);
+      }
+
+      private static final Action[] VALUES = values();
+
+      public static Action 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 Action(int index, int value) {
+        this.index = index;
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:openxc.DiagnosticRequest.Action)
+    }
+
     private int bitField0_;
     // optional int32 bus = 1;
     public static final int BUS_FIELD_NUMBER = 1;
@@ -3621,68 +3817,111 @@ public final class BinaryMessages {
       return payload_;
     }
 
-    // optional bool parse_payload = 6;
-    public static final int PARSE_PAYLOAD_FIELD_NUMBER = 6;
-    private boolean parsePayload_;
+    // optional bool multiple_responses = 6;
+    public static final int MULTIPLE_RESPONSES_FIELD_NUMBER = 6;
+    private boolean multipleResponses_;
     /**
-     * <code>optional bool parse_payload = 6;</code>
+     * <code>optional bool multiple_responses = 6;</code>
      */
-    public boolean hasParsePayload() {
+    public boolean hasMultipleResponses() {
       return ((bitField0_ & 0x00000020) == 0x00000020);
     }
     /**
-     * <code>optional bool parse_payload = 6;</code>
+     * <code>optional bool multiple_responses = 6;</code>
      */
-    public boolean getParsePayload() {
-      return parsePayload_;
+    public boolean getMultipleResponses() {
+      return multipleResponses_;
     }
 
-    // optional double factor = 7;
-    public static final int FACTOR_FIELD_NUMBER = 7;
-    private double factor_;
+    // optional double frequency = 7;
+    public static final int FREQUENCY_FIELD_NUMBER = 7;
+    private double frequency_;
     /**
-     * <code>optional double factor = 7;</code>
+     * <code>optional double frequency = 7;</code>
      */
-    public boolean hasFactor() {
+    public boolean hasFrequency() {
       return ((bitField0_ & 0x00000040) == 0x00000040);
     }
     /**
-     * <code>optional double factor = 7;</code>
+     * <code>optional double frequency = 7;</code>
      */
-    public double getFactor() {
-      return factor_;
+    public double getFrequency() {
+      return frequency_;
     }
 
-    // optional double offset = 8;
-    public static final int OFFSET_FIELD_NUMBER = 8;
-    private double offset_;
+    // optional string name = 8;
+    public static final int NAME_FIELD_NUMBER = 8;
+    private java.lang.Object name_;
     /**
-     * <code>optional double offset = 8;</code>
+     * <code>optional string name = 8;</code>
      */
-    public boolean hasOffset() {
+    public boolean hasName() {
       return ((bitField0_ & 0x00000080) == 0x00000080);
     }
     /**
-     * <code>optional double offset = 8;</code>
+     * <code>optional string name = 8;</code>
      */
-    public double getOffset() {
-      return offset_;
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          name_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string name = 8;</code>
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
 
-    // optional double frequency = 9;
-    public static final int FREQUENCY_FIELD_NUMBER = 9;
-    private double frequency_;
+    // optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;
+    public static final int DECODED_TYPE_FIELD_NUMBER = 9;
+    private com.openxc.BinaryMessages.DiagnosticRequest.DecodedType decodedType_;
     /**
-     * <code>optional double frequency = 9;</code>
+     * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
      */
-    public boolean hasFrequency() {
+    public boolean hasDecodedType() {
       return ((bitField0_ & 0x00000100) == 0x00000100);
     }
     /**
-     * <code>optional double frequency = 9;</code>
+     * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
      */
-    public double getFrequency() {
-      return frequency_;
+    public com.openxc.BinaryMessages.DiagnosticRequest.DecodedType getDecodedType() {
+      return decodedType_;
+    }
+
+    // optional .openxc.DiagnosticRequest.Action action = 10;
+    public static final int ACTION_FIELD_NUMBER = 10;
+    private com.openxc.BinaryMessages.DiagnosticRequest.Action action_;
+    /**
+     * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+     */
+    public boolean hasAction() {
+      return ((bitField0_ & 0x00000200) == 0x00000200);
+    }
+    /**
+     * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+     */
+    public com.openxc.BinaryMessages.DiagnosticRequest.Action getAction() {
+      return action_;
     }
 
     private void initFields() {
@@ -3691,10 +3930,11 @@ public final class BinaryMessages {
       mode_ = 0;
       pid_ = 0;
       payload_ = com.google.protobuf.ByteString.EMPTY;
-      parsePayload_ = false;
-      factor_ = 0D;
-      offset_ = 0D;
+      multipleResponses_ = false;
       frequency_ = 0D;
+      name_ = "";
+      decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
+      action_ = com.openxc.BinaryMessages.DiagnosticRequest.Action.ADD;
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -3724,16 +3964,19 @@ public final class BinaryMessages {
         output.writeBytes(5, payload_);
       }
       if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        output.writeBool(6, parsePayload_);
+        output.writeBool(6, multipleResponses_);
       }
       if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        output.writeDouble(7, factor_);
+        output.writeDouble(7, frequency_);
       }
       if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        output.writeDouble(8, offset_);
+        output.writeBytes(8, getNameBytes());
       }
       if (((bitField0_ & 0x00000100) == 0x00000100)) {
-        output.writeDouble(9, frequency_);
+        output.writeEnum(9, decodedType_.getNumber());
+      }
+      if (((bitField0_ & 0x00000200) == 0x00000200)) {
+        output.writeEnum(10, action_.getNumber());
       }
       getUnknownFields().writeTo(output);
     }
@@ -3766,19 +4009,23 @@ public final class BinaryMessages {
       }
       if (((bitField0_ & 0x00000020) == 0x00000020)) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(6, parsePayload_);
+          .computeBoolSize(6, multipleResponses_);
       }
       if (((bitField0_ & 0x00000040) == 0x00000040)) {
         size += com.google.protobuf.CodedOutputStream
-          .computeDoubleSize(7, factor_);
+          .computeDoubleSize(7, frequency_);
       }
       if (((bitField0_ & 0x00000080) == 0x00000080)) {
         size += com.google.protobuf.CodedOutputStream
-          .computeDoubleSize(8, offset_);
+          .computeBytesSize(8, getNameBytes());
       }
       if (((bitField0_ & 0x00000100) == 0x00000100)) {
         size += com.google.protobuf.CodedOutputStream
-          .computeDoubleSize(9, frequency_);
+          .computeEnumSize(9, decodedType_.getNumber());
+      }
+      if (((bitField0_ & 0x00000200) == 0x00000200)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(10, action_.getNumber());
       }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
@@ -3906,14 +4153,16 @@ public final class BinaryMessages {
         bitField0_ = (bitField0_ & ~0x00000008);
         payload_ = com.google.protobuf.ByteString.EMPTY;
         bitField0_ = (bitField0_ & ~0x00000010);
-        parsePayload_ = false;
+        multipleResponses_ = false;
         bitField0_ = (bitField0_ & ~0x00000020);
-        factor_ = 0D;
+        frequency_ = 0D;
         bitField0_ = (bitField0_ & ~0x00000040);
-        offset_ = 0D;
+        name_ = "";
         bitField0_ = (bitField0_ & ~0x00000080);
-        frequency_ = 0D;
+        decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
         bitField0_ = (bitField0_ & ~0x00000100);
+        action_ = com.openxc.BinaryMessages.DiagnosticRequest.Action.ADD;
+        bitField0_ = (bitField0_ & ~0x00000200);
         return this;
       }
 
@@ -3965,19 +4214,23 @@ public final class BinaryMessages {
         if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
           to_bitField0_ |= 0x00000020;
         }
-        result.parsePayload_ = parsePayload_;
+        result.multipleResponses_ = multipleResponses_;
         if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
           to_bitField0_ |= 0x00000040;
         }
-        result.factor_ = factor_;
+        result.frequency_ = frequency_;
         if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
           to_bitField0_ |= 0x00000080;
         }
-        result.offset_ = offset_;
+        result.name_ = name_;
         if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
           to_bitField0_ |= 0x00000100;
         }
-        result.frequency_ = frequency_;
+        result.decodedType_ = decodedType_;
+        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
+          to_bitField0_ |= 0x00000200;
+        }
+        result.action_ = action_;
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -4009,18 +4262,23 @@ public final class BinaryMessages {
         if (other.hasPayload()) {
           setPayload(other.getPayload());
         }
-        if (other.hasParsePayload()) {
-          setParsePayload(other.getParsePayload());
-        }
-        if (other.hasFactor()) {
-          setFactor(other.getFactor());
-        }
-        if (other.hasOffset()) {
-          setOffset(other.getOffset());
+        if (other.hasMultipleResponses()) {
+          setMultipleResponses(other.getMultipleResponses());
         }
         if (other.hasFrequency()) {
           setFrequency(other.getFrequency());
         }
+        if (other.hasName()) {
+          bitField0_ |= 0x00000080;
+          name_ = other.name_;
+          onChanged();
+        }
+        if (other.hasDecodedType()) {
+          setDecodedType(other.getDecodedType());
+        }
+        if (other.hasAction()) {
+          setAction(other.getAction());
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
       }
@@ -4236,134 +4494,214 @@ public final class BinaryMessages {
         return this;
       }
 
-      // optional bool parse_payload = 6;
-      private boolean parsePayload_ ;
+      // optional bool multiple_responses = 6;
+      private boolean multipleResponses_ ;
       /**
-       * <code>optional bool parse_payload = 6;</code>
+       * <code>optional bool multiple_responses = 6;</code>
        */
-      public boolean hasParsePayload() {
+      public boolean hasMultipleResponses() {
         return ((bitField0_ & 0x00000020) == 0x00000020);
       }
       /**
-       * <code>optional bool parse_payload = 6;</code>
+       * <code>optional bool multiple_responses = 6;</code>
        */
-      public boolean getParsePayload() {
-        return parsePayload_;
+      public boolean getMultipleResponses() {
+        return multipleResponses_;
       }
       /**
-       * <code>optional bool parse_payload = 6;</code>
+       * <code>optional bool multiple_responses = 6;</code>
        */
-      public Builder setParsePayload(boolean value) {
+      public Builder setMultipleResponses(boolean value) {
         bitField0_ |= 0x00000020;
-        parsePayload_ = value;
+        multipleResponses_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>optional bool parse_payload = 6;</code>
+       * <code>optional bool multiple_responses = 6;</code>
        */
-      public Builder clearParsePayload() {
+      public Builder clearMultipleResponses() {
         bitField0_ = (bitField0_ & ~0x00000020);
-        parsePayload_ = false;
+        multipleResponses_ = false;
         onChanged();
         return this;
       }
 
-      // optional double factor = 7;
-      private double factor_ ;
+      // optional double frequency = 7;
+      private double frequency_ ;
       /**
-       * <code>optional double factor = 7;</code>
+       * <code>optional double frequency = 7;</code>
        */
-      public boolean hasFactor() {
+      public boolean hasFrequency() {
         return ((bitField0_ & 0x00000040) == 0x00000040);
       }
       /**
-       * <code>optional double factor = 7;</code>
+       * <code>optional double frequency = 7;</code>
        */
-      public double getFactor() {
-        return factor_;
+      public double getFrequency() {
+        return frequency_;
       }
       /**
-       * <code>optional double factor = 7;</code>
+       * <code>optional double frequency = 7;</code>
        */
-      public Builder setFactor(double value) {
+      public Builder setFrequency(double value) {
         bitField0_ |= 0x00000040;
-        factor_ = value;
+        frequency_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>optional double factor = 7;</code>
+       * <code>optional double frequency = 7;</code>
        */
-      public Builder clearFactor() {
+      public Builder clearFrequency() {
         bitField0_ = (bitField0_ & ~0x00000040);
-        factor_ = 0D;
+        frequency_ = 0D;
         onChanged();
         return this;
       }
 
-      // optional double offset = 8;
-      private double offset_ ;
+      // optional string name = 8;
+      private java.lang.Object name_ = "";
       /**
-       * <code>optional double offset = 8;</code>
+       * <code>optional string name = 8;</code>
        */
-      public boolean hasOffset() {
+      public boolean hasName() {
         return ((bitField0_ & 0x00000080) == 0x00000080);
       }
       /**
-       * <code>optional double offset = 8;</code>
+       * <code>optional string name = 8;</code>
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string name = 8;</code>
        */
-      public double getOffset() {
-        return offset_;
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
       }
       /**
-       * <code>optional double offset = 8;</code>
+       * <code>optional string name = 8;</code>
        */
-      public Builder setOffset(double value) {
-        bitField0_ |= 0x00000080;
-        offset_ = value;
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000080;
+        name_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>optional double offset = 8;</code>
+       * <code>optional string name = 8;</code>
        */
-      public Builder clearOffset() {
+      public Builder clearName() {
         bitField0_ = (bitField0_ & ~0x00000080);
-        offset_ = 0D;
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string name = 8;</code>
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000080;
+        name_ = value;
         onChanged();
         return this;
       }
 
-      // optional double frequency = 9;
-      private double frequency_ ;
+      // optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;
+      private com.openxc.BinaryMessages.DiagnosticRequest.DecodedType decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
       /**
-       * <code>optional double frequency = 9;</code>
+       * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
        */
-      public boolean hasFrequency() {
+      public boolean hasDecodedType() {
         return ((bitField0_ & 0x00000100) == 0x00000100);
       }
       /**
-       * <code>optional double frequency = 9;</code>
+       * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
        */
-      public double getFrequency() {
-        return frequency_;
+      public com.openxc.BinaryMessages.DiagnosticRequest.DecodedType getDecodedType() {
+        return decodedType_;
       }
       /**
-       * <code>optional double frequency = 9;</code>
+       * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
        */
-      public Builder setFrequency(double value) {
+      public Builder setDecodedType(com.openxc.BinaryMessages.DiagnosticRequest.DecodedType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
         bitField0_ |= 0x00000100;
-        frequency_ = value;
+        decodedType_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>optional double frequency = 9;</code>
+       * <code>optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;</code>
        */
-      public Builder clearFrequency() {
+      public Builder clearDecodedType() {
         bitField0_ = (bitField0_ & ~0x00000100);
-        frequency_ = 0D;
+        decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
+        onChanged();
+        return this;
+      }
+
+      // optional .openxc.DiagnosticRequest.Action action = 10;
+      private com.openxc.BinaryMessages.DiagnosticRequest.Action action_ = com.openxc.BinaryMessages.DiagnosticRequest.Action.ADD;
+      /**
+       * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+       */
+      public boolean hasAction() {
+        return ((bitField0_ & 0x00000200) == 0x00000200);
+      }
+      /**
+       * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+       */
+      public com.openxc.BinaryMessages.DiagnosticRequest.Action getAction() {
+        return action_;
+      }
+      /**
+       * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+       */
+      public Builder setAction(com.openxc.BinaryMessages.DiagnosticRequest.Action value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        bitField0_ |= 0x00000200;
+        action_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional .openxc.DiagnosticRequest.Action action = 10;</code>
+       */
+      public Builder clearAction() {
+        bitField0_ = (bitField0_ & ~0x00000200);
+        action_ = com.openxc.BinaryMessages.DiagnosticRequest.Action.ADD;
         onChanged();
         return this;
       }
@@ -7329,26 +7667,31 @@ public final class BinaryMessages {
       "Request\"2\n\004Type\022\013\n\007VERSION\020\001\022\r\n\tDEVICE_I" +
       "D\020\002\022\016\n\nDIAGNOSTIC\020\003\"M\n\017CommandResponse\022)" +
       "\n\004type\030\001 \001(\0162\033.openxc.ControlCommand.Typ" +
-      "e\022\017\n\007message\030\002 \001(\t\"\252\001\n\021DiagnosticRequest" +
+      "e\022\017\n\007message\030\002 \001(\t\"\316\002\n\021DiagnosticRequest" +
       "\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004mod",
-      "e\030\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007payload\030\005 \001(\014\022\025\n" +
-      "\rparse_payload\030\006 \001(\010\022\016\n\006factor\030\007 \001(\001\022\016\n\006" +
-      "offset\030\010 \001(\001\022\021\n\tfrequency\030\t \001(\001\"\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"
+      "e\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\014decoded_type\030\t \001(\016" +
+      "2%.openxc.DiagnosticRequest.DecodedType\022" +
+      "0\n\006action\030\n \001(\0162 .openxc.DiagnosticReque" +
+      "st.Action\"!\n\013DecodedType\022\010\n\004NONE\020\001\022\010\n\004OB" +
+      "D2\020\002\"\035\n\006Action\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\003\"\241\001\n\022" +
+      "DiagnosticResponse\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessa" +
+      "ge_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_response_cod",
+      "e\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\004BO" +
+      "OL\020\003\"\367\001\n\021TranslatedMessage\022,\n\004type\030\001 \001(\016" +
+      "2\036.openxc.TranslatedMessage.Type\022\014\n\004name" +
+      "\030\002 \001(\t\022#\n\005value\030\003 \001(\0132\024.openxc.DynamicFi" +
+      "eld\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\014" +
+      "EVENTED_BOOL\020\006B\034\n\ncom.openxcB\016BinaryMess" +
+      "ages"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
       new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -7384,7 +7727,7 @@ public final class BinaryMessages {
           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", "ParsePayload", "Factor", "Offset", "Frequency", });
+              new java.lang.String[] { "Bus", "MessageId", "Mode", "Pid", "Payload", "MultipleResponses", "Frequency", "Name", "DecodedType", "Action", });
           internal_static_openxc_DiagnosticResponse_descriptor =
             getDescriptor().getMessageTypes().get(5);
           internal_static_openxc_DiagnosticResponse_fieldAccessorTable = new