// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: his_health_data.proto
package com.fs.watch.protobuf;
public final class HisHealthData {
  private HisHealthData() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code HisMdtState}
   */
  public enum HisMdtState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PREPARE = 0;</code>
     */
    PREPARE(0),
    /**
     * <code>ONGOING = 1;</code>
     */
    ONGOING(1),
    /**
     * <code>RELAX = 2;</code>
     */
    RELAX(2),
    ;

    /**
     * <code>PREPARE = 0;</code>
     */
    public static final int PREPARE_VALUE = 0;
    /**
     * <code>ONGOING = 1;</code>
     */
    public static final int ONGOING_VALUE = 1;
    /**
     * <code>RELAX = 2;</code>
     */
    public static final int RELAX_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @Deprecated
    public static HisMdtState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HisMdtState forNumber(int value) {
      switch (value) {
        case 0: return PREPARE;
        case 1: return ONGOING;
        case 2: return RELAX;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<HisMdtState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        HisMdtState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<HisMdtState>() {
            public HisMdtState findValueByNumber(int number) {
              return HisMdtState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return HisHealthData.getDescriptor().getEnumTypes().get(0);
    }

    private static final HisMdtState[] VALUES = values();

    public static HisMdtState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private HisMdtState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:HisMdtState)
  }

  /**
   * Protobuf enum {@code TPAMeasureType}
   */
  public enum TPAMeasureType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>TPA_MEASURE_TYPE_NULL = 0;</code>
     */
    TPA_MEASURE_TYPE_NULL(0),
    /**
     * <code>TPA_MEASURE_TYPE_AUTO = 1;</code>
     */
    TPA_MEASURE_TYPE_AUTO(1),
    /**
     * <code>TPA_MEASURE_TYPE_ARMPIT = 2;</code>
     */
    TPA_MEASURE_TYPE_ARMPIT(2),
    ;

    /**
     * <code>TPA_MEASURE_TYPE_NULL = 0;</code>
     */
    public static final int TPA_MEASURE_TYPE_NULL_VALUE = 0;
    /**
     * <code>TPA_MEASURE_TYPE_AUTO = 1;</code>
     */
    public static final int TPA_MEASURE_TYPE_AUTO_VALUE = 1;
    /**
     * <code>TPA_MEASURE_TYPE_ARMPIT = 2;</code>
     */
    public static final int TPA_MEASURE_TYPE_ARMPIT_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @Deprecated
    public static TPAMeasureType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static TPAMeasureType forNumber(int value) {
      switch (value) {
        case 0: return TPA_MEASURE_TYPE_NULL;
        case 1: return TPA_MEASURE_TYPE_AUTO;
        case 2: return TPA_MEASURE_TYPE_ARMPIT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TPAMeasureType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TPAMeasureType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TPAMeasureType>() {
            public TPAMeasureType findValueByNumber(int number) {
              return TPAMeasureType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return HisHealthData.getDescriptor().getEnumTypes().get(1);
    }

    private static final TPAMeasureType[] VALUES = values();

    public static TPAMeasureType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private TPAMeasureType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:TPAMeasureType)
  }

  public interface HisHealthPedoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthPedo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required fixed32 type = 1;</code>
     * @return The type.
     */
    int getType();

    /**
     * <code>required fixed32 state = 2;</code>
     * @return Whether the state field is set.
     */
    boolean hasState();
    /**
     * <code>required fixed32 state = 2;</code>
     * @return The state.
     */
    int getState();

    /**
     * <code>required fixed32 calorie = 3;</code>
     * @return Whether the calorie field is set.
     */
    boolean hasCalorie();
    /**
     * <code>required fixed32 calorie = 3;</code>
     * @return The calorie.
     */
    int getCalorie();

    /**
     * <code>required fixed32 step = 4;</code>
     * @return Whether the step field is set.
     */
    boolean hasStep();
    /**
     * <code>required fixed32 step = 4;</code>
     * @return The step.
     */
    int getStep();

    /**
     * <code>required fixed32 distance = 5;</code>
     * @return Whether the distance field is set.
     */
    boolean hasDistance();
    /**
     * <code>required fixed32 distance = 5;</code>
     * @return The distance.
     */
    int getDistance();
  }
  /**
   * Protobuf type {@code HisHealthPedo}
   */
  public  static final class HisHealthPedo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthPedo)
      HisHealthPedoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthPedo.newBuilder() to construct.
    private HisHealthPedo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthPedo() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthPedo();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthPedo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              type_ = input.readFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              state_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              calorie_ = input.readFixed32();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              step_ = input.readFixed32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              distance_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthPedo_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthPedo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthPedo.class, Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required fixed32 type = 1;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 type = 1;</code>
     * @return The type.
     */
    public int getType() {
      return type_;
    }

    public static final int STATE_FIELD_NUMBER = 2;
    private int state_;
    /**
     * <code>required fixed32 state = 2;</code>
     * @return Whether the state field is set.
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 state = 2;</code>
     * @return The state.
     */
    public int getState() {
      return state_;
    }

    public static final int CALORIE_FIELD_NUMBER = 3;
    private int calorie_;
    /**
     * <code>required fixed32 calorie = 3;</code>
     * @return Whether the calorie field is set.
     */
    public boolean hasCalorie() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 calorie = 3;</code>
     * @return The calorie.
     */
    public int getCalorie() {
      return calorie_;
    }

    public static final int STEP_FIELD_NUMBER = 4;
    private int step_;
    /**
     * <code>required fixed32 step = 4;</code>
     * @return Whether the step field is set.
     */
    public boolean hasStep() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required fixed32 step = 4;</code>
     * @return The step.
     */
    public int getStep() {
      return step_;
    }

    public static final int DISTANCE_FIELD_NUMBER = 5;
    private int distance_;
    /**
     * <code>required fixed32 distance = 5;</code>
     * @return Whether the distance field is set.
     */
    public boolean hasDistance() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required fixed32 distance = 5;</code>
     * @return The distance.
     */
    public int getDistance() {
      return distance_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCalorie()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStep()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDistance()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, state_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, calorie_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFixed32(4, step_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeFixed32(5, distance_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, state_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, calorie_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(4, step_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(5, distance_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthPedo)) {
        return super.equals(obj);
      }
      HisHealthPedo other = (HisHealthPedo) obj;

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (getType()
            != other.getType()) return false;
      }
      if (hasState() != other.hasState()) return false;
      if (hasState()) {
        if (getState()
            != other.getState()) return false;
      }
      if (hasCalorie() != other.hasCalorie()) return false;
      if (hasCalorie()) {
        if (getCalorie()
            != other.getCalorie()) return false;
      }
      if (hasStep() != other.hasStep()) return false;
      if (hasStep()) {
        if (getStep()
            != other.getStep()) return false;
      }
      if (hasDistance() != other.hasDistance()) return false;
      if (hasDistance()) {
        if (getDistance()
            != other.getDistance()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType();
      }
      if (hasState()) {
        hash = (37 * hash) + STATE_FIELD_NUMBER;
        hash = (53 * hash) + getState();
      }
      if (hasCalorie()) {
        hash = (37 * hash) + CALORIE_FIELD_NUMBER;
        hash = (53 * hash) + getCalorie();
      }
      if (hasStep()) {
        hash = (37 * hash) + STEP_FIELD_NUMBER;
        hash = (53 * hash) + getStep();
      }
      if (hasDistance()) {
        hash = (37 * hash) + DISTANCE_FIELD_NUMBER;
        hash = (53 * hash) + getDistance();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthPedo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthPedo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthPedo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthPedo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthPedo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthPedo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthPedo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthPedo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthPedo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthPedo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthPedo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthPedo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthPedo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthPedo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthPedo)
        HisHealthPedoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthPedo_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthPedo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthPedo.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthPedo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        calorie_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        step_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        distance_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthPedo_descriptor;
      }

      @Override
      public HisHealthPedo getDefaultInstanceForType() {
        return HisHealthPedo.getDefaultInstance();
      }

      @Override
      public HisHealthPedo build() {
        HisHealthPedo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthPedo buildPartial() {
        HisHealthPedo result = new HisHealthPedo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.state_ = state_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.calorie_ = calorie_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.step_ = step_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.distance_ = distance_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthPedo) {
          return mergeFrom((HisHealthPedo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthPedo other) {
        if (other == HisHealthPedo.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasState()) {
          setState(other.getState());
        }
        if (other.hasCalorie()) {
          setCalorie(other.getCalorie());
        }
        if (other.hasStep()) {
          setStep(other.getStep());
        }
        if (other.hasDistance()) {
          setDistance(other.getDistance());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        if (!hasState()) {
          return false;
        }
        if (!hasCalorie()) {
          return false;
        }
        if (!hasStep()) {
          return false;
        }
        if (!hasDistance()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthPedo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthPedo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int type_ ;
      /**
       * <code>required fixed32 type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 type = 1;</code>
       * @return The type.
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>required fixed32 type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

      private int state_ ;
      /**
       * <code>required fixed32 state = 2;</code>
       * @return Whether the state field is set.
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 state = 2;</code>
       * @return The state.
       */
      public int getState() {
        return state_;
      }
      /**
       * <code>required fixed32 state = 2;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000002;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 state = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        state_ = 0;
        onChanged();
        return this;
      }

      private int calorie_ ;
      /**
       * <code>required fixed32 calorie = 3;</code>
       * @return Whether the calorie field is set.
       */
      public boolean hasCalorie() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 calorie = 3;</code>
       * @return The calorie.
       */
      public int getCalorie() {
        return calorie_;
      }
      /**
       * <code>required fixed32 calorie = 3;</code>
       * @param value The calorie to set.
       * @return This builder for chaining.
       */
      public Builder setCalorie(int value) {
        bitField0_ |= 0x00000004;
        calorie_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 calorie = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCalorie() {
        bitField0_ = (bitField0_ & ~0x00000004);
        calorie_ = 0;
        onChanged();
        return this;
      }

      private int step_ ;
      /**
       * <code>required fixed32 step = 4;</code>
       * @return Whether the step field is set.
       */
      public boolean hasStep() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required fixed32 step = 4;</code>
       * @return The step.
       */
      public int getStep() {
        return step_;
      }
      /**
       * <code>required fixed32 step = 4;</code>
       * @param value The step to set.
       * @return This builder for chaining.
       */
      public Builder setStep(int value) {
        bitField0_ |= 0x00000008;
        step_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 step = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStep() {
        bitField0_ = (bitField0_ & ~0x00000008);
        step_ = 0;
        onChanged();
        return this;
      }

      private int distance_ ;
      /**
       * <code>required fixed32 distance = 5;</code>
       * @return Whether the distance field is set.
       */
      public boolean hasDistance() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required fixed32 distance = 5;</code>
       * @return The distance.
       */
      public int getDistance() {
        return distance_;
      }
      /**
       * <code>required fixed32 distance = 5;</code>
       * @param value The distance to set.
       * @return This builder for chaining.
       */
      public Builder setDistance(int value) {
        bitField0_ |= 0x00000010;
        distance_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 distance = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDistance() {
        bitField0_ = (bitField0_ & ~0x00000010);
        distance_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthPedo)
    }

    // @@protoc_insertion_point(class_scope:HisHealthPedo)
    private static final HisHealthPedo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthPedo();
    }

    public static HisHealthPedo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthPedo>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthPedo>() {
      @Override
      public HisHealthPedo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthPedo(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthPedo> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthPedo> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthPedo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthHrOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthHr)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 min_bpm = 1;</code>
     * @return Whether the minBpm field is set.
     */
    boolean hasMinBpm();
    /**
     * <code>required fixed32 min_bpm = 1;</code>
     * @return The minBpm.
     */
    int getMinBpm();

    /**
     * <code>required fixed32 max_bpm = 2;</code>
     * @return Whether the maxBpm field is set.
     */
    boolean hasMaxBpm();
    /**
     * <code>required fixed32 max_bpm = 2;</code>
     * @return The maxBpm.
     */
    int getMaxBpm();

    /**
     * <code>required fixed32 avg_bpm = 3;</code>
     * @return Whether the avgBpm field is set.
     */
    boolean hasAvgBpm();
    /**
     * <code>required fixed32 avg_bpm = 3;</code>
     * @return The avgBpm.
     */
    int getAvgBpm();
  }
  /**
   * Protobuf type {@code HisHealthHr}
   */
  public  static final class HisHealthHr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthHr)
      HisHealthHrOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthHr.newBuilder() to construct.
    private HisHealthHr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthHr() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthHr();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthHr(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              minBpm_ = input.readFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              maxBpm_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              avgBpm_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthHr_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthHr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthHr.class, Builder.class);
    }

    private int bitField0_;
    public static final int MIN_BPM_FIELD_NUMBER = 1;
    private int minBpm_;
    /**
     * <code>required fixed32 min_bpm = 1;</code>
     * @return Whether the minBpm field is set.
     */
    public boolean hasMinBpm() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 min_bpm = 1;</code>
     * @return The minBpm.
     */
    public int getMinBpm() {
      return minBpm_;
    }

    public static final int MAX_BPM_FIELD_NUMBER = 2;
    private int maxBpm_;
    /**
     * <code>required fixed32 max_bpm = 2;</code>
     * @return Whether the maxBpm field is set.
     */
    public boolean hasMaxBpm() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 max_bpm = 2;</code>
     * @return The maxBpm.
     */
    public int getMaxBpm() {
      return maxBpm_;
    }

    public static final int AVG_BPM_FIELD_NUMBER = 3;
    private int avgBpm_;
    /**
     * <code>required fixed32 avg_bpm = 3;</code>
     * @return Whether the avgBpm field is set.
     */
    public boolean hasAvgBpm() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 avg_bpm = 3;</code>
     * @return The avgBpm.
     */
    public int getAvgBpm() {
      return avgBpm_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMinBpm()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMaxBpm()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvgBpm()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, minBpm_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, maxBpm_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, avgBpm_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, minBpm_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, maxBpm_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, avgBpm_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthHr)) {
        return super.equals(obj);
      }
      HisHealthHr other = (HisHealthHr) obj;

      if (hasMinBpm() != other.hasMinBpm()) return false;
      if (hasMinBpm()) {
        if (getMinBpm()
            != other.getMinBpm()) return false;
      }
      if (hasMaxBpm() != other.hasMaxBpm()) return false;
      if (hasMaxBpm()) {
        if (getMaxBpm()
            != other.getMaxBpm()) return false;
      }
      if (hasAvgBpm() != other.hasAvgBpm()) return false;
      if (hasAvgBpm()) {
        if (getAvgBpm()
            != other.getAvgBpm()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMinBpm()) {
        hash = (37 * hash) + MIN_BPM_FIELD_NUMBER;
        hash = (53 * hash) + getMinBpm();
      }
      if (hasMaxBpm()) {
        hash = (37 * hash) + MAX_BPM_FIELD_NUMBER;
        hash = (53 * hash) + getMaxBpm();
      }
      if (hasAvgBpm()) {
        hash = (37 * hash) + AVG_BPM_FIELD_NUMBER;
        hash = (53 * hash) + getAvgBpm();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthHr parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHr parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHr parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHr parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHr parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHr parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHr parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthHr parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthHr parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthHr parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthHr parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthHr parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthHr prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthHr}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthHr)
        HisHealthHrOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthHr_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthHr_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthHr.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthHr.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        minBpm_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        maxBpm_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        avgBpm_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthHr_descriptor;
      }

      @Override
      public HisHealthHr getDefaultInstanceForType() {
        return HisHealthHr.getDefaultInstance();
      }

      @Override
      public HisHealthHr build() {
        HisHealthHr result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthHr buildPartial() {
        HisHealthHr result = new HisHealthHr(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.minBpm_ = minBpm_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.maxBpm_ = maxBpm_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.avgBpm_ = avgBpm_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthHr) {
          return mergeFrom((HisHealthHr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthHr other) {
        if (other == HisHealthHr.getDefaultInstance()) return this;
        if (other.hasMinBpm()) {
          setMinBpm(other.getMinBpm());
        }
        if (other.hasMaxBpm()) {
          setMaxBpm(other.getMaxBpm());
        }
        if (other.hasAvgBpm()) {
          setAvgBpm(other.getAvgBpm());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasMinBpm()) {
          return false;
        }
        if (!hasMaxBpm()) {
          return false;
        }
        if (!hasAvgBpm()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthHr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthHr) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int minBpm_ ;
      /**
       * <code>required fixed32 min_bpm = 1;</code>
       * @return Whether the minBpm field is set.
       */
      public boolean hasMinBpm() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 min_bpm = 1;</code>
       * @return The minBpm.
       */
      public int getMinBpm() {
        return minBpm_;
      }
      /**
       * <code>required fixed32 min_bpm = 1;</code>
       * @param value The minBpm to set.
       * @return This builder for chaining.
       */
      public Builder setMinBpm(int value) {
        bitField0_ |= 0x00000001;
        minBpm_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 min_bpm = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinBpm() {
        bitField0_ = (bitField0_ & ~0x00000001);
        minBpm_ = 0;
        onChanged();
        return this;
      }

      private int maxBpm_ ;
      /**
       * <code>required fixed32 max_bpm = 2;</code>
       * @return Whether the maxBpm field is set.
       */
      public boolean hasMaxBpm() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 max_bpm = 2;</code>
       * @return The maxBpm.
       */
      public int getMaxBpm() {
        return maxBpm_;
      }
      /**
       * <code>required fixed32 max_bpm = 2;</code>
       * @param value The maxBpm to set.
       * @return This builder for chaining.
       */
      public Builder setMaxBpm(int value) {
        bitField0_ |= 0x00000002;
        maxBpm_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 max_bpm = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxBpm() {
        bitField0_ = (bitField0_ & ~0x00000002);
        maxBpm_ = 0;
        onChanged();
        return this;
      }

      private int avgBpm_ ;
      /**
       * <code>required fixed32 avg_bpm = 3;</code>
       * @return Whether the avgBpm field is set.
       */
      public boolean hasAvgBpm() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 avg_bpm = 3;</code>
       * @return The avgBpm.
       */
      public int getAvgBpm() {
        return avgBpm_;
      }
      /**
       * <code>required fixed32 avg_bpm = 3;</code>
       * @param value The avgBpm to set.
       * @return This builder for chaining.
       */
      public Builder setAvgBpm(int value) {
        bitField0_ |= 0x00000004;
        avgBpm_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 avg_bpm = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvgBpm() {
        bitField0_ = (bitField0_ & ~0x00000004);
        avgBpm_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthHr)
    }

    // @@protoc_insertion_point(class_scope:HisHealthHr)
    private static final HisHealthHr DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthHr();
    }

    public static HisHealthHr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthHr>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthHr>() {
      @Override
      public HisHealthHr parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthHr(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthHr> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthHr> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthHr getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthBlood_sugarOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthBlood_sugar)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 Blood_sugar = 1;</code>
     * @return Whether the bloodSugar field is set.
     */
    boolean hasBloodSugar();
    /**
     * <code>required fixed32 Blood_sugar = 1;</code>
     * @return The bloodSugar.
     */
    int getBloodSugar();
  }
  /**
   * Protobuf type {@code HisHealthBlood_sugar}
   */
  public  static final class HisHealthBlood_sugar extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthBlood_sugar)
      HisHealthBlood_sugarOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthBlood_sugar.newBuilder() to construct.
    private HisHealthBlood_sugar(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthBlood_sugar() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthBlood_sugar();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthBlood_sugar(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              bloodSugar_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthBlood_sugar_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthBlood_sugar_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthBlood_sugar.class, Builder.class);
    }

    private int bitField0_;
    public static final int BLOOD_SUGAR_FIELD_NUMBER = 1;
    private int bloodSugar_;
    /**
     * <code>required fixed32 Blood_sugar = 1;</code>
     * @return Whether the bloodSugar field is set.
     */
    public boolean hasBloodSugar() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 Blood_sugar = 1;</code>
     * @return The bloodSugar.
     */
    public int getBloodSugar() {
      return bloodSugar_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasBloodSugar()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, bloodSugar_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, bloodSugar_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthBlood_sugar)) {
        return super.equals(obj);
      }
      HisHealthBlood_sugar other = (HisHealthBlood_sugar) obj;

      if (hasBloodSugar() != other.hasBloodSugar()) return false;
      if (hasBloodSugar()) {
        if (getBloodSugar()
            != other.getBloodSugar()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBloodSugar()) {
        hash = (37 * hash) + BLOOD_SUGAR_FIELD_NUMBER;
        hash = (53 * hash) + getBloodSugar();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthBlood_sugar parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBlood_sugar parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBlood_sugar parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBlood_sugar parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBlood_sugar parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBlood_sugar parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBlood_sugar parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBlood_sugar parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBlood_sugar parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthBlood_sugar parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBlood_sugar parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBlood_sugar parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthBlood_sugar prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthBlood_sugar}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthBlood_sugar)
        HisHealthBlood_sugarOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthBlood_sugar_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthBlood_sugar_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthBlood_sugar.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthBlood_sugar.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        bloodSugar_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthBlood_sugar_descriptor;
      }

      @Override
      public HisHealthBlood_sugar getDefaultInstanceForType() {
        return HisHealthBlood_sugar.getDefaultInstance();
      }

      @Override
      public HisHealthBlood_sugar build() {
        HisHealthBlood_sugar result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthBlood_sugar buildPartial() {
        HisHealthBlood_sugar result = new HisHealthBlood_sugar(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.bloodSugar_ = bloodSugar_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthBlood_sugar) {
          return mergeFrom((HisHealthBlood_sugar)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthBlood_sugar other) {
        if (other == HisHealthBlood_sugar.getDefaultInstance()) return this;
        if (other.hasBloodSugar()) {
          setBloodSugar(other.getBloodSugar());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasBloodSugar()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthBlood_sugar parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthBlood_sugar) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int bloodSugar_ ;
      /**
       * <code>required fixed32 Blood_sugar = 1;</code>
       * @return Whether the bloodSugar field is set.
       */
      public boolean hasBloodSugar() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 Blood_sugar = 1;</code>
       * @return The bloodSugar.
       */
      public int getBloodSugar() {
        return bloodSugar_;
      }
      /**
       * <code>required fixed32 Blood_sugar = 1;</code>
       * @param value The bloodSugar to set.
       * @return This builder for chaining.
       */
      public Builder setBloodSugar(int value) {
        bitField0_ |= 0x00000001;
        bloodSugar_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 Blood_sugar = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBloodSugar() {
        bitField0_ = (bitField0_ & ~0x00000001);
        bloodSugar_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthBlood_sugar)
    }

    // @@protoc_insertion_point(class_scope:HisHealthBlood_sugar)
    private static final HisHealthBlood_sugar DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthBlood_sugar();
    }

    public static HisHealthBlood_sugar getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthBlood_sugar>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthBlood_sugar>() {
      @Override
      public HisHealthBlood_sugar parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthBlood_sugar(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthBlood_sugar> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthBlood_sugar> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthBlood_sugar getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthOutActOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthOutAct)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 out_act = 1;</code>
     * @return Whether the outAct field is set.
     */
    boolean hasOutAct();
    /**
     * <code>required fixed32 out_act = 1;</code>
     * @return The outAct.
     */
    int getOutAct();
  }
  /**
   * Protobuf type {@code HisHealthOutAct}
   */
  public  static final class HisHealthOutAct extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthOutAct)
      HisHealthOutActOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthOutAct.newBuilder() to construct.
    private HisHealthOutAct(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthOutAct() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthOutAct();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthOutAct(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              outAct_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthOutAct_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthOutAct_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthOutAct.class, Builder.class);
    }

    private int bitField0_;
    public static final int OUT_ACT_FIELD_NUMBER = 1;
    private int outAct_;
    /**
     * <code>required fixed32 out_act = 1;</code>
     * @return Whether the outAct field is set.
     */
    public boolean hasOutAct() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 out_act = 1;</code>
     * @return The outAct.
     */
    public int getOutAct() {
      return outAct_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasOutAct()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, outAct_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, outAct_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthOutAct)) {
        return super.equals(obj);
      }
      HisHealthOutAct other = (HisHealthOutAct) obj;

      if (hasOutAct() != other.hasOutAct()) return false;
      if (hasOutAct()) {
        if (getOutAct()
            != other.getOutAct()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOutAct()) {
        hash = (37 * hash) + OUT_ACT_FIELD_NUMBER;
        hash = (53 * hash) + getOutAct();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthOutAct parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthOutAct parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthOutAct parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthOutAct parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthOutAct parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthOutAct parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthOutAct parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthOutAct parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthOutAct parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthOutAct parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthOutAct parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthOutAct parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthOutAct prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthOutAct}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthOutAct)
        HisHealthOutActOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthOutAct_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthOutAct_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthOutAct.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthOutAct.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        outAct_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthOutAct_descriptor;
      }

      @Override
      public HisHealthOutAct getDefaultInstanceForType() {
        return HisHealthOutAct.getDefaultInstance();
      }

      @Override
      public HisHealthOutAct build() {
        HisHealthOutAct result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthOutAct buildPartial() {
        HisHealthOutAct result = new HisHealthOutAct(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.outAct_ = outAct_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthOutAct) {
          return mergeFrom((HisHealthOutAct)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthOutAct other) {
        if (other == HisHealthOutAct.getDefaultInstance()) return this;
        if (other.hasOutAct()) {
          setOutAct(other.getOutAct());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasOutAct()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthOutAct parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthOutAct) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int outAct_ ;
      /**
       * <code>required fixed32 out_act = 1;</code>
       * @return Whether the outAct field is set.
       */
      public boolean hasOutAct() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 out_act = 1;</code>
       * @return The outAct.
       */
      public int getOutAct() {
        return outAct_;
      }
      /**
       * <code>required fixed32 out_act = 1;</code>
       * @param value The outAct to set.
       * @return This builder for chaining.
       */
      public Builder setOutAct(int value) {
        bitField0_ |= 0x00000001;
        outAct_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 out_act = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOutAct() {
        bitField0_ = (bitField0_ & ~0x00000001);
        outAct_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthOutAct)
    }

    // @@protoc_insertion_point(class_scope:HisHealthOutAct)
    private static final HisHealthOutAct DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthOutAct();
    }

    public static HisHealthOutAct getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthOutAct>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthOutAct>() {
      @Override
      public HisHealthOutAct parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthOutAct(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthOutAct> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthOutAct> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthOutAct getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthHrvOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthHrv)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required float SDNN = 1;</code>
     * @return Whether the sDNN field is set.
     */
    boolean hasSDNN();
    /**
     * <code>required float SDNN = 1;</code>
     * @return The sDNN.
     */
    float getSDNN();

    /**
     * <code>required float RMSSD = 2;</code>
     * @return Whether the rMSSD field is set.
     */
    boolean hasRMSSD();
    /**
     * <code>required float RMSSD = 2;</code>
     * @return The rMSSD.
     */
    float getRMSSD();

    /**
     * <code>required float PNN50 = 3;</code>
     * @return Whether the pNN50 field is set.
     */
    boolean hasPNN50();
    /**
     * <code>required float PNN50 = 3;</code>
     * @return The pNN50.
     */
    float getPNN50();

    /**
     * <code>required float MEAN = 4;</code>
     * @return Whether the mEAN field is set.
     */
    boolean hasMEAN();
    /**
     * <code>required float MEAN = 4;</code>
     * @return The mEAN.
     */
    float getMEAN();

    /**
     * <code>required float fatigue = 5;</code>
     * @return Whether the fatigue field is set.
     */
    boolean hasFatigue();
    /**
     * <code>required float fatigue = 5;</code>
     * @return The fatigue.
     */
    float getFatigue();
  }
  /**
   * Protobuf type {@code HisHealthHrv}
   */
  public  static final class HisHealthHrv extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthHrv)
      HisHealthHrvOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthHrv.newBuilder() to construct.
    private HisHealthHrv(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthHrv() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthHrv();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthHrv(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              sDNN_ = input.readFloat();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              rMSSD_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              pNN50_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              mEAN_ = input.readFloat();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              fatigue_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthHrv_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthHrv_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthHrv.class, Builder.class);
    }

    private int bitField0_;
    public static final int SDNN_FIELD_NUMBER = 1;
    private float sDNN_;
    /**
     * <code>required float SDNN = 1;</code>
     * @return Whether the sDNN field is set.
     */
    public boolean hasSDNN() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required float SDNN = 1;</code>
     * @return The sDNN.
     */
    public float getSDNN() {
      return sDNN_;
    }

    public static final int RMSSD_FIELD_NUMBER = 2;
    private float rMSSD_;
    /**
     * <code>required float RMSSD = 2;</code>
     * @return Whether the rMSSD field is set.
     */
    public boolean hasRMSSD() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required float RMSSD = 2;</code>
     * @return The rMSSD.
     */
    public float getRMSSD() {
      return rMSSD_;
    }

    public static final int PNN50_FIELD_NUMBER = 3;
    private float pNN50_;
    /**
     * <code>required float PNN50 = 3;</code>
     * @return Whether the pNN50 field is set.
     */
    public boolean hasPNN50() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required float PNN50 = 3;</code>
     * @return The pNN50.
     */
    public float getPNN50() {
      return pNN50_;
    }

    public static final int MEAN_FIELD_NUMBER = 4;
    private float mEAN_;
    /**
     * <code>required float MEAN = 4;</code>
     * @return Whether the mEAN field is set.
     */
    public boolean hasMEAN() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required float MEAN = 4;</code>
     * @return The mEAN.
     */
    public float getMEAN() {
      return mEAN_;
    }

    public static final int FATIGUE_FIELD_NUMBER = 5;
    private float fatigue_;
    /**
     * <code>required float fatigue = 5;</code>
     * @return Whether the fatigue field is set.
     */
    public boolean hasFatigue() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required float fatigue = 5;</code>
     * @return The fatigue.
     */
    public float getFatigue() {
      return fatigue_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSDNN()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRMSSD()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPNN50()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMEAN()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFatigue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFloat(1, sDNN_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFloat(2, rMSSD_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFloat(3, pNN50_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFloat(4, mEAN_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeFloat(5, fatigue_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, sDNN_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, rMSSD_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, pNN50_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, mEAN_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, fatigue_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthHrv)) {
        return super.equals(obj);
      }
      HisHealthHrv other = (HisHealthHrv) obj;

      if (hasSDNN() != other.hasSDNN()) return false;
      if (hasSDNN()) {
        if (Float.floatToIntBits(getSDNN())
            != Float.floatToIntBits(
                other.getSDNN())) return false;
      }
      if (hasRMSSD() != other.hasRMSSD()) return false;
      if (hasRMSSD()) {
        if (Float.floatToIntBits(getRMSSD())
            != Float.floatToIntBits(
                other.getRMSSD())) return false;
      }
      if (hasPNN50() != other.hasPNN50()) return false;
      if (hasPNN50()) {
        if (Float.floatToIntBits(getPNN50())
            != Float.floatToIntBits(
                other.getPNN50())) return false;
      }
      if (hasMEAN() != other.hasMEAN()) return false;
      if (hasMEAN()) {
        if (Float.floatToIntBits(getMEAN())
            != Float.floatToIntBits(
                other.getMEAN())) return false;
      }
      if (hasFatigue() != other.hasFatigue()) return false;
      if (hasFatigue()) {
        if (Float.floatToIntBits(getFatigue())
            != Float.floatToIntBits(
                other.getFatigue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSDNN()) {
        hash = (37 * hash) + SDNN_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getSDNN());
      }
      if (hasRMSSD()) {
        hash = (37 * hash) + RMSSD_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getRMSSD());
      }
      if (hasPNN50()) {
        hash = (37 * hash) + PNN50_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getPNN50());
      }
      if (hasMEAN()) {
        hash = (37 * hash) + MEAN_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getMEAN());
      }
      if (hasFatigue()) {
        hash = (37 * hash) + FATIGUE_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getFatigue());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthHrv parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHrv parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHrv parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHrv parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHrv parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHrv parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHrv parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthHrv parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthHrv parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthHrv parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthHrv parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthHrv parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthHrv prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthHrv}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthHrv)
        HisHealthHrvOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthHrv_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthHrv_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthHrv.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthHrv.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        sDNN_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        rMSSD_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        pNN50_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        mEAN_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        fatigue_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthHrv_descriptor;
      }

      @Override
      public HisHealthHrv getDefaultInstanceForType() {
        return HisHealthHrv.getDefaultInstance();
      }

      @Override
      public HisHealthHrv build() {
        HisHealthHrv result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthHrv buildPartial() {
        HisHealthHrv result = new HisHealthHrv(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sDNN_ = sDNN_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.rMSSD_ = rMSSD_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.pNN50_ = pNN50_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.mEAN_ = mEAN_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.fatigue_ = fatigue_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthHrv) {
          return mergeFrom((HisHealthHrv)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthHrv other) {
        if (other == HisHealthHrv.getDefaultInstance()) return this;
        if (other.hasSDNN()) {
          setSDNN(other.getSDNN());
        }
        if (other.hasRMSSD()) {
          setRMSSD(other.getRMSSD());
        }
        if (other.hasPNN50()) {
          setPNN50(other.getPNN50());
        }
        if (other.hasMEAN()) {
          setMEAN(other.getMEAN());
        }
        if (other.hasFatigue()) {
          setFatigue(other.getFatigue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasSDNN()) {
          return false;
        }
        if (!hasRMSSD()) {
          return false;
        }
        if (!hasPNN50()) {
          return false;
        }
        if (!hasMEAN()) {
          return false;
        }
        if (!hasFatigue()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthHrv parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthHrv) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float sDNN_ ;
      /**
       * <code>required float SDNN = 1;</code>
       * @return Whether the sDNN field is set.
       */
      public boolean hasSDNN() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required float SDNN = 1;</code>
       * @return The sDNN.
       */
      public float getSDNN() {
        return sDNN_;
      }
      /**
       * <code>required float SDNN = 1;</code>
       * @param value The sDNN to set.
       * @return This builder for chaining.
       */
      public Builder setSDNN(float value) {
        bitField0_ |= 0x00000001;
        sDNN_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float SDNN = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSDNN() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sDNN_ = 0F;
        onChanged();
        return this;
      }

      private float rMSSD_ ;
      /**
       * <code>required float RMSSD = 2;</code>
       * @return Whether the rMSSD field is set.
       */
      public boolean hasRMSSD() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required float RMSSD = 2;</code>
       * @return The rMSSD.
       */
      public float getRMSSD() {
        return rMSSD_;
      }
      /**
       * <code>required float RMSSD = 2;</code>
       * @param value The rMSSD to set.
       * @return This builder for chaining.
       */
      public Builder setRMSSD(float value) {
        bitField0_ |= 0x00000002;
        rMSSD_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float RMSSD = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRMSSD() {
        bitField0_ = (bitField0_ & ~0x00000002);
        rMSSD_ = 0F;
        onChanged();
        return this;
      }

      private float pNN50_ ;
      /**
       * <code>required float PNN50 = 3;</code>
       * @return Whether the pNN50 field is set.
       */
      public boolean hasPNN50() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required float PNN50 = 3;</code>
       * @return The pNN50.
       */
      public float getPNN50() {
        return pNN50_;
      }
      /**
       * <code>required float PNN50 = 3;</code>
       * @param value The pNN50 to set.
       * @return This builder for chaining.
       */
      public Builder setPNN50(float value) {
        bitField0_ |= 0x00000004;
        pNN50_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float PNN50 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPNN50() {
        bitField0_ = (bitField0_ & ~0x00000004);
        pNN50_ = 0F;
        onChanged();
        return this;
      }

      private float mEAN_ ;
      /**
       * <code>required float MEAN = 4;</code>
       * @return Whether the mEAN field is set.
       */
      public boolean hasMEAN() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required float MEAN = 4;</code>
       * @return The mEAN.
       */
      public float getMEAN() {
        return mEAN_;
      }
      /**
       * <code>required float MEAN = 4;</code>
       * @param value The mEAN to set.
       * @return This builder for chaining.
       */
      public Builder setMEAN(float value) {
        bitField0_ |= 0x00000008;
        mEAN_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float MEAN = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMEAN() {
        bitField0_ = (bitField0_ & ~0x00000008);
        mEAN_ = 0F;
        onChanged();
        return this;
      }

      private float fatigue_ ;
      /**
       * <code>required float fatigue = 5;</code>
       * @return Whether the fatigue field is set.
       */
      public boolean hasFatigue() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required float fatigue = 5;</code>
       * @return The fatigue.
       */
      public float getFatigue() {
        return fatigue_;
      }
      /**
       * <code>required float fatigue = 5;</code>
       * @param value The fatigue to set.
       * @return This builder for chaining.
       */
      public Builder setFatigue(float value) {
        bitField0_ |= 0x00000010;
        fatigue_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float fatigue = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearFatigue() {
        bitField0_ = (bitField0_ & ~0x00000010);
        fatigue_ = 0F;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthHrv)
    }

    // @@protoc_insertion_point(class_scope:HisHealthHrv)
    private static final HisHealthHrv DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthHrv();
    }

    public static HisHealthHrv getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthHrv>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthHrv>() {
      @Override
      public HisHealthHrv parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthHrv(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthHrv> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthHrv> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthHrv getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthMdtOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthMdt)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required float SDNN = 1;</code>
     * @return Whether the sDNN field is set.
     */
    boolean hasSDNN();
    /**
     * <code>required float SDNN = 1;</code>
     * @return The sDNN.
     */
    float getSDNN();

    /**
     * <code>required float RMSSD = 2;</code>
     * @return Whether the rMSSD field is set.
     */
    boolean hasRMSSD();
    /**
     * <code>required float RMSSD = 2;</code>
     * @return The rMSSD.
     */
    float getRMSSD();

    /**
     * <code>required float PNN50 = 3;</code>
     * @return Whether the pNN50 field is set.
     */
    boolean hasPNN50();
    /**
     * <code>required float PNN50 = 3;</code>
     * @return The pNN50.
     */
    float getPNN50();

    /**
     * <code>required float MEAN = 4;</code>
     * @return Whether the mEAN field is set.
     */
    boolean hasMEAN();
    /**
     * <code>required float MEAN = 4;</code>
     * @return The mEAN.
     */
    float getMEAN();

    /**
     * <code>required .HisMdtState status = 5;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>required .HisMdtState status = 5;</code>
     * @return The status.
     */
    HisMdtState getStatus();

    /**
     * <code>required float RESULT = 6;</code>
     * @return Whether the rESULT field is set.
     */
    boolean hasRESULT();
    /**
     * <code>required float RESULT = 6;</code>
     * @return The rESULT.
     */
    float getRESULT();

    /**
     * <code>required float RELAX = 7;</code>
     * @return Whether the rELAX field is set.
     */
    boolean hasRELAX();
    /**
     * <code>required float RELAX = 7;</code>
     * @return The rELAX.
     */
    float getRELAX();
  }
  /**
   * Protobuf type {@code HisHealthMdt}
   */
  public  static final class HisHealthMdt extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthMdt)
      HisHealthMdtOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthMdt.newBuilder() to construct.
    private HisHealthMdt(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthMdt() {
      status_ = 0;
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthMdt();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthMdt(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              sDNN_ = input.readFloat();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              rMSSD_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              pNN50_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              mEAN_ = input.readFloat();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              HisMdtState value = HisMdtState.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(5, rawValue);
              } else {
                bitField0_ |= 0x00000010;
                status_ = rawValue;
              }
              break;
            }
            case 53: {
              bitField0_ |= 0x00000020;
              rESULT_ = input.readFloat();
              break;
            }
            case 61: {
              bitField0_ |= 0x00000040;
              rELAX_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthMdt_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthMdt_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthMdt.class, Builder.class);
    }

    private int bitField0_;
    public static final int SDNN_FIELD_NUMBER = 1;
    private float sDNN_;
    /**
     * <code>required float SDNN = 1;</code>
     * @return Whether the sDNN field is set.
     */
    public boolean hasSDNN() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required float SDNN = 1;</code>
     * @return The sDNN.
     */
    public float getSDNN() {
      return sDNN_;
    }

    public static final int RMSSD_FIELD_NUMBER = 2;
    private float rMSSD_;
    /**
     * <code>required float RMSSD = 2;</code>
     * @return Whether the rMSSD field is set.
     */
    public boolean hasRMSSD() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required float RMSSD = 2;</code>
     * @return The rMSSD.
     */
    public float getRMSSD() {
      return rMSSD_;
    }

    public static final int PNN50_FIELD_NUMBER = 3;
    private float pNN50_;
    /**
     * <code>required float PNN50 = 3;</code>
     * @return Whether the pNN50 field is set.
     */
    public boolean hasPNN50() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required float PNN50 = 3;</code>
     * @return The pNN50.
     */
    public float getPNN50() {
      return pNN50_;
    }

    public static final int MEAN_FIELD_NUMBER = 4;
    private float mEAN_;
    /**
     * <code>required float MEAN = 4;</code>
     * @return Whether the mEAN field is set.
     */
    public boolean hasMEAN() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required float MEAN = 4;</code>
     * @return The mEAN.
     */
    public float getMEAN() {
      return mEAN_;
    }

    public static final int STATUS_FIELD_NUMBER = 5;
    private int status_;
    /**
     * <code>required .HisMdtState status = 5;</code>
     * @return Whether the status field is set.
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required .HisMdtState status = 5;</code>
     * @return The status.
     */
    public HisMdtState getStatus() {
      @SuppressWarnings("deprecation")
      HisMdtState result = HisMdtState.valueOf(status_);
      return result == null ? HisMdtState.PREPARE : result;
    }

    public static final int RESULT_FIELD_NUMBER = 6;
    private float rESULT_;
    /**
     * <code>required float RESULT = 6;</code>
     * @return Whether the rESULT field is set.
     */
    public boolean hasRESULT() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>required float RESULT = 6;</code>
     * @return The rESULT.
     */
    public float getRESULT() {
      return rESULT_;
    }

    public static final int RELAX_FIELD_NUMBER = 7;
    private float rELAX_;
    /**
     * <code>required float RELAX = 7;</code>
     * @return Whether the rELAX field is set.
     */
    public boolean hasRELAX() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>required float RELAX = 7;</code>
     * @return The rELAX.
     */
    public float getRELAX() {
      return rELAX_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSDNN()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRMSSD()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPNN50()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMEAN()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStatus()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRESULT()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRELAX()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFloat(1, sDNN_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFloat(2, rMSSD_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFloat(3, pNN50_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFloat(4, mEAN_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeEnum(5, status_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeFloat(6, rESULT_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeFloat(7, rELAX_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, sDNN_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, rMSSD_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, pNN50_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, mEAN_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, status_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, rESULT_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, rELAX_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthMdt)) {
        return super.equals(obj);
      }
      HisHealthMdt other = (HisHealthMdt) obj;

      if (hasSDNN() != other.hasSDNN()) return false;
      if (hasSDNN()) {
        if (Float.floatToIntBits(getSDNN())
            != Float.floatToIntBits(
                other.getSDNN())) return false;
      }
      if (hasRMSSD() != other.hasRMSSD()) return false;
      if (hasRMSSD()) {
        if (Float.floatToIntBits(getRMSSD())
            != Float.floatToIntBits(
                other.getRMSSD())) return false;
      }
      if (hasPNN50() != other.hasPNN50()) return false;
      if (hasPNN50()) {
        if (Float.floatToIntBits(getPNN50())
            != Float.floatToIntBits(
                other.getPNN50())) return false;
      }
      if (hasMEAN() != other.hasMEAN()) return false;
      if (hasMEAN()) {
        if (Float.floatToIntBits(getMEAN())
            != Float.floatToIntBits(
                other.getMEAN())) return false;
      }
      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (status_ != other.status_) return false;
      }
      if (hasRESULT() != other.hasRESULT()) return false;
      if (hasRESULT()) {
        if (Float.floatToIntBits(getRESULT())
            != Float.floatToIntBits(
                other.getRESULT())) return false;
      }
      if (hasRELAX() != other.hasRELAX()) return false;
      if (hasRELAX()) {
        if (Float.floatToIntBits(getRELAX())
            != Float.floatToIntBits(
                other.getRELAX())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSDNN()) {
        hash = (37 * hash) + SDNN_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getSDNN());
      }
      if (hasRMSSD()) {
        hash = (37 * hash) + RMSSD_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getRMSSD());
      }
      if (hasPNN50()) {
        hash = (37 * hash) + PNN50_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getPNN50());
      }
      if (hasMEAN()) {
        hash = (37 * hash) + MEAN_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getMEAN());
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + status_;
      }
      if (hasRESULT()) {
        hash = (37 * hash) + RESULT_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getRESULT());
      }
      if (hasRELAX()) {
        hash = (37 * hash) + RELAX_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getRELAX());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthMdt parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthMdt parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthMdt parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthMdt parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthMdt parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthMdt parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthMdt parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthMdt parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthMdt parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthMdt parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthMdt parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthMdt parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthMdt prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthMdt}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthMdt)
        HisHealthMdtOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthMdt_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthMdt_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthMdt.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthMdt.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        sDNN_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        rMSSD_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        pNN50_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        mEAN_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        status_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        rESULT_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000020);
        rELAX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthMdt_descriptor;
      }

      @Override
      public HisHealthMdt getDefaultInstanceForType() {
        return HisHealthMdt.getDefaultInstance();
      }

      @Override
      public HisHealthMdt build() {
        HisHealthMdt result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthMdt buildPartial() {
        HisHealthMdt result = new HisHealthMdt(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sDNN_ = sDNN_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.rMSSD_ = rMSSD_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.pNN50_ = pNN50_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.mEAN_ = mEAN_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.rESULT_ = rESULT_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.rELAX_ = rELAX_;
          to_bitField0_ |= 0x00000040;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthMdt) {
          return mergeFrom((HisHealthMdt)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthMdt other) {
        if (other == HisHealthMdt.getDefaultInstance()) return this;
        if (other.hasSDNN()) {
          setSDNN(other.getSDNN());
        }
        if (other.hasRMSSD()) {
          setRMSSD(other.getRMSSD());
        }
        if (other.hasPNN50()) {
          setPNN50(other.getPNN50());
        }
        if (other.hasMEAN()) {
          setMEAN(other.getMEAN());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRESULT()) {
          setRESULT(other.getRESULT());
        }
        if (other.hasRELAX()) {
          setRELAX(other.getRELAX());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasSDNN()) {
          return false;
        }
        if (!hasRMSSD()) {
          return false;
        }
        if (!hasPNN50()) {
          return false;
        }
        if (!hasMEAN()) {
          return false;
        }
        if (!hasStatus()) {
          return false;
        }
        if (!hasRESULT()) {
          return false;
        }
        if (!hasRELAX()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthMdt parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthMdt) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float sDNN_ ;
      /**
       * <code>required float SDNN = 1;</code>
       * @return Whether the sDNN field is set.
       */
      public boolean hasSDNN() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required float SDNN = 1;</code>
       * @return The sDNN.
       */
      public float getSDNN() {
        return sDNN_;
      }
      /**
       * <code>required float SDNN = 1;</code>
       * @param value The sDNN to set.
       * @return This builder for chaining.
       */
      public Builder setSDNN(float value) {
        bitField0_ |= 0x00000001;
        sDNN_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float SDNN = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSDNN() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sDNN_ = 0F;
        onChanged();
        return this;
      }

      private float rMSSD_ ;
      /**
       * <code>required float RMSSD = 2;</code>
       * @return Whether the rMSSD field is set.
       */
      public boolean hasRMSSD() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required float RMSSD = 2;</code>
       * @return The rMSSD.
       */
      public float getRMSSD() {
        return rMSSD_;
      }
      /**
       * <code>required float RMSSD = 2;</code>
       * @param value The rMSSD to set.
       * @return This builder for chaining.
       */
      public Builder setRMSSD(float value) {
        bitField0_ |= 0x00000002;
        rMSSD_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float RMSSD = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRMSSD() {
        bitField0_ = (bitField0_ & ~0x00000002);
        rMSSD_ = 0F;
        onChanged();
        return this;
      }

      private float pNN50_ ;
      /**
       * <code>required float PNN50 = 3;</code>
       * @return Whether the pNN50 field is set.
       */
      public boolean hasPNN50() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required float PNN50 = 3;</code>
       * @return The pNN50.
       */
      public float getPNN50() {
        return pNN50_;
      }
      /**
       * <code>required float PNN50 = 3;</code>
       * @param value The pNN50 to set.
       * @return This builder for chaining.
       */
      public Builder setPNN50(float value) {
        bitField0_ |= 0x00000004;
        pNN50_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float PNN50 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPNN50() {
        bitField0_ = (bitField0_ & ~0x00000004);
        pNN50_ = 0F;
        onChanged();
        return this;
      }

      private float mEAN_ ;
      /**
       * <code>required float MEAN = 4;</code>
       * @return Whether the mEAN field is set.
       */
      public boolean hasMEAN() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required float MEAN = 4;</code>
       * @return The mEAN.
       */
      public float getMEAN() {
        return mEAN_;
      }
      /**
       * <code>required float MEAN = 4;</code>
       * @param value The mEAN to set.
       * @return This builder for chaining.
       */
      public Builder setMEAN(float value) {
        bitField0_ |= 0x00000008;
        mEAN_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float MEAN = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMEAN() {
        bitField0_ = (bitField0_ & ~0x00000008);
        mEAN_ = 0F;
        onChanged();
        return this;
      }

      private int status_ = 0;
      /**
       * <code>required .HisMdtState status = 5;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required .HisMdtState status = 5;</code>
       * @return The status.
       */
      public HisMdtState getStatus() {
        @SuppressWarnings("deprecation")
        HisMdtState result = HisMdtState.valueOf(status_);
        return result == null ? HisMdtState.PREPARE : result;
      }
      /**
       * <code>required .HisMdtState status = 5;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(HisMdtState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .HisMdtState status = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000010);
        status_ = 0;
        onChanged();
        return this;
      }

      private float rESULT_ ;
      /**
       * <code>required float RESULT = 6;</code>
       * @return Whether the rESULT field is set.
       */
      public boolean hasRESULT() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required float RESULT = 6;</code>
       * @return The rESULT.
       */
      public float getRESULT() {
        return rESULT_;
      }
      /**
       * <code>required float RESULT = 6;</code>
       * @param value The rESULT to set.
       * @return This builder for chaining.
       */
      public Builder setRESULT(float value) {
        bitField0_ |= 0x00000020;
        rESULT_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float RESULT = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRESULT() {
        bitField0_ = (bitField0_ & ~0x00000020);
        rESULT_ = 0F;
        onChanged();
        return this;
      }

      private float rELAX_ ;
      /**
       * <code>required float RELAX = 7;</code>
       * @return Whether the rELAX field is set.
       */
      public boolean hasRELAX() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>required float RELAX = 7;</code>
       * @return The rELAX.
       */
      public float getRELAX() {
        return rELAX_;
      }
      /**
       * <code>required float RELAX = 7;</code>
       * @param value The rELAX to set.
       * @return This builder for chaining.
       */
      public Builder setRELAX(float value) {
        bitField0_ |= 0x00000040;
        rELAX_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float RELAX = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearRELAX() {
        bitField0_ = (bitField0_ & ~0x00000040);
        rELAX_ = 0F;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthMdt)
    }

    // @@protoc_insertion_point(class_scope:HisHealthMdt)
    private static final HisHealthMdt DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthMdt();
    }

    public static HisHealthMdt getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthMdt>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthMdt>() {
      @Override
      public HisHealthMdt parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthMdt(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthMdt> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthMdt> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthMdt getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthBpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthBp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 sbp = 1;</code>
     * @return Whether the sbp field is set.
     */
    boolean hasSbp();
    /**
     * <code>required fixed32 sbp = 1;</code>
     * @return The sbp.
     */
    int getSbp();

    /**
     * <code>required fixed32 dbp = 2;</code>
     * @return Whether the dbp field is set.
     */
    boolean hasDbp();
    /**
     * <code>required fixed32 dbp = 2;</code>
     * @return The dbp.
     */
    int getDbp();

    /**
     * <code>optional fixed32 time = 3;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional fixed32 time = 3;</code>
     * @return The time.
     */
    int getTime();
  }
  /**
   * Protobuf type {@code HisHealthBp}
   */
  public  static final class HisHealthBp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthBp)
      HisHealthBpOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthBp.newBuilder() to construct.
    private HisHealthBp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthBp() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthBp();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthBp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              sbp_ = input.readFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              dbp_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              time_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthBp_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthBp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthBp.class, Builder.class);
    }

    private int bitField0_;
    public static final int SBP_FIELD_NUMBER = 1;
    private int sbp_;
    /**
     * <code>required fixed32 sbp = 1;</code>
     * @return Whether the sbp field is set.
     */
    public boolean hasSbp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 sbp = 1;</code>
     * @return The sbp.
     */
    public int getSbp() {
      return sbp_;
    }

    public static final int DBP_FIELD_NUMBER = 2;
    private int dbp_;
    /**
     * <code>required fixed32 dbp = 2;</code>
     * @return Whether the dbp field is set.
     */
    public boolean hasDbp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 dbp = 2;</code>
     * @return The dbp.
     */
    public int getDbp() {
      return dbp_;
    }

    public static final int TIME_FIELD_NUMBER = 3;
    private int time_;
    /**
     * <code>optional fixed32 time = 3;</code>
     * @return Whether the time field is set.
     */
    public boolean hasTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional fixed32 time = 3;</code>
     * @return The time.
     */
    public int getTime() {
      return time_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSbp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDbp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, sbp_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, dbp_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, time_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, sbp_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, dbp_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, time_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthBp)) {
        return super.equals(obj);
      }
      HisHealthBp other = (HisHealthBp) obj;

      if (hasSbp() != other.hasSbp()) return false;
      if (hasSbp()) {
        if (getSbp()
            != other.getSbp()) return false;
      }
      if (hasDbp() != other.hasDbp()) return false;
      if (hasDbp()) {
        if (getDbp()
            != other.getDbp()) return false;
      }
      if (hasTime() != other.hasTime()) return false;
      if (hasTime()) {
        if (getTime()
            != other.getTime()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSbp()) {
        hash = (37 * hash) + SBP_FIELD_NUMBER;
        hash = (53 * hash) + getSbp();
      }
      if (hasDbp()) {
        hash = (37 * hash) + DBP_FIELD_NUMBER;
        hash = (53 * hash) + getDbp();
      }
      if (hasTime()) {
        hash = (37 * hash) + TIME_FIELD_NUMBER;
        hash = (53 * hash) + getTime();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthBp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthBp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthBp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthBp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthBp)
        HisHealthBpOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthBp_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthBp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthBp.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthBp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        sbp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        dbp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        time_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthBp_descriptor;
      }

      @Override
      public HisHealthBp getDefaultInstanceForType() {
        return HisHealthBp.getDefaultInstance();
      }

      @Override
      public HisHealthBp build() {
        HisHealthBp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthBp buildPartial() {
        HisHealthBp result = new HisHealthBp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sbp_ = sbp_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.dbp_ = dbp_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.time_ = time_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthBp) {
          return mergeFrom((HisHealthBp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthBp other) {
        if (other == HisHealthBp.getDefaultInstance()) return this;
        if (other.hasSbp()) {
          setSbp(other.getSbp());
        }
        if (other.hasDbp()) {
          setDbp(other.getDbp());
        }
        if (other.hasTime()) {
          setTime(other.getTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasSbp()) {
          return false;
        }
        if (!hasDbp()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthBp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthBp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sbp_ ;
      /**
       * <code>required fixed32 sbp = 1;</code>
       * @return Whether the sbp field is set.
       */
      public boolean hasSbp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 sbp = 1;</code>
       * @return The sbp.
       */
      public int getSbp() {
        return sbp_;
      }
      /**
       * <code>required fixed32 sbp = 1;</code>
       * @param value The sbp to set.
       * @return This builder for chaining.
       */
      public Builder setSbp(int value) {
        bitField0_ |= 0x00000001;
        sbp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 sbp = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSbp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sbp_ = 0;
        onChanged();
        return this;
      }

      private int dbp_ ;
      /**
       * <code>required fixed32 dbp = 2;</code>
       * @return Whether the dbp field is set.
       */
      public boolean hasDbp() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 dbp = 2;</code>
       * @return The dbp.
       */
      public int getDbp() {
        return dbp_;
      }
      /**
       * <code>required fixed32 dbp = 2;</code>
       * @param value The dbp to set.
       * @return This builder for chaining.
       */
      public Builder setDbp(int value) {
        bitField0_ |= 0x00000002;
        dbp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 dbp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDbp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        dbp_ = 0;
        onChanged();
        return this;
      }

      private int time_ ;
      /**
       * <code>optional fixed32 time = 3;</code>
       * @return Whether the time field is set.
       */
      public boolean hasTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional fixed32 time = 3;</code>
       * @return The time.
       */
      public int getTime() {
        return time_;
      }
      /**
       * <code>optional fixed32 time = 3;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(int value) {
        bitField0_ |= 0x00000004;
        time_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional fixed32 time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        time_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthBp)
    }

    // @@protoc_insertion_point(class_scope:HisHealthBp)
    private static final HisHealthBp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthBp();
    }

    public static HisHealthBp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthBp>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthBp>() {
      @Override
      public HisHealthBp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthBp(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthBp> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthBp> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthBp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthAfOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthAf)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required sfixed32 af = 1;</code>
     * @return Whether the af field is set.
     */
    boolean hasAf();
    /**
     * <code>required sfixed32 af = 1;</code>
     * @return The af.
     */
    int getAf();

    /**
     * <pre>
     * true for manual measurement
     * </pre>
     *
     * <code>optional bool manual = 2;</code>
     * @return Whether the manual field is set.
     */
    boolean hasManual();
    /**
     * <pre>
     * true for manual measurement
     * </pre>
     *
     * <code>optional bool manual = 2;</code>
     * @return The manual.
     */
    boolean getManual();
  }
  /**
   * Protobuf type {@code HisHealthAf}
   */
  public  static final class HisHealthAf extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthAf)
      HisHealthAfOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthAf.newBuilder() to construct.
    private HisHealthAf(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthAf() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthAf();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthAf(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              af_ = input.readSFixed32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              manual_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthAf_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthAf_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthAf.class, Builder.class);
    }

    private int bitField0_;
    public static final int AF_FIELD_NUMBER = 1;
    private int af_;
    /**
     * <code>required sfixed32 af = 1;</code>
     * @return Whether the af field is set.
     */
    public boolean hasAf() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required sfixed32 af = 1;</code>
     * @return The af.
     */
    public int getAf() {
      return af_;
    }

    public static final int MANUAL_FIELD_NUMBER = 2;
    private boolean manual_;
    /**
     * <pre>
     * true for manual measurement
     * </pre>
     *
     * <code>optional bool manual = 2;</code>
     * @return Whether the manual field is set.
     */
    public boolean hasManual() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * true for manual measurement
     * </pre>
     *
     * <code>optional bool manual = 2;</code>
     * @return The manual.
     */
    public boolean getManual() {
      return manual_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasAf()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeSFixed32(1, af_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, manual_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, af_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, manual_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthAf)) {
        return super.equals(obj);
      }
      HisHealthAf other = (HisHealthAf) obj;

      if (hasAf() != other.hasAf()) return false;
      if (hasAf()) {
        if (getAf()
            != other.getAf()) return false;
      }
      if (hasManual() != other.hasManual()) return false;
      if (hasManual()) {
        if (getManual()
            != other.getManual()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAf()) {
        hash = (37 * hash) + AF_FIELD_NUMBER;
        hash = (53 * hash) + getAf();
      }
      if (hasManual()) {
        hash = (37 * hash) + MANUAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getManual());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthAf parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthAf parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthAf parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthAf parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthAf parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthAf parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthAf parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthAf parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthAf parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthAf parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthAf parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthAf parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthAf prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthAf}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthAf)
        HisHealthAfOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthAf_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthAf_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthAf.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthAf.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        af_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        manual_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthAf_descriptor;
      }

      @Override
      public HisHealthAf getDefaultInstanceForType() {
        return HisHealthAf.getDefaultInstance();
      }

      @Override
      public HisHealthAf build() {
        HisHealthAf result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthAf buildPartial() {
        HisHealthAf result = new HisHealthAf(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.af_ = af_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.manual_ = manual_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthAf) {
          return mergeFrom((HisHealthAf)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthAf other) {
        if (other == HisHealthAf.getDefaultInstance()) return this;
        if (other.hasAf()) {
          setAf(other.getAf());
        }
        if (other.hasManual()) {
          setManual(other.getManual());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasAf()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthAf parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthAf) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int af_ ;
      /**
       * <code>required sfixed32 af = 1;</code>
       * @return Whether the af field is set.
       */
      public boolean hasAf() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required sfixed32 af = 1;</code>
       * @return The af.
       */
      public int getAf() {
        return af_;
      }
      /**
       * <code>required sfixed32 af = 1;</code>
       * @param value The af to set.
       * @return This builder for chaining.
       */
      public Builder setAf(int value) {
        bitField0_ |= 0x00000001;
        af_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 af = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAf() {
        bitField0_ = (bitField0_ & ~0x00000001);
        af_ = 0;
        onChanged();
        return this;
      }

      private boolean manual_ ;
      /**
       * <pre>
       * true for manual measurement
       * </pre>
       *
       * <code>optional bool manual = 2;</code>
       * @return Whether the manual field is set.
       */
      public boolean hasManual() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * true for manual measurement
       * </pre>
       *
       * <code>optional bool manual = 2;</code>
       * @return The manual.
       */
      public boolean getManual() {
        return manual_;
      }
      /**
       * <pre>
       * true for manual measurement
       * </pre>
       *
       * <code>optional bool manual = 2;</code>
       * @param value The manual to set.
       * @return This builder for chaining.
       */
      public Builder setManual(boolean value) {
        bitField0_ |= 0x00000002;
        manual_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * true for manual measurement
       * </pre>
       *
       * <code>optional bool manual = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearManual() {
        bitField0_ = (bitField0_ & ~0x00000002);
        manual_ = false;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthAf)
    }

    // @@protoc_insertion_point(class_scope:HisHealthAf)
    private static final HisHealthAf DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthAf();
    }

    public static HisHealthAf getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthAf>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthAf>() {
      @Override
      public HisHealthAf parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthAf(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthAf> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthAf> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthAf getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthSleepOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthSleep)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
     * @return A list containing the sleepData.
     */
    java.util.List<Integer> getSleepDataList();
    /**
     * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
     * @return The count of sleepData.
     */
    int getSleepDataCount();
    /**
     * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The sleepData at the given index.
     */
    int getSleepData(int index);

    /**
     * <code>required bool shut_down = 2;</code>
     * @return Whether the shutDown field is set.
     */
    boolean hasShutDown();
    /**
     * <code>required bool shut_down = 2;</code>
     * @return The shutDown.
     */
    boolean getShutDown();

    /**
     * <code>required bool charge = 3;</code>
     * @return Whether the charge field is set.
     */
    boolean hasCharge();
    /**
     * <code>required bool charge = 3;</code>
     * @return The charge.
     */
    boolean getCharge();
  }
  /**
   * Protobuf type {@code HisHealthSleep}
   */
  public  static final class HisHealthSleep extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthSleep)
      HisHealthSleepOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthSleep.newBuilder() to construct.
    private HisHealthSleep(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthSleep() {
      sleepData_ = emptyIntList();
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthSleep();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthSleep(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                sleepData_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              sleepData_.addInt(input.readFixed32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                sleepData_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                sleepData_.addInt(input.readFixed32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              shutDown_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              charge_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          sleepData_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthSleep_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthSleep_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthSleep.class, Builder.class);
    }

    private int bitField0_;
    public static final int SLEEP_DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.IntList sleepData_;
    /**
     * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
     * @return A list containing the sleepData.
     */
    public java.util.List<Integer>
        getSleepDataList() {
      return sleepData_;
    }
    /**
     * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
     * @return The count of sleepData.
     */
    public int getSleepDataCount() {
      return sleepData_.size();
    }
    /**
     * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The sleepData at the given index.
     */
    public int getSleepData(int index) {
      return sleepData_.getInt(index);
    }
    private int sleepDataMemoizedSerializedSize = -1;

    public static final int SHUT_DOWN_FIELD_NUMBER = 2;
    private boolean shutDown_;
    /**
     * <code>required bool shut_down = 2;</code>
     * @return Whether the shutDown field is set.
     */
    public boolean hasShutDown() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bool shut_down = 2;</code>
     * @return The shutDown.
     */
    public boolean getShutDown() {
      return shutDown_;
    }

    public static final int CHARGE_FIELD_NUMBER = 3;
    private boolean charge_;
    /**
     * <code>required bool charge = 3;</code>
     * @return Whether the charge field is set.
     */
    public boolean hasCharge() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bool charge = 3;</code>
     * @return The charge.
     */
    public boolean getCharge() {
      return charge_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasShutDown()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCharge()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getSleepDataList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(sleepDataMemoizedSerializedSize);
      }
      for (int i = 0; i < sleepData_.size(); i++) {
        output.writeFixed32NoTag(sleepData_.getInt(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(2, shutDown_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(3, charge_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        dataSize = 4 * getSleepDataList().size();
        size += dataSize;
        if (!getSleepDataList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        sleepDataMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, shutDown_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, charge_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthSleep)) {
        return super.equals(obj);
      }
      HisHealthSleep other = (HisHealthSleep) obj;

      if (!getSleepDataList()
          .equals(other.getSleepDataList())) return false;
      if (hasShutDown() != other.hasShutDown()) return false;
      if (hasShutDown()) {
        if (getShutDown()
            != other.getShutDown()) return false;
      }
      if (hasCharge() != other.hasCharge()) return false;
      if (hasCharge()) {
        if (getCharge()
            != other.getCharge()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getSleepDataCount() > 0) {
        hash = (37 * hash) + SLEEP_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getSleepDataList().hashCode();
      }
      if (hasShutDown()) {
        hash = (37 * hash) + SHUT_DOWN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getShutDown());
      }
      if (hasCharge()) {
        hash = (37 * hash) + CHARGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getCharge());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthSleep parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthSleep parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthSleep parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthSleep parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthSleep parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthSleep parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthSleep parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthSleep parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthSleep parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthSleep parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthSleep parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthSleep parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthSleep prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthSleep}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthSleep)
        HisHealthSleepOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthSleep_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthSleep_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthSleep.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthSleep.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        sleepData_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        shutDown_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        charge_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthSleep_descriptor;
      }

      @Override
      public HisHealthSleep getDefaultInstanceForType() {
        return HisHealthSleep.getDefaultInstance();
      }

      @Override
      public HisHealthSleep build() {
        HisHealthSleep result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthSleep buildPartial() {
        HisHealthSleep result = new HisHealthSleep(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          sleepData_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.sleepData_ = sleepData_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.shutDown_ = shutDown_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.charge_ = charge_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthSleep) {
          return mergeFrom((HisHealthSleep)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthSleep other) {
        if (other == HisHealthSleep.getDefaultInstance()) return this;
        if (!other.sleepData_.isEmpty()) {
          if (sleepData_.isEmpty()) {
            sleepData_ = other.sleepData_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureSleepDataIsMutable();
            sleepData_.addAll(other.sleepData_);
          }
          onChanged();
        }
        if (other.hasShutDown()) {
          setShutDown(other.getShutDown());
        }
        if (other.hasCharge()) {
          setCharge(other.getCharge());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasShutDown()) {
          return false;
        }
        if (!hasCharge()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthSleep parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthSleep) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.IntList sleepData_ = emptyIntList();
      private void ensureSleepDataIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          sleepData_ = mutableCopy(sleepData_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @return A list containing the sleepData.
       */
      public java.util.List<Integer>
          getSleepDataList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(sleepData_) : sleepData_;
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @return The count of sleepData.
       */
      public int getSleepDataCount() {
        return sleepData_.size();
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The sleepData at the given index.
       */
      public int getSleepData(int index) {
        return sleepData_.getInt(index);
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The sleepData to set.
       * @return This builder for chaining.
       */
      public Builder setSleepData(
          int index, int value) {
        ensureSleepDataIsMutable();
        sleepData_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @param value The sleepData to add.
       * @return This builder for chaining.
       */
      public Builder addSleepData(int value) {
        ensureSleepDataIsMutable();
        sleepData_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @param values The sleepData to add.
       * @return This builder for chaining.
       */
      public Builder addAllSleepData(
          Iterable<? extends Integer> values) {
        ensureSleepDataIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, sleepData_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated fixed32 sleep_data = 1 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearSleepData() {
        sleepData_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private boolean shutDown_ ;
      /**
       * <code>required bool shut_down = 2;</code>
       * @return Whether the shutDown field is set.
       */
      public boolean hasShutDown() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool shut_down = 2;</code>
       * @return The shutDown.
       */
      public boolean getShutDown() {
        return shutDown_;
      }
      /**
       * <code>required bool shut_down = 2;</code>
       * @param value The shutDown to set.
       * @return This builder for chaining.
       */
      public Builder setShutDown(boolean value) {
        bitField0_ |= 0x00000002;
        shutDown_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool shut_down = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearShutDown() {
        bitField0_ = (bitField0_ & ~0x00000002);
        shutDown_ = false;
        onChanged();
        return this;
      }

      private boolean charge_ ;
      /**
       * <code>required bool charge = 3;</code>
       * @return Whether the charge field is set.
       */
      public boolean hasCharge() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool charge = 3;</code>
       * @return The charge.
       */
      public boolean getCharge() {
        return charge_;
      }
      /**
       * <code>required bool charge = 3;</code>
       * @param value The charge to set.
       * @return This builder for chaining.
       */
      public Builder setCharge(boolean value) {
        bitField0_ |= 0x00000004;
        charge_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool charge = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCharge() {
        bitField0_ = (bitField0_ & ~0x00000004);
        charge_ = false;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthSleep)
    }

    // @@protoc_insertion_point(class_scope:HisHealthSleep)
    private static final HisHealthSleep DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthSleep();
    }

    public static HisHealthSleep getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthSleep>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthSleep>() {
      @Override
      public HisHealthSleep parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthSleep(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthSleep> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthSleep> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthSleep getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthMoodOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthMood)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 mood_level = 1;</code>
     * @return Whether the moodLevel field is set.
     */
    boolean hasMoodLevel();
    /**
     * <code>required fixed32 mood_level = 1;</code>
     * @return The moodLevel.
     */
    int getMoodLevel();
  }
  /**
   * Protobuf type {@code HisHealthMood}
   */
  public  static final class HisHealthMood extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthMood)
      HisHealthMoodOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthMood.newBuilder() to construct.
    private HisHealthMood(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthMood() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthMood();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthMood(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              moodLevel_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthMood_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthMood_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthMood.class, Builder.class);
    }

    private int bitField0_;
    public static final int MOOD_LEVEL_FIELD_NUMBER = 1;
    private int moodLevel_;
    /**
     * <code>required fixed32 mood_level = 1;</code>
     * @return Whether the moodLevel field is set.
     */
    public boolean hasMoodLevel() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 mood_level = 1;</code>
     * @return The moodLevel.
     */
    public int getMoodLevel() {
      return moodLevel_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMoodLevel()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, moodLevel_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, moodLevel_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthMood)) {
        return super.equals(obj);
      }
      HisHealthMood other = (HisHealthMood) obj;

      if (hasMoodLevel() != other.hasMoodLevel()) return false;
      if (hasMoodLevel()) {
        if (getMoodLevel()
            != other.getMoodLevel()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMoodLevel()) {
        hash = (37 * hash) + MOOD_LEVEL_FIELD_NUMBER;
        hash = (53 * hash) + getMoodLevel();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthMood parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthMood parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthMood parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthMood parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthMood parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthMood parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthMood parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthMood parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthMood parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthMood parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthMood parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthMood parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthMood prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthMood}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthMood)
        HisHealthMoodOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthMood_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthMood_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthMood.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthMood.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        moodLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthMood_descriptor;
      }

      @Override
      public HisHealthMood getDefaultInstanceForType() {
        return HisHealthMood.getDefaultInstance();
      }

      @Override
      public HisHealthMood build() {
        HisHealthMood result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthMood buildPartial() {
        HisHealthMood result = new HisHealthMood(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.moodLevel_ = moodLevel_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthMood) {
          return mergeFrom((HisHealthMood)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthMood other) {
        if (other == HisHealthMood.getDefaultInstance()) return this;
        if (other.hasMoodLevel()) {
          setMoodLevel(other.getMoodLevel());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasMoodLevel()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthMood parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthMood) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int moodLevel_ ;
      /**
       * <code>required fixed32 mood_level = 1;</code>
       * @return Whether the moodLevel field is set.
       */
      public boolean hasMoodLevel() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 mood_level = 1;</code>
       * @return The moodLevel.
       */
      public int getMoodLevel() {
        return moodLevel_;
      }
      /**
       * <code>required fixed32 mood_level = 1;</code>
       * @param value The moodLevel to set.
       * @return This builder for chaining.
       */
      public Builder setMoodLevel(int value) {
        bitField0_ |= 0x00000001;
        moodLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 mood_level = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMoodLevel() {
        bitField0_ = (bitField0_ & ~0x00000001);
        moodLevel_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthMood)
    }

    // @@protoc_insertion_point(class_scope:HisHealthMood)
    private static final HisHealthMood DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthMood();
    }

    public static HisHealthMood getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthMood>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthMood>() {
      @Override
      public HisHealthMood parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthMood(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthMood> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthMood> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthMood getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthBreathOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthBreath)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 breathrate = 1;</code>
     * @return Whether the breathrate field is set.
     */
    boolean hasBreathrate();
    /**
     * <code>required fixed32 breathrate = 1;</code>
     * @return The breathrate.
     */
    int getBreathrate();
  }
  /**
   * Protobuf type {@code HisHealthBreath}
   */
  public  static final class HisHealthBreath extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthBreath)
      HisHealthBreathOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthBreath.newBuilder() to construct.
    private HisHealthBreath(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthBreath() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthBreath();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthBreath(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              breathrate_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthBreath_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthBreath_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthBreath.class, Builder.class);
    }

    private int bitField0_;
    public static final int BREATHRATE_FIELD_NUMBER = 1;
    private int breathrate_;
    /**
     * <code>required fixed32 breathrate = 1;</code>
     * @return Whether the breathrate field is set.
     */
    public boolean hasBreathrate() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 breathrate = 1;</code>
     * @return The breathrate.
     */
    public int getBreathrate() {
      return breathrate_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasBreathrate()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, breathrate_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, breathrate_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthBreath)) {
        return super.equals(obj);
      }
      HisHealthBreath other = (HisHealthBreath) obj;

      if (hasBreathrate() != other.hasBreathrate()) return false;
      if (hasBreathrate()) {
        if (getBreathrate()
            != other.getBreathrate()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBreathrate()) {
        hash = (37 * hash) + BREATHRATE_FIELD_NUMBER;
        hash = (53 * hash) + getBreathrate();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthBreath parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBreath parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBreath parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBreath parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBreath parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBreath parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBreath parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBreath parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBreath parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthBreath parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBreath parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBreath parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthBreath prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthBreath}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthBreath)
        HisHealthBreathOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthBreath_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthBreath_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthBreath.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthBreath.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        breathrate_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthBreath_descriptor;
      }

      @Override
      public HisHealthBreath getDefaultInstanceForType() {
        return HisHealthBreath.getDefaultInstance();
      }

      @Override
      public HisHealthBreath build() {
        HisHealthBreath result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthBreath buildPartial() {
        HisHealthBreath result = new HisHealthBreath(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.breathrate_ = breathrate_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthBreath) {
          return mergeFrom((HisHealthBreath)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthBreath other) {
        if (other == HisHealthBreath.getDefaultInstance()) return this;
        if (other.hasBreathrate()) {
          setBreathrate(other.getBreathrate());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasBreathrate()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthBreath parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthBreath) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int breathrate_ ;
      /**
       * <code>required fixed32 breathrate = 1;</code>
       * @return Whether the breathrate field is set.
       */
      public boolean hasBreathrate() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 breathrate = 1;</code>
       * @return The breathrate.
       */
      public int getBreathrate() {
        return breathrate_;
      }
      /**
       * <code>required fixed32 breathrate = 1;</code>
       * @param value The breathrate to set.
       * @return This builder for chaining.
       */
      public Builder setBreathrate(int value) {
        bitField0_ |= 0x00000001;
        breathrate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 breathrate = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBreathrate() {
        bitField0_ = (bitField0_ & ~0x00000001);
        breathrate_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthBreath)
    }

    // @@protoc_insertion_point(class_scope:HisHealthBreath)
    private static final HisHealthBreath DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthBreath();
    }

    public static HisHealthBreath getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthBreath>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthBreath>() {
      @Override
      public HisHealthBreath parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthBreath(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthBreath> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthBreath> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthBreath getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthBiozOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthBioz)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 R = 1;</code>
     * @return Whether the r field is set.
     */
    boolean hasR();
    /**
     * <code>required fixed32 R = 1;</code>
     * @return The r.
     */
    int getR();

    /**
     * <code>required fixed32 X = 2;</code>
     * @return Whether the x field is set.
     */
    boolean hasX();
    /**
     * <code>required fixed32 X = 2;</code>
     * @return The x.
     */
    int getX();

    /**
     * <code>required fixed32 fat = 3;</code>
     * @return Whether the fat field is set.
     */
    boolean hasFat();
    /**
     * <code>required fixed32 fat = 3;</code>
     * @return The fat.
     */
    int getFat();

    /**
     * <code>required fixed32 bmi = 4;</code>
     * @return Whether the bmi field is set.
     */
    boolean hasBmi();
    /**
     * <code>required fixed32 bmi = 4;</code>
     * @return The bmi.
     */
    int getBmi();

    /**
     * <code>required fixed32 type = 5;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required fixed32 type = 5;</code>
     * @return The type.
     */
    int getType();
  }
  /**
   * Protobuf type {@code HisHealthBioz}
   */
  public  static final class HisHealthBioz extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthBioz)
      HisHealthBiozOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthBioz.newBuilder() to construct.
    private HisHealthBioz(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthBioz() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthBioz();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthBioz(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              r_ = input.readFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              x_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              fat_ = input.readFixed32();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              bmi_ = input.readFixed32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              type_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthBioz_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthBioz_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthBioz.class, Builder.class);
    }

    private int bitField0_;
    public static final int R_FIELD_NUMBER = 1;
    private int r_;
    /**
     * <code>required fixed32 R = 1;</code>
     * @return Whether the r field is set.
     */
    public boolean hasR() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 R = 1;</code>
     * @return The r.
     */
    public int getR() {
      return r_;
    }

    public static final int X_FIELD_NUMBER = 2;
    private int x_;
    /**
     * <code>required fixed32 X = 2;</code>
     * @return Whether the x field is set.
     */
    public boolean hasX() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 X = 2;</code>
     * @return The x.
     */
    public int getX() {
      return x_;
    }

    public static final int FAT_FIELD_NUMBER = 3;
    private int fat_;
    /**
     * <code>required fixed32 fat = 3;</code>
     * @return Whether the fat field is set.
     */
    public boolean hasFat() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 fat = 3;</code>
     * @return The fat.
     */
    public int getFat() {
      return fat_;
    }

    public static final int BMI_FIELD_NUMBER = 4;
    private int bmi_;
    /**
     * <code>required fixed32 bmi = 4;</code>
     * @return Whether the bmi field is set.
     */
    public boolean hasBmi() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required fixed32 bmi = 4;</code>
     * @return The bmi.
     */
    public int getBmi() {
      return bmi_;
    }

    public static final int TYPE_FIELD_NUMBER = 5;
    private int type_;
    /**
     * <code>required fixed32 type = 5;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required fixed32 type = 5;</code>
     * @return The type.
     */
    public int getType() {
      return type_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasR()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasX()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFat()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasBmi()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, r_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, x_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, fat_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFixed32(4, bmi_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeFixed32(5, type_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, r_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, x_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, fat_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(4, bmi_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(5, type_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthBioz)) {
        return super.equals(obj);
      }
      HisHealthBioz other = (HisHealthBioz) obj;

      if (hasR() != other.hasR()) return false;
      if (hasR()) {
        if (getR()
            != other.getR()) return false;
      }
      if (hasX() != other.hasX()) return false;
      if (hasX()) {
        if (getX()
            != other.getX()) return false;
      }
      if (hasFat() != other.hasFat()) return false;
      if (hasFat()) {
        if (getFat()
            != other.getFat()) return false;
      }
      if (hasBmi() != other.hasBmi()) return false;
      if (hasBmi()) {
        if (getBmi()
            != other.getBmi()) return false;
      }
      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (getType()
            != other.getType()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasR()) {
        hash = (37 * hash) + R_FIELD_NUMBER;
        hash = (53 * hash) + getR();
      }
      if (hasX()) {
        hash = (37 * hash) + X_FIELD_NUMBER;
        hash = (53 * hash) + getX();
      }
      if (hasFat()) {
        hash = (37 * hash) + FAT_FIELD_NUMBER;
        hash = (53 * hash) + getFat();
      }
      if (hasBmi()) {
        hash = (37 * hash) + BMI_FIELD_NUMBER;
        hash = (53 * hash) + getBmi();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthBioz parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBioz parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBioz parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBioz parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBioz parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBioz parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBioz parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBioz parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBioz parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthBioz parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBioz parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBioz parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthBioz prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthBioz}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthBioz)
        HisHealthBiozOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthBioz_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthBioz_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthBioz.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthBioz.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        r_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        x_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        fat_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        bmi_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthBioz_descriptor;
      }

      @Override
      public HisHealthBioz getDefaultInstanceForType() {
        return HisHealthBioz.getDefaultInstance();
      }

      @Override
      public HisHealthBioz build() {
        HisHealthBioz result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthBioz buildPartial() {
        HisHealthBioz result = new HisHealthBioz(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.r_ = r_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.x_ = x_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.fat_ = fat_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.bmi_ = bmi_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthBioz) {
          return mergeFrom((HisHealthBioz)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthBioz other) {
        if (other == HisHealthBioz.getDefaultInstance()) return this;
        if (other.hasR()) {
          setR(other.getR());
        }
        if (other.hasX()) {
          setX(other.getX());
        }
        if (other.hasFat()) {
          setFat(other.getFat());
        }
        if (other.hasBmi()) {
          setBmi(other.getBmi());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasR()) {
          return false;
        }
        if (!hasX()) {
          return false;
        }
        if (!hasFat()) {
          return false;
        }
        if (!hasBmi()) {
          return false;
        }
        if (!hasType()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthBioz parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthBioz) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int r_ ;
      /**
       * <code>required fixed32 R = 1;</code>
       * @return Whether the r field is set.
       */
      public boolean hasR() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 R = 1;</code>
       * @return The r.
       */
      public int getR() {
        return r_;
      }
      /**
       * <code>required fixed32 R = 1;</code>
       * @param value The r to set.
       * @return This builder for chaining.
       */
      public Builder setR(int value) {
        bitField0_ |= 0x00000001;
        r_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 R = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearR() {
        bitField0_ = (bitField0_ & ~0x00000001);
        r_ = 0;
        onChanged();
        return this;
      }

      private int x_ ;
      /**
       * <code>required fixed32 X = 2;</code>
       * @return Whether the x field is set.
       */
      public boolean hasX() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 X = 2;</code>
       * @return The x.
       */
      public int getX() {
        return x_;
      }
      /**
       * <code>required fixed32 X = 2;</code>
       * @param value The x to set.
       * @return This builder for chaining.
       */
      public Builder setX(int value) {
        bitField0_ |= 0x00000002;
        x_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 X = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearX() {
        bitField0_ = (bitField0_ & ~0x00000002);
        x_ = 0;
        onChanged();
        return this;
      }

      private int fat_ ;
      /**
       * <code>required fixed32 fat = 3;</code>
       * @return Whether the fat field is set.
       */
      public boolean hasFat() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 fat = 3;</code>
       * @return The fat.
       */
      public int getFat() {
        return fat_;
      }
      /**
       * <code>required fixed32 fat = 3;</code>
       * @param value The fat to set.
       * @return This builder for chaining.
       */
      public Builder setFat(int value) {
        bitField0_ |= 0x00000004;
        fat_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 fat = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFat() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fat_ = 0;
        onChanged();
        return this;
      }

      private int bmi_ ;
      /**
       * <code>required fixed32 bmi = 4;</code>
       * @return Whether the bmi field is set.
       */
      public boolean hasBmi() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required fixed32 bmi = 4;</code>
       * @return The bmi.
       */
      public int getBmi() {
        return bmi_;
      }
      /**
       * <code>required fixed32 bmi = 4;</code>
       * @param value The bmi to set.
       * @return This builder for chaining.
       */
      public Builder setBmi(int value) {
        bitField0_ |= 0x00000008;
        bmi_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 bmi = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearBmi() {
        bitField0_ = (bitField0_ & ~0x00000008);
        bmi_ = 0;
        onChanged();
        return this;
      }

      private int type_ ;
      /**
       * <code>required fixed32 type = 5;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required fixed32 type = 5;</code>
       * @return The type.
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>required fixed32 type = 5;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000010;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 type = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        type_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthBioz)
    }

    // @@protoc_insertion_point(class_scope:HisHealthBioz)
    private static final HisHealthBioz DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthBioz();
    }

    public static HisHealthBioz getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthBioz>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthBioz>() {
      @Override
      public HisHealthBioz parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthBioz(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthBioz> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthBioz> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthBioz getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthBOxyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthBOxy)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required fixed32 min_oxy = 1;</code>
     * @return Whether the minOxy field is set.
     */
    boolean hasMinOxy();
    /**
     * <code>required fixed32 min_oxy = 1;</code>
     * @return The minOxy.
     */
    int getMinOxy();

    /**
     * <code>required fixed32 max_oxy = 2;</code>
     * @return Whether the maxOxy field is set.
     */
    boolean hasMaxOxy();
    /**
     * <code>required fixed32 max_oxy = 2;</code>
     * @return The maxOxy.
     */
    int getMaxOxy();

    /**
     * <code>required fixed32 agv_oxy = 3;</code>
     * @return Whether the agvOxy field is set.
     */
    boolean hasAgvOxy();
    /**
     * <code>required fixed32 agv_oxy = 3;</code>
     * @return The agvOxy.
     */
    int getAgvOxy();
  }
  /**
   * Protobuf type {@code HisHealthBOxy}
   */
  public  static final class HisHealthBOxy extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthBOxy)
      HisHealthBOxyOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthBOxy.newBuilder() to construct.
    private HisHealthBOxy(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthBOxy() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthBOxy();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthBOxy(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              minOxy_ = input.readFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              maxOxy_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              agvOxy_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthBOxy_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthBOxy_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthBOxy.class, Builder.class);
    }

    private int bitField0_;
    public static final int MIN_OXY_FIELD_NUMBER = 1;
    private int minOxy_;
    /**
     * <code>required fixed32 min_oxy = 1;</code>
     * @return Whether the minOxy field is set.
     */
    public boolean hasMinOxy() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required fixed32 min_oxy = 1;</code>
     * @return The minOxy.
     */
    public int getMinOxy() {
      return minOxy_;
    }

    public static final int MAX_OXY_FIELD_NUMBER = 2;
    private int maxOxy_;
    /**
     * <code>required fixed32 max_oxy = 2;</code>
     * @return Whether the maxOxy field is set.
     */
    public boolean hasMaxOxy() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 max_oxy = 2;</code>
     * @return The maxOxy.
     */
    public int getMaxOxy() {
      return maxOxy_;
    }

    public static final int AGV_OXY_FIELD_NUMBER = 3;
    private int agvOxy_;
    /**
     * <code>required fixed32 agv_oxy = 3;</code>
     * @return Whether the agvOxy field is set.
     */
    public boolean hasAgvOxy() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 agv_oxy = 3;</code>
     * @return The agvOxy.
     */
    public int getAgvOxy() {
      return agvOxy_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMinOxy()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMaxOxy()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAgvOxy()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, minOxy_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, maxOxy_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, agvOxy_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, minOxy_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, maxOxy_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, agvOxy_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthBOxy)) {
        return super.equals(obj);
      }
      HisHealthBOxy other = (HisHealthBOxy) obj;

      if (hasMinOxy() != other.hasMinOxy()) return false;
      if (hasMinOxy()) {
        if (getMinOxy()
            != other.getMinOxy()) return false;
      }
      if (hasMaxOxy() != other.hasMaxOxy()) return false;
      if (hasMaxOxy()) {
        if (getMaxOxy()
            != other.getMaxOxy()) return false;
      }
      if (hasAgvOxy() != other.hasAgvOxy()) return false;
      if (hasAgvOxy()) {
        if (getAgvOxy()
            != other.getAgvOxy()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMinOxy()) {
        hash = (37 * hash) + MIN_OXY_FIELD_NUMBER;
        hash = (53 * hash) + getMinOxy();
      }
      if (hasMaxOxy()) {
        hash = (37 * hash) + MAX_OXY_FIELD_NUMBER;
        hash = (53 * hash) + getMaxOxy();
      }
      if (hasAgvOxy()) {
        hash = (37 * hash) + AGV_OXY_FIELD_NUMBER;
        hash = (53 * hash) + getAgvOxy();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthBOxy parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBOxy parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBOxy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBOxy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBOxy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthBOxy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthBOxy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBOxy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBOxy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthBOxy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthBOxy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthBOxy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthBOxy prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthBOxy}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthBOxy)
        HisHealthBOxyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthBOxy_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthBOxy_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthBOxy.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthBOxy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        minOxy_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        maxOxy_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        agvOxy_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthBOxy_descriptor;
      }

      @Override
      public HisHealthBOxy getDefaultInstanceForType() {
        return HisHealthBOxy.getDefaultInstance();
      }

      @Override
      public HisHealthBOxy build() {
        HisHealthBOxy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthBOxy buildPartial() {
        HisHealthBOxy result = new HisHealthBOxy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.minOxy_ = minOxy_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.maxOxy_ = maxOxy_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.agvOxy_ = agvOxy_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthBOxy) {
          return mergeFrom((HisHealthBOxy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthBOxy other) {
        if (other == HisHealthBOxy.getDefaultInstance()) return this;
        if (other.hasMinOxy()) {
          setMinOxy(other.getMinOxy());
        }
        if (other.hasMaxOxy()) {
          setMaxOxy(other.getMaxOxy());
        }
        if (other.hasAgvOxy()) {
          setAgvOxy(other.getAgvOxy());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasMinOxy()) {
          return false;
        }
        if (!hasMaxOxy()) {
          return false;
        }
        if (!hasAgvOxy()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthBOxy parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthBOxy) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int minOxy_ ;
      /**
       * <code>required fixed32 min_oxy = 1;</code>
       * @return Whether the minOxy field is set.
       */
      public boolean hasMinOxy() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required fixed32 min_oxy = 1;</code>
       * @return The minOxy.
       */
      public int getMinOxy() {
        return minOxy_;
      }
      /**
       * <code>required fixed32 min_oxy = 1;</code>
       * @param value The minOxy to set.
       * @return This builder for chaining.
       */
      public Builder setMinOxy(int value) {
        bitField0_ |= 0x00000001;
        minOxy_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 min_oxy = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinOxy() {
        bitField0_ = (bitField0_ & ~0x00000001);
        minOxy_ = 0;
        onChanged();
        return this;
      }

      private int maxOxy_ ;
      /**
       * <code>required fixed32 max_oxy = 2;</code>
       * @return Whether the maxOxy field is set.
       */
      public boolean hasMaxOxy() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 max_oxy = 2;</code>
       * @return The maxOxy.
       */
      public int getMaxOxy() {
        return maxOxy_;
      }
      /**
       * <code>required fixed32 max_oxy = 2;</code>
       * @param value The maxOxy to set.
       * @return This builder for chaining.
       */
      public Builder setMaxOxy(int value) {
        bitField0_ |= 0x00000002;
        maxOxy_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 max_oxy = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxOxy() {
        bitField0_ = (bitField0_ & ~0x00000002);
        maxOxy_ = 0;
        onChanged();
        return this;
      }

      private int agvOxy_ ;
      /**
       * <code>required fixed32 agv_oxy = 3;</code>
       * @return Whether the agvOxy field is set.
       */
      public boolean hasAgvOxy() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 agv_oxy = 3;</code>
       * @return The agvOxy.
       */
      public int getAgvOxy() {
        return agvOxy_;
      }
      /**
       * <code>required fixed32 agv_oxy = 3;</code>
       * @param value The agvOxy to set.
       * @return This builder for chaining.
       */
      public Builder setAgvOxy(int value) {
        bitField0_ |= 0x00000004;
        agvOxy_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 agv_oxy = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAgvOxy() {
        bitField0_ = (bitField0_ & ~0x00000004);
        agvOxy_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthBOxy)
    }

    // @@protoc_insertion_point(class_scope:HisHealthBOxy)
    private static final HisHealthBOxy DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthBOxy();
    }

    public static HisHealthBOxy getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthBOxy>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthBOxy>() {
      @Override
      public HisHealthBOxy parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthBOxy(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthBOxy> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthBOxy> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthBOxy getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthTempOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthTemp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .TPAMeasureType type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>required .TPAMeasureType type = 1;</code>
     * @return The type.
     */
    TPAMeasureType getType();

    /**
     * <code>required fixed32 evi_body = 2;</code>
     * @return Whether the eviBody field is set.
     */
    boolean hasEviBody();
    /**
     * <code>required fixed32 evi_body = 2;</code>
     * @return The eviBody.
     */
    int getEviBody();

    /**
     * <code>required fixed32 esti_arm = 3;</code>
     * @return Whether the estiArm field is set.
     */
    boolean hasEstiArm();
    /**
     * <code>required fixed32 esti_arm = 3;</code>
     * @return The estiArm.
     */
    int getEstiArm();
  }
  /**
   * Protobuf type {@code HisHealthTemp}
   */
  public  static final class HisHealthTemp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthTemp)
      HisHealthTempOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthTemp.newBuilder() to construct.
    private HisHealthTemp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthTemp() {
      type_ = 0;
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthTemp();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthTemp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              TPAMeasureType value = TPAMeasureType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = rawValue;
              }
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              eviBody_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              estiArm_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthTemp_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthTemp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthTemp.class, Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required .TPAMeasureType type = 1;</code>
     * @return Whether the type field is set.
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .TPAMeasureType type = 1;</code>
     * @return The type.
     */
    public TPAMeasureType getType() {
      @SuppressWarnings("deprecation")
      TPAMeasureType result = TPAMeasureType.valueOf(type_);
      return result == null ? TPAMeasureType.TPA_MEASURE_TYPE_NULL : result;
    }

    public static final int EVI_BODY_FIELD_NUMBER = 2;
    private int eviBody_;
    /**
     * <code>required fixed32 evi_body = 2;</code>
     * @return Whether the eviBody field is set.
     */
    public boolean hasEviBody() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 evi_body = 2;</code>
     * @return The eviBody.
     */
    public int getEviBody() {
      return eviBody_;
    }

    public static final int ESTI_ARM_FIELD_NUMBER = 3;
    private int estiArm_;
    /**
     * <code>required fixed32 esti_arm = 3;</code>
     * @return Whether the estiArm field is set.
     */
    public boolean hasEstiArm() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 esti_arm = 3;</code>
     * @return The estiArm.
     */
    public int getEstiArm() {
      return estiArm_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEviBody()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEstiArm()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, eviBody_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, estiArm_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, eviBody_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, estiArm_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthTemp)) {
        return super.equals(obj);
      }
      HisHealthTemp other = (HisHealthTemp) obj;

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (type_ != other.type_) return false;
      }
      if (hasEviBody() != other.hasEviBody()) return false;
      if (hasEviBody()) {
        if (getEviBody()
            != other.getEviBody()) return false;
      }
      if (hasEstiArm() != other.hasEstiArm()) return false;
      if (hasEstiArm()) {
        if (getEstiArm()
            != other.getEstiArm()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
      }
      if (hasEviBody()) {
        hash = (37 * hash) + EVI_BODY_FIELD_NUMBER;
        hash = (53 * hash) + getEviBody();
      }
      if (hasEstiArm()) {
        hash = (37 * hash) + ESTI_ARM_FIELD_NUMBER;
        hash = (53 * hash) + getEstiArm();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthTemp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthTemp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthTemp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthTemp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthTemp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthTemp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthTemp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthTemp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthTemp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthTemp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthTemp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthTemp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthTemp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthTemp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthTemp)
        HisHealthTempOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthTemp_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthTemp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthTemp.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthTemp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        eviBody_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        estiArm_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthTemp_descriptor;
      }

      @Override
      public HisHealthTemp getDefaultInstanceForType() {
        return HisHealthTemp.getDefaultInstance();
      }

      @Override
      public HisHealthTemp build() {
        HisHealthTemp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthTemp buildPartial() {
        HisHealthTemp result = new HisHealthTemp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.eviBody_ = eviBody_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.estiArm_ = estiArm_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthTemp) {
          return mergeFrom((HisHealthTemp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthTemp other) {
        if (other == HisHealthTemp.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasEviBody()) {
          setEviBody(other.getEviBody());
        }
        if (other.hasEstiArm()) {
          setEstiArm(other.getEstiArm());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        if (!hasEviBody()) {
          return false;
        }
        if (!hasEstiArm()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthTemp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthTemp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int type_ = 0;
      /**
       * <code>required .TPAMeasureType type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .TPAMeasureType type = 1;</code>
       * @return The type.
       */
      public TPAMeasureType getType() {
        @SuppressWarnings("deprecation")
        TPAMeasureType result = TPAMeasureType.valueOf(type_);
        return result == null ? TPAMeasureType.TPA_MEASURE_TYPE_NULL : result;
      }
      /**
       * <code>required .TPAMeasureType type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(TPAMeasureType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .TPAMeasureType type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

      private int eviBody_ ;
      /**
       * <code>required fixed32 evi_body = 2;</code>
       * @return Whether the eviBody field is set.
       */
      public boolean hasEviBody() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 evi_body = 2;</code>
       * @return The eviBody.
       */
      public int getEviBody() {
        return eviBody_;
      }
      /**
       * <code>required fixed32 evi_body = 2;</code>
       * @param value The eviBody to set.
       * @return This builder for chaining.
       */
      public Builder setEviBody(int value) {
        bitField0_ |= 0x00000002;
        eviBody_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 evi_body = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEviBody() {
        bitField0_ = (bitField0_ & ~0x00000002);
        eviBody_ = 0;
        onChanged();
        return this;
      }

      private int estiArm_ ;
      /**
       * <code>required fixed32 esti_arm = 3;</code>
       * @return Whether the estiArm field is set.
       */
      public boolean hasEstiArm() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 esti_arm = 3;</code>
       * @return The estiArm.
       */
      public int getEstiArm() {
        return estiArm_;
      }
      /**
       * <code>required fixed32 esti_arm = 3;</code>
       * @param value The estiArm to set.
       * @return This builder for chaining.
       */
      public Builder setEstiArm(int value) {
        bitField0_ |= 0x00000004;
        estiArm_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 esti_arm = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEstiArm() {
        bitField0_ = (bitField0_ & ~0x00000004);
        estiArm_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthTemp)
    }

    // @@protoc_insertion_point(class_scope:HisHealthTemp)
    private static final HisHealthTemp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthTemp();
    }

    public static HisHealthTemp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthTemp>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthTemp>() {
      @Override
      public HisHealthTemp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthTemp(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthTemp> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthTemp> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthTemp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthOAQOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthOAQ)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required float O3_conc_ppb = 1;</code>
     * @return Whether the o3ConcPpb field is set.
     */
    boolean hasO3ConcPpb();
    /**
     * <code>required float O3_conc_ppb = 1;</code>
     * @return The o3ConcPpb.
     */
    float getO3ConcPpb();

    /**
     * <code>required fixed32 FAST_AQI = 2;</code>
     * @return Whether the fASTAQI field is set.
     */
    boolean hasFASTAQI();
    /**
     * <code>required fixed32 FAST_AQI = 2;</code>
     * @return The fASTAQI.
     */
    int getFASTAQI();

    /**
     * <code>required fixed32 EPA_AQI = 3;</code>
     * @return Whether the ePAAQI field is set.
     */
    boolean hasEPAAQI();
    /**
     * <code>required fixed32 EPA_AQI = 3;</code>
     * @return The ePAAQI.
     */
    int getEPAAQI();
  }
  /**
   * Protobuf type {@code HisHealthOAQ}
   */
  public  static final class HisHealthOAQ extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthOAQ)
      HisHealthOAQOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthOAQ.newBuilder() to construct.
    private HisHealthOAQ(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthOAQ() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthOAQ();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthOAQ(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              o3ConcPpb_ = input.readFloat();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              fASTAQI_ = input.readFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              ePAAQI_ = input.readFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthOAQ_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthOAQ_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthOAQ.class, Builder.class);
    }

    private int bitField0_;
    public static final int O3_CONC_PPB_FIELD_NUMBER = 1;
    private float o3ConcPpb_;
    /**
     * <code>required float O3_conc_ppb = 1;</code>
     * @return Whether the o3ConcPpb field is set.
     */
    public boolean hasO3ConcPpb() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required float O3_conc_ppb = 1;</code>
     * @return The o3ConcPpb.
     */
    public float getO3ConcPpb() {
      return o3ConcPpb_;
    }

    public static final int FAST_AQI_FIELD_NUMBER = 2;
    private int fASTAQI_;
    /**
     * <code>required fixed32 FAST_AQI = 2;</code>
     * @return Whether the fASTAQI field is set.
     */
    public boolean hasFASTAQI() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required fixed32 FAST_AQI = 2;</code>
     * @return The fASTAQI.
     */
    public int getFASTAQI() {
      return fASTAQI_;
    }

    public static final int EPA_AQI_FIELD_NUMBER = 3;
    private int ePAAQI_;
    /**
     * <code>required fixed32 EPA_AQI = 3;</code>
     * @return Whether the ePAAQI field is set.
     */
    public boolean hasEPAAQI() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required fixed32 EPA_AQI = 3;</code>
     * @return The ePAAQI.
     */
    public int getEPAAQI() {
      return ePAAQI_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasO3ConcPpb()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFASTAQI()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEPAAQI()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFloat(1, o3ConcPpb_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed32(2, fASTAQI_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed32(3, ePAAQI_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, o3ConcPpb_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(2, fASTAQI_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(3, ePAAQI_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthOAQ)) {
        return super.equals(obj);
      }
      HisHealthOAQ other = (HisHealthOAQ) obj;

      if (hasO3ConcPpb() != other.hasO3ConcPpb()) return false;
      if (hasO3ConcPpb()) {
        if (Float.floatToIntBits(getO3ConcPpb())
            != Float.floatToIntBits(
                other.getO3ConcPpb())) return false;
      }
      if (hasFASTAQI() != other.hasFASTAQI()) return false;
      if (hasFASTAQI()) {
        if (getFASTAQI()
            != other.getFASTAQI()) return false;
      }
      if (hasEPAAQI() != other.hasEPAAQI()) return false;
      if (hasEPAAQI()) {
        if (getEPAAQI()
            != other.getEPAAQI()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasO3ConcPpb()) {
        hash = (37 * hash) + O3_CONC_PPB_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getO3ConcPpb());
      }
      if (hasFASTAQI()) {
        hash = (37 * hash) + FAST_AQI_FIELD_NUMBER;
        hash = (53 * hash) + getFASTAQI();
      }
      if (hasEPAAQI()) {
        hash = (37 * hash) + EPA_AQI_FIELD_NUMBER;
        hash = (53 * hash) + getEPAAQI();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthOAQ parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthOAQ parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthOAQ parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthOAQ parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthOAQ parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthOAQ parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthOAQ parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthOAQ parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthOAQ parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthOAQ parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthOAQ parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthOAQ parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthOAQ prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthOAQ}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthOAQ)
        HisHealthOAQOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthOAQ_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthOAQ_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthOAQ.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthOAQ.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        o3ConcPpb_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        fASTAQI_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        ePAAQI_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthOAQ_descriptor;
      }

      @Override
      public HisHealthOAQ getDefaultInstanceForType() {
        return HisHealthOAQ.getDefaultInstance();
      }

      @Override
      public HisHealthOAQ build() {
        HisHealthOAQ result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthOAQ buildPartial() {
        HisHealthOAQ result = new HisHealthOAQ(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.o3ConcPpb_ = o3ConcPpb_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.fASTAQI_ = fASTAQI_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.ePAAQI_ = ePAAQI_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthOAQ) {
          return mergeFrom((HisHealthOAQ)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthOAQ other) {
        if (other == HisHealthOAQ.getDefaultInstance()) return this;
        if (other.hasO3ConcPpb()) {
          setO3ConcPpb(other.getO3ConcPpb());
        }
        if (other.hasFASTAQI()) {
          setFASTAQI(other.getFASTAQI());
        }
        if (other.hasEPAAQI()) {
          setEPAAQI(other.getEPAAQI());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasO3ConcPpb()) {
          return false;
        }
        if (!hasFASTAQI()) {
          return false;
        }
        if (!hasEPAAQI()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthOAQ parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthOAQ) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float o3ConcPpb_ ;
      /**
       * <code>required float O3_conc_ppb = 1;</code>
       * @return Whether the o3ConcPpb field is set.
       */
      public boolean hasO3ConcPpb() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required float O3_conc_ppb = 1;</code>
       * @return The o3ConcPpb.
       */
      public float getO3ConcPpb() {
        return o3ConcPpb_;
      }
      /**
       * <code>required float O3_conc_ppb = 1;</code>
       * @param value The o3ConcPpb to set.
       * @return This builder for chaining.
       */
      public Builder setO3ConcPpb(float value) {
        bitField0_ |= 0x00000001;
        o3ConcPpb_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float O3_conc_ppb = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearO3ConcPpb() {
        bitField0_ = (bitField0_ & ~0x00000001);
        o3ConcPpb_ = 0F;
        onChanged();
        return this;
      }

      private int fASTAQI_ ;
      /**
       * <code>required fixed32 FAST_AQI = 2;</code>
       * @return Whether the fASTAQI field is set.
       */
      public boolean hasFASTAQI() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required fixed32 FAST_AQI = 2;</code>
       * @return The fASTAQI.
       */
      public int getFASTAQI() {
        return fASTAQI_;
      }
      /**
       * <code>required fixed32 FAST_AQI = 2;</code>
       * @param value The fASTAQI to set.
       * @return This builder for chaining.
       */
      public Builder setFASTAQI(int value) {
        bitField0_ |= 0x00000002;
        fASTAQI_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 FAST_AQI = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFASTAQI() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fASTAQI_ = 0;
        onChanged();
        return this;
      }

      private int ePAAQI_ ;
      /**
       * <code>required fixed32 EPA_AQI = 3;</code>
       * @return Whether the ePAAQI field is set.
       */
      public boolean hasEPAAQI() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required fixed32 EPA_AQI = 3;</code>
       * @return The ePAAQI.
       */
      public int getEPAAQI() {
        return ePAAQI_;
      }
      /**
       * <code>required fixed32 EPA_AQI = 3;</code>
       * @param value The ePAAQI to set.
       * @return This builder for chaining.
       */
      public Builder setEPAAQI(int value) {
        bitField0_ |= 0x00000004;
        ePAAQI_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed32 EPA_AQI = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEPAAQI() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ePAAQI_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthOAQ)
    }

    // @@protoc_insertion_point(class_scope:HisHealthOAQ)
    private static final HisHealthOAQ DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthOAQ();
    }

    public static HisHealthOAQ getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthOAQ>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthOAQ>() {
      @Override
      public HisHealthOAQ parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthOAQ(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthOAQ> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthOAQ> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthOAQ getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthIAQOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthIAQ)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required float iaq = 1;</code>
     * @return Whether the iaq field is set.
     */
    boolean hasIaq();
    /**
     * <code>required float iaq = 1;</code>
     * @return The iaq.
     */
    float getIaq();

    /**
     * <code>required float tvoc = 2;</code>
     * @return Whether the tvoc field is set.
     */
    boolean hasTvoc();
    /**
     * <code>required float tvoc = 2;</code>
     * @return The tvoc.
     */
    float getTvoc();

    /**
     * <code>required float etoh = 3;</code>
     * @return Whether the etoh field is set.
     */
    boolean hasEtoh();
    /**
     * <code>required float etoh = 3;</code>
     * @return The etoh.
     */
    float getEtoh();

    /**
     * <code>required float eco2 = 4;</code>
     * @return Whether the eco2 field is set.
     */
    boolean hasEco2();
    /**
     * <code>required float eco2 = 4;</code>
     * @return The eco2.
     */
    float getEco2();
  }
  /**
   * Protobuf type {@code HisHealthIAQ}
   */
  public  static final class HisHealthIAQ extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthIAQ)
      HisHealthIAQOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthIAQ.newBuilder() to construct.
    private HisHealthIAQ(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthIAQ() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthIAQ();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthIAQ(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              iaq_ = input.readFloat();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              tvoc_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              etoh_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              eco2_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthIAQ_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthIAQ_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthIAQ.class, Builder.class);
    }

    private int bitField0_;
    public static final int IAQ_FIELD_NUMBER = 1;
    private float iaq_;
    /**
     * <code>required float iaq = 1;</code>
     * @return Whether the iaq field is set.
     */
    public boolean hasIaq() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required float iaq = 1;</code>
     * @return The iaq.
     */
    public float getIaq() {
      return iaq_;
    }

    public static final int TVOC_FIELD_NUMBER = 2;
    private float tvoc_;
    /**
     * <code>required float tvoc = 2;</code>
     * @return Whether the tvoc field is set.
     */
    public boolean hasTvoc() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required float tvoc = 2;</code>
     * @return The tvoc.
     */
    public float getTvoc() {
      return tvoc_;
    }

    public static final int ETOH_FIELD_NUMBER = 3;
    private float etoh_;
    /**
     * <code>required float etoh = 3;</code>
     * @return Whether the etoh field is set.
     */
    public boolean hasEtoh() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required float etoh = 3;</code>
     * @return The etoh.
     */
    public float getEtoh() {
      return etoh_;
    }

    public static final int ECO2_FIELD_NUMBER = 4;
    private float eco2_;
    /**
     * <code>required float eco2 = 4;</code>
     * @return Whether the eco2 field is set.
     */
    public boolean hasEco2() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required float eco2 = 4;</code>
     * @return The eco2.
     */
    public float getEco2() {
      return eco2_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasIaq()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTvoc()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEtoh()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEco2()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFloat(1, iaq_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFloat(2, tvoc_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFloat(3, etoh_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFloat(4, eco2_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, iaq_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, tvoc_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, etoh_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, eco2_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthIAQ)) {
        return super.equals(obj);
      }
      HisHealthIAQ other = (HisHealthIAQ) obj;

      if (hasIaq() != other.hasIaq()) return false;
      if (hasIaq()) {
        if (Float.floatToIntBits(getIaq())
            != Float.floatToIntBits(
                other.getIaq())) return false;
      }
      if (hasTvoc() != other.hasTvoc()) return false;
      if (hasTvoc()) {
        if (Float.floatToIntBits(getTvoc())
            != Float.floatToIntBits(
                other.getTvoc())) return false;
      }
      if (hasEtoh() != other.hasEtoh()) return false;
      if (hasEtoh()) {
        if (Float.floatToIntBits(getEtoh())
            != Float.floatToIntBits(
                other.getEtoh())) return false;
      }
      if (hasEco2() != other.hasEco2()) return false;
      if (hasEco2()) {
        if (Float.floatToIntBits(getEco2())
            != Float.floatToIntBits(
                other.getEco2())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasIaq()) {
        hash = (37 * hash) + IAQ_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getIaq());
      }
      if (hasTvoc()) {
        hash = (37 * hash) + TVOC_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getTvoc());
      }
      if (hasEtoh()) {
        hash = (37 * hash) + ETOH_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getEtoh());
      }
      if (hasEco2()) {
        hash = (37 * hash) + ECO2_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getEco2());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthIAQ parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthIAQ parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthIAQ parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthIAQ parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthIAQ parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthIAQ parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthIAQ parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthIAQ parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthIAQ parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthIAQ parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthIAQ parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthIAQ parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthIAQ prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthIAQ}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthIAQ)
        HisHealthIAQOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthIAQ_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthIAQ_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthIAQ.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthIAQ.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        iaq_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        tvoc_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        etoh_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        eco2_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthIAQ_descriptor;
      }

      @Override
      public HisHealthIAQ getDefaultInstanceForType() {
        return HisHealthIAQ.getDefaultInstance();
      }

      @Override
      public HisHealthIAQ build() {
        HisHealthIAQ result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthIAQ buildPartial() {
        HisHealthIAQ result = new HisHealthIAQ(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.iaq_ = iaq_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tvoc_ = tvoc_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.etoh_ = etoh_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.eco2_ = eco2_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthIAQ) {
          return mergeFrom((HisHealthIAQ)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthIAQ other) {
        if (other == HisHealthIAQ.getDefaultInstance()) return this;
        if (other.hasIaq()) {
          setIaq(other.getIaq());
        }
        if (other.hasTvoc()) {
          setTvoc(other.getTvoc());
        }
        if (other.hasEtoh()) {
          setEtoh(other.getEtoh());
        }
        if (other.hasEco2()) {
          setEco2(other.getEco2());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasIaq()) {
          return false;
        }
        if (!hasTvoc()) {
          return false;
        }
        if (!hasEtoh()) {
          return false;
        }
        if (!hasEco2()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthIAQ parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthIAQ) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float iaq_ ;
      /**
       * <code>required float iaq = 1;</code>
       * @return Whether the iaq field is set.
       */
      public boolean hasIaq() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required float iaq = 1;</code>
       * @return The iaq.
       */
      public float getIaq() {
        return iaq_;
      }
      /**
       * <code>required float iaq = 1;</code>
       * @param value The iaq to set.
       * @return This builder for chaining.
       */
      public Builder setIaq(float value) {
        bitField0_ |= 0x00000001;
        iaq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float iaq = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIaq() {
        bitField0_ = (bitField0_ & ~0x00000001);
        iaq_ = 0F;
        onChanged();
        return this;
      }

      private float tvoc_ ;
      /**
       * <code>required float tvoc = 2;</code>
       * @return Whether the tvoc field is set.
       */
      public boolean hasTvoc() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required float tvoc = 2;</code>
       * @return The tvoc.
       */
      public float getTvoc() {
        return tvoc_;
      }
      /**
       * <code>required float tvoc = 2;</code>
       * @param value The tvoc to set.
       * @return This builder for chaining.
       */
      public Builder setTvoc(float value) {
        bitField0_ |= 0x00000002;
        tvoc_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float tvoc = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTvoc() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tvoc_ = 0F;
        onChanged();
        return this;
      }

      private float etoh_ ;
      /**
       * <code>required float etoh = 3;</code>
       * @return Whether the etoh field is set.
       */
      public boolean hasEtoh() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required float etoh = 3;</code>
       * @return The etoh.
       */
      public float getEtoh() {
        return etoh_;
      }
      /**
       * <code>required float etoh = 3;</code>
       * @param value The etoh to set.
       * @return This builder for chaining.
       */
      public Builder setEtoh(float value) {
        bitField0_ |= 0x00000004;
        etoh_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float etoh = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEtoh() {
        bitField0_ = (bitField0_ & ~0x00000004);
        etoh_ = 0F;
        onChanged();
        return this;
      }

      private float eco2_ ;
      /**
       * <code>required float eco2 = 4;</code>
       * @return Whether the eco2 field is set.
       */
      public boolean hasEco2() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required float eco2 = 4;</code>
       * @return The eco2.
       */
      public float getEco2() {
        return eco2_;
      }
      /**
       * <code>required float eco2 = 4;</code>
       * @param value The eco2 to set.
       * @return This builder for chaining.
       */
      public Builder setEco2(float value) {
        bitField0_ |= 0x00000008;
        eco2_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float eco2 = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEco2() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eco2_ = 0F;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthIAQ)
    }

    // @@protoc_insertion_point(class_scope:HisHealthIAQ)
    private static final HisHealthIAQ DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthIAQ();
    }

    public static HisHealthIAQ getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthIAQ>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthIAQ>() {
      @Override
      public HisHealthIAQ parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthIAQ(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthIAQ> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthIAQ> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthIAQ getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisHealthHuMiTureOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisHealthHuMiTure)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required float Humidity = 1;</code>
     * @return Whether the humidity field is set.
     */
    boolean hasHumidity();
    /**
     * <code>required float Humidity = 1;</code>
     * @return The humidity.
     */
    float getHumidity();

    /**
     * <code>required float temperature = 2;</code>
     * @return Whether the temperature field is set.
     */
    boolean hasTemperature();
    /**
     * <code>required float temperature = 2;</code>
     * @return The temperature.
     */
    float getTemperature();
  }
  /**
   * Protobuf type {@code HisHealthHuMiTure}
   */
  public  static final class HisHealthHuMiTure extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisHealthHuMiTure)
      HisHealthHuMiTureOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisHealthHuMiTure.newBuilder() to construct.
    private HisHealthHuMiTure(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisHealthHuMiTure() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisHealthHuMiTure();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisHealthHuMiTure(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {
              bitField0_ |= 0x00000001;
              humidity_ = input.readFloat();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              temperature_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisHealthHuMiTure_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisHealthHuMiTure_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisHealthHuMiTure.class, Builder.class);
    }

    private int bitField0_;
    public static final int HUMIDITY_FIELD_NUMBER = 1;
    private float humidity_;
    /**
     * <code>required float Humidity = 1;</code>
     * @return Whether the humidity field is set.
     */
    public boolean hasHumidity() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required float Humidity = 1;</code>
     * @return The humidity.
     */
    public float getHumidity() {
      return humidity_;
    }

    public static final int TEMPERATURE_FIELD_NUMBER = 2;
    private float temperature_;
    /**
     * <code>required float temperature = 2;</code>
     * @return Whether the temperature field is set.
     */
    public boolean hasTemperature() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required float temperature = 2;</code>
     * @return The temperature.
     */
    public float getTemperature() {
      return temperature_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasHumidity()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTemperature()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFloat(1, humidity_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFloat(2, temperature_);
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, humidity_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, temperature_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisHealthHuMiTure)) {
        return super.equals(obj);
      }
      HisHealthHuMiTure other = (HisHealthHuMiTure) obj;

      if (hasHumidity() != other.hasHumidity()) return false;
      if (hasHumidity()) {
        if (Float.floatToIntBits(getHumidity())
            != Float.floatToIntBits(
                other.getHumidity())) return false;
      }
      if (hasTemperature() != other.hasTemperature()) return false;
      if (hasTemperature()) {
        if (Float.floatToIntBits(getTemperature())
            != Float.floatToIntBits(
                other.getTemperature())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHumidity()) {
        hash = (37 * hash) + HUMIDITY_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getHumidity());
      }
      if (hasTemperature()) {
        hash = (37 * hash) + TEMPERATURE_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getTemperature());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisHealthHuMiTure parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHuMiTure parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHuMiTure parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHuMiTure parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHuMiTure parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisHealthHuMiTure parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisHealthHuMiTure parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthHuMiTure parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthHuMiTure parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisHealthHuMiTure parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisHealthHuMiTure parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisHealthHuMiTure parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisHealthHuMiTure prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisHealthHuMiTure}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisHealthHuMiTure)
        HisHealthHuMiTureOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisHealthHuMiTure_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisHealthHuMiTure_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisHealthHuMiTure.class, Builder.class);
      }

      // Construct using HisHealthData.HisHealthHuMiTure.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        humidity_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        temperature_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisHealthHuMiTure_descriptor;
      }

      @Override
      public HisHealthHuMiTure getDefaultInstanceForType() {
        return HisHealthHuMiTure.getDefaultInstance();
      }

      @Override
      public HisHealthHuMiTure build() {
        HisHealthHuMiTure result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisHealthHuMiTure buildPartial() {
        HisHealthHuMiTure result = new HisHealthHuMiTure(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.humidity_ = humidity_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.temperature_ = temperature_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisHealthHuMiTure) {
          return mergeFrom((HisHealthHuMiTure)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisHealthHuMiTure other) {
        if (other == HisHealthHuMiTure.getDefaultInstance()) return this;
        if (other.hasHumidity()) {
          setHumidity(other.getHumidity());
        }
        if (other.hasTemperature()) {
          setTemperature(other.getTemperature());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasHumidity()) {
          return false;
        }
        if (!hasTemperature()) {
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisHealthHuMiTure parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisHealthHuMiTure) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float humidity_ ;
      /**
       * <code>required float Humidity = 1;</code>
       * @return Whether the humidity field is set.
       */
      public boolean hasHumidity() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required float Humidity = 1;</code>
       * @return The humidity.
       */
      public float getHumidity() {
        return humidity_;
      }
      /**
       * <code>required float Humidity = 1;</code>
       * @param value The humidity to set.
       * @return This builder for chaining.
       */
      public Builder setHumidity(float value) {
        bitField0_ |= 0x00000001;
        humidity_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float Humidity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHumidity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        humidity_ = 0F;
        onChanged();
        return this;
      }

      private float temperature_ ;
      /**
       * <code>required float temperature = 2;</code>
       * @return Whether the temperature field is set.
       */
      public boolean hasTemperature() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required float temperature = 2;</code>
       * @return The temperature.
       */
      public float getTemperature() {
        return temperature_;
      }
      /**
       * <code>required float temperature = 2;</code>
       * @param value The temperature to set.
       * @return This builder for chaining.
       */
      public Builder setTemperature(float value) {
        bitField0_ |= 0x00000002;
        temperature_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required float temperature = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemperature() {
        bitField0_ = (bitField0_ & ~0x00000002);
        temperature_ = 0F;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisHealthHuMiTure)
    }

    // @@protoc_insertion_point(class_scope:HisHealthHuMiTure)
    private static final HisHealthHuMiTure DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisHealthHuMiTure();
    }

    public static HisHealthHuMiTure getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisHealthHuMiTure>
        PARSER = new com.google.protobuf.AbstractParser<HisHealthHuMiTure>() {
      @Override
      public HisHealthHuMiTure parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisHealthHuMiTure(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisHealthHuMiTure> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisHealthHuMiTure> getParserForType() {
      return PARSER;
    }

    @Override
    public HisHealthHuMiTure getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HisDataHealthOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HisDataHealth)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    boolean hasTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    RealtimeData.DateTime getTimeStamp();
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder();

    /**
     * <code>optional .HisHealthSleep sleep_data = 2;</code>
     * @return Whether the sleepData field is set.
     */
    boolean hasSleepData();
    /**
     * <code>optional .HisHealthSleep sleep_data = 2;</code>
     * @return The sleepData.
     */
    HisHealthSleep getSleepData();
    /**
     * <code>optional .HisHealthSleep sleep_data = 2;</code>
     */
    HisHealthSleepOrBuilder getSleepDataOrBuilder();

    /**
     * <code>optional .HisHealthPedo pedo_data = 3;</code>
     * @return Whether the pedoData field is set.
     */
    boolean hasPedoData();
    /**
     * <code>optional .HisHealthPedo pedo_data = 3;</code>
     * @return The pedoData.
     */
    HisHealthPedo getPedoData();
    /**
     * <code>optional .HisHealthPedo pedo_data = 3;</code>
     */
    HisHealthPedoOrBuilder getPedoDataOrBuilder();

    /**
     * <code>optional .HisHealthHr hr_data = 4;</code>
     * @return Whether the hrData field is set.
     */
    boolean hasHrData();
    /**
     * <code>optional .HisHealthHr hr_data = 4;</code>
     * @return The hrData.
     */
    HisHealthHr getHrData();
    /**
     * <code>optional .HisHealthHr hr_data = 4;</code>
     */
    HisHealthHrOrBuilder getHrDataOrBuilder();

    /**
     * <code>optional .HisHealthHrv hrv_data = 5;</code>
     * @return Whether the hrvData field is set.
     */
    boolean hasHrvData();
    /**
     * <code>optional .HisHealthHrv hrv_data = 5;</code>
     * @return The hrvData.
     */
    HisHealthHrv getHrvData();
    /**
     * <code>optional .HisHealthHrv hrv_data = 5;</code>
     */
    HisHealthHrvOrBuilder getHrvDataOrBuilder();

    /**
     * <code>optional .HisHealthBp bp_data = 6;</code>
     * @return Whether the bpData field is set.
     */
    boolean hasBpData();
    /**
     * <code>optional .HisHealthBp bp_data = 6;</code>
     * @return The bpData.
     */
    HisHealthBp getBpData();
    /**
     * <code>optional .HisHealthBp bp_data = 6;</code>
     */
    HisHealthBpOrBuilder getBpDataOrBuilder();

    /**
     * <code>optional .HisHealthAf af_data = 7;</code>
     * @return Whether the afData field is set.
     */
    boolean hasAfData();
    /**
     * <code>optional .HisHealthAf af_data = 7;</code>
     * @return The afData.
     */
    HisHealthAf getAfData();
    /**
     * <code>optional .HisHealthAf af_data = 7;</code>
     */
    HisHealthAfOrBuilder getAfDataOrBuilder();

    /**
     * <code>optional .HisHealthMdt mdt_data = 8;</code>
     * @return Whether the mdtData field is set.
     */
    boolean hasMdtData();
    /**
     * <code>optional .HisHealthMdt mdt_data = 8;</code>
     * @return The mdtData.
     */
    HisHealthMdt getMdtData();
    /**
     * <code>optional .HisHealthMdt mdt_data = 8;</code>
     */
    HisHealthMdtOrBuilder getMdtDataOrBuilder();

    /**
     * <code>optional .HisHealthMood mood_data = 9;</code>
     * @return Whether the moodData field is set.
     */
    boolean hasMoodData();
    /**
     * <code>optional .HisHealthMood mood_data = 9;</code>
     * @return The moodData.
     */
    HisHealthMood getMoodData();
    /**
     * <code>optional .HisHealthMood mood_data = 9;</code>
     */
    HisHealthMoodOrBuilder getMoodDataOrBuilder();

    /**
     * <code>optional .HisHealthBreath breath_data = 10;</code>
     * @return Whether the breathData field is set.
     */
    boolean hasBreathData();
    /**
     * <code>optional .HisHealthBreath breath_data = 10;</code>
     * @return The breathData.
     */
    HisHealthBreath getBreathData();
    /**
     * <code>optional .HisHealthBreath breath_data = 10;</code>
     */
    HisHealthBreathOrBuilder getBreathDataOrBuilder();

    /**
     * <code>optional .HisHealthBioz bioz_data = 11;</code>
     * @return Whether the biozData field is set.
     */
    boolean hasBiozData();
    /**
     * <code>optional .HisHealthBioz bioz_data = 11;</code>
     * @return The biozData.
     */
    HisHealthBioz getBiozData();
    /**
     * <code>optional .HisHealthBioz bioz_data = 11;</code>
     */
    HisHealthBiozOrBuilder getBiozDataOrBuilder();

    /**
     * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
     * @return Whether the bxoyData field is set.
     */
    boolean hasBxoyData();
    /**
     * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
     * @return The bxoyData.
     */
    HisHealthBOxy getBxoyData();
    /**
     * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
     */
    HisHealthBOxyOrBuilder getBxoyDataOrBuilder();

    /**
     * <code>optional .HisHealthTemp temperature_data = 13;</code>
     * @return Whether the temperatureData field is set.
     */
    boolean hasTemperatureData();
    /**
     * <code>optional .HisHealthTemp temperature_data = 13;</code>
     * @return The temperatureData.
     */
    HisHealthTemp getTemperatureData();
    /**
     * <code>optional .HisHealthTemp temperature_data = 13;</code>
     */
    HisHealthTempOrBuilder getTemperatureDataOrBuilder();

    /**
     * <code>optional .HisHealthOutAct out_act_data = 14;</code>
     * @return Whether the outActData field is set.
     */
    boolean hasOutActData();
    /**
     * <code>optional .HisHealthOutAct out_act_data = 14;</code>
     * @return The outActData.
     */
    HisHealthOutAct getOutActData();
    /**
     * <code>optional .HisHealthOutAct out_act_data = 14;</code>
     */
    HisHealthOutActOrBuilder getOutActDataOrBuilder();

    /**
     * <code>optional .HisHealthOAQ oaq_data = 15;</code>
     * @return Whether the oaqData field is set.
     */
    boolean hasOaqData();
    /**
     * <code>optional .HisHealthOAQ oaq_data = 15;</code>
     * @return The oaqData.
     */
    HisHealthOAQ getOaqData();
    /**
     * <code>optional .HisHealthOAQ oaq_data = 15;</code>
     */
    HisHealthOAQOrBuilder getOaqDataOrBuilder();

    /**
     * <code>optional .HisHealthIAQ iaq_data = 16;</code>
     * @return Whether the iaqData field is set.
     */
    boolean hasIaqData();
    /**
     * <code>optional .HisHealthIAQ iaq_data = 16;</code>
     * @return The iaqData.
     */
    HisHealthIAQ getIaqData();
    /**
     * <code>optional .HisHealthIAQ iaq_data = 16;</code>
     */
    HisHealthIAQOrBuilder getIaqDataOrBuilder();

    /**
     * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
     * @return Whether the humitureData field is set.
     */
    boolean hasHumitureData();
    /**
     * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
     * @return The humitureData.
     */
    HisHealthHuMiTure getHumitureData();
    /**
     * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
     */
    HisHealthHuMiTureOrBuilder getHumitureDataOrBuilder();

    /**
     * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
     * @return Whether the bloodSugarData field is set.
     */
    boolean hasBloodSugarData();
    /**
     * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
     * @return The bloodSugarData.
     */
    HisHealthBlood_sugar getBloodSugarData();
    /**
     * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
     */
    HisHealthBlood_sugarOrBuilder getBloodSugarDataOrBuilder();
  }
  /**
   * Protobuf type {@code HisDataHealth}
   */
  public  static final class HisDataHealth extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HisDataHealth)
      HisDataHealthOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HisDataHealth.newBuilder() to construct.
    private HisDataHealth(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HisDataHealth() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new HisDataHealth();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HisDataHealth(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              RealtimeData.DateTime.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = timeStamp_.toBuilder();
              }
              timeStamp_ = input.readMessage(RealtimeData.DateTime.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeStamp_);
                timeStamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              HisHealthSleep.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = sleepData_.toBuilder();
              }
              sleepData_ = input.readMessage(HisHealthSleep.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sleepData_);
                sleepData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              HisHealthPedo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = pedoData_.toBuilder();
              }
              pedoData_ = input.readMessage(HisHealthPedo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pedoData_);
                pedoData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              HisHealthHr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) != 0)) {
                subBuilder = hrData_.toBuilder();
              }
              hrData_ = input.readMessage(HisHealthHr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(hrData_);
                hrData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              HisHealthHrv.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) != 0)) {
                subBuilder = hrvData_.toBuilder();
              }
              hrvData_ = input.readMessage(HisHealthHrv.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(hrvData_);
                hrvData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              HisHealthBp.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) != 0)) {
                subBuilder = bpData_.toBuilder();
              }
              bpData_ = input.readMessage(HisHealthBp.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bpData_);
                bpData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              HisHealthAf.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) != 0)) {
                subBuilder = afData_.toBuilder();
              }
              afData_ = input.readMessage(HisHealthAf.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(afData_);
                afData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              HisHealthMdt.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) != 0)) {
                subBuilder = mdtData_.toBuilder();
              }
              mdtData_ = input.readMessage(HisHealthMdt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(mdtData_);
                mdtData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              HisHealthMood.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) != 0)) {
                subBuilder = moodData_.toBuilder();
              }
              moodData_ = input.readMessage(HisHealthMood.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(moodData_);
                moodData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 82: {
              HisHealthBreath.Builder subBuilder = null;
              if (((bitField0_ & 0x00000200) != 0)) {
                subBuilder = breathData_.toBuilder();
              }
              breathData_ = input.readMessage(HisHealthBreath.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(breathData_);
                breathData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000200;
              break;
            }
            case 90: {
              HisHealthBioz.Builder subBuilder = null;
              if (((bitField0_ & 0x00000400) != 0)) {
                subBuilder = biozData_.toBuilder();
              }
              biozData_ = input.readMessage(HisHealthBioz.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(biozData_);
                biozData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000400;
              break;
            }
            case 98: {
              HisHealthBOxy.Builder subBuilder = null;
              if (((bitField0_ & 0x00000800) != 0)) {
                subBuilder = bxoyData_.toBuilder();
              }
              bxoyData_ = input.readMessage(HisHealthBOxy.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bxoyData_);
                bxoyData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000800;
              break;
            }
            case 106: {
              HisHealthTemp.Builder subBuilder = null;
              if (((bitField0_ & 0x00001000) != 0)) {
                subBuilder = temperatureData_.toBuilder();
              }
              temperatureData_ = input.readMessage(HisHealthTemp.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(temperatureData_);
                temperatureData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00001000;
              break;
            }
            case 114: {
              HisHealthOutAct.Builder subBuilder = null;
              if (((bitField0_ & 0x00002000) != 0)) {
                subBuilder = outActData_.toBuilder();
              }
              outActData_ = input.readMessage(HisHealthOutAct.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(outActData_);
                outActData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00002000;
              break;
            }
            case 122: {
              HisHealthOAQ.Builder subBuilder = null;
              if (((bitField0_ & 0x00004000) != 0)) {
                subBuilder = oaqData_.toBuilder();
              }
              oaqData_ = input.readMessage(HisHealthOAQ.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(oaqData_);
                oaqData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00004000;
              break;
            }
            case 130: {
              HisHealthIAQ.Builder subBuilder = null;
              if (((bitField0_ & 0x00008000) != 0)) {
                subBuilder = iaqData_.toBuilder();
              }
              iaqData_ = input.readMessage(HisHealthIAQ.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(iaqData_);
                iaqData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00008000;
              break;
            }
            case 138: {
              HisHealthHuMiTure.Builder subBuilder = null;
              if (((bitField0_ & 0x00010000) != 0)) {
                subBuilder = humitureData_.toBuilder();
              }
              humitureData_ = input.readMessage(HisHealthHuMiTure.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(humitureData_);
                humitureData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00010000;
              break;
            }
            case 146: {
              HisHealthBlood_sugar.Builder subBuilder = null;
              if (((bitField0_ & 0x00020000) != 0)) {
                subBuilder = bloodSugarData_.toBuilder();
              }
              bloodSugarData_ = input.readMessage(HisHealthBlood_sugar.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bloodSugarData_);
                bloodSugarData_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00020000;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return HisHealthData.internal_static_HisDataHealth_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return HisHealthData.internal_static_HisDataHealth_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              HisDataHealth.class, Builder.class);
    }

    private int bitField0_;
    public static final int TIME_STAMP_FIELD_NUMBER = 1;
    private RealtimeData.DateTime timeStamp_;
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return Whether the timeStamp field is set.
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     * @return The timeStamp.
     */
    public RealtimeData.DateTime getTimeStamp() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }
    /**
     * <code>required .DateTime time_stamp = 1;</code>
     */
    public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
      return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
    }

    public static final int SLEEP_DATA_FIELD_NUMBER = 2;
    private HisHealthSleep sleepData_;
    /**
     * <code>optional .HisHealthSleep sleep_data = 2;</code>
     * @return Whether the sleepData field is set.
     */
    public boolean hasSleepData() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .HisHealthSleep sleep_data = 2;</code>
     * @return The sleepData.
     */
    public HisHealthSleep getSleepData() {
      return sleepData_ == null ? HisHealthSleep.getDefaultInstance() : sleepData_;
    }
    /**
     * <code>optional .HisHealthSleep sleep_data = 2;</code>
     */
    public HisHealthSleepOrBuilder getSleepDataOrBuilder() {
      return sleepData_ == null ? HisHealthSleep.getDefaultInstance() : sleepData_;
    }

    public static final int PEDO_DATA_FIELD_NUMBER = 3;
    private HisHealthPedo pedoData_;
    /**
     * <code>optional .HisHealthPedo pedo_data = 3;</code>
     * @return Whether the pedoData field is set.
     */
    public boolean hasPedoData() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .HisHealthPedo pedo_data = 3;</code>
     * @return The pedoData.
     */
    public HisHealthPedo getPedoData() {
      return pedoData_ == null ? HisHealthPedo.getDefaultInstance() : pedoData_;
    }
    /**
     * <code>optional .HisHealthPedo pedo_data = 3;</code>
     */
    public HisHealthPedoOrBuilder getPedoDataOrBuilder() {
      return pedoData_ == null ? HisHealthPedo.getDefaultInstance() : pedoData_;
    }

    public static final int HR_DATA_FIELD_NUMBER = 4;
    private HisHealthHr hrData_;
    /**
     * <code>optional .HisHealthHr hr_data = 4;</code>
     * @return Whether the hrData field is set.
     */
    public boolean hasHrData() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .HisHealthHr hr_data = 4;</code>
     * @return The hrData.
     */
    public HisHealthHr getHrData() {
      return hrData_ == null ? HisHealthHr.getDefaultInstance() : hrData_;
    }
    /**
     * <code>optional .HisHealthHr hr_data = 4;</code>
     */
    public HisHealthHrOrBuilder getHrDataOrBuilder() {
      return hrData_ == null ? HisHealthHr.getDefaultInstance() : hrData_;
    }

    public static final int HRV_DATA_FIELD_NUMBER = 5;
    private HisHealthHrv hrvData_;
    /**
     * <code>optional .HisHealthHrv hrv_data = 5;</code>
     * @return Whether the hrvData field is set.
     */
    public boolean hasHrvData() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .HisHealthHrv hrv_data = 5;</code>
     * @return The hrvData.
     */
    public HisHealthHrv getHrvData() {
      return hrvData_ == null ? HisHealthHrv.getDefaultInstance() : hrvData_;
    }
    /**
     * <code>optional .HisHealthHrv hrv_data = 5;</code>
     */
    public HisHealthHrvOrBuilder getHrvDataOrBuilder() {
      return hrvData_ == null ? HisHealthHrv.getDefaultInstance() : hrvData_;
    }

    public static final int BP_DATA_FIELD_NUMBER = 6;
    private HisHealthBp bpData_;
    /**
     * <code>optional .HisHealthBp bp_data = 6;</code>
     * @return Whether the bpData field is set.
     */
    public boolean hasBpData() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .HisHealthBp bp_data = 6;</code>
     * @return The bpData.
     */
    public HisHealthBp getBpData() {
      return bpData_ == null ? HisHealthBp.getDefaultInstance() : bpData_;
    }
    /**
     * <code>optional .HisHealthBp bp_data = 6;</code>
     */
    public HisHealthBpOrBuilder getBpDataOrBuilder() {
      return bpData_ == null ? HisHealthBp.getDefaultInstance() : bpData_;
    }

    public static final int AF_DATA_FIELD_NUMBER = 7;
    private HisHealthAf afData_;
    /**
     * <code>optional .HisHealthAf af_data = 7;</code>
     * @return Whether the afData field is set.
     */
    public boolean hasAfData() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .HisHealthAf af_data = 7;</code>
     * @return The afData.
     */
    public HisHealthAf getAfData() {
      return afData_ == null ? HisHealthAf.getDefaultInstance() : afData_;
    }
    /**
     * <code>optional .HisHealthAf af_data = 7;</code>
     */
    public HisHealthAfOrBuilder getAfDataOrBuilder() {
      return afData_ == null ? HisHealthAf.getDefaultInstance() : afData_;
    }

    public static final int MDT_DATA_FIELD_NUMBER = 8;
    private HisHealthMdt mdtData_;
    /**
     * <code>optional .HisHealthMdt mdt_data = 8;</code>
     * @return Whether the mdtData field is set.
     */
    public boolean hasMdtData() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .HisHealthMdt mdt_data = 8;</code>
     * @return The mdtData.
     */
    public HisHealthMdt getMdtData() {
      return mdtData_ == null ? HisHealthMdt.getDefaultInstance() : mdtData_;
    }
    /**
     * <code>optional .HisHealthMdt mdt_data = 8;</code>
     */
    public HisHealthMdtOrBuilder getMdtDataOrBuilder() {
      return mdtData_ == null ? HisHealthMdt.getDefaultInstance() : mdtData_;
    }

    public static final int MOOD_DATA_FIELD_NUMBER = 9;
    private HisHealthMood moodData_;
    /**
     * <code>optional .HisHealthMood mood_data = 9;</code>
     * @return Whether the moodData field is set.
     */
    public boolean hasMoodData() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .HisHealthMood mood_data = 9;</code>
     * @return The moodData.
     */
    public HisHealthMood getMoodData() {
      return moodData_ == null ? HisHealthMood.getDefaultInstance() : moodData_;
    }
    /**
     * <code>optional .HisHealthMood mood_data = 9;</code>
     */
    public HisHealthMoodOrBuilder getMoodDataOrBuilder() {
      return moodData_ == null ? HisHealthMood.getDefaultInstance() : moodData_;
    }

    public static final int BREATH_DATA_FIELD_NUMBER = 10;
    private HisHealthBreath breathData_;
    /**
     * <code>optional .HisHealthBreath breath_data = 10;</code>
     * @return Whether the breathData field is set.
     */
    public boolean hasBreathData() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .HisHealthBreath breath_data = 10;</code>
     * @return The breathData.
     */
    public HisHealthBreath getBreathData() {
      return breathData_ == null ? HisHealthBreath.getDefaultInstance() : breathData_;
    }
    /**
     * <code>optional .HisHealthBreath breath_data = 10;</code>
     */
    public HisHealthBreathOrBuilder getBreathDataOrBuilder() {
      return breathData_ == null ? HisHealthBreath.getDefaultInstance() : breathData_;
    }

    public static final int BIOZ_DATA_FIELD_NUMBER = 11;
    private HisHealthBioz biozData_;
    /**
     * <code>optional .HisHealthBioz bioz_data = 11;</code>
     * @return Whether the biozData field is set.
     */
    public boolean hasBiozData() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .HisHealthBioz bioz_data = 11;</code>
     * @return The biozData.
     */
    public HisHealthBioz getBiozData() {
      return biozData_ == null ? HisHealthBioz.getDefaultInstance() : biozData_;
    }
    /**
     * <code>optional .HisHealthBioz bioz_data = 11;</code>
     */
    public HisHealthBiozOrBuilder getBiozDataOrBuilder() {
      return biozData_ == null ? HisHealthBioz.getDefaultInstance() : biozData_;
    }

    public static final int BXOY_DATA_FIELD_NUMBER = 12;
    private HisHealthBOxy bxoyData_;
    /**
     * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
     * @return Whether the bxoyData field is set.
     */
    public boolean hasBxoyData() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
     * @return The bxoyData.
     */
    public HisHealthBOxy getBxoyData() {
      return bxoyData_ == null ? HisHealthBOxy.getDefaultInstance() : bxoyData_;
    }
    /**
     * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
     */
    public HisHealthBOxyOrBuilder getBxoyDataOrBuilder() {
      return bxoyData_ == null ? HisHealthBOxy.getDefaultInstance() : bxoyData_;
    }

    public static final int TEMPERATURE_DATA_FIELD_NUMBER = 13;
    private HisHealthTemp temperatureData_;
    /**
     * <code>optional .HisHealthTemp temperature_data = 13;</code>
     * @return Whether the temperatureData field is set.
     */
    public boolean hasTemperatureData() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional .HisHealthTemp temperature_data = 13;</code>
     * @return The temperatureData.
     */
    public HisHealthTemp getTemperatureData() {
      return temperatureData_ == null ? HisHealthTemp.getDefaultInstance() : temperatureData_;
    }
    /**
     * <code>optional .HisHealthTemp temperature_data = 13;</code>
     */
    public HisHealthTempOrBuilder getTemperatureDataOrBuilder() {
      return temperatureData_ == null ? HisHealthTemp.getDefaultInstance() : temperatureData_;
    }

    public static final int OUT_ACT_DATA_FIELD_NUMBER = 14;
    private HisHealthOutAct outActData_;
    /**
     * <code>optional .HisHealthOutAct out_act_data = 14;</code>
     * @return Whether the outActData field is set.
     */
    public boolean hasOutActData() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .HisHealthOutAct out_act_data = 14;</code>
     * @return The outActData.
     */
    public HisHealthOutAct getOutActData() {
      return outActData_ == null ? HisHealthOutAct.getDefaultInstance() : outActData_;
    }
    /**
     * <code>optional .HisHealthOutAct out_act_data = 14;</code>
     */
    public HisHealthOutActOrBuilder getOutActDataOrBuilder() {
      return outActData_ == null ? HisHealthOutAct.getDefaultInstance() : outActData_;
    }

    public static final int OAQ_DATA_FIELD_NUMBER = 15;
    private HisHealthOAQ oaqData_;
    /**
     * <code>optional .HisHealthOAQ oaq_data = 15;</code>
     * @return Whether the oaqData field is set.
     */
    public boolean hasOaqData() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .HisHealthOAQ oaq_data = 15;</code>
     * @return The oaqData.
     */
    public HisHealthOAQ getOaqData() {
      return oaqData_ == null ? HisHealthOAQ.getDefaultInstance() : oaqData_;
    }
    /**
     * <code>optional .HisHealthOAQ oaq_data = 15;</code>
     */
    public HisHealthOAQOrBuilder getOaqDataOrBuilder() {
      return oaqData_ == null ? HisHealthOAQ.getDefaultInstance() : oaqData_;
    }

    public static final int IAQ_DATA_FIELD_NUMBER = 16;
    private HisHealthIAQ iaqData_;
    /**
     * <code>optional .HisHealthIAQ iaq_data = 16;</code>
     * @return Whether the iaqData field is set.
     */
    public boolean hasIaqData() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional .HisHealthIAQ iaq_data = 16;</code>
     * @return The iaqData.
     */
    public HisHealthIAQ getIaqData() {
      return iaqData_ == null ? HisHealthIAQ.getDefaultInstance() : iaqData_;
    }
    /**
     * <code>optional .HisHealthIAQ iaq_data = 16;</code>
     */
    public HisHealthIAQOrBuilder getIaqDataOrBuilder() {
      return iaqData_ == null ? HisHealthIAQ.getDefaultInstance() : iaqData_;
    }

    public static final int HUMITURE_DATA_FIELD_NUMBER = 17;
    private HisHealthHuMiTure humitureData_;
    /**
     * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
     * @return Whether the humitureData field is set.
     */
    public boolean hasHumitureData() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
     * @return The humitureData.
     */
    public HisHealthHuMiTure getHumitureData() {
      return humitureData_ == null ? HisHealthHuMiTure.getDefaultInstance() : humitureData_;
    }
    /**
     * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
     */
    public HisHealthHuMiTureOrBuilder getHumitureDataOrBuilder() {
      return humitureData_ == null ? HisHealthHuMiTure.getDefaultInstance() : humitureData_;
    }

    public static final int BLOOD_SUGAR_DATA_FIELD_NUMBER = 18;
    private HisHealthBlood_sugar bloodSugarData_;
    /**
     * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
     * @return Whether the bloodSugarData field is set.
     */
    public boolean hasBloodSugarData() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
     * @return The bloodSugarData.
     */
    public HisHealthBlood_sugar getBloodSugarData() {
      return bloodSugarData_ == null ? HisHealthBlood_sugar.getDefaultInstance() : bloodSugarData_;
    }
    /**
     * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
     */
    public HisHealthBlood_sugarOrBuilder getBloodSugarDataOrBuilder() {
      return bloodSugarData_ == null ? HisHealthBlood_sugar.getDefaultInstance() : bloodSugarData_;
    }

    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasTimeStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTimeStamp().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasSleepData()) {
        if (!getSleepData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPedoData()) {
        if (!getPedoData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHrData()) {
        if (!getHrData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHrvData()) {
        if (!getHrvData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBpData()) {
        if (!getBpData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAfData()) {
        if (!getAfData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMdtData()) {
        if (!getMdtData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMoodData()) {
        if (!getMoodData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBreathData()) {
        if (!getBreathData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBiozData()) {
        if (!getBiozData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBxoyData()) {
        if (!getBxoyData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTemperatureData()) {
        if (!getTemperatureData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasOutActData()) {
        if (!getOutActData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasOaqData()) {
        if (!getOaqData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasIaqData()) {
        if (!getIaqData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHumitureData()) {
        if (!getHumitureData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBloodSugarData()) {
        if (!getBloodSugarData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getSleepData());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getPedoData());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(4, getHrData());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(5, getHrvData());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeMessage(6, getBpData());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeMessage(7, getAfData());
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeMessage(8, getMdtData());
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeMessage(9, getMoodData());
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeMessage(10, getBreathData());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeMessage(11, getBiozData());
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeMessage(12, getBxoyData());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeMessage(13, getTemperatureData());
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeMessage(14, getOutActData());
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeMessage(15, getOaqData());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeMessage(16, getIaqData());
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeMessage(17, getHumitureData());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeMessage(18, getBloodSugarData());
      }
      unknownFields.writeTo(output);
    }

    @Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getTimeStamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getSleepData());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPedoData());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getHrData());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getHrvData());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getBpData());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getAfData());
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getMdtData());
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getMoodData());
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getBreathData());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getBiozData());
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getBxoyData());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getTemperatureData());
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getOutActData());
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getOaqData());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getIaqData());
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, getHumitureData());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, getBloodSugarData());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof HisDataHealth)) {
        return super.equals(obj);
      }
      HisDataHealth other = (HisDataHealth) obj;

      if (hasTimeStamp() != other.hasTimeStamp()) return false;
      if (hasTimeStamp()) {
        if (!getTimeStamp()
            .equals(other.getTimeStamp())) return false;
      }
      if (hasSleepData() != other.hasSleepData()) return false;
      if (hasSleepData()) {
        if (!getSleepData()
            .equals(other.getSleepData())) return false;
      }
      if (hasPedoData() != other.hasPedoData()) return false;
      if (hasPedoData()) {
        if (!getPedoData()
            .equals(other.getPedoData())) return false;
      }
      if (hasHrData() != other.hasHrData()) return false;
      if (hasHrData()) {
        if (!getHrData()
            .equals(other.getHrData())) return false;
      }
      if (hasHrvData() != other.hasHrvData()) return false;
      if (hasHrvData()) {
        if (!getHrvData()
            .equals(other.getHrvData())) return false;
      }
      if (hasBpData() != other.hasBpData()) return false;
      if (hasBpData()) {
        if (!getBpData()
            .equals(other.getBpData())) return false;
      }
      if (hasAfData() != other.hasAfData()) return false;
      if (hasAfData()) {
        if (!getAfData()
            .equals(other.getAfData())) return false;
      }
      if (hasMdtData() != other.hasMdtData()) return false;
      if (hasMdtData()) {
        if (!getMdtData()
            .equals(other.getMdtData())) return false;
      }
      if (hasMoodData() != other.hasMoodData()) return false;
      if (hasMoodData()) {
        if (!getMoodData()
            .equals(other.getMoodData())) return false;
      }
      if (hasBreathData() != other.hasBreathData()) return false;
      if (hasBreathData()) {
        if (!getBreathData()
            .equals(other.getBreathData())) return false;
      }
      if (hasBiozData() != other.hasBiozData()) return false;
      if (hasBiozData()) {
        if (!getBiozData()
            .equals(other.getBiozData())) return false;
      }
      if (hasBxoyData() != other.hasBxoyData()) return false;
      if (hasBxoyData()) {
        if (!getBxoyData()
            .equals(other.getBxoyData())) return false;
      }
      if (hasTemperatureData() != other.hasTemperatureData()) return false;
      if (hasTemperatureData()) {
        if (!getTemperatureData()
            .equals(other.getTemperatureData())) return false;
      }
      if (hasOutActData() != other.hasOutActData()) return false;
      if (hasOutActData()) {
        if (!getOutActData()
            .equals(other.getOutActData())) return false;
      }
      if (hasOaqData() != other.hasOaqData()) return false;
      if (hasOaqData()) {
        if (!getOaqData()
            .equals(other.getOaqData())) return false;
      }
      if (hasIaqData() != other.hasIaqData()) return false;
      if (hasIaqData()) {
        if (!getIaqData()
            .equals(other.getIaqData())) return false;
      }
      if (hasHumitureData() != other.hasHumitureData()) return false;
      if (hasHumitureData()) {
        if (!getHumitureData()
            .equals(other.getHumitureData())) return false;
      }
      if (hasBloodSugarData() != other.hasBloodSugarData()) return false;
      if (hasBloodSugarData()) {
        if (!getBloodSugarData()
            .equals(other.getBloodSugarData())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTimeStamp()) {
        hash = (37 * hash) + TIME_STAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimeStamp().hashCode();
      }
      if (hasSleepData()) {
        hash = (37 * hash) + SLEEP_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getSleepData().hashCode();
      }
      if (hasPedoData()) {
        hash = (37 * hash) + PEDO_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getPedoData().hashCode();
      }
      if (hasHrData()) {
        hash = (37 * hash) + HR_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getHrData().hashCode();
      }
      if (hasHrvData()) {
        hash = (37 * hash) + HRV_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getHrvData().hashCode();
      }
      if (hasBpData()) {
        hash = (37 * hash) + BP_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBpData().hashCode();
      }
      if (hasAfData()) {
        hash = (37 * hash) + AF_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getAfData().hashCode();
      }
      if (hasMdtData()) {
        hash = (37 * hash) + MDT_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getMdtData().hashCode();
      }
      if (hasMoodData()) {
        hash = (37 * hash) + MOOD_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getMoodData().hashCode();
      }
      if (hasBreathData()) {
        hash = (37 * hash) + BREATH_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBreathData().hashCode();
      }
      if (hasBiozData()) {
        hash = (37 * hash) + BIOZ_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBiozData().hashCode();
      }
      if (hasBxoyData()) {
        hash = (37 * hash) + BXOY_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBxoyData().hashCode();
      }
      if (hasTemperatureData()) {
        hash = (37 * hash) + TEMPERATURE_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getTemperatureData().hashCode();
      }
      if (hasOutActData()) {
        hash = (37 * hash) + OUT_ACT_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getOutActData().hashCode();
      }
      if (hasOaqData()) {
        hash = (37 * hash) + OAQ_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getOaqData().hashCode();
      }
      if (hasIaqData()) {
        hash = (37 * hash) + IAQ_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getIaqData().hashCode();
      }
      if (hasHumitureData()) {
        hash = (37 * hash) + HUMITURE_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getHumitureData().hashCode();
      }
      if (hasBloodSugarData()) {
        hash = (37 * hash) + BLOOD_SUGAR_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBloodSugarData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static HisDataHealth parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisDataHealth parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisDataHealth parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisDataHealth parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisDataHealth parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static HisDataHealth parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static HisDataHealth parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisDataHealth parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisDataHealth parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static HisDataHealth parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static HisDataHealth parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static HisDataHealth parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(HisDataHealth prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HisDataHealth}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HisDataHealth)
        HisDataHealthOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return HisHealthData.internal_static_HisDataHealth_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return HisHealthData.internal_static_HisDataHealth_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                HisDataHealth.class, Builder.class);
      }

      // Construct using HisHealthData.HisDataHealth.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimeStampFieldBuilder();
          getSleepDataFieldBuilder();
          getPedoDataFieldBuilder();
          getHrDataFieldBuilder();
          getHrvDataFieldBuilder();
          getBpDataFieldBuilder();
          getAfDataFieldBuilder();
          getMdtDataFieldBuilder();
          getMoodDataFieldBuilder();
          getBreathDataFieldBuilder();
          getBiozDataFieldBuilder();
          getBxoyDataFieldBuilder();
          getTemperatureDataFieldBuilder();
          getOutActDataFieldBuilder();
          getOaqDataFieldBuilder();
          getIaqDataFieldBuilder();
          getHumitureDataFieldBuilder();
          getBloodSugarDataFieldBuilder();
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (sleepDataBuilder_ == null) {
          sleepData_ = null;
        } else {
          sleepDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (pedoDataBuilder_ == null) {
          pedoData_ = null;
        } else {
          pedoDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (hrDataBuilder_ == null) {
          hrData_ = null;
        } else {
          hrDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (hrvDataBuilder_ == null) {
          hrvData_ = null;
        } else {
          hrvDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (bpDataBuilder_ == null) {
          bpData_ = null;
        } else {
          bpDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (afDataBuilder_ == null) {
          afData_ = null;
        } else {
          afDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (mdtDataBuilder_ == null) {
          mdtData_ = null;
        } else {
          mdtDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (moodDataBuilder_ == null) {
          moodData_ = null;
        } else {
          moodDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (breathDataBuilder_ == null) {
          breathData_ = null;
        } else {
          breathDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (biozDataBuilder_ == null) {
          biozData_ = null;
        } else {
          biozDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (bxoyDataBuilder_ == null) {
          bxoyData_ = null;
        } else {
          bxoyDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (temperatureDataBuilder_ == null) {
          temperatureData_ = null;
        } else {
          temperatureDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (outActDataBuilder_ == null) {
          outActData_ = null;
        } else {
          outActDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        if (oaqDataBuilder_ == null) {
          oaqData_ = null;
        } else {
          oaqDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        if (iaqDataBuilder_ == null) {
          iaqData_ = null;
        } else {
          iaqDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        if (humitureDataBuilder_ == null) {
          humitureData_ = null;
        } else {
          humitureDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        if (bloodSugarDataBuilder_ == null) {
          bloodSugarData_ = null;
        } else {
          bloodSugarDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return HisHealthData.internal_static_HisDataHealth_descriptor;
      }

      @Override
      public HisDataHealth getDefaultInstanceForType() {
        return HisDataHealth.getDefaultInstance();
      }

      @Override
      public HisDataHealth build() {
        HisDataHealth result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public HisDataHealth buildPartial() {
        HisDataHealth result = new HisDataHealth(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (timeStampBuilder_ == null) {
            result.timeStamp_ = timeStamp_;
          } else {
            result.timeStamp_ = timeStampBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (sleepDataBuilder_ == null) {
            result.sleepData_ = sleepData_;
          } else {
            result.sleepData_ = sleepDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (pedoDataBuilder_ == null) {
            result.pedoData_ = pedoData_;
          } else {
            result.pedoData_ = pedoDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          if (hrDataBuilder_ == null) {
            result.hrData_ = hrData_;
          } else {
            result.hrData_ = hrDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          if (hrvDataBuilder_ == null) {
            result.hrvData_ = hrvData_;
          } else {
            result.hrvData_ = hrvDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          if (bpDataBuilder_ == null) {
            result.bpData_ = bpData_;
          } else {
            result.bpData_ = bpDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          if (afDataBuilder_ == null) {
            result.afData_ = afData_;
          } else {
            result.afData_ = afDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          if (mdtDataBuilder_ == null) {
            result.mdtData_ = mdtData_;
          } else {
            result.mdtData_ = mdtDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          if (moodDataBuilder_ == null) {
            result.moodData_ = moodData_;
          } else {
            result.moodData_ = moodDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          if (breathDataBuilder_ == null) {
            result.breathData_ = breathData_;
          } else {
            result.breathData_ = breathDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          if (biozDataBuilder_ == null) {
            result.biozData_ = biozData_;
          } else {
            result.biozData_ = biozDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          if (bxoyDataBuilder_ == null) {
            result.bxoyData_ = bxoyData_;
          } else {
            result.bxoyData_ = bxoyDataBuilder_.build();
          }
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          if (temperatureDataBuilder_ == null) {
            result.temperatureData_ = temperatureData_;
          } else {
            result.temperatureData_ = temperatureDataBuilder_.build();
          }
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          if (outActDataBuilder_ == null) {
            result.outActData_ = outActData_;
          } else {
            result.outActData_ = outActDataBuilder_.build();
          }
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          if (oaqDataBuilder_ == null) {
            result.oaqData_ = oaqData_;
          } else {
            result.oaqData_ = oaqDataBuilder_.build();
          }
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          if (iaqDataBuilder_ == null) {
            result.iaqData_ = iaqData_;
          } else {
            result.iaqData_ = iaqDataBuilder_.build();
          }
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          if (humitureDataBuilder_ == null) {
            result.humitureData_ = humitureData_;
          } else {
            result.humitureData_ = humitureDataBuilder_.build();
          }
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          if (bloodSugarDataBuilder_ == null) {
            result.bloodSugarData_ = bloodSugarData_;
          } else {
            result.bloodSugarData_ = bloodSugarDataBuilder_.build();
          }
          to_bitField0_ |= 0x00020000;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder clone() {
        return super.clone();
      }
      @Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.setField(field, value);
      }
      @Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return super.addRepeatedField(field, value);
      }
      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof HisDataHealth) {
          return mergeFrom((HisDataHealth)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(HisDataHealth other) {
        if (other == HisDataHealth.getDefaultInstance()) return this;
        if (other.hasTimeStamp()) {
          mergeTimeStamp(other.getTimeStamp());
        }
        if (other.hasSleepData()) {
          mergeSleepData(other.getSleepData());
        }
        if (other.hasPedoData()) {
          mergePedoData(other.getPedoData());
        }
        if (other.hasHrData()) {
          mergeHrData(other.getHrData());
        }
        if (other.hasHrvData()) {
          mergeHrvData(other.getHrvData());
        }
        if (other.hasBpData()) {
          mergeBpData(other.getBpData());
        }
        if (other.hasAfData()) {
          mergeAfData(other.getAfData());
        }
        if (other.hasMdtData()) {
          mergeMdtData(other.getMdtData());
        }
        if (other.hasMoodData()) {
          mergeMoodData(other.getMoodData());
        }
        if (other.hasBreathData()) {
          mergeBreathData(other.getBreathData());
        }
        if (other.hasBiozData()) {
          mergeBiozData(other.getBiozData());
        }
        if (other.hasBxoyData()) {
          mergeBxoyData(other.getBxoyData());
        }
        if (other.hasTemperatureData()) {
          mergeTemperatureData(other.getTemperatureData());
        }
        if (other.hasOutActData()) {
          mergeOutActData(other.getOutActData());
        }
        if (other.hasOaqData()) {
          mergeOaqData(other.getOaqData());
        }
        if (other.hasIaqData()) {
          mergeIaqData(other.getIaqData());
        }
        if (other.hasHumitureData()) {
          mergeHumitureData(other.getHumitureData());
        }
        if (other.hasBloodSugarData()) {
          mergeBloodSugarData(other.getBloodSugarData());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasTimeStamp()) {
          return false;
        }
        if (!getTimeStamp().isInitialized()) {
          return false;
        }
        if (hasSleepData()) {
          if (!getSleepData().isInitialized()) {
            return false;
          }
        }
        if (hasPedoData()) {
          if (!getPedoData().isInitialized()) {
            return false;
          }
        }
        if (hasHrData()) {
          if (!getHrData().isInitialized()) {
            return false;
          }
        }
        if (hasHrvData()) {
          if (!getHrvData().isInitialized()) {
            return false;
          }
        }
        if (hasBpData()) {
          if (!getBpData().isInitialized()) {
            return false;
          }
        }
        if (hasAfData()) {
          if (!getAfData().isInitialized()) {
            return false;
          }
        }
        if (hasMdtData()) {
          if (!getMdtData().isInitialized()) {
            return false;
          }
        }
        if (hasMoodData()) {
          if (!getMoodData().isInitialized()) {
            return false;
          }
        }
        if (hasBreathData()) {
          if (!getBreathData().isInitialized()) {
            return false;
          }
        }
        if (hasBiozData()) {
          if (!getBiozData().isInitialized()) {
            return false;
          }
        }
        if (hasBxoyData()) {
          if (!getBxoyData().isInitialized()) {
            return false;
          }
        }
        if (hasTemperatureData()) {
          if (!getTemperatureData().isInitialized()) {
            return false;
          }
        }
        if (hasOutActData()) {
          if (!getOutActData().isInitialized()) {
            return false;
          }
        }
        if (hasOaqData()) {
          if (!getOaqData().isInitialized()) {
            return false;
          }
        }
        if (hasIaqData()) {
          if (!getIaqData().isInitialized()) {
            return false;
          }
        }
        if (hasHumitureData()) {
          if (!getHumitureData().isInitialized()) {
            return false;
          }
        }
        if (hasBloodSugarData()) {
          if (!getBloodSugarData().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        HisDataHealth parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (HisDataHealth) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private RealtimeData.DateTime timeStamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder> timeStampBuilder_;
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return Whether the timeStamp field is set.
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       * @return The timeStamp.
       */
      public RealtimeData.DateTime getTimeStamp() {
        if (timeStampBuilder_ == null) {
          return timeStamp_ == null ? RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        } else {
          return timeStampBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeStamp_ = value;
          onChanged();
        } else {
          timeStampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder setTimeStamp(
          RealtimeData.DateTime.Builder builderForValue) {
        if (timeStampBuilder_ == null) {
          timeStamp_ = builderForValue.build();
          onChanged();
        } else {
          timeStampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder mergeTimeStamp(RealtimeData.DateTime value) {
        if (timeStampBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              timeStamp_ != null &&
              timeStamp_ != RealtimeData.DateTime.getDefaultInstance()) {
            timeStamp_ =
              RealtimeData.DateTime.newBuilder(timeStamp_).mergeFrom(value).buildPartial();
          } else {
            timeStamp_ = value;
          }
          onChanged();
        } else {
          timeStampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public Builder clearTimeStamp() {
        if (timeStampBuilder_ == null) {
          timeStamp_ = null;
          onChanged();
        } else {
          timeStampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTime.Builder getTimeStampBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimeStampFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      public RealtimeData.DateTimeOrBuilder getTimeStampOrBuilder() {
        if (timeStampBuilder_ != null) {
          return timeStampBuilder_.getMessageOrBuilder();
        } else {
          return timeStamp_ == null ?
              RealtimeData.DateTime.getDefaultInstance() : timeStamp_;
        }
      }
      /**
       * <code>required .DateTime time_stamp = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>
          getTimeStampFieldBuilder() {
        if (timeStampBuilder_ == null) {
          timeStampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              RealtimeData.DateTime, RealtimeData.DateTime.Builder, RealtimeData.DateTimeOrBuilder>(
                  getTimeStamp(),
                  getParentForChildren(),
                  isClean());
          timeStamp_ = null;
        }
        return timeStampBuilder_;
      }

      private HisHealthSleep sleepData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthSleep, HisHealthSleep.Builder, HisHealthSleepOrBuilder> sleepDataBuilder_;
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       * @return Whether the sleepData field is set.
       */
      public boolean hasSleepData() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       * @return The sleepData.
       */
      public HisHealthSleep getSleepData() {
        if (sleepDataBuilder_ == null) {
          return sleepData_ == null ? HisHealthSleep.getDefaultInstance() : sleepData_;
        } else {
          return sleepDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      public Builder setSleepData(HisHealthSleep value) {
        if (sleepDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sleepData_ = value;
          onChanged();
        } else {
          sleepDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      public Builder setSleepData(
          HisHealthSleep.Builder builderForValue) {
        if (sleepDataBuilder_ == null) {
          sleepData_ = builderForValue.build();
          onChanged();
        } else {
          sleepDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      public Builder mergeSleepData(HisHealthSleep value) {
        if (sleepDataBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              sleepData_ != null &&
              sleepData_ != HisHealthSleep.getDefaultInstance()) {
            sleepData_ =
              HisHealthSleep.newBuilder(sleepData_).mergeFrom(value).buildPartial();
          } else {
            sleepData_ = value;
          }
          onChanged();
        } else {
          sleepDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      public Builder clearSleepData() {
        if (sleepDataBuilder_ == null) {
          sleepData_ = null;
          onChanged();
        } else {
          sleepDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      public HisHealthSleep.Builder getSleepDataBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSleepDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      public HisHealthSleepOrBuilder getSleepDataOrBuilder() {
        if (sleepDataBuilder_ != null) {
          return sleepDataBuilder_.getMessageOrBuilder();
        } else {
          return sleepData_ == null ?
              HisHealthSleep.getDefaultInstance() : sleepData_;
        }
      }
      /**
       * <code>optional .HisHealthSleep sleep_data = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthSleep, HisHealthSleep.Builder, HisHealthSleepOrBuilder>
          getSleepDataFieldBuilder() {
        if (sleepDataBuilder_ == null) {
          sleepDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthSleep, HisHealthSleep.Builder, HisHealthSleepOrBuilder>(
                  getSleepData(),
                  getParentForChildren(),
                  isClean());
          sleepData_ = null;
        }
        return sleepDataBuilder_;
      }

      private HisHealthPedo pedoData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthPedo, HisHealthPedo.Builder, HisHealthPedoOrBuilder> pedoDataBuilder_;
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       * @return Whether the pedoData field is set.
       */
      public boolean hasPedoData() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       * @return The pedoData.
       */
      public HisHealthPedo getPedoData() {
        if (pedoDataBuilder_ == null) {
          return pedoData_ == null ? HisHealthPedo.getDefaultInstance() : pedoData_;
        } else {
          return pedoDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      public Builder setPedoData(HisHealthPedo value) {
        if (pedoDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pedoData_ = value;
          onChanged();
        } else {
          pedoDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      public Builder setPedoData(
          HisHealthPedo.Builder builderForValue) {
        if (pedoDataBuilder_ == null) {
          pedoData_ = builderForValue.build();
          onChanged();
        } else {
          pedoDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      public Builder mergePedoData(HisHealthPedo value) {
        if (pedoDataBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              pedoData_ != null &&
              pedoData_ != HisHealthPedo.getDefaultInstance()) {
            pedoData_ =
              HisHealthPedo.newBuilder(pedoData_).mergeFrom(value).buildPartial();
          } else {
            pedoData_ = value;
          }
          onChanged();
        } else {
          pedoDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      public Builder clearPedoData() {
        if (pedoDataBuilder_ == null) {
          pedoData_ = null;
          onChanged();
        } else {
          pedoDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      public HisHealthPedo.Builder getPedoDataBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPedoDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      public HisHealthPedoOrBuilder getPedoDataOrBuilder() {
        if (pedoDataBuilder_ != null) {
          return pedoDataBuilder_.getMessageOrBuilder();
        } else {
          return pedoData_ == null ?
              HisHealthPedo.getDefaultInstance() : pedoData_;
        }
      }
      /**
       * <code>optional .HisHealthPedo pedo_data = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthPedo, HisHealthPedo.Builder, HisHealthPedoOrBuilder>
          getPedoDataFieldBuilder() {
        if (pedoDataBuilder_ == null) {
          pedoDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthPedo, HisHealthPedo.Builder, HisHealthPedoOrBuilder>(
                  getPedoData(),
                  getParentForChildren(),
                  isClean());
          pedoData_ = null;
        }
        return pedoDataBuilder_;
      }

      private HisHealthHr hrData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthHr, HisHealthHr.Builder, HisHealthHrOrBuilder> hrDataBuilder_;
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       * @return Whether the hrData field is set.
       */
      public boolean hasHrData() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       * @return The hrData.
       */
      public HisHealthHr getHrData() {
        if (hrDataBuilder_ == null) {
          return hrData_ == null ? HisHealthHr.getDefaultInstance() : hrData_;
        } else {
          return hrDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      public Builder setHrData(HisHealthHr value) {
        if (hrDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hrData_ = value;
          onChanged();
        } else {
          hrDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      public Builder setHrData(
          HisHealthHr.Builder builderForValue) {
        if (hrDataBuilder_ == null) {
          hrData_ = builderForValue.build();
          onChanged();
        } else {
          hrDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      public Builder mergeHrData(HisHealthHr value) {
        if (hrDataBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
              hrData_ != null &&
              hrData_ != HisHealthHr.getDefaultInstance()) {
            hrData_ =
              HisHealthHr.newBuilder(hrData_).mergeFrom(value).buildPartial();
          } else {
            hrData_ = value;
          }
          onChanged();
        } else {
          hrDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      public Builder clearHrData() {
        if (hrDataBuilder_ == null) {
          hrData_ = null;
          onChanged();
        } else {
          hrDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      public HisHealthHr.Builder getHrDataBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getHrDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      public HisHealthHrOrBuilder getHrDataOrBuilder() {
        if (hrDataBuilder_ != null) {
          return hrDataBuilder_.getMessageOrBuilder();
        } else {
          return hrData_ == null ?
              HisHealthHr.getDefaultInstance() : hrData_;
        }
      }
      /**
       * <code>optional .HisHealthHr hr_data = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthHr, HisHealthHr.Builder, HisHealthHrOrBuilder>
          getHrDataFieldBuilder() {
        if (hrDataBuilder_ == null) {
          hrDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthHr, HisHealthHr.Builder, HisHealthHrOrBuilder>(
                  getHrData(),
                  getParentForChildren(),
                  isClean());
          hrData_ = null;
        }
        return hrDataBuilder_;
      }

      private HisHealthHrv hrvData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthHrv, HisHealthHrv.Builder, HisHealthHrvOrBuilder> hrvDataBuilder_;
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       * @return Whether the hrvData field is set.
       */
      public boolean hasHrvData() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       * @return The hrvData.
       */
      public HisHealthHrv getHrvData() {
        if (hrvDataBuilder_ == null) {
          return hrvData_ == null ? HisHealthHrv.getDefaultInstance() : hrvData_;
        } else {
          return hrvDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      public Builder setHrvData(HisHealthHrv value) {
        if (hrvDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hrvData_ = value;
          onChanged();
        } else {
          hrvDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      public Builder setHrvData(
          HisHealthHrv.Builder builderForValue) {
        if (hrvDataBuilder_ == null) {
          hrvData_ = builderForValue.build();
          onChanged();
        } else {
          hrvDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      public Builder mergeHrvData(HisHealthHrv value) {
        if (hrvDataBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
              hrvData_ != null &&
              hrvData_ != HisHealthHrv.getDefaultInstance()) {
            hrvData_ =
              HisHealthHrv.newBuilder(hrvData_).mergeFrom(value).buildPartial();
          } else {
            hrvData_ = value;
          }
          onChanged();
        } else {
          hrvDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      public Builder clearHrvData() {
        if (hrvDataBuilder_ == null) {
          hrvData_ = null;
          onChanged();
        } else {
          hrvDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      public HisHealthHrv.Builder getHrvDataBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getHrvDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      public HisHealthHrvOrBuilder getHrvDataOrBuilder() {
        if (hrvDataBuilder_ != null) {
          return hrvDataBuilder_.getMessageOrBuilder();
        } else {
          return hrvData_ == null ?
              HisHealthHrv.getDefaultInstance() : hrvData_;
        }
      }
      /**
       * <code>optional .HisHealthHrv hrv_data = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthHrv, HisHealthHrv.Builder, HisHealthHrvOrBuilder>
          getHrvDataFieldBuilder() {
        if (hrvDataBuilder_ == null) {
          hrvDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthHrv, HisHealthHrv.Builder, HisHealthHrvOrBuilder>(
                  getHrvData(),
                  getParentForChildren(),
                  isClean());
          hrvData_ = null;
        }
        return hrvDataBuilder_;
      }

      private HisHealthBp bpData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBp, HisHealthBp.Builder, HisHealthBpOrBuilder> bpDataBuilder_;
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       * @return Whether the bpData field is set.
       */
      public boolean hasBpData() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       * @return The bpData.
       */
      public HisHealthBp getBpData() {
        if (bpDataBuilder_ == null) {
          return bpData_ == null ? HisHealthBp.getDefaultInstance() : bpData_;
        } else {
          return bpDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      public Builder setBpData(HisHealthBp value) {
        if (bpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bpData_ = value;
          onChanged();
        } else {
          bpDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      public Builder setBpData(
          HisHealthBp.Builder builderForValue) {
        if (bpDataBuilder_ == null) {
          bpData_ = builderForValue.build();
          onChanged();
        } else {
          bpDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      public Builder mergeBpData(HisHealthBp value) {
        if (bpDataBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
              bpData_ != null &&
              bpData_ != HisHealthBp.getDefaultInstance()) {
            bpData_ =
              HisHealthBp.newBuilder(bpData_).mergeFrom(value).buildPartial();
          } else {
            bpData_ = value;
          }
          onChanged();
        } else {
          bpDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      public Builder clearBpData() {
        if (bpDataBuilder_ == null) {
          bpData_ = null;
          onChanged();
        } else {
          bpDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      public HisHealthBp.Builder getBpDataBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getBpDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      public HisHealthBpOrBuilder getBpDataOrBuilder() {
        if (bpDataBuilder_ != null) {
          return bpDataBuilder_.getMessageOrBuilder();
        } else {
          return bpData_ == null ?
              HisHealthBp.getDefaultInstance() : bpData_;
        }
      }
      /**
       * <code>optional .HisHealthBp bp_data = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBp, HisHealthBp.Builder, HisHealthBpOrBuilder>
          getBpDataFieldBuilder() {
        if (bpDataBuilder_ == null) {
          bpDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthBp, HisHealthBp.Builder, HisHealthBpOrBuilder>(
                  getBpData(),
                  getParentForChildren(),
                  isClean());
          bpData_ = null;
        }
        return bpDataBuilder_;
      }

      private HisHealthAf afData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthAf, HisHealthAf.Builder, HisHealthAfOrBuilder> afDataBuilder_;
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       * @return Whether the afData field is set.
       */
      public boolean hasAfData() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       * @return The afData.
       */
      public HisHealthAf getAfData() {
        if (afDataBuilder_ == null) {
          return afData_ == null ? HisHealthAf.getDefaultInstance() : afData_;
        } else {
          return afDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      public Builder setAfData(HisHealthAf value) {
        if (afDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          afData_ = value;
          onChanged();
        } else {
          afDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      public Builder setAfData(
          HisHealthAf.Builder builderForValue) {
        if (afDataBuilder_ == null) {
          afData_ = builderForValue.build();
          onChanged();
        } else {
          afDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      public Builder mergeAfData(HisHealthAf value) {
        if (afDataBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
              afData_ != null &&
              afData_ != HisHealthAf.getDefaultInstance()) {
            afData_ =
              HisHealthAf.newBuilder(afData_).mergeFrom(value).buildPartial();
          } else {
            afData_ = value;
          }
          onChanged();
        } else {
          afDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      public Builder clearAfData() {
        if (afDataBuilder_ == null) {
          afData_ = null;
          onChanged();
        } else {
          afDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      public HisHealthAf.Builder getAfDataBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getAfDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      public HisHealthAfOrBuilder getAfDataOrBuilder() {
        if (afDataBuilder_ != null) {
          return afDataBuilder_.getMessageOrBuilder();
        } else {
          return afData_ == null ?
              HisHealthAf.getDefaultInstance() : afData_;
        }
      }
      /**
       * <code>optional .HisHealthAf af_data = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthAf, HisHealthAf.Builder, HisHealthAfOrBuilder>
          getAfDataFieldBuilder() {
        if (afDataBuilder_ == null) {
          afDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthAf, HisHealthAf.Builder, HisHealthAfOrBuilder>(
                  getAfData(),
                  getParentForChildren(),
                  isClean());
          afData_ = null;
        }
        return afDataBuilder_;
      }

      private HisHealthMdt mdtData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthMdt, HisHealthMdt.Builder, HisHealthMdtOrBuilder> mdtDataBuilder_;
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       * @return Whether the mdtData field is set.
       */
      public boolean hasMdtData() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       * @return The mdtData.
       */
      public HisHealthMdt getMdtData() {
        if (mdtDataBuilder_ == null) {
          return mdtData_ == null ? HisHealthMdt.getDefaultInstance() : mdtData_;
        } else {
          return mdtDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      public Builder setMdtData(HisHealthMdt value) {
        if (mdtDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          mdtData_ = value;
          onChanged();
        } else {
          mdtDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      public Builder setMdtData(
          HisHealthMdt.Builder builderForValue) {
        if (mdtDataBuilder_ == null) {
          mdtData_ = builderForValue.build();
          onChanged();
        } else {
          mdtDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      public Builder mergeMdtData(HisHealthMdt value) {
        if (mdtDataBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
              mdtData_ != null &&
              mdtData_ != HisHealthMdt.getDefaultInstance()) {
            mdtData_ =
              HisHealthMdt.newBuilder(mdtData_).mergeFrom(value).buildPartial();
          } else {
            mdtData_ = value;
          }
          onChanged();
        } else {
          mdtDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      public Builder clearMdtData() {
        if (mdtDataBuilder_ == null) {
          mdtData_ = null;
          onChanged();
        } else {
          mdtDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      public HisHealthMdt.Builder getMdtDataBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getMdtDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      public HisHealthMdtOrBuilder getMdtDataOrBuilder() {
        if (mdtDataBuilder_ != null) {
          return mdtDataBuilder_.getMessageOrBuilder();
        } else {
          return mdtData_ == null ?
              HisHealthMdt.getDefaultInstance() : mdtData_;
        }
      }
      /**
       * <code>optional .HisHealthMdt mdt_data = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthMdt, HisHealthMdt.Builder, HisHealthMdtOrBuilder>
          getMdtDataFieldBuilder() {
        if (mdtDataBuilder_ == null) {
          mdtDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthMdt, HisHealthMdt.Builder, HisHealthMdtOrBuilder>(
                  getMdtData(),
                  getParentForChildren(),
                  isClean());
          mdtData_ = null;
        }
        return mdtDataBuilder_;
      }

      private HisHealthMood moodData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthMood, HisHealthMood.Builder, HisHealthMoodOrBuilder> moodDataBuilder_;
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       * @return Whether the moodData field is set.
       */
      public boolean hasMoodData() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       * @return The moodData.
       */
      public HisHealthMood getMoodData() {
        if (moodDataBuilder_ == null) {
          return moodData_ == null ? HisHealthMood.getDefaultInstance() : moodData_;
        } else {
          return moodDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      public Builder setMoodData(HisHealthMood value) {
        if (moodDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          moodData_ = value;
          onChanged();
        } else {
          moodDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      public Builder setMoodData(
          HisHealthMood.Builder builderForValue) {
        if (moodDataBuilder_ == null) {
          moodData_ = builderForValue.build();
          onChanged();
        } else {
          moodDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      public Builder mergeMoodData(HisHealthMood value) {
        if (moodDataBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
              moodData_ != null &&
              moodData_ != HisHealthMood.getDefaultInstance()) {
            moodData_ =
              HisHealthMood.newBuilder(moodData_).mergeFrom(value).buildPartial();
          } else {
            moodData_ = value;
          }
          onChanged();
        } else {
          moodDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      public Builder clearMoodData() {
        if (moodDataBuilder_ == null) {
          moodData_ = null;
          onChanged();
        } else {
          moodDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      public HisHealthMood.Builder getMoodDataBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getMoodDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      public HisHealthMoodOrBuilder getMoodDataOrBuilder() {
        if (moodDataBuilder_ != null) {
          return moodDataBuilder_.getMessageOrBuilder();
        } else {
          return moodData_ == null ?
              HisHealthMood.getDefaultInstance() : moodData_;
        }
      }
      /**
       * <code>optional .HisHealthMood mood_data = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthMood, HisHealthMood.Builder, HisHealthMoodOrBuilder>
          getMoodDataFieldBuilder() {
        if (moodDataBuilder_ == null) {
          moodDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthMood, HisHealthMood.Builder, HisHealthMoodOrBuilder>(
                  getMoodData(),
                  getParentForChildren(),
                  isClean());
          moodData_ = null;
        }
        return moodDataBuilder_;
      }

      private HisHealthBreath breathData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBreath, HisHealthBreath.Builder, HisHealthBreathOrBuilder> breathDataBuilder_;
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       * @return Whether the breathData field is set.
       */
      public boolean hasBreathData() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       * @return The breathData.
       */
      public HisHealthBreath getBreathData() {
        if (breathDataBuilder_ == null) {
          return breathData_ == null ? HisHealthBreath.getDefaultInstance() : breathData_;
        } else {
          return breathDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      public Builder setBreathData(HisHealthBreath value) {
        if (breathDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          breathData_ = value;
          onChanged();
        } else {
          breathDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      public Builder setBreathData(
          HisHealthBreath.Builder builderForValue) {
        if (breathDataBuilder_ == null) {
          breathData_ = builderForValue.build();
          onChanged();
        } else {
          breathDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      public Builder mergeBreathData(HisHealthBreath value) {
        if (breathDataBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0) &&
              breathData_ != null &&
              breathData_ != HisHealthBreath.getDefaultInstance()) {
            breathData_ =
              HisHealthBreath.newBuilder(breathData_).mergeFrom(value).buildPartial();
          } else {
            breathData_ = value;
          }
          onChanged();
        } else {
          breathDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      public Builder clearBreathData() {
        if (breathDataBuilder_ == null) {
          breathData_ = null;
          onChanged();
        } else {
          breathDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      public HisHealthBreath.Builder getBreathDataBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getBreathDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      public HisHealthBreathOrBuilder getBreathDataOrBuilder() {
        if (breathDataBuilder_ != null) {
          return breathDataBuilder_.getMessageOrBuilder();
        } else {
          return breathData_ == null ?
              HisHealthBreath.getDefaultInstance() : breathData_;
        }
      }
      /**
       * <code>optional .HisHealthBreath breath_data = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBreath, HisHealthBreath.Builder, HisHealthBreathOrBuilder>
          getBreathDataFieldBuilder() {
        if (breathDataBuilder_ == null) {
          breathDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthBreath, HisHealthBreath.Builder, HisHealthBreathOrBuilder>(
                  getBreathData(),
                  getParentForChildren(),
                  isClean());
          breathData_ = null;
        }
        return breathDataBuilder_;
      }

      private HisHealthBioz biozData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBioz, HisHealthBioz.Builder, HisHealthBiozOrBuilder> biozDataBuilder_;
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       * @return Whether the biozData field is set.
       */
      public boolean hasBiozData() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       * @return The biozData.
       */
      public HisHealthBioz getBiozData() {
        if (biozDataBuilder_ == null) {
          return biozData_ == null ? HisHealthBioz.getDefaultInstance() : biozData_;
        } else {
          return biozDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      public Builder setBiozData(HisHealthBioz value) {
        if (biozDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          biozData_ = value;
          onChanged();
        } else {
          biozDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      public Builder setBiozData(
          HisHealthBioz.Builder builderForValue) {
        if (biozDataBuilder_ == null) {
          biozData_ = builderForValue.build();
          onChanged();
        } else {
          biozDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      public Builder mergeBiozData(HisHealthBioz value) {
        if (biozDataBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0) &&
              biozData_ != null &&
              biozData_ != HisHealthBioz.getDefaultInstance()) {
            biozData_ =
              HisHealthBioz.newBuilder(biozData_).mergeFrom(value).buildPartial();
          } else {
            biozData_ = value;
          }
          onChanged();
        } else {
          biozDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      public Builder clearBiozData() {
        if (biozDataBuilder_ == null) {
          biozData_ = null;
          onChanged();
        } else {
          biozDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      public HisHealthBioz.Builder getBiozDataBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getBiozDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      public HisHealthBiozOrBuilder getBiozDataOrBuilder() {
        if (biozDataBuilder_ != null) {
          return biozDataBuilder_.getMessageOrBuilder();
        } else {
          return biozData_ == null ?
              HisHealthBioz.getDefaultInstance() : biozData_;
        }
      }
      /**
       * <code>optional .HisHealthBioz bioz_data = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBioz, HisHealthBioz.Builder, HisHealthBiozOrBuilder>
          getBiozDataFieldBuilder() {
        if (biozDataBuilder_ == null) {
          biozDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthBioz, HisHealthBioz.Builder, HisHealthBiozOrBuilder>(
                  getBiozData(),
                  getParentForChildren(),
                  isClean());
          biozData_ = null;
        }
        return biozDataBuilder_;
      }

      private HisHealthBOxy bxoyData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBOxy, HisHealthBOxy.Builder, HisHealthBOxyOrBuilder> bxoyDataBuilder_;
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       * @return Whether the bxoyData field is set.
       */
      public boolean hasBxoyData() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       * @return The bxoyData.
       */
      public HisHealthBOxy getBxoyData() {
        if (bxoyDataBuilder_ == null) {
          return bxoyData_ == null ? HisHealthBOxy.getDefaultInstance() : bxoyData_;
        } else {
          return bxoyDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      public Builder setBxoyData(HisHealthBOxy value) {
        if (bxoyDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bxoyData_ = value;
          onChanged();
        } else {
          bxoyDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      public Builder setBxoyData(
          HisHealthBOxy.Builder builderForValue) {
        if (bxoyDataBuilder_ == null) {
          bxoyData_ = builderForValue.build();
          onChanged();
        } else {
          bxoyDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      public Builder mergeBxoyData(HisHealthBOxy value) {
        if (bxoyDataBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
              bxoyData_ != null &&
              bxoyData_ != HisHealthBOxy.getDefaultInstance()) {
            bxoyData_ =
              HisHealthBOxy.newBuilder(bxoyData_).mergeFrom(value).buildPartial();
          } else {
            bxoyData_ = value;
          }
          onChanged();
        } else {
          bxoyDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      public Builder clearBxoyData() {
        if (bxoyDataBuilder_ == null) {
          bxoyData_ = null;
          onChanged();
        } else {
          bxoyDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      public HisHealthBOxy.Builder getBxoyDataBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getBxoyDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      public HisHealthBOxyOrBuilder getBxoyDataOrBuilder() {
        if (bxoyDataBuilder_ != null) {
          return bxoyDataBuilder_.getMessageOrBuilder();
        } else {
          return bxoyData_ == null ?
              HisHealthBOxy.getDefaultInstance() : bxoyData_;
        }
      }
      /**
       * <code>optional .HisHealthBOxy bxoy_data = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBOxy, HisHealthBOxy.Builder, HisHealthBOxyOrBuilder>
          getBxoyDataFieldBuilder() {
        if (bxoyDataBuilder_ == null) {
          bxoyDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthBOxy, HisHealthBOxy.Builder, HisHealthBOxyOrBuilder>(
                  getBxoyData(),
                  getParentForChildren(),
                  isClean());
          bxoyData_ = null;
        }
        return bxoyDataBuilder_;
      }

      private HisHealthTemp temperatureData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthTemp, HisHealthTemp.Builder, HisHealthTempOrBuilder> temperatureDataBuilder_;
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       * @return Whether the temperatureData field is set.
       */
      public boolean hasTemperatureData() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       * @return The temperatureData.
       */
      public HisHealthTemp getTemperatureData() {
        if (temperatureDataBuilder_ == null) {
          return temperatureData_ == null ? HisHealthTemp.getDefaultInstance() : temperatureData_;
        } else {
          return temperatureDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      public Builder setTemperatureData(HisHealthTemp value) {
        if (temperatureDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          temperatureData_ = value;
          onChanged();
        } else {
          temperatureDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      public Builder setTemperatureData(
          HisHealthTemp.Builder builderForValue) {
        if (temperatureDataBuilder_ == null) {
          temperatureData_ = builderForValue.build();
          onChanged();
        } else {
          temperatureDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      public Builder mergeTemperatureData(HisHealthTemp value) {
        if (temperatureDataBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
              temperatureData_ != null &&
              temperatureData_ != HisHealthTemp.getDefaultInstance()) {
            temperatureData_ =
              HisHealthTemp.newBuilder(temperatureData_).mergeFrom(value).buildPartial();
          } else {
            temperatureData_ = value;
          }
          onChanged();
        } else {
          temperatureDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      public Builder clearTemperatureData() {
        if (temperatureDataBuilder_ == null) {
          temperatureData_ = null;
          onChanged();
        } else {
          temperatureDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      public HisHealthTemp.Builder getTemperatureDataBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getTemperatureDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      public HisHealthTempOrBuilder getTemperatureDataOrBuilder() {
        if (temperatureDataBuilder_ != null) {
          return temperatureDataBuilder_.getMessageOrBuilder();
        } else {
          return temperatureData_ == null ?
              HisHealthTemp.getDefaultInstance() : temperatureData_;
        }
      }
      /**
       * <code>optional .HisHealthTemp temperature_data = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthTemp, HisHealthTemp.Builder, HisHealthTempOrBuilder>
          getTemperatureDataFieldBuilder() {
        if (temperatureDataBuilder_ == null) {
          temperatureDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthTemp, HisHealthTemp.Builder, HisHealthTempOrBuilder>(
                  getTemperatureData(),
                  getParentForChildren(),
                  isClean());
          temperatureData_ = null;
        }
        return temperatureDataBuilder_;
      }

      private HisHealthOutAct outActData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthOutAct, HisHealthOutAct.Builder, HisHealthOutActOrBuilder> outActDataBuilder_;
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       * @return Whether the outActData field is set.
       */
      public boolean hasOutActData() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       * @return The outActData.
       */
      public HisHealthOutAct getOutActData() {
        if (outActDataBuilder_ == null) {
          return outActData_ == null ? HisHealthOutAct.getDefaultInstance() : outActData_;
        } else {
          return outActDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      public Builder setOutActData(HisHealthOutAct value) {
        if (outActDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          outActData_ = value;
          onChanged();
        } else {
          outActDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      public Builder setOutActData(
          HisHealthOutAct.Builder builderForValue) {
        if (outActDataBuilder_ == null) {
          outActData_ = builderForValue.build();
          onChanged();
        } else {
          outActDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      public Builder mergeOutActData(HisHealthOutAct value) {
        if (outActDataBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
              outActData_ != null &&
              outActData_ != HisHealthOutAct.getDefaultInstance()) {
            outActData_ =
              HisHealthOutAct.newBuilder(outActData_).mergeFrom(value).buildPartial();
          } else {
            outActData_ = value;
          }
          onChanged();
        } else {
          outActDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      public Builder clearOutActData() {
        if (outActDataBuilder_ == null) {
          outActData_ = null;
          onChanged();
        } else {
          outActDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      public HisHealthOutAct.Builder getOutActDataBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getOutActDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      public HisHealthOutActOrBuilder getOutActDataOrBuilder() {
        if (outActDataBuilder_ != null) {
          return outActDataBuilder_.getMessageOrBuilder();
        } else {
          return outActData_ == null ?
              HisHealthOutAct.getDefaultInstance() : outActData_;
        }
      }
      /**
       * <code>optional .HisHealthOutAct out_act_data = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthOutAct, HisHealthOutAct.Builder, HisHealthOutActOrBuilder>
          getOutActDataFieldBuilder() {
        if (outActDataBuilder_ == null) {
          outActDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthOutAct, HisHealthOutAct.Builder, HisHealthOutActOrBuilder>(
                  getOutActData(),
                  getParentForChildren(),
                  isClean());
          outActData_ = null;
        }
        return outActDataBuilder_;
      }

      private HisHealthOAQ oaqData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthOAQ, HisHealthOAQ.Builder, HisHealthOAQOrBuilder> oaqDataBuilder_;
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       * @return Whether the oaqData field is set.
       */
      public boolean hasOaqData() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       * @return The oaqData.
       */
      public HisHealthOAQ getOaqData() {
        if (oaqDataBuilder_ == null) {
          return oaqData_ == null ? HisHealthOAQ.getDefaultInstance() : oaqData_;
        } else {
          return oaqDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      public Builder setOaqData(HisHealthOAQ value) {
        if (oaqDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          oaqData_ = value;
          onChanged();
        } else {
          oaqDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      public Builder setOaqData(
          HisHealthOAQ.Builder builderForValue) {
        if (oaqDataBuilder_ == null) {
          oaqData_ = builderForValue.build();
          onChanged();
        } else {
          oaqDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      public Builder mergeOaqData(HisHealthOAQ value) {
        if (oaqDataBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0) &&
              oaqData_ != null &&
              oaqData_ != HisHealthOAQ.getDefaultInstance()) {
            oaqData_ =
              HisHealthOAQ.newBuilder(oaqData_).mergeFrom(value).buildPartial();
          } else {
            oaqData_ = value;
          }
          onChanged();
        } else {
          oaqDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      public Builder clearOaqData() {
        if (oaqDataBuilder_ == null) {
          oaqData_ = null;
          onChanged();
        } else {
          oaqDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      public HisHealthOAQ.Builder getOaqDataBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getOaqDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      public HisHealthOAQOrBuilder getOaqDataOrBuilder() {
        if (oaqDataBuilder_ != null) {
          return oaqDataBuilder_.getMessageOrBuilder();
        } else {
          return oaqData_ == null ?
              HisHealthOAQ.getDefaultInstance() : oaqData_;
        }
      }
      /**
       * <code>optional .HisHealthOAQ oaq_data = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthOAQ, HisHealthOAQ.Builder, HisHealthOAQOrBuilder>
          getOaqDataFieldBuilder() {
        if (oaqDataBuilder_ == null) {
          oaqDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthOAQ, HisHealthOAQ.Builder, HisHealthOAQOrBuilder>(
                  getOaqData(),
                  getParentForChildren(),
                  isClean());
          oaqData_ = null;
        }
        return oaqDataBuilder_;
      }

      private HisHealthIAQ iaqData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthIAQ, HisHealthIAQ.Builder, HisHealthIAQOrBuilder> iaqDataBuilder_;
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       * @return Whether the iaqData field is set.
       */
      public boolean hasIaqData() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       * @return The iaqData.
       */
      public HisHealthIAQ getIaqData() {
        if (iaqDataBuilder_ == null) {
          return iaqData_ == null ? HisHealthIAQ.getDefaultInstance() : iaqData_;
        } else {
          return iaqDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      public Builder setIaqData(HisHealthIAQ value) {
        if (iaqDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          iaqData_ = value;
          onChanged();
        } else {
          iaqDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      public Builder setIaqData(
          HisHealthIAQ.Builder builderForValue) {
        if (iaqDataBuilder_ == null) {
          iaqData_ = builderForValue.build();
          onChanged();
        } else {
          iaqDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      public Builder mergeIaqData(HisHealthIAQ value) {
        if (iaqDataBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0) &&
              iaqData_ != null &&
              iaqData_ != HisHealthIAQ.getDefaultInstance()) {
            iaqData_ =
              HisHealthIAQ.newBuilder(iaqData_).mergeFrom(value).buildPartial();
          } else {
            iaqData_ = value;
          }
          onChanged();
        } else {
          iaqDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      public Builder clearIaqData() {
        if (iaqDataBuilder_ == null) {
          iaqData_ = null;
          onChanged();
        } else {
          iaqDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      public HisHealthIAQ.Builder getIaqDataBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getIaqDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      public HisHealthIAQOrBuilder getIaqDataOrBuilder() {
        if (iaqDataBuilder_ != null) {
          return iaqDataBuilder_.getMessageOrBuilder();
        } else {
          return iaqData_ == null ?
              HisHealthIAQ.getDefaultInstance() : iaqData_;
        }
      }
      /**
       * <code>optional .HisHealthIAQ iaq_data = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthIAQ, HisHealthIAQ.Builder, HisHealthIAQOrBuilder>
          getIaqDataFieldBuilder() {
        if (iaqDataBuilder_ == null) {
          iaqDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthIAQ, HisHealthIAQ.Builder, HisHealthIAQOrBuilder>(
                  getIaqData(),
                  getParentForChildren(),
                  isClean());
          iaqData_ = null;
        }
        return iaqDataBuilder_;
      }

      private HisHealthHuMiTure humitureData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthHuMiTure, HisHealthHuMiTure.Builder, HisHealthHuMiTureOrBuilder> humitureDataBuilder_;
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       * @return Whether the humitureData field is set.
       */
      public boolean hasHumitureData() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       * @return The humitureData.
       */
      public HisHealthHuMiTure getHumitureData() {
        if (humitureDataBuilder_ == null) {
          return humitureData_ == null ? HisHealthHuMiTure.getDefaultInstance() : humitureData_;
        } else {
          return humitureDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      public Builder setHumitureData(HisHealthHuMiTure value) {
        if (humitureDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          humitureData_ = value;
          onChanged();
        } else {
          humitureDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      public Builder setHumitureData(
          HisHealthHuMiTure.Builder builderForValue) {
        if (humitureDataBuilder_ == null) {
          humitureData_ = builderForValue.build();
          onChanged();
        } else {
          humitureDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      public Builder mergeHumitureData(HisHealthHuMiTure value) {
        if (humitureDataBuilder_ == null) {
          if (((bitField0_ & 0x00010000) != 0) &&
              humitureData_ != null &&
              humitureData_ != HisHealthHuMiTure.getDefaultInstance()) {
            humitureData_ =
              HisHealthHuMiTure.newBuilder(humitureData_).mergeFrom(value).buildPartial();
          } else {
            humitureData_ = value;
          }
          onChanged();
        } else {
          humitureDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      public Builder clearHumitureData() {
        if (humitureDataBuilder_ == null) {
          humitureData_ = null;
          onChanged();
        } else {
          humitureDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      public HisHealthHuMiTure.Builder getHumitureDataBuilder() {
        bitField0_ |= 0x00010000;
        onChanged();
        return getHumitureDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      public HisHealthHuMiTureOrBuilder getHumitureDataOrBuilder() {
        if (humitureDataBuilder_ != null) {
          return humitureDataBuilder_.getMessageOrBuilder();
        } else {
          return humitureData_ == null ?
              HisHealthHuMiTure.getDefaultInstance() : humitureData_;
        }
      }
      /**
       * <code>optional .HisHealthHuMiTure humiture_data = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthHuMiTure, HisHealthHuMiTure.Builder, HisHealthHuMiTureOrBuilder>
          getHumitureDataFieldBuilder() {
        if (humitureDataBuilder_ == null) {
          humitureDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthHuMiTure, HisHealthHuMiTure.Builder, HisHealthHuMiTureOrBuilder>(
                  getHumitureData(),
                  getParentForChildren(),
                  isClean());
          humitureData_ = null;
        }
        return humitureDataBuilder_;
      }

      private HisHealthBlood_sugar bloodSugarData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBlood_sugar, HisHealthBlood_sugar.Builder, HisHealthBlood_sugarOrBuilder> bloodSugarDataBuilder_;
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       * @return Whether the bloodSugarData field is set.
       */
      public boolean hasBloodSugarData() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       * @return The bloodSugarData.
       */
      public HisHealthBlood_sugar getBloodSugarData() {
        if (bloodSugarDataBuilder_ == null) {
          return bloodSugarData_ == null ? HisHealthBlood_sugar.getDefaultInstance() : bloodSugarData_;
        } else {
          return bloodSugarDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      public Builder setBloodSugarData(HisHealthBlood_sugar value) {
        if (bloodSugarDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bloodSugarData_ = value;
          onChanged();
        } else {
          bloodSugarDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      public Builder setBloodSugarData(
          HisHealthBlood_sugar.Builder builderForValue) {
        if (bloodSugarDataBuilder_ == null) {
          bloodSugarData_ = builderForValue.build();
          onChanged();
        } else {
          bloodSugarDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      public Builder mergeBloodSugarData(HisHealthBlood_sugar value) {
        if (bloodSugarDataBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0) &&
              bloodSugarData_ != null &&
              bloodSugarData_ != HisHealthBlood_sugar.getDefaultInstance()) {
            bloodSugarData_ =
              HisHealthBlood_sugar.newBuilder(bloodSugarData_).mergeFrom(value).buildPartial();
          } else {
            bloodSugarData_ = value;
          }
          onChanged();
        } else {
          bloodSugarDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      public Builder clearBloodSugarData() {
        if (bloodSugarDataBuilder_ == null) {
          bloodSugarData_ = null;
          onChanged();
        } else {
          bloodSugarDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      public HisHealthBlood_sugar.Builder getBloodSugarDataBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getBloodSugarDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      public HisHealthBlood_sugarOrBuilder getBloodSugarDataOrBuilder() {
        if (bloodSugarDataBuilder_ != null) {
          return bloodSugarDataBuilder_.getMessageOrBuilder();
        } else {
          return bloodSugarData_ == null ?
              HisHealthBlood_sugar.getDefaultInstance() : bloodSugarData_;
        }
      }
      /**
       * <code>optional .HisHealthBlood_sugar Blood_sugar_data = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          HisHealthBlood_sugar, HisHealthBlood_sugar.Builder, HisHealthBlood_sugarOrBuilder>
          getBloodSugarDataFieldBuilder() {
        if (bloodSugarDataBuilder_ == null) {
          bloodSugarDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              HisHealthBlood_sugar, HisHealthBlood_sugar.Builder, HisHealthBlood_sugarOrBuilder>(
                  getBloodSugarData(),
                  getParentForChildren(),
                  isClean());
          bloodSugarData_ = null;
        }
        return bloodSugarDataBuilder_;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HisDataHealth)
    }

    // @@protoc_insertion_point(class_scope:HisDataHealth)
    private static final HisDataHealth DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new HisDataHealth();
    }

    public static HisDataHealth getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @Deprecated public static final com.google.protobuf.Parser<HisDataHealth>
        PARSER = new com.google.protobuf.AbstractParser<HisDataHealth>() {
      @Override
      public HisDataHealth parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HisDataHealth(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HisDataHealth> parser() {
      return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<HisDataHealth> getParserForType() {
      return PARSER;
    }

    @Override
    public HisDataHealth getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthPedo_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthPedo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthHr_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthHr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthBlood_sugar_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthBlood_sugar_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthOutAct_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthOutAct_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthHrv_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthHrv_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthMdt_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthMdt_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthBp_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthBp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthAf_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthAf_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthSleep_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthSleep_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthMood_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthMood_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthBreath_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthBreath_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthBioz_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthBioz_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthBOxy_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthBOxy_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthTemp_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthTemp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthOAQ_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthOAQ_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthIAQ_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthIAQ_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisHealthHuMiTure_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisHealthHuMiTure_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HisDataHealth_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HisDataHealth_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    String[] descriptorData = {
      "\n\025his_health_data.proto\032\023realtime_data.p" +
      "roto\"]\n\rHisHealthPedo\022\014\n\004type\030\001 \002(\007\022\r\n\005s" +
      "tate\030\002 \002(\007\022\017\n\007calorie\030\003 \002(\007\022\014\n\004step\030\004 \002(" +
      "\007\022\020\n\010distance\030\005 \002(\007\"@\n\013HisHealthHr\022\017\n\007mi" +
      "n_bpm\030\001 \002(\007\022\017\n\007max_bpm\030\002 \002(\007\022\017\n\007avg_bpm\030" +
      "\003 \002(\007\"+\n\024HisHealthBlood_sugar\022\023\n\013Blood_s" +
      "ugar\030\001 \002(\007\"\"\n\017HisHealthOutAct\022\017\n\007out_act" +
      "\030\001 \002(\007\"Y\n\014HisHealthHrv\022\014\n\004SDNN\030\001 \002(\002\022\r\n\005" +
      "RMSSD\030\002 \002(\002\022\r\n\005PNN50\030\003 \002(\002\022\014\n\004MEAN\030\004 \002(\002" +
      "\022\017\n\007fatigue\030\005 \002(\002\"\205\001\n\014HisHealthMdt\022\014\n\004SD" +
      "NN\030\001 \002(\002\022\r\n\005RMSSD\030\002 \002(\002\022\r\n\005PNN50\030\003 \002(\002\022\014" +
      "\n\004MEAN\030\004 \002(\002\022\034\n\006status\030\005 \002(\0162\014.HisMdtSta" +
      "te\022\016\n\006RESULT\030\006 \002(\002\022\r\n\005RELAX\030\007 \002(\002\"5\n\013His" +
      "HealthBp\022\013\n\003sbp\030\001 \002(\007\022\013\n\003dbp\030\002 \002(\007\022\014\n\004ti" +
      "me\030\003 \001(\007\")\n\013HisHealthAf\022\n\n\002af\030\001 \002(\017\022\016\n\006m" +
      "anual\030\002 \001(\010\"K\n\016HisHealthSleep\022\026\n\nsleep_d" +
      "ata\030\001 \003(\007B\002\020\001\022\021\n\tshut_down\030\002 \002(\010\022\016\n\006char" +
      "ge\030\003 \002(\010\"#\n\rHisHealthMood\022\022\n\nmood_level\030" +
      "\001 \002(\007\"%\n\017HisHealthBreath\022\022\n\nbreathrate\030\001" +
      " \002(\007\"M\n\rHisHealthBioz\022\t\n\001R\030\001 \002(\007\022\t\n\001X\030\002 " +
      "\002(\007\022\013\n\003fat\030\003 \002(\007\022\013\n\003bmi\030\004 \002(\007\022\014\n\004type\030\005 " +
      "\002(\007\"B\n\rHisHealthBOxy\022\017\n\007min_oxy\030\001 \002(\007\022\017\n" +
      "\007max_oxy\030\002 \002(\007\022\017\n\007agv_oxy\030\003 \002(\007\"R\n\rHisHe" +
      "althTemp\022\035\n\004type\030\001 \002(\0162\017.TPAMeasureType\022" +
      "\020\n\010evi_body\030\002 \002(\007\022\020\n\010esti_arm\030\003 \002(\007\"F\n\014H" +
      "isHealthOAQ\022\023\n\013O3_conc_ppb\030\001 \002(\002\022\020\n\010FAST" +
      "_AQI\030\002 \002(\007\022\017\n\007EPA_AQI\030\003 \002(\007\"E\n\014HisHealth" +
      "IAQ\022\013\n\003iaq\030\001 \002(\002\022\014\n\004tvoc\030\002 \002(\002\022\014\n\004etoh\030\003" +
      " \002(\002\022\014\n\004eco2\030\004 \002(\002\":\n\021HisHealthHuMiTure\022" +
      "\020\n\010Humidity\030\001 \002(\002\022\023\n\013temperature\030\002 \002(\002\"\225" +
      "\005\n\rHisDataHealth\022\035\n\ntime_stamp\030\001 \002(\0132\t.D" +
      "ateTime\022#\n\nsleep_data\030\002 \001(\0132\017.HisHealthS" +
      "leep\022!\n\tpedo_data\030\003 \001(\0132\016.HisHealthPedo\022" +
      "\035\n\007hr_data\030\004 \001(\0132\014.HisHealthHr\022\037\n\010hrv_da" +
      "ta\030\005 \001(\0132\r.HisHealthHrv\022\035\n\007bp_data\030\006 \001(\013" +
      "2\014.HisHealthBp\022\035\n\007af_data\030\007 \001(\0132\014.HisHea" +
      "lthAf\022\037\n\010mdt_data\030\010 \001(\0132\r.HisHealthMdt\022!" +
      "\n\tmood_data\030\t \001(\0132\016.HisHealthMood\022%\n\013bre" +
      "ath_data\030\n \001(\0132\020.HisHealthBreath\022!\n\tbioz" +
      "_data\030\013 \001(\0132\016.HisHealthBioz\022!\n\tbxoy_data" +
      "\030\014 \001(\0132\016.HisHealthBOxy\022(\n\020temperature_da" +
      "ta\030\r \001(\0132\016.HisHealthTemp\022&\n\014out_act_data" +
      "\030\016 \001(\0132\020.HisHealthOutAct\022\037\n\010oaq_data\030\017 \001" +
      "(\0132\r.HisHealthOAQ\022\037\n\010iaq_data\030\020 \001(\0132\r.Hi" +
      "sHealthIAQ\022)\n\rhumiture_data\030\021 \001(\0132\022.HisH" +
      "ealthHuMiTure\022/\n\020Blood_sugar_data\030\022 \001(\0132" +
      "\025.HisHealthBlood_sugar*2\n\013HisMdtState\022\013\n" +
      "\007PREPARE\020\000\022\013\n\007ONGOING\020\001\022\t\n\005RELAX\020\002*c\n\016TP" +
      "AMeasureType\022\031\n\025TPA_MEASURE_TYPE_NULL\020\000\022" +
      "\031\n\025TPA_MEASURE_TYPE_AUTO\020\001\022\033\n\027TPA_MEASUR" +
      "E_TYPE_ARMPIT\020\002B\tZ\007./iwown"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          RealtimeData.getDescriptor(),
        });
    internal_static_HisHealthPedo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_HisHealthPedo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthPedo_descriptor,
        new String[] { "Type", "State", "Calorie", "Step", "Distance", });
    internal_static_HisHealthHr_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_HisHealthHr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthHr_descriptor,
        new String[] { "MinBpm", "MaxBpm", "AvgBpm", });
    internal_static_HisHealthBlood_sugar_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_HisHealthBlood_sugar_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthBlood_sugar_descriptor,
        new String[] { "BloodSugar", });
    internal_static_HisHealthOutAct_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_HisHealthOutAct_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthOutAct_descriptor,
        new String[] { "OutAct", });
    internal_static_HisHealthHrv_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_HisHealthHrv_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthHrv_descriptor,
        new String[] { "SDNN", "RMSSD", "PNN50", "MEAN", "Fatigue", });
    internal_static_HisHealthMdt_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_HisHealthMdt_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthMdt_descriptor,
        new String[] { "SDNN", "RMSSD", "PNN50", "MEAN", "Status", "RESULT", "RELAX", });
    internal_static_HisHealthBp_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_HisHealthBp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthBp_descriptor,
        new String[] { "Sbp", "Dbp", "Time", });
    internal_static_HisHealthAf_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_HisHealthAf_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthAf_descriptor,
        new String[] { "Af", "Manual", });
    internal_static_HisHealthSleep_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_HisHealthSleep_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthSleep_descriptor,
        new String[] { "SleepData", "ShutDown", "Charge", });
    internal_static_HisHealthMood_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_HisHealthMood_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthMood_descriptor,
        new String[] { "MoodLevel", });
    internal_static_HisHealthBreath_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_HisHealthBreath_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthBreath_descriptor,
        new String[] { "Breathrate", });
    internal_static_HisHealthBioz_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_HisHealthBioz_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthBioz_descriptor,
        new String[] { "R", "X", "Fat", "Bmi", "Type", });
    internal_static_HisHealthBOxy_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_HisHealthBOxy_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthBOxy_descriptor,
        new String[] { "MinOxy", "MaxOxy", "AgvOxy", });
    internal_static_HisHealthTemp_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_HisHealthTemp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthTemp_descriptor,
        new String[] { "Type", "EviBody", "EstiArm", });
    internal_static_HisHealthOAQ_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_HisHealthOAQ_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthOAQ_descriptor,
        new String[] { "O3ConcPpb", "FASTAQI", "EPAAQI", });
    internal_static_HisHealthIAQ_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_HisHealthIAQ_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthIAQ_descriptor,
        new String[] { "Iaq", "Tvoc", "Etoh", "Eco2", });
    internal_static_HisHealthHuMiTure_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_HisHealthHuMiTure_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisHealthHuMiTure_descriptor,
        new String[] { "Humidity", "Temperature", });
    internal_static_HisDataHealth_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_HisDataHealth_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HisDataHealth_descriptor,
        new String[] { "TimeStamp", "SleepData", "PedoData", "HrData", "HrvData", "BpData", "AfData", "MdtData", "MoodData", "BreathData", "BiozData", "BxoyData", "TemperatureData", "OutActData", "OaqData", "IaqData", "HumitureData", "BloodSugarData", });
    RealtimeData.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
