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

#ifndef GOOGLE_PROTOBUF_INCLUDED_singlechip_5fmsg_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_singlechip_5fmsg_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 4000000
#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 4000000 < 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/port_undef.inc>
#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_lite.h>
#include <google/protobuf/generated_message_reflection.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)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_singlechip_5fmsg_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_singlechip_5fmsg_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[5]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_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_msg;
class terminal_msgDefaultTypeInternal;
extern terminal_msgDefaultTypeInternal _terminal_msg_default_instance_;
class terminal_status_msg;
class terminal_status_msgDefaultTypeInternal;
extern terminal_status_msgDefaultTypeInternal _terminal_status_msg_default_instance_;
}  // namespace message
PROTOBUF_NAMESPACE_OPEN
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_msg* Arena::CreateMaybeMessage<::message::terminal_msg>(Arena*);
template<> ::message::terminal_status_msg* Arena::CreateMaybeMessage<::message::terminal_status_msg>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace message {

enum Process_control : int {
  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);
constexpr Process_control Process_control_MIN = PROCESS_CONTROL_UNKNOWN;
constexpr Process_control Process_control_MAX = PROCESS_CONTROL_OUTLET_9;
constexpr int Process_control_ARRAYSIZE = Process_control_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Process_control_descriptor();
template<typename T>
inline const std::string& Process_control_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Process_control>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Process_control_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Process_control_descriptor(), enum_t_value);
}
inline bool Process_control_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Process_control* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Process_control>(
    Process_control_descriptor(), name, value);
}
enum Over_border_status : int {
  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);
constexpr Over_border_status Over_border_status_MIN = OVER_BORDER_STATUS_UNKNOWN;
constexpr Over_border_status Over_border_status_MAX = OVER_BORDER_STATUS_RIGHT;
constexpr int Over_border_status_ARRAYSIZE = Over_border_status_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Over_border_status_descriptor();
template<typename T>
inline const std::string& Over_border_status_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Over_border_status>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Over_border_status_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Over_border_status_descriptor(), enum_t_value);
}
inline bool Over_border_status_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Over_border_status* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Over_border_status>(
    Over_border_status_descriptor(), name, value);
}
enum Car_height_status : int {
  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);
constexpr Car_height_status Car_height_status_MIN = CAR_HEIGHT_STATUS_UNKNOWN;
constexpr Car_height_status Car_height_status_MAX = CAR_HEIGHT_STATUS_FAULT;
constexpr int Car_height_status_ARRAYSIZE = Car_height_status_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Car_height_status_descriptor();
template<typename T>
inline const std::string& Car_height_status_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Car_height_status>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Car_height_status_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Car_height_status_descriptor(), enum_t_value);
}
inline bool Car_height_status_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Car_height_status* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Car_height_status>(
    Car_height_status_descriptor(), name, value);
}
enum Outside_door_status : int {
  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);
constexpr Outside_door_status Outside_door_status_MIN = OUTSIDE_DOOR_STATUS_UNKNOWN;
constexpr Outside_door_status Outside_door_status_MAX = OUTSIDE_DOOR_STATUS_FAULT;
constexpr int Outside_door_status_ARRAYSIZE = Outside_door_status_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Outside_door_status_descriptor();
template<typename T>
inline const std::string& Outside_door_status_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Outside_door_status>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Outside_door_status_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Outside_door_status_descriptor(), enum_t_value);
}
inline bool Outside_door_status_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Outside_door_status* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Outside_door_status>(
    Outside_door_status_descriptor(), name, value);
}
enum Outside_door_control : int {
  OUTSIDE_DOOR_CONTROL_UNKNOWN = 0,
  OUTSIDE_DOOR_CONTROL_OPEN = 1,
  OUTSIDE_DOOR_CONTROL_CLOSE = 2
};
bool Outside_door_control_IsValid(int value);
constexpr Outside_door_control Outside_door_control_MIN = OUTSIDE_DOOR_CONTROL_UNKNOWN;
constexpr Outside_door_control Outside_door_control_MAX = OUTSIDE_DOOR_CONTROL_CLOSE;
constexpr int Outside_door_control_ARRAYSIZE = Outside_door_control_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Outside_door_control_descriptor();
template<typename T>
inline const std::string& Outside_door_control_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Outside_door_control>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Outside_door_control_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Outside_door_control_descriptor(), enum_t_value);
}
inline bool Outside_door_control_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Outside_door_control* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Outside_door_control>(
    Outside_door_control_descriptor(), name, value);
}
enum Process_status : int {
  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_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
};
bool Process_status_IsValid(int value);
constexpr Process_status Process_status_MIN = PROCESS_STATUS_UNKNOWN;
constexpr Process_status Process_status_MAX = PROCESS_STATUS_OUTLET_9;
constexpr int Process_status_ARRAYSIZE = Process_status_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Process_status_descriptor();
template<typename T>
inline const std::string& Process_status_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Process_status>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Process_status_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Process_status_descriptor(), enum_t_value);
}
inline bool Process_status_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Process_status* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Process_status>(
    Process_status_descriptor(), name, value);
}
// ===================================================================

class InputDi PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.InputDi) */ {
 public:
  inline InputDi() : InputDi(nullptr) {}
  virtual ~InputDi();

  InputDi(const InputDi& from);
  InputDi(InputDi&& from) noexcept
    : InputDi() {
    *this = ::std::move(from);
  }

  inline InputDi& operator=(const InputDi& from) {
    CopyFrom(from);
    return *this;
  }
  inline InputDi& operator=(InputDi&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(InputDi& a, InputDi& b) {
    a.Swap(&b);
  }
  inline void Swap(InputDi* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(InputDi* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(InputDi* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "message.InputDi";
  }
  protected:
  explicit InputDi(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_singlechip_5fmsg_2eproto);
    return ::descriptor_table_singlechip_5fmsg_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kDi0FieldNumber = 1,
    kDi1FieldNumber = 2,
    kDi2FieldNumber = 3,
    kDi3FieldNumber = 4,
    kDi4FieldNumber = 5,
    kDi5FieldNumber = 6,
    kDi6FieldNumber = 7,
    kDi7FieldNumber = 8,
    kDi8FieldNumber = 9,
    kDi9FieldNumber = 10,
    kDi10FieldNumber = 11,
    kDi11FieldNumber = 12,
    kDi12FieldNumber = 13,
    kDi13FieldNumber = 14,
    kDi14FieldNumber = 15,
    kDi15FieldNumber = 16,
  };
  // required int32 Di0 = 1;
  bool has_di0() const;
  private:
  bool _internal_has_di0() const;
  public:
  void clear_di0();
  ::PROTOBUF_NAMESPACE_ID::int32 di0() const;
  void set_di0(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di0() const;
  void _internal_set_di0(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di1 = 2;
  bool has_di1() const;
  private:
  bool _internal_has_di1() const;
  public:
  void clear_di1();
  ::PROTOBUF_NAMESPACE_ID::int32 di1() const;
  void set_di1(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di1() const;
  void _internal_set_di1(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di2 = 3;
  bool has_di2() const;
  private:
  bool _internal_has_di2() const;
  public:
  void clear_di2();
  ::PROTOBUF_NAMESPACE_ID::int32 di2() const;
  void set_di2(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di2() const;
  void _internal_set_di2(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di3 = 4;
  bool has_di3() const;
  private:
  bool _internal_has_di3() const;
  public:
  void clear_di3();
  ::PROTOBUF_NAMESPACE_ID::int32 di3() const;
  void set_di3(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di3() const;
  void _internal_set_di3(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di4 = 5;
  bool has_di4() const;
  private:
  bool _internal_has_di4() const;
  public:
  void clear_di4();
  ::PROTOBUF_NAMESPACE_ID::int32 di4() const;
  void set_di4(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di4() const;
  void _internal_set_di4(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di5 = 6;
  bool has_di5() const;
  private:
  bool _internal_has_di5() const;
  public:
  void clear_di5();
  ::PROTOBUF_NAMESPACE_ID::int32 di5() const;
  void set_di5(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di5() const;
  void _internal_set_di5(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di6 = 7;
  bool has_di6() const;
  private:
  bool _internal_has_di6() const;
  public:
  void clear_di6();
  ::PROTOBUF_NAMESPACE_ID::int32 di6() const;
  void set_di6(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di6() const;
  void _internal_set_di6(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di7 = 8;
  bool has_di7() const;
  private:
  bool _internal_has_di7() const;
  public:
  void clear_di7();
  ::PROTOBUF_NAMESPACE_ID::int32 di7() const;
  void set_di7(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di7() const;
  void _internal_set_di7(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di8 = 9;
  bool has_di8() const;
  private:
  bool _internal_has_di8() const;
  public:
  void clear_di8();
  ::PROTOBUF_NAMESPACE_ID::int32 di8() const;
  void set_di8(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di8() const;
  void _internal_set_di8(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di9 = 10;
  bool has_di9() const;
  private:
  bool _internal_has_di9() const;
  public:
  void clear_di9();
  ::PROTOBUF_NAMESPACE_ID::int32 di9() const;
  void set_di9(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di9() const;
  void _internal_set_di9(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di10 = 11;
  bool has_di10() const;
  private:
  bool _internal_has_di10() const;
  public:
  void clear_di10();
  ::PROTOBUF_NAMESPACE_ID::int32 di10() const;
  void set_di10(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di10() const;
  void _internal_set_di10(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di11 = 12;
  bool has_di11() const;
  private:
  bool _internal_has_di11() const;
  public:
  void clear_di11();
  ::PROTOBUF_NAMESPACE_ID::int32 di11() const;
  void set_di11(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di11() const;
  void _internal_set_di11(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di12 = 13;
  bool has_di12() const;
  private:
  bool _internal_has_di12() const;
  public:
  void clear_di12();
  ::PROTOBUF_NAMESPACE_ID::int32 di12() const;
  void set_di12(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di12() const;
  void _internal_set_di12(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di13 = 14;
  bool has_di13() const;
  private:
  bool _internal_has_di13() const;
  public:
  void clear_di13();
  ::PROTOBUF_NAMESPACE_ID::int32 di13() const;
  void set_di13(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di13() const;
  void _internal_set_di13(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di14 = 15;
  bool has_di14() const;
  private:
  bool _internal_has_di14() const;
  public:
  void clear_di14();
  ::PROTOBUF_NAMESPACE_ID::int32 di14() const;
  void set_di14(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di14() const;
  void _internal_set_di14(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Di15 = 16;
  bool has_di15() const;
  private:
  bool _internal_has_di15() const;
  public:
  void clear_di15();
  ::PROTOBUF_NAMESPACE_ID::int32 di15() const;
  void set_di15(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_di15() const;
  void _internal_set_di15(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:message.InputDi)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 di0_;
  ::PROTOBUF_NAMESPACE_ID::int32 di1_;
  ::PROTOBUF_NAMESPACE_ID::int32 di2_;
  ::PROTOBUF_NAMESPACE_ID::int32 di3_;
  ::PROTOBUF_NAMESPACE_ID::int32 di4_;
  ::PROTOBUF_NAMESPACE_ID::int32 di5_;
  ::PROTOBUF_NAMESPACE_ID::int32 di6_;
  ::PROTOBUF_NAMESPACE_ID::int32 di7_;
  ::PROTOBUF_NAMESPACE_ID::int32 di8_;
  ::PROTOBUF_NAMESPACE_ID::int32 di9_;
  ::PROTOBUF_NAMESPACE_ID::int32 di10_;
  ::PROTOBUF_NAMESPACE_ID::int32 di11_;
  ::PROTOBUF_NAMESPACE_ID::int32 di12_;
  ::PROTOBUF_NAMESPACE_ID::int32 di13_;
  ::PROTOBUF_NAMESPACE_ID::int32 di14_;
  ::PROTOBUF_NAMESPACE_ID::int32 di15_;
  friend struct ::TableStruct_singlechip_5fmsg_2eproto;
};
// -------------------------------------------------------------------

class OutputDo PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.OutputDo) */ {
 public:
  inline OutputDo() : OutputDo(nullptr) {}
  virtual ~OutputDo();

  OutputDo(const OutputDo& from);
  OutputDo(OutputDo&& from) noexcept
    : OutputDo() {
    *this = ::std::move(from);
  }

  inline OutputDo& operator=(const OutputDo& from) {
    CopyFrom(from);
    return *this;
  }
  inline OutputDo& operator=(OutputDo&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(OutputDo& a, OutputDo& b) {
    a.Swap(&b);
  }
  inline void Swap(OutputDo* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OutputDo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OutputDo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "message.OutputDo";
  }
  protected:
  explicit OutputDo(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_singlechip_5fmsg_2eproto);
    return ::descriptor_table_singlechip_5fmsg_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kDo0FieldNumber = 1,
    kDo1FieldNumber = 2,
    kDo2FieldNumber = 3,
    kDo3FieldNumber = 4,
    kDo4FieldNumber = 5,
    kDo5FieldNumber = 6,
    kDo6FieldNumber = 7,
    kDo7FieldNumber = 8,
  };
  // required int32 Do0 = 1;
  bool has_do0() const;
  private:
  bool _internal_has_do0() const;
  public:
  void clear_do0();
  ::PROTOBUF_NAMESPACE_ID::int32 do0() const;
  void set_do0(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do0() const;
  void _internal_set_do0(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do1 = 2;
  bool has_do1() const;
  private:
  bool _internal_has_do1() const;
  public:
  void clear_do1();
  ::PROTOBUF_NAMESPACE_ID::int32 do1() const;
  void set_do1(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do1() const;
  void _internal_set_do1(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do2 = 3;
  bool has_do2() const;
  private:
  bool _internal_has_do2() const;
  public:
  void clear_do2();
  ::PROTOBUF_NAMESPACE_ID::int32 do2() const;
  void set_do2(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do2() const;
  void _internal_set_do2(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do3 = 4;
  bool has_do3() const;
  private:
  bool _internal_has_do3() const;
  public:
  void clear_do3();
  ::PROTOBUF_NAMESPACE_ID::int32 do3() const;
  void set_do3(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do3() const;
  void _internal_set_do3(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do4 = 5;
  bool has_do4() const;
  private:
  bool _internal_has_do4() const;
  public:
  void clear_do4();
  ::PROTOBUF_NAMESPACE_ID::int32 do4() const;
  void set_do4(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do4() const;
  void _internal_set_do4(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do5 = 6;
  bool has_do5() const;
  private:
  bool _internal_has_do5() const;
  public:
  void clear_do5();
  ::PROTOBUF_NAMESPACE_ID::int32 do5() const;
  void set_do5(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do5() const;
  void _internal_set_do5(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do6 = 7;
  bool has_do6() const;
  private:
  bool _internal_has_do6() const;
  public:
  void clear_do6();
  ::PROTOBUF_NAMESPACE_ID::int32 do6() const;
  void set_do6(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do6() const;
  void _internal_set_do6(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 Do7 = 8;
  bool has_do7() const;
  private:
  bool _internal_has_do7() const;
  public:
  void clear_do7();
  ::PROTOBUF_NAMESPACE_ID::int32 do7() const;
  void set_do7(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_do7() const;
  void _internal_set_do7(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:message.OutputDo)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 do0_;
  ::PROTOBUF_NAMESPACE_ID::int32 do1_;
  ::PROTOBUF_NAMESPACE_ID::int32 do2_;
  ::PROTOBUF_NAMESPACE_ID::int32 do3_;
  ::PROTOBUF_NAMESPACE_ID::int32 do4_;
  ::PROTOBUF_NAMESPACE_ID::int32 do5_;
  ::PROTOBUF_NAMESPACE_ID::int32 do6_;
  ::PROTOBUF_NAMESPACE_ID::int32 do7_;
  friend struct ::TableStruct_singlechip_5fmsg_2eproto;
};
// -------------------------------------------------------------------

class terminal_msg PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.terminal_msg) */ {
 public:
  inline terminal_msg() : terminal_msg(nullptr) {}
  virtual ~terminal_msg();

  terminal_msg(const terminal_msg& from);
  terminal_msg(terminal_msg&& from) noexcept
    : terminal_msg() {
    *this = ::std::move(from);
  }

  inline terminal_msg& operator=(const terminal_msg& from) {
    CopyFrom(from);
    return *this;
  }
  inline terminal_msg& operator=(terminal_msg&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(terminal_msg& a, terminal_msg& b) {
    a.Swap(&b);
  }
  inline void Swap(terminal_msg* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(terminal_msg* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(terminal_msg* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "message.terminal_msg";
  }
  protected:
  explicit terminal_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_singlechip_5fmsg_2eproto);
    return ::descriptor_table_singlechip_5fmsg_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kOutPutDoFieldNumber = 4,
    kTerminalIDFieldNumber = 1,
    kDispatchDirectionFieldNumber = 2,
    kProcessControlFieldNumber = 3,
  };
  // required .message.OutputDo OutPutDo = 4;
  bool has_outputdo() const;
  private:
  bool _internal_has_outputdo() const;
  public:
  void clear_outputdo();
  const ::message::OutputDo& outputdo() const;
  ::message::OutputDo* release_outputdo();
  ::message::OutputDo* mutable_outputdo();
  void set_allocated_outputdo(::message::OutputDo* outputdo);
  private:
  const ::message::OutputDo& _internal_outputdo() const;
  ::message::OutputDo* _internal_mutable_outputdo();
  public:
  void unsafe_arena_set_allocated_outputdo(
      ::message::OutputDo* outputdo);
  ::message::OutputDo* unsafe_arena_release_outputdo();

  // required int32 TerminalID = 1;
  bool has_terminalid() const;
  private:
  bool _internal_has_terminalid() const;
  public:
  void clear_terminalid();
  ::PROTOBUF_NAMESPACE_ID::int32 terminalid() const;
  void set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminalid() const;
  void _internal_set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 DispatchDirection = 2;
  bool has_dispatchdirection() const;
  private:
  bool _internal_has_dispatchdirection() const;
  public:
  void clear_dispatchdirection();
  ::PROTOBUF_NAMESPACE_ID::int32 dispatchdirection() const;
  void set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_dispatchdirection() const;
  void _internal_set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required .message.Process_control ProcessControl = 3;
  bool has_processcontrol() const;
  private:
  bool _internal_has_processcontrol() const;
  public:
  void clear_processcontrol();
  ::message::Process_control processcontrol() const;
  void set_processcontrol(::message::Process_control value);
  private:
  ::message::Process_control _internal_processcontrol() const;
  void _internal_set_processcontrol(::message::Process_control value);
  public:

  // @@protoc_insertion_point(class_scope:message.terminal_msg)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::message::OutputDo* outputdo_;
  ::PROTOBUF_NAMESPACE_ID::int32 terminalid_;
  ::PROTOBUF_NAMESPACE_ID::int32 dispatchdirection_;
  int processcontrol_;
  friend struct ::TableStruct_singlechip_5fmsg_2eproto;
};
// -------------------------------------------------------------------

class singlechip_data PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.singlechip_data) */ {
 public:
  inline singlechip_data() : singlechip_data(nullptr) {}
  virtual ~singlechip_data();

  singlechip_data(const singlechip_data& from);
  singlechip_data(singlechip_data&& from) noexcept
    : singlechip_data() {
    *this = ::std::move(from);
  }

  inline singlechip_data& operator=(const singlechip_data& from) {
    CopyFrom(from);
    return *this;
  }
  inline singlechip_data& operator=(singlechip_data&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(singlechip_data& a, singlechip_data& b) {
    a.Swap(&b);
  }
  inline void Swap(singlechip_data* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(singlechip_data* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  inline singlechip_data* New() const final {
    return CreateMaybeMessage<singlechip_data>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(singlechip_data* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "message.singlechip_data";
  }
  protected:
  explicit singlechip_data(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_singlechip_5fmsg_2eproto);
    return ::descriptor_table_singlechip_5fmsg_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kInPutDiFieldNumber = 4,
    kTerminalIDFieldNumber = 1,
    kDispatchDirectionFieldNumber = 2,
    kProcessStatusFieldNumber = 3,
    kResetFlagFieldNumber = 5,
    kProcessControlFieldNumber = 6,
    kInsideExistenceFlagFieldNumber = 7,
    kOverBorderStatusFieldNumber = 8,
    kCarHeightStatusCurrentFieldNumber = 9,
    kCarHeightStatusPassingFieldNumber = 10,
    kStopFlagFieldNumber = 11,
    kOutsideDoorStatusFieldNumber = 12,
    kOutsideDoorControlFieldNumber = 13,
    kDispatchFinishFlagFieldNumber = 14,
    kOutsideExistenceFlagFieldNumber = 15,
  };
  // required .message.InputDi InPutDi = 4;
  bool has_inputdi() const;
  private:
  bool _internal_has_inputdi() const;
  public:
  void clear_inputdi();
  const ::message::InputDi& inputdi() const;
  ::message::InputDi* release_inputdi();
  ::message::InputDi* mutable_inputdi();
  void set_allocated_inputdi(::message::InputDi* inputdi);
  private:
  const ::message::InputDi& _internal_inputdi() const;
  ::message::InputDi* _internal_mutable_inputdi();
  public:
  void unsafe_arena_set_allocated_inputdi(
      ::message::InputDi* inputdi);
  ::message::InputDi* unsafe_arena_release_inputdi();

  // required int32 TerminalID = 1;
  bool has_terminalid() const;
  private:
  bool _internal_has_terminalid() const;
  public:
  void clear_terminalid();
  ::PROTOBUF_NAMESPACE_ID::int32 terminalid() const;
  void set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminalid() const;
  void _internal_set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 DispatchDirection = 2;
  bool has_dispatchdirection() const;
  private:
  bool _internal_has_dispatchdirection() const;
  public:
  void clear_dispatchdirection();
  ::PROTOBUF_NAMESPACE_ID::int32 dispatchdirection() const;
  void set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_dispatchdirection() const;
  void _internal_set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required .message.Process_status ProcessStatus = 3;
  bool has_processstatus() const;
  private:
  bool _internal_has_processstatus() const;
  public:
  void clear_processstatus();
  ::message::Process_status processstatus() const;
  void set_processstatus(::message::Process_status value);
  private:
  ::message::Process_status _internal_processstatus() const;
  void _internal_set_processstatus(::message::Process_status value);
  public:

  // required int32 ResetFlag = 5;
  bool has_resetflag() const;
  private:
  bool _internal_has_resetflag() const;
  public:
  void clear_resetflag();
  ::PROTOBUF_NAMESPACE_ID::int32 resetflag() const;
  void set_resetflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_resetflag() const;
  void _internal_set_resetflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required .message.Process_control ProcessControl = 6;
  bool has_processcontrol() const;
  private:
  bool _internal_has_processcontrol() const;
  public:
  void clear_processcontrol();
  ::message::Process_control processcontrol() const;
  void set_processcontrol(::message::Process_control value);
  private:
  ::message::Process_control _internal_processcontrol() const;
  void _internal_set_processcontrol(::message::Process_control value);
  public:

  // required int32 InsideExistenceFlag = 7;
  bool has_insideexistenceflag() const;
  private:
  bool _internal_has_insideexistenceflag() const;
  public:
  void clear_insideexistenceflag();
  ::PROTOBUF_NAMESPACE_ID::int32 insideexistenceflag() const;
  void set_insideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_insideexistenceflag() const;
  void _internal_set_insideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required .message.Over_border_status OverBorderStatus = 8;
  bool has_overborderstatus() const;
  private:
  bool _internal_has_overborderstatus() const;
  public:
  void clear_overborderstatus();
  ::message::Over_border_status overborderstatus() const;
  void set_overborderstatus(::message::Over_border_status value);
  private:
  ::message::Over_border_status _internal_overborderstatus() const;
  void _internal_set_overborderstatus(::message::Over_border_status value);
  public:

  // required .message.Car_height_status CarHeightStatusCurrent = 9;
  bool has_carheightstatuscurrent() const;
  private:
  bool _internal_has_carheightstatuscurrent() const;
  public:
  void clear_carheightstatuscurrent();
  ::message::Car_height_status carheightstatuscurrent() const;
  void set_carheightstatuscurrent(::message::Car_height_status value);
  private:
  ::message::Car_height_status _internal_carheightstatuscurrent() const;
  void _internal_set_carheightstatuscurrent(::message::Car_height_status value);
  public:

  // required .message.Car_height_status CarHeightStatusPassing = 10;
  bool has_carheightstatuspassing() const;
  private:
  bool _internal_has_carheightstatuspassing() const;
  public:
  void clear_carheightstatuspassing();
  ::message::Car_height_status carheightstatuspassing() const;
  void set_carheightstatuspassing(::message::Car_height_status value);
  private:
  ::message::Car_height_status _internal_carheightstatuspassing() const;
  void _internal_set_carheightstatuspassing(::message::Car_height_status value);
  public:

  // required int32 StopFlag = 11;
  bool has_stopflag() const;
  private:
  bool _internal_has_stopflag() const;
  public:
  void clear_stopflag();
  ::PROTOBUF_NAMESPACE_ID::int32 stopflag() const;
  void set_stopflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_stopflag() const;
  void _internal_set_stopflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required .message.Outside_door_status OutsideDoorStatus = 12;
  bool has_outsidedoorstatus() const;
  private:
  bool _internal_has_outsidedoorstatus() const;
  public:
  void clear_outsidedoorstatus();
  ::message::Outside_door_status outsidedoorstatus() const;
  void set_outsidedoorstatus(::message::Outside_door_status value);
  private:
  ::message::Outside_door_status _internal_outsidedoorstatus() const;
  void _internal_set_outsidedoorstatus(::message::Outside_door_status value);
  public:

  // required .message.Outside_door_control OutsideDoorControl = 13;
  bool has_outsidedoorcontrol() const;
  private:
  bool _internal_has_outsidedoorcontrol() const;
  public:
  void clear_outsidedoorcontrol();
  ::message::Outside_door_control outsidedoorcontrol() const;
  void set_outsidedoorcontrol(::message::Outside_door_control value);
  private:
  ::message::Outside_door_control _internal_outsidedoorcontrol() const;
  void _internal_set_outsidedoorcontrol(::message::Outside_door_control value);
  public:

  // required int32 DispatchFinishFlag = 14;
  bool has_dispatchfinishflag() const;
  private:
  bool _internal_has_dispatchfinishflag() const;
  public:
  void clear_dispatchfinishflag();
  ::PROTOBUF_NAMESPACE_ID::int32 dispatchfinishflag() const;
  void set_dispatchfinishflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_dispatchfinishflag() const;
  void _internal_set_dispatchfinishflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 OutsideExistenceFlag = 15;
  bool has_outsideexistenceflag() const;
  private:
  bool _internal_has_outsideexistenceflag() const;
  public:
  void clear_outsideexistenceflag();
  ::PROTOBUF_NAMESPACE_ID::int32 outsideexistenceflag() const;
  void set_outsideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_outsideexistenceflag() const;
  void _internal_set_outsideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:message.singlechip_data)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::message::InputDi* inputdi_;
  ::PROTOBUF_NAMESPACE_ID::int32 terminalid_;
  ::PROTOBUF_NAMESPACE_ID::int32 dispatchdirection_;
  int processstatus_;
  ::PROTOBUF_NAMESPACE_ID::int32 resetflag_;
  int processcontrol_;
  ::PROTOBUF_NAMESPACE_ID::int32 insideexistenceflag_;
  int overborderstatus_;
  int carheightstatuscurrent_;
  int carheightstatuspassing_;
  ::PROTOBUF_NAMESPACE_ID::int32 stopflag_;
  int outsidedoorstatus_;
  int outsidedoorcontrol_;
  ::PROTOBUF_NAMESPACE_ID::int32 dispatchfinishflag_;
  ::PROTOBUF_NAMESPACE_ID::int32 outsideexistenceflag_;
  friend struct ::TableStruct_singlechip_5fmsg_2eproto;
};
// -------------------------------------------------------------------

class terminal_status_msg PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.terminal_status_msg) */ {
 public:
  inline terminal_status_msg() : terminal_status_msg(nullptr) {}
  virtual ~terminal_status_msg();

  terminal_status_msg(const terminal_status_msg& from);
  terminal_status_msg(terminal_status_msg&& from) noexcept
    : terminal_status_msg() {
    *this = ::std::move(from);
  }

  inline terminal_status_msg& operator=(const terminal_status_msg& from) {
    CopyFrom(from);
    return *this;
  }
  inline terminal_status_msg& operator=(terminal_status_msg&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(terminal_status_msg& a, terminal_status_msg& b) {
    a.Swap(&b);
  }
  inline void Swap(terminal_status_msg* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(terminal_status_msg* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  inline terminal_status_msg* New() const final {
    return CreateMaybeMessage<terminal_status_msg>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(terminal_status_msg* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "message.terminal_status_msg";
  }
  protected:
  explicit terminal_status_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_singlechip_5fmsg_2eproto);
    return ::descriptor_table_singlechip_5fmsg_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kBaseInfoFieldNumber = 1,
    kSinglechipDataFieldNumber = 3,
    kTerminalIdFieldNumber = 2,
  };
  // required .message.Base_info base_info = 1;
  bool has_base_info() const;
  private:
  bool _internal_has_base_info() const;
  public:
  void clear_base_info();
  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);
  private:
  const ::message::Base_info& _internal_base_info() const;
  ::message::Base_info* _internal_mutable_base_info();
  public:
  void unsafe_arena_set_allocated_base_info(
      ::message::Base_info* base_info);
  ::message::Base_info* unsafe_arena_release_base_info();

  // required .message.singlechip_data singlechipData = 3;
  bool has_singlechipdata() const;
  private:
  bool _internal_has_singlechipdata() const;
  public:
  void clear_singlechipdata();
  const ::message::singlechip_data& singlechipdata() const;
  ::message::singlechip_data* release_singlechipdata();
  ::message::singlechip_data* mutable_singlechipdata();
  void set_allocated_singlechipdata(::message::singlechip_data* singlechipdata);
  private:
  const ::message::singlechip_data& _internal_singlechipdata() const;
  ::message::singlechip_data* _internal_mutable_singlechipdata();
  public:
  void unsafe_arena_set_allocated_singlechipdata(
      ::message::singlechip_data* singlechipdata);
  ::message::singlechip_data* unsafe_arena_release_singlechipdata();

  // required int32 terminal_id = 2;
  bool has_terminal_id() const;
  private:
  bool _internal_has_terminal_id() const;
  public:
  void clear_terminal_id();
  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:message.terminal_status_msg)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::message::Base_info* base_info_;
  ::message::singlechip_data* singlechipdata_;
  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
  friend struct ::TableStruct_singlechip_5fmsg_2eproto;
};
// ===================================================================


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

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

// required int32 Di0 = 1;
inline bool InputDi::_internal_has_di0() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool InputDi::has_di0() const {
  return _internal_has_di0();
}
inline void InputDi::clear_di0() {
  di0_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di0() const {
  return di0_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di0() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di0)
  return _internal_di0();
}
inline void InputDi::_internal_set_di0(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  di0_ = value;
}
inline void InputDi::set_di0(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di0(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di0)
}

// required int32 Di1 = 2;
inline bool InputDi::_internal_has_di1() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool InputDi::has_di1() const {
  return _internal_has_di1();
}
inline void InputDi::clear_di1() {
  di1_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di1() const {
  return di1_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di1() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di1)
  return _internal_di1();
}
inline void InputDi::_internal_set_di1(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  di1_ = value;
}
inline void InputDi::set_di1(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di1(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di1)
}

// required int32 Di2 = 3;
inline bool InputDi::_internal_has_di2() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool InputDi::has_di2() const {
  return _internal_has_di2();
}
inline void InputDi::clear_di2() {
  di2_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di2() const {
  return di2_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di2() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di2)
  return _internal_di2();
}
inline void InputDi::_internal_set_di2(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  di2_ = value;
}
inline void InputDi::set_di2(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di2(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di2)
}

// required int32 Di3 = 4;
inline bool InputDi::_internal_has_di3() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool InputDi::has_di3() const {
  return _internal_has_di3();
}
inline void InputDi::clear_di3() {
  di3_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di3() const {
  return di3_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di3() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di3)
  return _internal_di3();
}
inline void InputDi::_internal_set_di3(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  di3_ = value;
}
inline void InputDi::set_di3(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di3(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di3)
}

// required int32 Di4 = 5;
inline bool InputDi::_internal_has_di4() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool InputDi::has_di4() const {
  return _internal_has_di4();
}
inline void InputDi::clear_di4() {
  di4_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di4() const {
  return di4_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di4() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di4)
  return _internal_di4();
}
inline void InputDi::_internal_set_di4(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000010u;
  di4_ = value;
}
inline void InputDi::set_di4(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di4(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di4)
}

// required int32 Di5 = 6;
inline bool InputDi::_internal_has_di5() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool InputDi::has_di5() const {
  return _internal_has_di5();
}
inline void InputDi::clear_di5() {
  di5_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di5() const {
  return di5_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di5() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di5)
  return _internal_di5();
}
inline void InputDi::_internal_set_di5(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000020u;
  di5_ = value;
}
inline void InputDi::set_di5(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di5(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di5)
}

// required int32 Di6 = 7;
inline bool InputDi::_internal_has_di6() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool InputDi::has_di6() const {
  return _internal_has_di6();
}
inline void InputDi::clear_di6() {
  di6_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di6() const {
  return di6_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di6() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di6)
  return _internal_di6();
}
inline void InputDi::_internal_set_di6(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000040u;
  di6_ = value;
}
inline void InputDi::set_di6(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di6(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di6)
}

// required int32 Di7 = 8;
inline bool InputDi::_internal_has_di7() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool InputDi::has_di7() const {
  return _internal_has_di7();
}
inline void InputDi::clear_di7() {
  di7_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di7() const {
  return di7_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di7() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di7)
  return _internal_di7();
}
inline void InputDi::_internal_set_di7(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000080u;
  di7_ = value;
}
inline void InputDi::set_di7(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di7(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di7)
}

// required int32 Di8 = 9;
inline bool InputDi::_internal_has_di8() const {
  bool value = (_has_bits_[0] & 0x00000100u) != 0;
  return value;
}
inline bool InputDi::has_di8() const {
  return _internal_has_di8();
}
inline void InputDi::clear_di8() {
  di8_ = 0;
  _has_bits_[0] &= ~0x00000100u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di8() const {
  return di8_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di8() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di8)
  return _internal_di8();
}
inline void InputDi::_internal_set_di8(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000100u;
  di8_ = value;
}
inline void InputDi::set_di8(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di8(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di8)
}

// required int32 Di9 = 10;
inline bool InputDi::_internal_has_di9() const {
  bool value = (_has_bits_[0] & 0x00000200u) != 0;
  return value;
}
inline bool InputDi::has_di9() const {
  return _internal_has_di9();
}
inline void InputDi::clear_di9() {
  di9_ = 0;
  _has_bits_[0] &= ~0x00000200u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di9() const {
  return di9_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di9() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di9)
  return _internal_di9();
}
inline void InputDi::_internal_set_di9(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000200u;
  di9_ = value;
}
inline void InputDi::set_di9(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di9(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di9)
}

// required int32 Di10 = 11;
inline bool InputDi::_internal_has_di10() const {
  bool value = (_has_bits_[0] & 0x00000400u) != 0;
  return value;
}
inline bool InputDi::has_di10() const {
  return _internal_has_di10();
}
inline void InputDi::clear_di10() {
  di10_ = 0;
  _has_bits_[0] &= ~0x00000400u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di10() const {
  return di10_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di10() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di10)
  return _internal_di10();
}
inline void InputDi::_internal_set_di10(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000400u;
  di10_ = value;
}
inline void InputDi::set_di10(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di10(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di10)
}

// required int32 Di11 = 12;
inline bool InputDi::_internal_has_di11() const {
  bool value = (_has_bits_[0] & 0x00000800u) != 0;
  return value;
}
inline bool InputDi::has_di11() const {
  return _internal_has_di11();
}
inline void InputDi::clear_di11() {
  di11_ = 0;
  _has_bits_[0] &= ~0x00000800u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di11() const {
  return di11_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di11() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di11)
  return _internal_di11();
}
inline void InputDi::_internal_set_di11(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000800u;
  di11_ = value;
}
inline void InputDi::set_di11(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di11(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di11)
}

// required int32 Di12 = 13;
inline bool InputDi::_internal_has_di12() const {
  bool value = (_has_bits_[0] & 0x00001000u) != 0;
  return value;
}
inline bool InputDi::has_di12() const {
  return _internal_has_di12();
}
inline void InputDi::clear_di12() {
  di12_ = 0;
  _has_bits_[0] &= ~0x00001000u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di12() const {
  return di12_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di12() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di12)
  return _internal_di12();
}
inline void InputDi::_internal_set_di12(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00001000u;
  di12_ = value;
}
inline void InputDi::set_di12(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di12(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di12)
}

// required int32 Di13 = 14;
inline bool InputDi::_internal_has_di13() const {
  bool value = (_has_bits_[0] & 0x00002000u) != 0;
  return value;
}
inline bool InputDi::has_di13() const {
  return _internal_has_di13();
}
inline void InputDi::clear_di13() {
  di13_ = 0;
  _has_bits_[0] &= ~0x00002000u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di13() const {
  return di13_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di13() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di13)
  return _internal_di13();
}
inline void InputDi::_internal_set_di13(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00002000u;
  di13_ = value;
}
inline void InputDi::set_di13(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di13(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di13)
}

// required int32 Di14 = 15;
inline bool InputDi::_internal_has_di14() const {
  bool value = (_has_bits_[0] & 0x00004000u) != 0;
  return value;
}
inline bool InputDi::has_di14() const {
  return _internal_has_di14();
}
inline void InputDi::clear_di14() {
  di14_ = 0;
  _has_bits_[0] &= ~0x00004000u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di14() const {
  return di14_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di14() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di14)
  return _internal_di14();
}
inline void InputDi::_internal_set_di14(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00004000u;
  di14_ = value;
}
inline void InputDi::set_di14(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di14(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di14)
}

// required int32 Di15 = 16;
inline bool InputDi::_internal_has_di15() const {
  bool value = (_has_bits_[0] & 0x00008000u) != 0;
  return value;
}
inline bool InputDi::has_di15() const {
  return _internal_has_di15();
}
inline void InputDi::clear_di15() {
  di15_ = 0;
  _has_bits_[0] &= ~0x00008000u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::_internal_di15() const {
  return di15_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 InputDi::di15() const {
  // @@protoc_insertion_point(field_get:message.InputDi.Di15)
  return _internal_di15();
}
inline void InputDi::_internal_set_di15(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00008000u;
  di15_ = value;
}
inline void InputDi::set_di15(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_di15(value);
  // @@protoc_insertion_point(field_set:message.InputDi.Di15)
}

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

// OutputDo

// required int32 Do0 = 1;
inline bool OutputDo::_internal_has_do0() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool OutputDo::has_do0() const {
  return _internal_has_do0();
}
inline void OutputDo::clear_do0() {
  do0_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do0() const {
  return do0_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do0() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do0)
  return _internal_do0();
}
inline void OutputDo::_internal_set_do0(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  do0_ = value;
}
inline void OutputDo::set_do0(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do0(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do0)
}

// required int32 Do1 = 2;
inline bool OutputDo::_internal_has_do1() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool OutputDo::has_do1() const {
  return _internal_has_do1();
}
inline void OutputDo::clear_do1() {
  do1_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do1() const {
  return do1_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do1() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do1)
  return _internal_do1();
}
inline void OutputDo::_internal_set_do1(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  do1_ = value;
}
inline void OutputDo::set_do1(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do1(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do1)
}

// required int32 Do2 = 3;
inline bool OutputDo::_internal_has_do2() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool OutputDo::has_do2() const {
  return _internal_has_do2();
}
inline void OutputDo::clear_do2() {
  do2_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do2() const {
  return do2_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do2() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do2)
  return _internal_do2();
}
inline void OutputDo::_internal_set_do2(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  do2_ = value;
}
inline void OutputDo::set_do2(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do2(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do2)
}

// required int32 Do3 = 4;
inline bool OutputDo::_internal_has_do3() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool OutputDo::has_do3() const {
  return _internal_has_do3();
}
inline void OutputDo::clear_do3() {
  do3_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do3() const {
  return do3_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do3() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do3)
  return _internal_do3();
}
inline void OutputDo::_internal_set_do3(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  do3_ = value;
}
inline void OutputDo::set_do3(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do3(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do3)
}

// required int32 Do4 = 5;
inline bool OutputDo::_internal_has_do4() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool OutputDo::has_do4() const {
  return _internal_has_do4();
}
inline void OutputDo::clear_do4() {
  do4_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do4() const {
  return do4_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do4() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do4)
  return _internal_do4();
}
inline void OutputDo::_internal_set_do4(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000010u;
  do4_ = value;
}
inline void OutputDo::set_do4(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do4(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do4)
}

// required int32 Do5 = 6;
inline bool OutputDo::_internal_has_do5() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool OutputDo::has_do5() const {
  return _internal_has_do5();
}
inline void OutputDo::clear_do5() {
  do5_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do5() const {
  return do5_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do5() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do5)
  return _internal_do5();
}
inline void OutputDo::_internal_set_do5(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000020u;
  do5_ = value;
}
inline void OutputDo::set_do5(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do5(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do5)
}

// required int32 Do6 = 7;
inline bool OutputDo::_internal_has_do6() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool OutputDo::has_do6() const {
  return _internal_has_do6();
}
inline void OutputDo::clear_do6() {
  do6_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do6() const {
  return do6_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do6() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do6)
  return _internal_do6();
}
inline void OutputDo::_internal_set_do6(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000040u;
  do6_ = value;
}
inline void OutputDo::set_do6(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do6(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do6)
}

// required int32 Do7 = 8;
inline bool OutputDo::_internal_has_do7() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool OutputDo::has_do7() const {
  return _internal_has_do7();
}
inline void OutputDo::clear_do7() {
  do7_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::_internal_do7() const {
  return do7_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OutputDo::do7() const {
  // @@protoc_insertion_point(field_get:message.OutputDo.Do7)
  return _internal_do7();
}
inline void OutputDo::_internal_set_do7(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000080u;
  do7_ = value;
}
inline void OutputDo::set_do7(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_do7(value);
  // @@protoc_insertion_point(field_set:message.OutputDo.Do7)
}

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

// terminal_msg

// required int32 TerminalID = 1;
inline bool terminal_msg::_internal_has_terminalid() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool terminal_msg::has_terminalid() const {
  return _internal_has_terminalid();
}
inline void terminal_msg::clear_terminalid() {
  terminalid_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 terminal_msg::_internal_terminalid() const {
  return terminalid_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 terminal_msg::terminalid() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.TerminalID)
  return _internal_terminalid();
}
inline void terminal_msg::_internal_set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  terminalid_ = value;
}
inline void terminal_msg::set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_terminalid(value);
  // @@protoc_insertion_point(field_set:message.terminal_msg.TerminalID)
}

// required int32 DispatchDirection = 2;
inline bool terminal_msg::_internal_has_dispatchdirection() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool terminal_msg::has_dispatchdirection() const {
  return _internal_has_dispatchdirection();
}
inline void terminal_msg::clear_dispatchdirection() {
  dispatchdirection_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 terminal_msg::_internal_dispatchdirection() const {
  return dispatchdirection_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 terminal_msg::dispatchdirection() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.DispatchDirection)
  return _internal_dispatchdirection();
}
inline void terminal_msg::_internal_set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  dispatchdirection_ = value;
}
inline void terminal_msg::set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_dispatchdirection(value);
  // @@protoc_insertion_point(field_set:message.terminal_msg.DispatchDirection)
}

// required .message.Process_control ProcessControl = 3;
inline bool terminal_msg::_internal_has_processcontrol() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool terminal_msg::has_processcontrol() const {
  return _internal_has_processcontrol();
}
inline void terminal_msg::clear_processcontrol() {
  processcontrol_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::message::Process_control terminal_msg::_internal_processcontrol() const {
  return static_cast< ::message::Process_control >(processcontrol_);
}
inline ::message::Process_control terminal_msg::processcontrol() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.ProcessControl)
  return _internal_processcontrol();
}
inline void terminal_msg::_internal_set_processcontrol(::message::Process_control value) {
  assert(::message::Process_control_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  processcontrol_ = value;
}
inline void terminal_msg::set_processcontrol(::message::Process_control value) {
  _internal_set_processcontrol(value);
  // @@protoc_insertion_point(field_set:message.terminal_msg.ProcessControl)
}

// required .message.OutputDo OutPutDo = 4;
inline bool terminal_msg::_internal_has_outputdo() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || outputdo_ != nullptr);
  return value;
}
inline bool terminal_msg::has_outputdo() const {
  return _internal_has_outputdo();
}
inline void terminal_msg::clear_outputdo() {
  if (outputdo_ != nullptr) outputdo_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::message::OutputDo& terminal_msg::_internal_outputdo() const {
  const ::message::OutputDo* p = outputdo_;
  return p != nullptr ? *p : *reinterpret_cast<const ::message::OutputDo*>(
      &::message::_OutputDo_default_instance_);
}
inline const ::message::OutputDo& terminal_msg::outputdo() const {
  // @@protoc_insertion_point(field_get:message.terminal_msg.OutPutDo)
  return _internal_outputdo();
}
inline void terminal_msg::unsafe_arena_set_allocated_outputdo(
    ::message::OutputDo* outputdo) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(outputdo_);
  }
  outputdo_ = outputdo;
  if (outputdo) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.terminal_msg.OutPutDo)
}
inline ::message::OutputDo* terminal_msg::release_outputdo() {
  _has_bits_[0] &= ~0x00000001u;
  ::message::OutputDo* temp = outputdo_;
  outputdo_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::message::OutputDo* terminal_msg::unsafe_arena_release_outputdo() {
  // @@protoc_insertion_point(field_release:message.terminal_msg.OutPutDo)
  _has_bits_[0] &= ~0x00000001u;
  ::message::OutputDo* temp = outputdo_;
  outputdo_ = nullptr;
  return temp;
}
inline ::message::OutputDo* terminal_msg::_internal_mutable_outputdo() {
  _has_bits_[0] |= 0x00000001u;
  if (outputdo_ == nullptr) {
    auto* p = CreateMaybeMessage<::message::OutputDo>(GetArena());
    outputdo_ = p;
  }
  return outputdo_;
}
inline ::message::OutputDo* terminal_msg::mutable_outputdo() {
  // @@protoc_insertion_point(field_mutable:message.terminal_msg.OutPutDo)
  return _internal_mutable_outputdo();
}
inline void terminal_msg::set_allocated_outputdo(::message::OutputDo* outputdo) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete outputdo_;
  }
  if (outputdo) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(outputdo);
    if (message_arena != submessage_arena) {
      outputdo = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, outputdo, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  outputdo_ = outputdo;
  // @@protoc_insertion_point(field_set_allocated:message.terminal_msg.OutPutDo)
}

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

// singlechip_data

// required int32 TerminalID = 1;
inline bool singlechip_data::_internal_has_terminalid() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool singlechip_data::has_terminalid() const {
  return _internal_has_terminalid();
}
inline void singlechip_data::clear_terminalid() {
  terminalid_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_terminalid() const {
  return terminalid_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::terminalid() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.TerminalID)
  return _internal_terminalid();
}
inline void singlechip_data::_internal_set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  terminalid_ = value;
}
inline void singlechip_data::set_terminalid(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_terminalid(value);
  // @@protoc_insertion_point(field_set:message.singlechip_data.TerminalID)
}

// required int32 DispatchDirection = 2;
inline bool singlechip_data::_internal_has_dispatchdirection() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool singlechip_data::has_dispatchdirection() const {
  return _internal_has_dispatchdirection();
}
inline void singlechip_data::clear_dispatchdirection() {
  dispatchdirection_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_dispatchdirection() const {
  return dispatchdirection_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::dispatchdirection() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.DispatchDirection)
  return _internal_dispatchdirection();
}
inline void singlechip_data::_internal_set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  dispatchdirection_ = value;
}
inline void singlechip_data::set_dispatchdirection(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_dispatchdirection(value);
  // @@protoc_insertion_point(field_set:message.singlechip_data.DispatchDirection)
}

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

// required .message.InputDi InPutDi = 4;
inline bool singlechip_data::_internal_has_inputdi() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || inputdi_ != nullptr);
  return value;
}
inline bool singlechip_data::has_inputdi() const {
  return _internal_has_inputdi();
}
inline void singlechip_data::clear_inputdi() {
  if (inputdi_ != nullptr) inputdi_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::message::InputDi& singlechip_data::_internal_inputdi() const {
  const ::message::InputDi* p = inputdi_;
  return p != nullptr ? *p : *reinterpret_cast<const ::message::InputDi*>(
      &::message::_InputDi_default_instance_);
}
inline const ::message::InputDi& singlechip_data::inputdi() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.InPutDi)
  return _internal_inputdi();
}
inline void singlechip_data::unsafe_arena_set_allocated_inputdi(
    ::message::InputDi* inputdi) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(inputdi_);
  }
  inputdi_ = inputdi;
  if (inputdi) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.singlechip_data.InPutDi)
}
inline ::message::InputDi* singlechip_data::release_inputdi() {
  _has_bits_[0] &= ~0x00000001u;
  ::message::InputDi* temp = inputdi_;
  inputdi_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::message::InputDi* singlechip_data::unsafe_arena_release_inputdi() {
  // @@protoc_insertion_point(field_release:message.singlechip_data.InPutDi)
  _has_bits_[0] &= ~0x00000001u;
  ::message::InputDi* temp = inputdi_;
  inputdi_ = nullptr;
  return temp;
}
inline ::message::InputDi* singlechip_data::_internal_mutable_inputdi() {
  _has_bits_[0] |= 0x00000001u;
  if (inputdi_ == nullptr) {
    auto* p = CreateMaybeMessage<::message::InputDi>(GetArena());
    inputdi_ = p;
  }
  return inputdi_;
}
inline ::message::InputDi* singlechip_data::mutable_inputdi() {
  // @@protoc_insertion_point(field_mutable:message.singlechip_data.InPutDi)
  return _internal_mutable_inputdi();
}
inline void singlechip_data::set_allocated_inputdi(::message::InputDi* inputdi) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete inputdi_;
  }
  if (inputdi) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(inputdi);
    if (message_arena != submessage_arena) {
      inputdi = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, inputdi, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  inputdi_ = inputdi;
  // @@protoc_insertion_point(field_set_allocated:message.singlechip_data.InPutDi)
}

// required int32 ResetFlag = 5;
inline bool singlechip_data::_internal_has_resetflag() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool singlechip_data::has_resetflag() const {
  return _internal_has_resetflag();
}
inline void singlechip_data::clear_resetflag() {
  resetflag_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_resetflag() const {
  return resetflag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::resetflag() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.ResetFlag)
  return _internal_resetflag();
}
inline void singlechip_data::_internal_set_resetflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000010u;
  resetflag_ = value;
}
inline void singlechip_data::set_resetflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_resetflag(value);
  // @@protoc_insertion_point(field_set:message.singlechip_data.ResetFlag)
}

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

// required int32 InsideExistenceFlag = 7;
inline bool singlechip_data::_internal_has_insideexistenceflag() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool singlechip_data::has_insideexistenceflag() const {
  return _internal_has_insideexistenceflag();
}
inline void singlechip_data::clear_insideexistenceflag() {
  insideexistenceflag_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_insideexistenceflag() const {
  return insideexistenceflag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::insideexistenceflag() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.InsideExistenceFlag)
  return _internal_insideexistenceflag();
}
inline void singlechip_data::_internal_set_insideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000040u;
  insideexistenceflag_ = value;
}
inline void singlechip_data::set_insideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_insideexistenceflag(value);
  // @@protoc_insertion_point(field_set:message.singlechip_data.InsideExistenceFlag)
}

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

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

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

// required int32 StopFlag = 11;
inline bool singlechip_data::_internal_has_stopflag() const {
  bool value = (_has_bits_[0] & 0x00000400u) != 0;
  return value;
}
inline bool singlechip_data::has_stopflag() const {
  return _internal_has_stopflag();
}
inline void singlechip_data::clear_stopflag() {
  stopflag_ = 0;
  _has_bits_[0] &= ~0x00000400u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_stopflag() const {
  return stopflag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::stopflag() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.StopFlag)
  return _internal_stopflag();
}
inline void singlechip_data::_internal_set_stopflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000400u;
  stopflag_ = value;
}
inline void singlechip_data::set_stopflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_stopflag(value);
  // @@protoc_insertion_point(field_set:message.singlechip_data.StopFlag)
}

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

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

// required int32 DispatchFinishFlag = 14;
inline bool singlechip_data::_internal_has_dispatchfinishflag() const {
  bool value = (_has_bits_[0] & 0x00002000u) != 0;
  return value;
}
inline bool singlechip_data::has_dispatchfinishflag() const {
  return _internal_has_dispatchfinishflag();
}
inline void singlechip_data::clear_dispatchfinishflag() {
  dispatchfinishflag_ = 0;
  _has_bits_[0] &= ~0x00002000u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_dispatchfinishflag() const {
  return dispatchfinishflag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::dispatchfinishflag() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.DispatchFinishFlag)
  return _internal_dispatchfinishflag();
}
inline void singlechip_data::_internal_set_dispatchfinishflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00002000u;
  dispatchfinishflag_ = value;
}
inline void singlechip_data::set_dispatchfinishflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_dispatchfinishflag(value);
  // @@protoc_insertion_point(field_set:message.singlechip_data.DispatchFinishFlag)
}

// required int32 OutsideExistenceFlag = 15;
inline bool singlechip_data::_internal_has_outsideexistenceflag() const {
  bool value = (_has_bits_[0] & 0x00004000u) != 0;
  return value;
}
inline bool singlechip_data::has_outsideexistenceflag() const {
  return _internal_has_outsideexistenceflag();
}
inline void singlechip_data::clear_outsideexistenceflag() {
  outsideexistenceflag_ = 0;
  _has_bits_[0] &= ~0x00004000u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::_internal_outsideexistenceflag() const {
  return outsideexistenceflag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 singlechip_data::outsideexistenceflag() const {
  // @@protoc_insertion_point(field_get:message.singlechip_data.OutsideExistenceFlag)
  return _internal_outsideexistenceflag();
}
inline void singlechip_data::_internal_set_outsideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00004000u;
  outsideexistenceflag_ = value;
}
inline void singlechip_data::set_outsideexistenceflag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_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::_internal_has_base_info() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || base_info_ != nullptr);
  return value;
}
inline bool terminal_status_msg::has_base_info() const {
  return _internal_has_base_info();
}
inline const ::message::Base_info& terminal_status_msg::_internal_base_info() const {
  const ::message::Base_info* p = base_info_;
  return p != nullptr ? *p : *reinterpret_cast<const ::message::Base_info*>(
      &::message::_Base_info_default_instance_);
}
inline const ::message::Base_info& terminal_status_msg::base_info() const {
  // @@protoc_insertion_point(field_get:message.terminal_status_msg.base_info)
  return _internal_base_info();
}
inline void terminal_status_msg::unsafe_arena_set_allocated_base_info(
    ::message::Base_info* base_info) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(base_info_);
  }
  base_info_ = base_info;
  if (base_info) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.terminal_status_msg.base_info)
}
inline ::message::Base_info* terminal_status_msg::release_base_info() {
  _has_bits_[0] &= ~0x00000001u;
  ::message::Base_info* temp = base_info_;
  base_info_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::message::Base_info* terminal_status_msg::unsafe_arena_release_base_info() {
  // @@protoc_insertion_point(field_release:message.terminal_status_msg.base_info)
  _has_bits_[0] &= ~0x00000001u;
  ::message::Base_info* temp = base_info_;
  base_info_ = nullptr;
  return temp;
}
inline ::message::Base_info* terminal_status_msg::_internal_mutable_base_info() {
  _has_bits_[0] |= 0x00000001u;
  if (base_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::message::Base_info>(GetArena());
    base_info_ = p;
  }
  return base_info_;
}
inline ::message::Base_info* terminal_status_msg::mutable_base_info() {
  // @@protoc_insertion_point(field_mutable:message.terminal_status_msg.base_info)
  return _internal_mutable_base_info();
}
inline void terminal_status_msg::set_allocated_base_info(::message::Base_info* base_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(base_info_);
  }
  if (base_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(base_info)->GetArena();
    if (message_arena != submessage_arena) {
      base_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, base_info, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  base_info_ = base_info;
  // @@protoc_insertion_point(field_set_allocated:message.terminal_status_msg.base_info)
}

// required int32 terminal_id = 2;
inline bool terminal_status_msg::_internal_has_terminal_id() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool terminal_status_msg::has_terminal_id() const {
  return _internal_has_terminal_id();
}
inline void terminal_status_msg::clear_terminal_id() {
  terminal_id_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 terminal_status_msg::_internal_terminal_id() const {
  return terminal_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 terminal_status_msg::terminal_id() const {
  // @@protoc_insertion_point(field_get:message.terminal_status_msg.terminal_id)
  return _internal_terminal_id();
}
inline void terminal_status_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  terminal_id_ = value;
}
inline void terminal_status_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_terminal_id(value);
  // @@protoc_insertion_point(field_set:message.terminal_status_msg.terminal_id)
}

// required .message.singlechip_data singlechipData = 3;
inline bool terminal_status_msg::_internal_has_singlechipdata() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || singlechipdata_ != nullptr);
  return value;
}
inline bool terminal_status_msg::has_singlechipdata() const {
  return _internal_has_singlechipdata();
}
inline void terminal_status_msg::clear_singlechipdata() {
  if (singlechipdata_ != nullptr) singlechipdata_->Clear();
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::message::singlechip_data& terminal_status_msg::_internal_singlechipdata() const {
  const ::message::singlechip_data* p = singlechipdata_;
  return p != nullptr ? *p : *reinterpret_cast<const ::message::singlechip_data*>(
      &::message::_singlechip_data_default_instance_);
}
inline const ::message::singlechip_data& terminal_status_msg::singlechipdata() const {
  // @@protoc_insertion_point(field_get:message.terminal_status_msg.singlechipData)
  return _internal_singlechipdata();
}
inline void terminal_status_msg::unsafe_arena_set_allocated_singlechipdata(
    ::message::singlechip_data* singlechipdata) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(singlechipdata_);
  }
  singlechipdata_ = singlechipdata;
  if (singlechipdata) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.terminal_status_msg.singlechipData)
}
inline ::message::singlechip_data* terminal_status_msg::release_singlechipdata() {
  _has_bits_[0] &= ~0x00000002u;
  ::message::singlechip_data* temp = singlechipdata_;
  singlechipdata_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::message::singlechip_data* terminal_status_msg::unsafe_arena_release_singlechipdata() {
  // @@protoc_insertion_point(field_release:message.terminal_status_msg.singlechipData)
  _has_bits_[0] &= ~0x00000002u;
  ::message::singlechip_data* temp = singlechipdata_;
  singlechipdata_ = nullptr;
  return temp;
}
inline ::message::singlechip_data* terminal_status_msg::_internal_mutable_singlechipdata() {
  _has_bits_[0] |= 0x00000002u;
  if (singlechipdata_ == nullptr) {
    auto* p = CreateMaybeMessage<::message::singlechip_data>(GetArena());
    singlechipdata_ = p;
  }
  return singlechipdata_;
}
inline ::message::singlechip_data* terminal_status_msg::mutable_singlechipdata() {
  // @@protoc_insertion_point(field_mutable:message.terminal_status_msg.singlechipData)
  return _internal_mutable_singlechipdata();
}
inline void terminal_status_msg::set_allocated_singlechipdata(::message::singlechip_data* singlechipdata) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete singlechipdata_;
  }
  if (singlechipdata) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(singlechipdata);
    if (message_arena != submessage_arena) {
      singlechipdata = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, singlechipdata, submessage_arena);
    }
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  singlechipdata_ = singlechipdata;
  // @@protoc_insertion_point(field_set_allocated:message.terminal_status_msg.singlechipData)
}

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace message

PROTOBUF_NAMESPACE_OPEN

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();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_singlechip_5fmsg_2eproto
