// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: singlechip_msg.proto

#ifndef PROTOBUF_INCLUDED_singlechip_5fmsg_2eproto
#define PROTOBUF_INCLUDED_singlechip_5fmsg_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "message_base.pb.h"
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_singlechip_5fmsg_2eproto 

namespace protobuf_singlechip_5fmsg_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[5];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_singlechip_5fmsg_2eproto
namespace message {
class InputDi;
class InputDiDefaultTypeInternal;
extern InputDiDefaultTypeInternal _InputDi_default_instance_;
class OutputDo;
class OutputDoDefaultTypeInternal;
extern OutputDoDefaultTypeInternal _OutputDo_default_instance_;
class Singlechip_data;
class Singlechip_dataDefaultTypeInternal;
extern Singlechip_dataDefaultTypeInternal _Singlechip_data_default_instance_;
class Terminal_status_msg;
class Terminal_status_msgDefaultTypeInternal;
extern Terminal_status_msgDefaultTypeInternal _Terminal_status_msg_default_instance_;
class terminal_msg;
class terminal_msgDefaultTypeInternal;
extern terminal_msgDefaultTypeInternal _terminal_msg_default_instance_;
}  // namespace message
namespace google {
namespace protobuf {
template<> ::message::InputDi* Arena::CreateMaybeMessage<::message::InputDi>(Arena*);
template<> ::message::OutputDo* Arena::CreateMaybeMessage<::message::OutputDo>(Arena*);
template<> ::message::Singlechip_data* Arena::CreateMaybeMessage<::message::Singlechip_data>(Arena*);
template<> ::message::Terminal_status_msg* Arena::CreateMaybeMessage<::message::Terminal_status_msg>(Arena*);
template<> ::message::terminal_msg* Arena::CreateMaybeMessage<::message::terminal_msg>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace message {

enum Process_control {
  PROCESS_CONTROL_UNKNOWN = 0,
  PROCESS_CONTROL_FULL_AUTO = 1,
  PROCESS_CONTROL_MANUAL = 2,
  PROCESS_CONTROL_AUTO_CLOSE = 3,
  PROCESS_CONTROL_AUTO_OPEN = 4,
  PROCESS_CONTROL_TO_READY = 5,
  PROCESS_CONTROL_RESET = 7,
  PROCESS_CONTROL_STOP = 8,
  PROCESS_CONTROL_FAULT = 9,
  PROCESS_CONTROL_INLET_0 = 10,
  PROCESS_CONTROL_INLET_1 = 11,
  PROCESS_CONTROL_INLET_2 = 12,
  PROCESS_CONTROL_INLET_3 = 13,
  PROCESS_CONTROL_INLET_4 = 14,
  PROCESS_CONTROL_INLET_5 = 15,
  PROCESS_CONTROL_INLET_6 = 16,
  PROCESS_CONTROL_INLET_7 = 17,
  PROCESS_CONTROL_INLET_8 = 18,
  PROCESS_CONTROL_INLET_9 = 19,
  PROCESS_CONTROL_OUTLET_0 = 30,
  PROCESS_CONTROL_OUTLET_1 = 31,
  PROCESS_CONTROL_OUTLET_2 = 32,
  PROCESS_CONTROL_OUTLET_3 = 33,
  PROCESS_CONTROL_OUTLET_4 = 34,
  PROCESS_CONTROL_OUTLET_5 = 35,
  PROCESS_CONTROL_OUTLET_6 = 36,
  PROCESS_CONTROL_OUTLET_7 = 37,
  PROCESS_CONTROL_OUTLET_8 = 38,
  PROCESS_CONTROL_OUTLET_9 = 39
};
bool Process_control_IsValid(int value);
const Process_control Process_control_MIN = PROCESS_CONTROL_UNKNOWN;
const Process_control Process_control_MAX = PROCESS_CONTROL_OUTLET_9;
const int Process_control_ARRAYSIZE = Process_control_MAX + 1;

const ::google::protobuf::EnumDescriptor* Process_control_descriptor();
inline const ::std::string& Process_control_Name(Process_control value) {
  return ::google::protobuf::internal::NameOfEnum(
    Process_control_descriptor(), value);
}
inline bool Process_control_Parse(
    const ::std::string& name, Process_control* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Process_control>(
    Process_control_descriptor(), name, value);
}
enum Over_border_status {
  OVER_BORDER_STATUS_UNKNOWN = 0,
  OVER_BORDER_STATUS_NORMAL = 1,
  OVER_BORDER_STATUS_FRONT = 2,
  OVER_BORDER_STATUS_BACK = 3,
  OVER_BORDER_STATUS_LEFT = 4,
  OVER_BORDER_STATUS_RIGHT = 5
};
bool Over_border_status_IsValid(int value);
const Over_border_status Over_border_status_MIN = OVER_BORDER_STATUS_UNKNOWN;
const Over_border_status Over_border_status_MAX = OVER_BORDER_STATUS_RIGHT;
const int Over_border_status_ARRAYSIZE = Over_border_status_MAX + 1;

const ::google::protobuf::EnumDescriptor* Over_border_status_descriptor();
inline const ::std::string& Over_border_status_Name(Over_border_status value) {
  return ::google::protobuf::internal::NameOfEnum(
    Over_border_status_descriptor(), value);
}
inline bool Over_border_status_Parse(
    const ::std::string& name, Over_border_status* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Over_border_status>(
    Over_border_status_descriptor(), name, value);
}
enum Car_height_status {
  CAR_HEIGHT_STATUS_UNKNOWN = 0,
  CAR_HEIGHT_STATUS_SMALL = 1,
  CAR_HEIGHT_STATUS_MEDIUM = 2,
  CAR_HEIGHT_STATUS_LARGE = 3,
  CAR_HEIGHT_STATUS_HUGE = 4,
  CAR_HEIGHT_STATUS_FAULT = 5
};
bool Car_height_status_IsValid(int value);
const Car_height_status Car_height_status_MIN = CAR_HEIGHT_STATUS_UNKNOWN;
const Car_height_status Car_height_status_MAX = CAR_HEIGHT_STATUS_FAULT;
const int Car_height_status_ARRAYSIZE = Car_height_status_MAX + 1;

const ::google::protobuf::EnumDescriptor* Car_height_status_descriptor();
inline const ::std::string& Car_height_status_Name(Car_height_status value) {
  return ::google::protobuf::internal::NameOfEnum(
    Car_height_status_descriptor(), value);
}
inline bool Car_height_status_Parse(
    const ::std::string& name, Car_height_status* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Car_height_status>(
    Car_height_status_descriptor(), name, value);
}
enum Outside_door_status {
  OUTSIDE_DOOR_STATUS_UNKNOWN = 0,
  OUTSIDE_DOOR_STATUS_OPEN = 1,
  OUTSIDE_DOOR_STATUS_CLOSE = 2,
  OUTSIDE_DOOR_STATUS_RUN = 3,
  OUTSIDE_DOOR_STATUS_FAULT = 4
};
bool Outside_door_status_IsValid(int value);
const Outside_door_status Outside_door_status_MIN = OUTSIDE_DOOR_STATUS_UNKNOWN;
const Outside_door_status Outside_door_status_MAX = OUTSIDE_DOOR_STATUS_FAULT;
const int Outside_door_status_ARRAYSIZE = Outside_door_status_MAX + 1;

const ::google::protobuf::EnumDescriptor* Outside_door_status_descriptor();
inline const ::std::string& Outside_door_status_Name(Outside_door_status value) {
  return ::google::protobuf::internal::NameOfEnum(
    Outside_door_status_descriptor(), value);
}
inline bool Outside_door_status_Parse(
    const ::std::string& name, Outside_door_status* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Outside_door_status>(
    Outside_door_status_descriptor(), name, value);
}
enum Outside_door_control {
  OUTSIDE_DOOR_CONTROL_UNKNOWN = 0,
  OUTSIDE_DOOR_CONTROL_OPEN = 1,
  OUTSIDE_DOOR_CONTROL_CLOSE = 2
};
bool Outside_door_control_IsValid(int value);
const Outside_door_control Outside_door_control_MIN = OUTSIDE_DOOR_CONTROL_UNKNOWN;
const Outside_door_control Outside_door_control_MAX = OUTSIDE_DOOR_CONTROL_CLOSE;
const int Outside_door_control_ARRAYSIZE = Outside_door_control_MAX + 1;

const ::google::protobuf::EnumDescriptor* Outside_door_control_descriptor();
inline const ::std::string& Outside_door_control_Name(Outside_door_control value) {
  return ::google::protobuf::internal::NameOfEnum(
    Outside_door_control_descriptor(), value);
}
inline bool Outside_door_control_Parse(
    const ::std::string& name, Outside_door_control* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Outside_door_control>(
    Outside_door_control_descriptor(), name, value);
}
enum Process_status {
  PROCESS_STATUS_UNKNOWN = 0,
  PROCESS_STATUS_FULL_AUTO = 1,
  PROCESS_STATUS_MANUAL = 2,
  PROCESS_STATUS_AUTO_CLOSE = 3,
  PROCESS_STATUS_AUTO_OPEN = 4,
  PROCESS_STATUS_TO_READY = 5,
  PROCESS_STATUS_RESET = 7,
  PROCESS_STATUS_STOP = 8,
  PROCESS_STATUS_FAULT = 9,
  PROCESS_STATUS_INLET_0 = 10,
  PROCESS_STATUS_INLET_1 = 11,
  PROCESS_STATUS_INLET_2 = 12,
  PROCESS_STATUS_INLET_3 = 13,
  PROCESS_STATUS_INLET_4 = 14,
  PROCESS_STATUS_INLET_5 = 15,
  PROCESS_STATUS_INLET_6 = 16,
  PROCESS_STATUS_INLET_7 = 17,
  PROCESS_STATUS_INLET_8 = 18,
  PROCESS_STATUS_INLET_9 = 19,
  PROCESS_STATUS_INLET_10 = 20,
  PROCESS_STATUS_INLET_11 = 21,
  PROCESS_STATUS_INLET_12 = 22,
  PROCESS_STATUS_INLET_13 = 23,
  PROCESS_STATUS_INLET_14 = 24,
  PROCESS_STATUS_INLET_15 = 25,
  PROCESS_STATUS_INLET_16 = 26,
  PROCESS_STATUS_INLET_17 = 27,
  PROCESS_STATUS_INLET_18 = 28,
  PROCESS_STATUS_INLET_19 = 29,
  PROCESS_STATUS_OUTLET_0 = 30,
  PROCESS_STATUS_OUTLET_1 = 31,
  PROCESS_STATUS_OUTLET_2 = 32,
  PROCESS_STATUS_OUTLET_3 = 33,
  PROCESS_STATUS_OUTLET_4 = 34,
  PROCESS_STATUS_OUTLET_5 = 35,
  PROCESS_STATUS_OUTLET_6 = 36,
  PROCESS_STATUS_OUTLET_7 = 37,
  PROCESS_STATUS_OUTLET_8 = 38,
  PROCESS_STATUS_OUTLET_9 = 39,
  PROCESS_STATUS_OUTLET_10 = 40,
  PROCESS_STATUS_OUTLET_11 = 41,
  PROCESS_STATUS_OUTLET_12 = 42,
  PROCESS_STATUS_OUTLET_13 = 43,
  PROCESS_STATUS_OUTLET_14 = 44,
  PROCESS_STATUS_OUTLET_15 = 45,
  PROCESS_STATUS_OUTLET_16 = 46,
  PROCESS_STATUS_OUTLET_17 = 47,
  PROCESS_STATUS_OUTLET_18 = 48,
  PROCESS_STATUS_OUTLET_19 = 49
};
bool Process_status_IsValid(int value);
const Process_status Process_status_MIN = PROCESS_STATUS_UNKNOWN;
const Process_status Process_status_MAX = PROCESS_STATUS_OUTLET_19;
const int Process_status_ARRAYSIZE = Process_status_MAX + 1;

const ::google::protobuf::EnumDescriptor* Process_status_descriptor();
inline const ::std::string& Process_status_Name(Process_status value) {
  return ::google::protobuf::internal::NameOfEnum(
    Process_status_descriptor(), value);
}
inline bool Process_status_Parse(
    const ::std::string& name, Process_status* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Process_status>(
    Process_status_descriptor(), name, value);
}
// ===================================================================

class InputDi : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.InputDi) */ {
 public:
  InputDi();
  virtual ~InputDi();

  InputDi(const InputDi& from);

  inline InputDi& operator=(const InputDi& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  InputDi(InputDi&& from) noexcept
    : InputDi() {
    *this = ::std::move(from);
  }

  inline InputDi& operator=(InputDi&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const InputDi& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const InputDi* internal_default_instance() {
    return reinterpret_cast<const InputDi*>(
               &_InputDi_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(InputDi* other);
  friend void swap(InputDi& a, InputDi& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline InputDi* New() const final {
    return CreateMaybeMessage<InputDi>(NULL);
  }

  InputDi* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<InputDi>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const InputDi& from);
  void MergeFrom(const InputDi& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(InputDi* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 Di0 = 1;
  bool has_di0() const;
  void clear_di0();
  static const int kDi0FieldNumber = 1;
  ::google::protobuf::int32 di0() const;
  void set_di0(::google::protobuf::int32 value);

  // optional int32 Di1 = 2;
  bool has_di1() const;
  void clear_di1();
  static const int kDi1FieldNumber = 2;
  ::google::protobuf::int32 di1() const;
  void set_di1(::google::protobuf::int32 value);

  // optional int32 Di2 = 3;
  bool has_di2() const;
  void clear_di2();
  static const int kDi2FieldNumber = 3;
  ::google::protobuf::int32 di2() const;
  void set_di2(::google::protobuf::int32 value);

  // optional int32 Di3 = 4;
  bool has_di3() const;
  void clear_di3();
  static const int kDi3FieldNumber = 4;
  ::google::protobuf::int32 di3() const;
  void set_di3(::google::protobuf::int32 value);

  // optional int32 Di4 = 5;
  bool has_di4() const;
  void clear_di4();
  static const int kDi4FieldNumber = 5;
  ::google::protobuf::int32 di4() const;
  void set_di4(::google::protobuf::int32 value);

  // optional int32 Di5 = 6;
  bool has_di5() const;
  void clear_di5();
  static const int kDi5FieldNumber = 6;
  ::google::protobuf::int32 di5() const;
  void set_di5(::google::protobuf::int32 value);

  // optional int32 Di6 = 7;
  bool has_di6() const;
  void clear_di6();
  static const int kDi6FieldNumber = 7;
  ::google::protobuf::int32 di6() const;
  void set_di6(::google::protobuf::int32 value);

  // optional int32 Di7 = 8;
  bool has_di7() const;
  void clear_di7();
  static const int kDi7FieldNumber = 8;
  ::google::protobuf::int32 di7() const;
  void set_di7(::google::protobuf::int32 value);

  // optional int32 Di8 = 9;
  bool has_di8() const;
  void clear_di8();
  static const int kDi8FieldNumber = 9;
  ::google::protobuf::int32 di8() const;
  void set_di8(::google::protobuf::int32 value);

  // optional int32 Di9 = 10;
  bool has_di9() const;
  void clear_di9();
  static const int kDi9FieldNumber = 10;
  ::google::protobuf::int32 di9() const;
  void set_di9(::google::protobuf::int32 value);

  // optional int32 Di10 = 11;
  bool has_di10() const;
  void clear_di10();
  static const int kDi10FieldNumber = 11;
  ::google::protobuf::int32 di10() const;
  void set_di10(::google::protobuf::int32 value);

  // optional int32 Di11 = 12;
  bool has_di11() const;
  void clear_di11();
  static const int kDi11FieldNumber = 12;
  ::google::protobuf::int32 di11() const;
  void set_di11(::google::protobuf::int32 value);

  // optional int32 Di12 = 13;
  bool has_di12() const;
  void clear_di12();
  static const int kDi12FieldNumber = 13;
  ::google::protobuf::int32 di12() const;
  void set_di12(::google::protobuf::int32 value);

  // optional int32 Di13 = 14;
  bool has_di13() const;
  void clear_di13();
  static const int kDi13FieldNumber = 14;
  ::google::protobuf::int32 di13() const;
  void set_di13(::google::protobuf::int32 value);

  // optional int32 Di14 = 15;
  bool has_di14() const;
  void clear_di14();
  static const int kDi14FieldNumber = 15;
  ::google::protobuf::int32 di14() const;
  void set_di14(::google::protobuf::int32 value);

  // optional int32 Di15 = 16;
  bool has_di15() const;
  void clear_di15();
  static const int kDi15FieldNumber = 16;
  ::google::protobuf::int32 di15() const;
  void set_di15(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:message.InputDi)
 private:
  void set_has_di0();
  void clear_has_di0();
  void set_has_di1();
  void clear_has_di1();
  void set_has_di2();
  void clear_has_di2();
  void set_has_di3();
  void clear_has_di3();
  void set_has_di4();
  void clear_has_di4();
  void set_has_di5();
  void clear_has_di5();
  void set_has_di6();
  void clear_has_di6();
  void set_has_di7();
  void clear_has_di7();
  void set_has_di8();
  void clear_has_di8();
  void set_has_di9();
  void clear_has_di9();
  void set_has_di10();
  void clear_has_di10();
  void set_has_di11();
  void clear_has_di11();
  void set_has_di12();
  void clear_has_di12();
  void set_has_di13();
  void clear_has_di13();
  void set_has_di14();
  void clear_has_di14();
  void set_has_di15();
  void clear_has_di15();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 di0_;
  ::google::protobuf::int32 di1_;
  ::google::protobuf::int32 di2_;
  ::google::protobuf::int32 di3_;
  ::google::protobuf::int32 di4_;
  ::google::protobuf::int32 di5_;
  ::google::protobuf::int32 di6_;
  ::google::protobuf::int32 di7_;
  ::google::protobuf::int32 di8_;
  ::google::protobuf::int32 di9_;
  ::google::protobuf::int32 di10_;
  ::google::protobuf::int32 di11_;
  ::google::protobuf::int32 di12_;
  ::google::protobuf::int32 di13_;
  ::google::protobuf::int32 di14_;
  ::google::protobuf::int32 di15_;
  friend struct ::protobuf_singlechip_5fmsg_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class OutputDo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.OutputDo) */ {
 public:
  OutputDo();
  virtual ~OutputDo();

  OutputDo(const OutputDo& from);

  inline OutputDo& operator=(const OutputDo& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  OutputDo(OutputDo&& from) noexcept
    : OutputDo() {
    *this = ::std::move(from);
  }

  inline OutputDo& operator=(OutputDo&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const OutputDo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OutputDo* internal_default_instance() {
    return reinterpret_cast<const OutputDo*>(
               &_OutputDo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(OutputDo* other);
  friend void swap(OutputDo& a, OutputDo& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline OutputDo* New() const final {
    return CreateMaybeMessage<OutputDo>(NULL);
  }

  OutputDo* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<OutputDo>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const OutputDo& from);
  void MergeFrom(const OutputDo& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OutputDo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 Do0 = 1;
  bool has_do0() const;
  void clear_do0();
  static const int kDo0FieldNumber = 1;
  ::google::protobuf::int32 do0() const;
  void set_do0(::google::protobuf::int32 value);

  // optional int32 Do1 = 2;
  bool has_do1() const;
  void clear_do1();
  static const int kDo1FieldNumber = 2;
  ::google::protobuf::int32 do1() const;
  void set_do1(::google::protobuf::int32 value);

  // optional int32 Do2 = 3;
  bool has_do2() const;
  void clear_do2();
  static const int kDo2FieldNumber = 3;
  ::google::protobuf::int32 do2() const;
  void set_do2(::google::protobuf::int32 value);

  // optional int32 Do3 = 4;
  bool has_do3() const;
  void clear_do3();
  static const int kDo3FieldNumber = 4;
  ::google::protobuf::int32 do3() const;
  void set_do3(::google::protobuf::int32 value);

  // optional int32 Do4 = 5;
  bool has_do4() const;
  void clear_do4();
  static const int kDo4FieldNumber = 5;
  ::google::protobuf::int32 do4() const;
  void set_do4(::google::protobuf::int32 value);

  // optional int32 Do5 = 6;
  bool has_do5() const;
  void clear_do5();
  static const int kDo5FieldNumber = 6;
  ::google::protobuf::int32 do5() const;
  void set_do5(::google::protobuf::int32 value);

  // optional int32 Do6 = 7;
  bool has_do6() const;
  void clear_do6();
  static const int kDo6FieldNumber = 7;
  ::google::protobuf::int32 do6() const;
  void set_do6(::google::protobuf::int32 value);

  // optional int32 Do7 = 8;
  bool has_do7() const;
  void clear_do7();
  static const int kDo7FieldNumber = 8;
  ::google::protobuf::int32 do7() const;
  void set_do7(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:message.OutputDo)
 private:
  void set_has_do0();
  void clear_has_do0();
  void set_has_do1();
  void clear_has_do1();
  void set_has_do2();
  void clear_has_do2();
  void set_has_do3();
  void clear_has_do3();
  void set_has_do4();
  void clear_has_do4();
  void set_has_do5();
  void clear_has_do5();
  void set_has_do6();
  void clear_has_do6();
  void set_has_do7();
  void clear_has_do7();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 do0_;
  ::google::protobuf::int32 do1_;
  ::google::protobuf::int32 do2_;
  ::google::protobuf::int32 do3_;
  ::google::protobuf::int32 do4_;
  ::google::protobuf::int32 do5_;
  ::google::protobuf::int32 do6_;
  ::google::protobuf::int32 do7_;
  friend struct ::protobuf_singlechip_5fmsg_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class terminal_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.terminal_msg) */ {
 public:
  terminal_msg();
  virtual ~terminal_msg();

  terminal_msg(const terminal_msg& from);

  inline terminal_msg& operator=(const terminal_msg& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  terminal_msg(terminal_msg&& from) noexcept
    : terminal_msg() {
    *this = ::std::move(from);
  }

  inline terminal_msg& operator=(terminal_msg&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const terminal_msg& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const terminal_msg* internal_default_instance() {
    return reinterpret_cast<const terminal_msg*>(
               &_terminal_msg_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(terminal_msg* other);
  friend void swap(terminal_msg& a, terminal_msg& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline terminal_msg* New() const final {
    return CreateMaybeMessage<terminal_msg>(NULL);
  }

  terminal_msg* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<terminal_msg>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const terminal_msg& from);
  void MergeFrom(const terminal_msg& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(terminal_msg* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .message.OutputDo OutPutDo = 4;
  bool has_outputdo() const;
  void clear_outputdo();
  static const int kOutPutDoFieldNumber = 4;
  private:
  const ::message::OutputDo& _internal_outputdo() const;
  public:
  const ::message::OutputDo& outputdo() const;
  ::message::OutputDo* release_outputdo();
  ::message::OutputDo* mutable_outputdo();
  void set_allocated_outputdo(::message::OutputDo* outputdo);

  // optional int32 TerminalID = 1;
  bool has_terminalid() const;
  void clear_terminalid();
  static const int kTerminalIDFieldNumber = 1;
  ::google::protobuf::int32 terminalid() const;
  void set_terminalid(::google::protobuf::int32 value);

  // optional int32 DispatchDirection = 2;
  bool has_dispatchdirection() const;
  void clear_dispatchdirection();
  static const int kDispatchDirectionFieldNumber = 2;
  ::google::protobuf::int32 dispatchdirection() const;
  void set_dispatchdirection(::google::protobuf::int32 value);

  // optional int32 ProcessControl = 3;
  bool has_processcontrol() const;
  void clear_processcontrol();
  static const int kProcessControlFieldNumber = 3;
  ::google::protobuf::int32 processcontrol() const;
  void set_processcontrol(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:message.terminal_msg)
 private:
  void set_has_terminalid();
  void clear_has_terminalid();
  void set_has_dispatchdirection();
  void clear_has_dispatchdirection();
  void set_has_processcontrol();
  void clear_has_processcontrol();
  void set_has_outputdo();
  void clear_has_outputdo();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::message::OutputDo* outputdo_;
  ::google::protobuf::int32 terminalid_;
  ::google::protobuf::int32 dispatchdirection_;
  ::google::protobuf::int32 processcontrol_;
  friend struct ::protobuf_singlechip_5fmsg_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Singlechip_data : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.Singlechip_data) */ {
 public:
  Singlechip_data();
  virtual ~Singlechip_data();

  Singlechip_data(const Singlechip_data& from);

  inline Singlechip_data& operator=(const Singlechip_data& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Singlechip_data(Singlechip_data&& from) noexcept
    : Singlechip_data() {
    *this = ::std::move(from);
  }

  inline Singlechip_data& operator=(Singlechip_data&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Singlechip_data& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Singlechip_data* internal_default_instance() {
    return reinterpret_cast<const Singlechip_data*>(
               &_Singlechip_data_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(Singlechip_data* other);
  friend void swap(Singlechip_data& a, Singlechip_data& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Singlechip_data* New() const final {
    return CreateMaybeMessage<Singlechip_data>(NULL);
  }

  Singlechip_data* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Singlechip_data>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Singlechip_data& from);
  void MergeFrom(const Singlechip_data& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Singlechip_data* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .message.InputDi InPutDi = 4;
  bool has_inputdi() const;
  void clear_inputdi();
  static const int kInPutDiFieldNumber = 4;
  private:
  const ::message::InputDi& _internal_inputdi() const;
  public:
  const ::message::InputDi& inputdi() const;
  ::message::InputDi* release_inputdi();
  ::message::InputDi* mutable_inputdi();
  void set_allocated_inputdi(::message::InputDi* inputdi);

  // optional int32 TerminalID = 1;
  bool has_terminalid() const;
  void clear_terminalid();
  static const int kTerminalIDFieldNumber = 1;
  ::google::protobuf::int32 terminalid() const;
  void set_terminalid(::google::protobuf::int32 value);

  // optional int32 DispatchDirection = 2;
  bool has_dispatchdirection() const;
  void clear_dispatchdirection();
  static const int kDispatchDirectionFieldNumber = 2;
  ::google::protobuf::int32 dispatchdirection() const;
  void set_dispatchdirection(::google::protobuf::int32 value);

  // optional .message.Process_status ProcessStatus = 3;
  bool has_processstatus() const;
  void clear_processstatus();
  static const int kProcessStatusFieldNumber = 3;
  ::message::Process_status processstatus() const;
  void set_processstatus(::message::Process_status value);

  // optional int32 ResetFlag = 5;
  bool has_resetflag() const;
  void clear_resetflag();
  static const int kResetFlagFieldNumber = 5;
  ::google::protobuf::int32 resetflag() const;
  void set_resetflag(::google::protobuf::int32 value);

  // optional .message.Process_control ProcessControl = 6;
  bool has_processcontrol() const;
  void clear_processcontrol();
  static const int kProcessControlFieldNumber = 6;
  ::message::Process_control processcontrol() const;
  void set_processcontrol(::message::Process_control value);

  // optional int32 InsideExistenceFlag = 7;
  bool has_insideexistenceflag() const;
  void clear_insideexistenceflag();
  static const int kInsideExistenceFlagFieldNumber = 7;
  ::google::protobuf::int32 insideexistenceflag() const;
  void set_insideexistenceflag(::google::protobuf::int32 value);

  // optional .message.Over_border_status OverBorderStatus = 8;
  bool has_overborderstatus() const;
  void clear_overborderstatus();
  static const int kOverBorderStatusFieldNumber = 8;
  ::message::Over_border_status overborderstatus() const;
  void set_overborderstatus(::message::Over_border_status value);

  // optional .message.Car_height_status CarHeightStatusCurrent = 9;
  bool has_carheightstatuscurrent() const;
  void clear_carheightstatuscurrent();
  static const int kCarHeightStatusCurrentFieldNumber = 9;
  ::message::Car_height_status carheightstatuscurrent() const;
  void set_carheightstatuscurrent(::message::Car_height_status value);

  // optional .message.Car_height_status CarHeightStatusPassing = 10;
  bool has_carheightstatuspassing() const;
  void clear_carheightstatuspassing();
  static const int kCarHeightStatusPassingFieldNumber = 10;
  ::message::Car_height_status carheightstatuspassing() const;
  void set_carheightstatuspassing(::message::Car_height_status value);

  // optional int32 StopFlag = 11;
  bool has_stopflag() const;
  void clear_stopflag();
  static const int kStopFlagFieldNumber = 11;
  ::google::protobuf::int32 stopflag() const;
  void set_stopflag(::google::protobuf::int32 value);

  // optional .message.Outside_door_status OutsideDoorStatus = 12;
  bool has_outsidedoorstatus() const;
  void clear_outsidedoorstatus();
  static const int kOutsideDoorStatusFieldNumber = 12;
  ::message::Outside_door_status outsidedoorstatus() const;
  void set_outsidedoorstatus(::message::Outside_door_status value);

  // optional .message.Outside_door_control OutsideDoorControl = 13;
  bool has_outsidedoorcontrol() const;
  void clear_outsidedoorcontrol();
  static const int kOutsideDoorControlFieldNumber = 13;
  ::message::Outside_door_control outsidedoorcontrol() const;
  void set_outsidedoorcontrol(::message::Outside_door_control value);

  // optional int32 DispatchFinishFlag = 14;
  bool has_dispatchfinishflag() const;
  void clear_dispatchfinishflag();
  static const int kDispatchFinishFlagFieldNumber = 14;
  ::google::protobuf::int32 dispatchfinishflag() const;
  void set_dispatchfinishflag(::google::protobuf::int32 value);

  // optional int32 OutsideExistenceFlag = 15;
  bool has_outsideexistenceflag() const;
  void clear_outsideexistenceflag();
  static const int kOutsideExistenceFlagFieldNumber = 15;
  ::google::protobuf::int32 outsideexistenceflag() const;
  void set_outsideexistenceflag(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:message.Singlechip_data)
 private:
  void set_has_terminalid();
  void clear_has_terminalid();
  void set_has_dispatchdirection();
  void clear_has_dispatchdirection();
  void set_has_processstatus();
  void clear_has_processstatus();
  void set_has_inputdi();
  void clear_has_inputdi();
  void set_has_resetflag();
  void clear_has_resetflag();
  void set_has_processcontrol();
  void clear_has_processcontrol();
  void set_has_insideexistenceflag();
  void clear_has_insideexistenceflag();
  void set_has_overborderstatus();
  void clear_has_overborderstatus();
  void set_has_carheightstatuscurrent();
  void clear_has_carheightstatuscurrent();
  void set_has_carheightstatuspassing();
  void clear_has_carheightstatuspassing();
  void set_has_stopflag();
  void clear_has_stopflag();
  void set_has_outsidedoorstatus();
  void clear_has_outsidedoorstatus();
  void set_has_outsidedoorcontrol();
  void clear_has_outsidedoorcontrol();
  void set_has_dispatchfinishflag();
  void clear_has_dispatchfinishflag();
  void set_has_outsideexistenceflag();
  void clear_has_outsideexistenceflag();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::message::InputDi* inputdi_;
  ::google::protobuf::int32 terminalid_;
  ::google::protobuf::int32 dispatchdirection_;
  int processstatus_;
  ::google::protobuf::int32 resetflag_;
  int processcontrol_;
  ::google::protobuf::int32 insideexistenceflag_;
  int overborderstatus_;
  int carheightstatuscurrent_;
  int carheightstatuspassing_;
  ::google::protobuf::int32 stopflag_;
  int outsidedoorstatus_;
  int outsidedoorcontrol_;
  ::google::protobuf::int32 dispatchfinishflag_;
  ::google::protobuf::int32 outsideexistenceflag_;
  friend struct ::protobuf_singlechip_5fmsg_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Terminal_status_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.Terminal_status_msg) */ {
 public:
  Terminal_status_msg();
  virtual ~Terminal_status_msg();

  Terminal_status_msg(const Terminal_status_msg& from);

  inline Terminal_status_msg& operator=(const Terminal_status_msg& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Terminal_status_msg(Terminal_status_msg&& from) noexcept
    : Terminal_status_msg() {
    *this = ::std::move(from);
  }

  inline Terminal_status_msg& operator=(Terminal_status_msg&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Terminal_status_msg& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Terminal_status_msg* internal_default_instance() {
    return reinterpret_cast<const Terminal_status_msg*>(
               &_Terminal_status_msg_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(Terminal_status_msg* other);
  friend void swap(Terminal_status_msg& a, Terminal_status_msg& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Terminal_status_msg* New() const final {
    return CreateMaybeMessage<Terminal_status_msg>(NULL);
  }

  Terminal_status_msg* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Terminal_status_msg>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Terminal_status_msg& from);
  void MergeFrom(const Terminal_status_msg& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Terminal_status_msg* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required .message.Base_info base_info = 1;
  bool has_base_info() const;
  void clear_base_info();
  static const int kBaseInfoFieldNumber = 1;
  private:
  const ::message::Base_info& _internal_base_info() const;
  public:
  const ::message::Base_info& base_info() const;
  ::message::Base_info* release_base_info();
  ::message::Base_info* mutable_base_info();
  void set_allocated_base_info(::message::Base_info* base_info);

  // optional .message.Id_struct id_struct = 2;
  bool has_id_struct() const;
  void clear_id_struct();
  static const int kIdStructFieldNumber = 2;
  private:
  const ::message::Id_struct& _internal_id_struct() const;
  public:
  const ::message::Id_struct& id_struct() const;
  ::message::Id_struct* release_id_struct();
  ::message::Id_struct* mutable_id_struct();
  void set_allocated_id_struct(::message::Id_struct* id_struct);

  // optional .message.Singlechip_data singlechipData = 3;
  bool has_singlechipdata() const;
  void clear_singlechipdata();
  static const int kSinglechipDataFieldNumber = 3;
  private:
  const ::message::Singlechip_data& _internal_singlechipdata() const;
  public:
  const ::message::Singlechip_data& singlechipdata() const;
  ::message::Singlechip_data* release_singlechipdata();
  ::message::Singlechip_data* mutable_singlechipdata();
  void set_allocated_singlechipdata(::message::Singlechip_data* singlechipdata);

  // optional bool singlechip_validity = 4;
  bool has_singlechip_validity() const;
  void clear_singlechip_validity();
  static const int kSinglechipValidityFieldNumber = 4;
  bool singlechip_validity() const;
  void set_singlechip_validity(bool value);

  // @@protoc_insertion_point(class_scope:message.Terminal_status_msg)
 private:
  void set_has_base_info();
  void clear_has_base_info();
  void set_has_id_struct();
  void clear_has_id_struct();
  void set_has_singlechipdata();
  void clear_has_singlechipdata();
  void set_has_singlechip_validity();
  void clear_has_singlechip_validity();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::message::Base_info* base_info_;
  ::message::Id_struct* id_struct_;
  ::message::Singlechip_data* singlechipdata_;
  bool singlechip_validity_;
  friend struct ::protobuf_singlechip_5fmsg_2eproto::TableStruct;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// InputDi

// optional int32 Di0 = 1;
inline bool InputDi::has_di0() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void InputDi::set_has_di0() {
  _has_bits_[0] |= 0x00000001u;
}
inline void InputDi::clear_has_di0() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void InputDi::clear_di0() {
  di0_ = 0;
  clear_has_di0();
}
inline ::google::protobuf::int32 InputDi::di0() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di0)
  return di0_;
}
inline void InputDi::set_di0(::google::protobuf::int32 value) {
  set_has_di0();
  di0_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di0)
}

// optional int32 Di1 = 2;
inline bool InputDi::has_di1() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void InputDi::set_has_di1() {
  _has_bits_[0] |= 0x00000002u;
}
inline void InputDi::clear_has_di1() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void InputDi::clear_di1() {
  di1_ = 0;
  clear_has_di1();
}
inline ::google::protobuf::int32 InputDi::di1() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di1)
  return di1_;
}
inline void InputDi::set_di1(::google::protobuf::int32 value) {
  set_has_di1();
  di1_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di1)
}

// optional int32 Di2 = 3;
inline bool InputDi::has_di2() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void InputDi::set_has_di2() {
  _has_bits_[0] |= 0x00000004u;
}
inline void InputDi::clear_has_di2() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void InputDi::clear_di2() {
  di2_ = 0;
  clear_has_di2();
}
inline ::google::protobuf::int32 InputDi::di2() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di2)
  return di2_;
}
inline void InputDi::set_di2(::google::protobuf::int32 value) {
  set_has_di2();
  di2_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di2)
}

// optional int32 Di3 = 4;
inline bool InputDi::has_di3() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void InputDi::set_has_di3() {
  _has_bits_[0] |= 0x00000008u;
}
inline void InputDi::clear_has_di3() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void InputDi::clear_di3() {
  di3_ = 0;
  clear_has_di3();
}
inline ::google::protobuf::int32 InputDi::di3() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di3)
  return di3_;
}
inline void InputDi::set_di3(::google::protobuf::int32 value) {
  set_has_di3();
  di3_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di3)
}

// optional int32 Di4 = 5;
inline bool InputDi::has_di4() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void InputDi::set_has_di4() {
  _has_bits_[0] |= 0x00000010u;
}
inline void InputDi::clear_has_di4() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void InputDi::clear_di4() {
  di4_ = 0;
  clear_has_di4();
}
inline ::google::protobuf::int32 InputDi::di4() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di4)
  return di4_;
}
inline void InputDi::set_di4(::google::protobuf::int32 value) {
  set_has_di4();
  di4_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di4)
}

// optional int32 Di5 = 6;
inline bool InputDi::has_di5() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void InputDi::set_has_di5() {
  _has_bits_[0] |= 0x00000020u;
}
inline void InputDi::clear_has_di5() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void InputDi::clear_di5() {
  di5_ = 0;
  clear_has_di5();
}
inline ::google::protobuf::int32 InputDi::di5() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di5)
  return di5_;
}
inline void InputDi::set_di5(::google::protobuf::int32 value) {
  set_has_di5();
  di5_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di5)
}

// optional int32 Di6 = 7;
inline bool InputDi::has_di6() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void InputDi::set_has_di6() {
  _has_bits_[0] |= 0x00000040u;
}
inline void InputDi::clear_has_di6() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void InputDi::clear_di6() {
  di6_ = 0;
  clear_has_di6();
}
inline ::google::protobuf::int32 InputDi::di6() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di6)
  return di6_;
}
inline void InputDi::set_di6(::google::protobuf::int32 value) {
  set_has_di6();
  di6_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di6)
}

// optional int32 Di7 = 8;
inline bool InputDi::has_di7() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void InputDi::set_has_di7() {
  _has_bits_[0] |= 0x00000080u;
}
inline void InputDi::clear_has_di7() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void InputDi::clear_di7() {
  di7_ = 0;
  clear_has_di7();
}
inline ::google::protobuf::int32 InputDi::di7() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di7)
  return di7_;
}
inline void InputDi::set_di7(::google::protobuf::int32 value) {
  set_has_di7();
  di7_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di7)
}

// optional int32 Di8 = 9;
inline bool InputDi::has_di8() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void InputDi::set_has_di8() {
  _has_bits_[0] |= 0x00000100u;
}
inline void InputDi::clear_has_di8() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void InputDi::clear_di8() {
  di8_ = 0;
  clear_has_di8();
}
inline ::google::protobuf::int32 InputDi::di8() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di8)
  return di8_;
}
inline void InputDi::set_di8(::google::protobuf::int32 value) {
  set_has_di8();
  di8_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di8)
}

// optional int32 Di9 = 10;
inline bool InputDi::has_di9() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void InputDi::set_has_di9() {
  _has_bits_[0] |= 0x00000200u;
}
inline void InputDi::clear_has_di9() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void InputDi::clear_di9() {
  di9_ = 0;
  clear_has_di9();
}
inline ::google::protobuf::int32 InputDi::di9() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di9)
  return di9_;
}
inline void InputDi::set_di9(::google::protobuf::int32 value) {
  set_has_di9();
  di9_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di9)
}

// optional int32 Di10 = 11;
inline bool InputDi::has_di10() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void InputDi::set_has_di10() {
  _has_bits_[0] |= 0x00000400u;
}
inline void InputDi::clear_has_di10() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void InputDi::clear_di10() {
  di10_ = 0;
  clear_has_di10();
}
inline ::google::protobuf::int32 InputDi::di10() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di10)
  return di10_;
}
inline void InputDi::set_di10(::google::protobuf::int32 value) {
  set_has_di10();
  di10_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di10)
}

// optional int32 Di11 = 12;
inline bool InputDi::has_di11() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void InputDi::set_has_di11() {
  _has_bits_[0] |= 0x00000800u;
}
inline void InputDi::clear_has_di11() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void InputDi::clear_di11() {
  di11_ = 0;
  clear_has_di11();
}
inline ::google::protobuf::int32 InputDi::di11() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di11)
  return di11_;
}
inline void InputDi::set_di11(::google::protobuf::int32 value) {
  set_has_di11();
  di11_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di11)
}

// optional int32 Di12 = 13;
inline bool InputDi::has_di12() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void InputDi::set_has_di12() {
  _has_bits_[0] |= 0x00001000u;
}
inline void InputDi::clear_has_di12() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void InputDi::clear_di12() {
  di12_ = 0;
  clear_has_di12();
}
inline ::google::protobuf::int32 InputDi::di12() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di12)
  return di12_;
}
inline void InputDi::set_di12(::google::protobuf::int32 value) {
  set_has_di12();
  di12_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di12)
}

// optional int32 Di13 = 14;
inline bool InputDi::has_di13() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void InputDi::set_has_di13() {
  _has_bits_[0] |= 0x00002000u;
}
inline void InputDi::clear_has_di13() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void InputDi::clear_di13() {
  di13_ = 0;
  clear_has_di13();
}
inline ::google::protobuf::int32 InputDi::di13() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di13)
  return di13_;
}
inline void InputDi::set_di13(::google::protobuf::int32 value) {
  set_has_di13();
  di13_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di13)
}

// optional int32 Di14 = 15;
inline bool InputDi::has_di14() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void InputDi::set_has_di14() {
  _has_bits_[0] |= 0x00004000u;
}
inline void InputDi::clear_has_di14() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void InputDi::clear_di14() {
  di14_ = 0;
  clear_has_di14();
}
inline ::google::protobuf::int32 InputDi::di14() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di14)
  return di14_;
}
inline void InputDi::set_di14(::google::protobuf::int32 value) {
  set_has_di14();
  di14_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di14)
}

// optional int32 Di15 = 16;
inline bool InputDi::has_di15() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void InputDi::set_has_di15() {
  _has_bits_[0] |= 0x00008000u;
}
inline void InputDi::clear_has_di15() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void InputDi::clear_di15() {
  di15_ = 0;
  clear_has_di15();
}
inline ::google::protobuf::int32 InputDi::di15() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di15)
  return di15_;
}
inline void InputDi::set_di15(::google::protobuf::int32 value) {
  set_has_di15();
  di15_ = value;
  // @@protoc_insertion_point(field_set:message.InputDi.Di15)
}

// -------------------------------------------------------------------

// OutputDo

// optional int32 Do0 = 1;
inline bool OutputDo::has_do0() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OutputDo::set_has_do0() {
  _has_bits_[0] |= 0x00000001u;
}
inline void OutputDo::clear_has_do0() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void OutputDo::clear_do0() {
  do0_ = 0;
  clear_has_do0();
}
inline ::google::protobuf::int32 OutputDo::do0() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do0)
  return do0_;
}
inline void OutputDo::set_do0(::google::protobuf::int32 value) {
  set_has_do0();
  do0_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do0)
}

// optional int32 Do1 = 2;
inline bool OutputDo::has_do1() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void OutputDo::set_has_do1() {
  _has_bits_[0] |= 0x00000002u;
}
inline void OutputDo::clear_has_do1() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void OutputDo::clear_do1() {
  do1_ = 0;
  clear_has_do1();
}
inline ::google::protobuf::int32 OutputDo::do1() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do1)
  return do1_;
}
inline void OutputDo::set_do1(::google::protobuf::int32 value) {
  set_has_do1();
  do1_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do1)
}

// optional int32 Do2 = 3;
inline bool OutputDo::has_do2() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void OutputDo::set_has_do2() {
  _has_bits_[0] |= 0x00000004u;
}
inline void OutputDo::clear_has_do2() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void OutputDo::clear_do2() {
  do2_ = 0;
  clear_has_do2();
}
inline ::google::protobuf::int32 OutputDo::do2() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do2)
  return do2_;
}
inline void OutputDo::set_do2(::google::protobuf::int32 value) {
  set_has_do2();
  do2_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do2)
}

// optional int32 Do3 = 4;
inline bool OutputDo::has_do3() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void OutputDo::set_has_do3() {
  _has_bits_[0] |= 0x00000008u;
}
inline void OutputDo::clear_has_do3() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void OutputDo::clear_do3() {
  do3_ = 0;
  clear_has_do3();
}
inline ::google::protobuf::int32 OutputDo::do3() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do3)
  return do3_;
}
inline void OutputDo::set_do3(::google::protobuf::int32 value) {
  set_has_do3();
  do3_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do3)
}

// optional int32 Do4 = 5;
inline bool OutputDo::has_do4() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void OutputDo::set_has_do4() {
  _has_bits_[0] |= 0x00000010u;
}
inline void OutputDo::clear_has_do4() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void OutputDo::clear_do4() {
  do4_ = 0;
  clear_has_do4();
}
inline ::google::protobuf::int32 OutputDo::do4() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do4)
  return do4_;
}
inline void OutputDo::set_do4(::google::protobuf::int32 value) {
  set_has_do4();
  do4_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do4)
}

// optional int32 Do5 = 6;
inline bool OutputDo::has_do5() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void OutputDo::set_has_do5() {
  _has_bits_[0] |= 0x00000020u;
}
inline void OutputDo::clear_has_do5() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void OutputDo::clear_do5() {
  do5_ = 0;
  clear_has_do5();
}
inline ::google::protobuf::int32 OutputDo::do5() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do5)
  return do5_;
}
inline void OutputDo::set_do5(::google::protobuf::int32 value) {
  set_has_do5();
  do5_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do5)
}

// optional int32 Do6 = 7;
inline bool OutputDo::has_do6() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void OutputDo::set_has_do6() {
  _has_bits_[0] |= 0x00000040u;
}
inline void OutputDo::clear_has_do6() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void OutputDo::clear_do6() {
  do6_ = 0;
  clear_has_do6();
}
inline ::google::protobuf::int32 OutputDo::do6() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do6)
  return do6_;
}
inline void OutputDo::set_do6(::google::protobuf::int32 value) {
  set_has_do6();
  do6_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do6)
}

// optional int32 Do7 = 8;
inline bool OutputDo::has_do7() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void OutputDo::set_has_do7() {
  _has_bits_[0] |= 0x00000080u;
}
inline void OutputDo::clear_has_do7() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void OutputDo::clear_do7() {
  do7_ = 0;
  clear_has_do7();
}
inline ::google::protobuf::int32 OutputDo::do7() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do7)
  return do7_;
}
inline void OutputDo::set_do7(::google::protobuf::int32 value) {
  set_has_do7();
  do7_ = value;
  // @@protoc_insertion_point(field_set:message.OutputDo.Do7)
}

// -------------------------------------------------------------------

// terminal_msg

// optional int32 TerminalID = 1;
inline bool terminal_msg::has_terminalid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void terminal_msg::set_has_terminalid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void terminal_msg::clear_has_terminalid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void terminal_msg::clear_terminalid() {
  terminalid_ = 0;
  clear_has_terminalid();
}
inline ::google::protobuf::int32 terminal_msg::terminalid() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.TerminalID)
  return terminalid_;
}
inline void terminal_msg::set_terminalid(::google::protobuf::int32 value) {
  set_has_terminalid();
  terminalid_ = value;
  // @@protoc_insertion_point(field_set:message.terminal_msg.TerminalID)
}

// optional int32 DispatchDirection = 2;
inline bool terminal_msg::has_dispatchdirection() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void terminal_msg::set_has_dispatchdirection() {
  _has_bits_[0] |= 0x00000004u;
}
inline void terminal_msg::clear_has_dispatchdirection() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void terminal_msg::clear_dispatchdirection() {
  dispatchdirection_ = 0;
  clear_has_dispatchdirection();
}
inline ::google::protobuf::int32 terminal_msg::dispatchdirection() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.DispatchDirection)
  return dispatchdirection_;
}
inline void terminal_msg::set_dispatchdirection(::google::protobuf::int32 value) {
  set_has_dispatchdirection();
  dispatchdirection_ = value;
  // @@protoc_insertion_point(field_set:message.terminal_msg.DispatchDirection)
}

// optional int32 ProcessControl = 3;
inline bool terminal_msg::has_processcontrol() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void terminal_msg::set_has_processcontrol() {
  _has_bits_[0] |= 0x00000008u;
}
inline void terminal_msg::clear_has_processcontrol() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void terminal_msg::clear_processcontrol() {
  processcontrol_ = 0;
  clear_has_processcontrol();
}
inline ::google::protobuf::int32 terminal_msg::processcontrol() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.ProcessControl)
  return processcontrol_;
}
inline void terminal_msg::set_processcontrol(::google::protobuf::int32 value) {
  set_has_processcontrol();
  processcontrol_ = value;
  // @@protoc_insertion_point(field_set:message.terminal_msg.ProcessControl)
}

// optional .message.OutputDo OutPutDo = 4;
inline bool terminal_msg::has_outputdo() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void terminal_msg::set_has_outputdo() {
  _has_bits_[0] |= 0x00000001u;
}
inline void terminal_msg::clear_has_outputdo() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void terminal_msg::clear_outputdo() {
  if (outputdo_ != NULL) outputdo_->Clear();
  clear_has_outputdo();
}
inline const ::message::OutputDo& terminal_msg::_internal_outputdo() const {
  return *outputdo_;
}
inline const ::message::OutputDo& terminal_msg::outputdo() const {
  const ::message::OutputDo* p = outputdo_;
  // @@protoc_insertion_point(field_get:message.terminal_msg.OutPutDo)
  return p != NULL ? *p : *reinterpret_cast<const ::message::OutputDo*>(
      &::message::_OutputDo_default_instance_);
}
inline ::message::OutputDo* terminal_msg::release_outputdo() {
  // @@protoc_insertion_point(field_release:message.terminal_msg.OutPutDo)
  clear_has_outputdo();
  ::message::OutputDo* temp = outputdo_;
  outputdo_ = NULL;
  return temp;
}
inline ::message::OutputDo* terminal_msg::mutable_outputdo() {
  set_has_outputdo();
  if (outputdo_ == NULL) {
    auto* p = CreateMaybeMessage<::message::OutputDo>(GetArenaNoVirtual());
    outputdo_ = p;
  }
  // @@protoc_insertion_point(field_mutable:message.terminal_msg.OutPutDo)
  return outputdo_;
}
inline void terminal_msg::set_allocated_outputdo(::message::OutputDo* outputdo) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete outputdo_;
  }
  if (outputdo) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      outputdo = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, outputdo, submessage_arena);
    }
    set_has_outputdo();
  } else {
    clear_has_outputdo();
  }
  outputdo_ = outputdo;
  // @@protoc_insertion_point(field_set_allocated:message.terminal_msg.OutPutDo)
}

// -------------------------------------------------------------------

// Singlechip_data

// optional int32 TerminalID = 1;
inline bool Singlechip_data::has_terminalid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Singlechip_data::set_has_terminalid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Singlechip_data::clear_has_terminalid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Singlechip_data::clear_terminalid() {
  terminalid_ = 0;
  clear_has_terminalid();
}
inline ::google::protobuf::int32 Singlechip_data::terminalid() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.TerminalID)
  return terminalid_;
}
inline void Singlechip_data::set_terminalid(::google::protobuf::int32 value) {
  set_has_terminalid();
  terminalid_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.TerminalID)
}

// optional int32 DispatchDirection = 2;
inline bool Singlechip_data::has_dispatchdirection() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Singlechip_data::set_has_dispatchdirection() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Singlechip_data::clear_has_dispatchdirection() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Singlechip_data::clear_dispatchdirection() {
  dispatchdirection_ = 0;
  clear_has_dispatchdirection();
}
inline ::google::protobuf::int32 Singlechip_data::dispatchdirection() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.DispatchDirection)
  return dispatchdirection_;
}
inline void Singlechip_data::set_dispatchdirection(::google::protobuf::int32 value) {
  set_has_dispatchdirection();
  dispatchdirection_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.DispatchDirection)
}

// optional .message.Process_status ProcessStatus = 3;
inline bool Singlechip_data::has_processstatus() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Singlechip_data::set_has_processstatus() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Singlechip_data::clear_has_processstatus() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Singlechip_data::clear_processstatus() {
  processstatus_ = 0;
  clear_has_processstatus();
}
inline ::message::Process_status Singlechip_data::processstatus() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.ProcessStatus)
  return static_cast< ::message::Process_status >(processstatus_);
}
inline void Singlechip_data::set_processstatus(::message::Process_status value) {
  assert(::message::Process_status_IsValid(value));
  set_has_processstatus();
  processstatus_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.ProcessStatus)
}

// optional .message.InputDi InPutDi = 4;
inline bool Singlechip_data::has_inputdi() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Singlechip_data::set_has_inputdi() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Singlechip_data::clear_has_inputdi() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Singlechip_data::clear_inputdi() {
  if (inputdi_ != NULL) inputdi_->Clear();
  clear_has_inputdi();
}
inline const ::message::InputDi& Singlechip_data::_internal_inputdi() const {
  return *inputdi_;
}
inline const ::message::InputDi& Singlechip_data::inputdi() const {
  const ::message::InputDi* p = inputdi_;
  // @@protoc_insertion_point(field_get:message.Singlechip_data.InPutDi)
  return p != NULL ? *p : *reinterpret_cast<const ::message::InputDi*>(
      &::message::_InputDi_default_instance_);
}
inline ::message::InputDi* Singlechip_data::release_inputdi() {
  // @@protoc_insertion_point(field_release:message.Singlechip_data.InPutDi)
  clear_has_inputdi();
  ::message::InputDi* temp = inputdi_;
  inputdi_ = NULL;
  return temp;
}
inline ::message::InputDi* Singlechip_data::mutable_inputdi() {
  set_has_inputdi();
  if (inputdi_ == NULL) {
    auto* p = CreateMaybeMessage<::message::InputDi>(GetArenaNoVirtual());
    inputdi_ = p;
  }
  // @@protoc_insertion_point(field_mutable:message.Singlechip_data.InPutDi)
  return inputdi_;
}
inline void Singlechip_data::set_allocated_inputdi(::message::InputDi* inputdi) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete inputdi_;
  }
  if (inputdi) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      inputdi = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, inputdi, submessage_arena);
    }
    set_has_inputdi();
  } else {
    clear_has_inputdi();
  }
  inputdi_ = inputdi;
  // @@protoc_insertion_point(field_set_allocated:message.Singlechip_data.InPutDi)
}

// optional int32 ResetFlag = 5;
inline bool Singlechip_data::has_resetflag() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Singlechip_data::set_has_resetflag() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Singlechip_data::clear_has_resetflag() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Singlechip_data::clear_resetflag() {
  resetflag_ = 0;
  clear_has_resetflag();
}
inline ::google::protobuf::int32 Singlechip_data::resetflag() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.ResetFlag)
  return resetflag_;
}
inline void Singlechip_data::set_resetflag(::google::protobuf::int32 value) {
  set_has_resetflag();
  resetflag_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.ResetFlag)
}

// optional .message.Process_control ProcessControl = 6;
inline bool Singlechip_data::has_processcontrol() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Singlechip_data::set_has_processcontrol() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Singlechip_data::clear_has_processcontrol() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Singlechip_data::clear_processcontrol() {
  processcontrol_ = 0;
  clear_has_processcontrol();
}
inline ::message::Process_control Singlechip_data::processcontrol() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.ProcessControl)
  return static_cast< ::message::Process_control >(processcontrol_);
}
inline void Singlechip_data::set_processcontrol(::message::Process_control value) {
  assert(::message::Process_control_IsValid(value));
  set_has_processcontrol();
  processcontrol_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.ProcessControl)
}

// optional int32 InsideExistenceFlag = 7;
inline bool Singlechip_data::has_insideexistenceflag() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Singlechip_data::set_has_insideexistenceflag() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Singlechip_data::clear_has_insideexistenceflag() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Singlechip_data::clear_insideexistenceflag() {
  insideexistenceflag_ = 0;
  clear_has_insideexistenceflag();
}
inline ::google::protobuf::int32 Singlechip_data::insideexistenceflag() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.InsideExistenceFlag)
  return insideexistenceflag_;
}
inline void Singlechip_data::set_insideexistenceflag(::google::protobuf::int32 value) {
  set_has_insideexistenceflag();
  insideexistenceflag_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.InsideExistenceFlag)
}

// optional .message.Over_border_status OverBorderStatus = 8;
inline bool Singlechip_data::has_overborderstatus() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Singlechip_data::set_has_overborderstatus() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Singlechip_data::clear_has_overborderstatus() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void Singlechip_data::clear_overborderstatus() {
  overborderstatus_ = 0;
  clear_has_overborderstatus();
}
inline ::message::Over_border_status Singlechip_data::overborderstatus() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.OverBorderStatus)
  return static_cast< ::message::Over_border_status >(overborderstatus_);
}
inline void Singlechip_data::set_overborderstatus(::message::Over_border_status value) {
  assert(::message::Over_border_status_IsValid(value));
  set_has_overborderstatus();
  overborderstatus_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.OverBorderStatus)
}

// optional .message.Car_height_status CarHeightStatusCurrent = 9;
inline bool Singlechip_data::has_carheightstatuscurrent() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void Singlechip_data::set_has_carheightstatuscurrent() {
  _has_bits_[0] |= 0x00000100u;
}
inline void Singlechip_data::clear_has_carheightstatuscurrent() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void Singlechip_data::clear_carheightstatuscurrent() {
  carheightstatuscurrent_ = 0;
  clear_has_carheightstatuscurrent();
}
inline ::message::Car_height_status Singlechip_data::carheightstatuscurrent() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.CarHeightStatusCurrent)
  return static_cast< ::message::Car_height_status >(carheightstatuscurrent_);
}
inline void Singlechip_data::set_carheightstatuscurrent(::message::Car_height_status value) {
  assert(::message::Car_height_status_IsValid(value));
  set_has_carheightstatuscurrent();
  carheightstatuscurrent_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.CarHeightStatusCurrent)
}

// optional .message.Car_height_status CarHeightStatusPassing = 10;
inline bool Singlechip_data::has_carheightstatuspassing() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void Singlechip_data::set_has_carheightstatuspassing() {
  _has_bits_[0] |= 0x00000200u;
}
inline void Singlechip_data::clear_has_carheightstatuspassing() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void Singlechip_data::clear_carheightstatuspassing() {
  carheightstatuspassing_ = 0;
  clear_has_carheightstatuspassing();
}
inline ::message::Car_height_status Singlechip_data::carheightstatuspassing() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.CarHeightStatusPassing)
  return static_cast< ::message::Car_height_status >(carheightstatuspassing_);
}
inline void Singlechip_data::set_carheightstatuspassing(::message::Car_height_status value) {
  assert(::message::Car_height_status_IsValid(value));
  set_has_carheightstatuspassing();
  carheightstatuspassing_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.CarHeightStatusPassing)
}

// optional int32 StopFlag = 11;
inline bool Singlechip_data::has_stopflag() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void Singlechip_data::set_has_stopflag() {
  _has_bits_[0] |= 0x00000400u;
}
inline void Singlechip_data::clear_has_stopflag() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void Singlechip_data::clear_stopflag() {
  stopflag_ = 0;
  clear_has_stopflag();
}
inline ::google::protobuf::int32 Singlechip_data::stopflag() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.StopFlag)
  return stopflag_;
}
inline void Singlechip_data::set_stopflag(::google::protobuf::int32 value) {
  set_has_stopflag();
  stopflag_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.StopFlag)
}

// optional .message.Outside_door_status OutsideDoorStatus = 12;
inline bool Singlechip_data::has_outsidedoorstatus() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void Singlechip_data::set_has_outsidedoorstatus() {
  _has_bits_[0] |= 0x00000800u;
}
inline void Singlechip_data::clear_has_outsidedoorstatus() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void Singlechip_data::clear_outsidedoorstatus() {
  outsidedoorstatus_ = 0;
  clear_has_outsidedoorstatus();
}
inline ::message::Outside_door_status Singlechip_data::outsidedoorstatus() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.OutsideDoorStatus)
  return static_cast< ::message::Outside_door_status >(outsidedoorstatus_);
}
inline void Singlechip_data::set_outsidedoorstatus(::message::Outside_door_status value) {
  assert(::message::Outside_door_status_IsValid(value));
  set_has_outsidedoorstatus();
  outsidedoorstatus_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.OutsideDoorStatus)
}

// optional .message.Outside_door_control OutsideDoorControl = 13;
inline bool Singlechip_data::has_outsidedoorcontrol() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void Singlechip_data::set_has_outsidedoorcontrol() {
  _has_bits_[0] |= 0x00001000u;
}
inline void Singlechip_data::clear_has_outsidedoorcontrol() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void Singlechip_data::clear_outsidedoorcontrol() {
  outsidedoorcontrol_ = 0;
  clear_has_outsidedoorcontrol();
}
inline ::message::Outside_door_control Singlechip_data::outsidedoorcontrol() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.OutsideDoorControl)
  return static_cast< ::message::Outside_door_control >(outsidedoorcontrol_);
}
inline void Singlechip_data::set_outsidedoorcontrol(::message::Outside_door_control value) {
  assert(::message::Outside_door_control_IsValid(value));
  set_has_outsidedoorcontrol();
  outsidedoorcontrol_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.OutsideDoorControl)
}

// optional int32 DispatchFinishFlag = 14;
inline bool Singlechip_data::has_dispatchfinishflag() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void Singlechip_data::set_has_dispatchfinishflag() {
  _has_bits_[0] |= 0x00002000u;
}
inline void Singlechip_data::clear_has_dispatchfinishflag() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void Singlechip_data::clear_dispatchfinishflag() {
  dispatchfinishflag_ = 0;
  clear_has_dispatchfinishflag();
}
inline ::google::protobuf::int32 Singlechip_data::dispatchfinishflag() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.DispatchFinishFlag)
  return dispatchfinishflag_;
}
inline void Singlechip_data::set_dispatchfinishflag(::google::protobuf::int32 value) {
  set_has_dispatchfinishflag();
  dispatchfinishflag_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.DispatchFinishFlag)
}

// optional int32 OutsideExistenceFlag = 15;
inline bool Singlechip_data::has_outsideexistenceflag() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void Singlechip_data::set_has_outsideexistenceflag() {
  _has_bits_[0] |= 0x00004000u;
}
inline void Singlechip_data::clear_has_outsideexistenceflag() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void Singlechip_data::clear_outsideexistenceflag() {
  outsideexistenceflag_ = 0;
  clear_has_outsideexistenceflag();
}
inline ::google::protobuf::int32 Singlechip_data::outsideexistenceflag() const {
  // @@protoc_insertion_point(field_get:message.Singlechip_data.OutsideExistenceFlag)
  return outsideexistenceflag_;
}
inline void Singlechip_data::set_outsideexistenceflag(::google::protobuf::int32 value) {
  set_has_outsideexistenceflag();
  outsideexistenceflag_ = value;
  // @@protoc_insertion_point(field_set:message.Singlechip_data.OutsideExistenceFlag)
}

// -------------------------------------------------------------------

// Terminal_status_msg

// required .message.Base_info base_info = 1;
inline bool Terminal_status_msg::has_base_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Terminal_status_msg::set_has_base_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Terminal_status_msg::clear_has_base_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::message::Base_info& Terminal_status_msg::_internal_base_info() const {
  return *base_info_;
}
inline const ::message::Base_info& Terminal_status_msg::base_info() const {
  const ::message::Base_info* p = base_info_;
  // @@protoc_insertion_point(field_get:message.Terminal_status_msg.base_info)
  return p != NULL ? *p : *reinterpret_cast<const ::message::Base_info*>(
      &::message::_Base_info_default_instance_);
}
inline ::message::Base_info* Terminal_status_msg::release_base_info() {
  // @@protoc_insertion_point(field_release:message.Terminal_status_msg.base_info)
  clear_has_base_info();
  ::message::Base_info* temp = base_info_;
  base_info_ = NULL;
  return temp;
}
inline ::message::Base_info* Terminal_status_msg::mutable_base_info() {
  set_has_base_info();
  if (base_info_ == NULL) {
    auto* p = CreateMaybeMessage<::message::Base_info>(GetArenaNoVirtual());
    base_info_ = p;
  }
  // @@protoc_insertion_point(field_mutable:message.Terminal_status_msg.base_info)
  return base_info_;
}
inline void Terminal_status_msg::set_allocated_base_info(::message::Base_info* base_info) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(base_info_);
  }
  if (base_info) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      base_info = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, base_info, submessage_arena);
    }
    set_has_base_info();
  } else {
    clear_has_base_info();
  }
  base_info_ = base_info;
  // @@protoc_insertion_point(field_set_allocated:message.Terminal_status_msg.base_info)
}

// optional .message.Id_struct id_struct = 2;
inline bool Terminal_status_msg::has_id_struct() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Terminal_status_msg::set_has_id_struct() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Terminal_status_msg::clear_has_id_struct() {
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::message::Id_struct& Terminal_status_msg::_internal_id_struct() const {
  return *id_struct_;
}
inline const ::message::Id_struct& Terminal_status_msg::id_struct() const {
  const ::message::Id_struct* p = id_struct_;
  // @@protoc_insertion_point(field_get:message.Terminal_status_msg.id_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::message::Id_struct*>(
      &::message::_Id_struct_default_instance_);
}
inline ::message::Id_struct* Terminal_status_msg::release_id_struct() {
  // @@protoc_insertion_point(field_release:message.Terminal_status_msg.id_struct)
  clear_has_id_struct();
  ::message::Id_struct* temp = id_struct_;
  id_struct_ = NULL;
  return temp;
}
inline ::message::Id_struct* Terminal_status_msg::mutable_id_struct() {
  set_has_id_struct();
  if (id_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArenaNoVirtual());
    id_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:message.Terminal_status_msg.id_struct)
  return id_struct_;
}
inline void Terminal_status_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(id_struct_);
  }
  if (id_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      id_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, id_struct, submessage_arena);
    }
    set_has_id_struct();
  } else {
    clear_has_id_struct();
  }
  id_struct_ = id_struct;
  // @@protoc_insertion_point(field_set_allocated:message.Terminal_status_msg.id_struct)
}

// optional .message.Singlechip_data singlechipData = 3;
inline bool Terminal_status_msg::has_singlechipdata() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Terminal_status_msg::set_has_singlechipdata() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Terminal_status_msg::clear_has_singlechipdata() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Terminal_status_msg::clear_singlechipdata() {
  if (singlechipdata_ != NULL) singlechipdata_->Clear();
  clear_has_singlechipdata();
}
inline const ::message::Singlechip_data& Terminal_status_msg::_internal_singlechipdata() const {
  return *singlechipdata_;
}
inline const ::message::Singlechip_data& Terminal_status_msg::singlechipdata() const {
  const ::message::Singlechip_data* p = singlechipdata_;
  // @@protoc_insertion_point(field_get:message.Terminal_status_msg.singlechipData)
  return p != NULL ? *p : *reinterpret_cast<const ::message::Singlechip_data*>(
      &::message::_Singlechip_data_default_instance_);
}
inline ::message::Singlechip_data* Terminal_status_msg::release_singlechipdata() {
  // @@protoc_insertion_point(field_release:message.Terminal_status_msg.singlechipData)
  clear_has_singlechipdata();
  ::message::Singlechip_data* temp = singlechipdata_;
  singlechipdata_ = NULL;
  return temp;
}
inline ::message::Singlechip_data* Terminal_status_msg::mutable_singlechipdata() {
  set_has_singlechipdata();
  if (singlechipdata_ == NULL) {
    auto* p = CreateMaybeMessage<::message::Singlechip_data>(GetArenaNoVirtual());
    singlechipdata_ = p;
  }
  // @@protoc_insertion_point(field_mutable:message.Terminal_status_msg.singlechipData)
  return singlechipdata_;
}
inline void Terminal_status_msg::set_allocated_singlechipdata(::message::Singlechip_data* singlechipdata) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete singlechipdata_;
  }
  if (singlechipdata) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      singlechipdata = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, singlechipdata, submessage_arena);
    }
    set_has_singlechipdata();
  } else {
    clear_has_singlechipdata();
  }
  singlechipdata_ = singlechipdata;
  // @@protoc_insertion_point(field_set_allocated:message.Terminal_status_msg.singlechipData)
}

// optional bool singlechip_validity = 4;
inline bool Terminal_status_msg::has_singlechip_validity() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Terminal_status_msg::set_has_singlechip_validity() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Terminal_status_msg::clear_has_singlechip_validity() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Terminal_status_msg::clear_singlechip_validity() {
  singlechip_validity_ = false;
  clear_has_singlechip_validity();
}
inline bool Terminal_status_msg::singlechip_validity() const {
  // @@protoc_insertion_point(field_get:message.Terminal_status_msg.singlechip_validity)
  return singlechip_validity_;
}
inline void Terminal_status_msg::set_singlechip_validity(bool value) {
  set_has_singlechip_validity();
  singlechip_validity_ = value;
  // @@protoc_insertion_point(field_set:message.Terminal_status_msg.singlechip_validity)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace message

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::message::Process_control> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::message::Process_control>() {
  return ::message::Process_control_descriptor();
}
template <> struct is_proto_enum< ::message::Over_border_status> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::message::Over_border_status>() {
  return ::message::Over_border_status_descriptor();
}
template <> struct is_proto_enum< ::message::Car_height_status> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::message::Car_height_status>() {
  return ::message::Car_height_status_descriptor();
}
template <> struct is_proto_enum< ::message::Outside_door_status> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::message::Outside_door_status>() {
  return ::message::Outside_door_status_descriptor();
}
template <> struct is_proto_enum< ::message::Outside_door_control> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::message::Outside_door_control>() {
  return ::message::Outside_door_control_descriptor();
}
template <> struct is_proto_enum< ::message::Process_status> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::message::Process_status>() {
  return ::message::Process_status_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_singlechip_5fmsg_2eproto
