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

#include "singlechip_msg.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Base_info_message_5fbase_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_singlechip_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InputDi_singlechip_5fmsg_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_singlechip_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OutputDo_singlechip_5fmsg_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_singlechip_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_singlechip_data_singlechip_5fmsg_2eproto;
namespace message {
class InputDiDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<InputDi> _instance;
} _InputDi_default_instance_;
class OutputDoDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OutputDo> _instance;
} _OutputDo_default_instance_;
class terminal_msgDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<terminal_msg> _instance;
} _terminal_msg_default_instance_;
class singlechip_dataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<singlechip_data> _instance;
} _singlechip_data_default_instance_;
class terminal_status_msgDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<terminal_status_msg> _instance;
} _terminal_status_msg_default_instance_;
}  // namespace message
static void InitDefaultsscc_info_InputDi_singlechip_5fmsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_InputDi_default_instance_;
    new (ptr) ::message::InputDi();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::InputDi::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InputDi_singlechip_5fmsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_InputDi_singlechip_5fmsg_2eproto}, {}};

static void InitDefaultsscc_info_OutputDo_singlechip_5fmsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_OutputDo_default_instance_;
    new (ptr) ::message::OutputDo();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::OutputDo::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OutputDo_singlechip_5fmsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_OutputDo_singlechip_5fmsg_2eproto}, {}};

static void InitDefaultsscc_info_singlechip_data_singlechip_5fmsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_singlechip_data_default_instance_;
    new (ptr) ::message::singlechip_data();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::singlechip_data::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_singlechip_data_singlechip_5fmsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_singlechip_data_singlechip_5fmsg_2eproto}, {
      &scc_info_InputDi_singlechip_5fmsg_2eproto.base,}};

static void InitDefaultsscc_info_terminal_msg_singlechip_5fmsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_terminal_msg_default_instance_;
    new (ptr) ::message::terminal_msg();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::terminal_msg::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_terminal_msg_singlechip_5fmsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_terminal_msg_singlechip_5fmsg_2eproto}, {
      &scc_info_OutputDo_singlechip_5fmsg_2eproto.base,}};

static void InitDefaultsscc_info_terminal_status_msg_singlechip_5fmsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_terminal_status_msg_default_instance_;
    new (ptr) ::message::terminal_status_msg();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::terminal_status_msg::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_terminal_status_msg_singlechip_5fmsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_terminal_status_msg_singlechip_5fmsg_2eproto}, {
      &scc_info_Base_info_message_5fbase_2eproto.base,
      &scc_info_singlechip_data_singlechip_5fmsg_2eproto.base,}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_singlechip_5fmsg_2eproto[5];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_singlechip_5fmsg_2eproto[6];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_singlechip_5fmsg_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_singlechip_5fmsg_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  PROTOBUF_FIELD_OFFSET(::message::InputDi, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di0_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di1_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di2_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di3_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di4_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di5_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di6_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di7_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di8_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di9_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di10_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di11_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di12_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di13_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di14_),
  PROTOBUF_FIELD_OFFSET(::message::InputDi, di15_),
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do0_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do1_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do2_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do3_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do4_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do5_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do6_),
  PROTOBUF_FIELD_OFFSET(::message::OutputDo, do7_),
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  PROTOBUF_FIELD_OFFSET(::message::terminal_msg, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_msg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::message::terminal_msg, terminalid_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_msg, dispatchdirection_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_msg, processcontrol_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_msg, outputdo_),
  1,
  2,
  3,
  0,
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, terminalid_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, dispatchdirection_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, processstatus_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, inputdi_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, resetflag_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, processcontrol_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, insideexistenceflag_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, overborderstatus_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, carheightstatuscurrent_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, carheightstatuspassing_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, stopflag_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, outsidedoorstatus_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, outsidedoorcontrol_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, dispatchfinishflag_),
  PROTOBUF_FIELD_OFFSET(::message::singlechip_data, outsideexistenceflag_),
  1,
  2,
  3,
  0,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  PROTOBUF_FIELD_OFFSET(::message::terminal_status_msg, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_status_msg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::message::terminal_status_msg, base_info_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_status_msg, terminal_id_),
  PROTOBUF_FIELD_OFFSET(::message::terminal_status_msg, singlechipdata_),
  0,
  2,
  1,
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 21, sizeof(::message::InputDi)},
  { 37, 50, sizeof(::message::OutputDo)},
  { 58, 67, sizeof(::message::terminal_msg)},
  { 71, 91, sizeof(::message::singlechip_data)},
  { 106, 114, sizeof(::message::terminal_status_msg)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_InputDi_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_OutputDo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_terminal_msg_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_singlechip_data_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_terminal_status_msg_default_instance_),
};

const char descriptor_table_protodef_singlechip_5fmsg_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\024singlechip_msg.proto\022\007message\032\022message"
  "_base.proto\"\337\001\n\007InputDi\022\013\n\003Di0\030\001 \002(\005\022\013\n\003"
  "Di1\030\002 \002(\005\022\013\n\003Di2\030\003 \002(\005\022\013\n\003Di3\030\004 \002(\005\022\013\n\003D"
  "i4\030\005 \002(\005\022\013\n\003Di5\030\006 \002(\005\022\013\n\003Di6\030\007 \002(\005\022\013\n\003Di"
  "7\030\010 \002(\005\022\013\n\003Di8\030\t \002(\005\022\013\n\003Di9\030\n \002(\005\022\014\n\004Di1"
  "0\030\013 \002(\005\022\014\n\004Di11\030\014 \002(\005\022\014\n\004Di12\030\r \002(\005\022\014\n\004D"
  "i13\030\016 \002(\005\022\014\n\004Di14\030\017 \002(\005\022\014\n\004Di15\030\020 \002(\005\"r\n"
  "\010OutputDo\022\013\n\003Do0\030\001 \002(\005\022\013\n\003Do1\030\002 \002(\005\022\013\n\003D"
  "o2\030\003 \002(\005\022\013\n\003Do3\030\004 \002(\005\022\013\n\003Do4\030\005 \002(\005\022\013\n\003Do"
  "5\030\006 \002(\005\022\013\n\003Do6\030\007 \002(\005\022\013\n\003Do7\030\010 \002(\005\"\224\001\n\014te"
  "rminal_msg\022\022\n\nTerminalID\030\001 \002(\005\022\031\n\021Dispat"
  "chDirection\030\002 \002(\005\0220\n\016ProcessControl\030\003 \002("
  "\0162\030.message.Process_control\022#\n\010OutPutDo\030"
  "\004 \002(\0132\021.message.OutputDo\"\344\004\n\017singlechip_"
  "data\022\022\n\nTerminalID\030\001 \002(\005\022\031\n\021DispatchDire"
  "ction\030\002 \002(\005\022.\n\rProcessStatus\030\003 \002(\0162\027.mes"
  "sage.Process_status\022!\n\007InPutDi\030\004 \002(\0132\020.m"
  "essage.InputDi\022\021\n\tResetFlag\030\005 \002(\005\0220\n\016Pro"
  "cessControl\030\006 \002(\0162\030.message.Process_cont"
  "rol\022\033\n\023InsideExistenceFlag\030\007 \002(\005\0225\n\020Over"
  "BorderStatus\030\010 \002(\0162\033.message.Over_border"
  "_status\022:\n\026CarHeightStatusCurrent\030\t \002(\0162"
  "\032.message.Car_height_status\022:\n\026CarHeight"
  "StatusPassing\030\n \002(\0162\032.message.Car_height"
  "_status\022\020\n\010StopFlag\030\013 \002(\005\0227\n\021OutsideDoor"
  "Status\030\014 \002(\0162\034.message.Outside_door_stat"
  "us\0229\n\022OutsideDoorControl\030\r \002(\0162\035.message"
  ".Outside_door_control\022\032\n\022DispatchFinishF"
  "lag\030\016 \002(\005\022\034\n\024OutsideExistenceFlag\030\017 \002(\005\""
  "\203\001\n\023terminal_status_msg\022%\n\tbase_info\030\001 \002"
  "(\0132\022.message.Base_info\022\023\n\013terminal_id\030\002 "
  "\002(\005\0220\n\016singlechipData\030\003 \002(\0132\030.message.si"
  "nglechip_data*\344\006\n\017Process_control\022\033\n\027PRO"
  "CESS_CONTROL_UNKNOWN\020\000\022\035\n\031PROCESS_CONTRO"
  "L_FULL_AUTO\020\001\022\032\n\026PROCESS_CONTROL_MANUAL\020"
  "\002\022\036\n\032PROCESS_CONTROL_AUTO_CLOSE\020\003\022\035\n\031PRO"
  "CESS_CONTROL_AUTO_OPEN\020\004\022\034\n\030PROCESS_CONT"
  "ROL_TO_READY\020\005\022\031\n\025PROCESS_CONTROL_RESET\020"
  "\007\022\030\n\024PROCESS_CONTROL_STOP\020\010\022\031\n\025PROCESS_C"
  "ONTROL_FAULT\020\t\022\033\n\027PROCESS_CONTROL_INLET_"
  "0\020\n\022\033\n\027PROCESS_CONTROL_INLET_1\020\013\022\033\n\027PROC"
  "ESS_CONTROL_INLET_2\020\014\022\033\n\027PROCESS_CONTROL"
  "_INLET_3\020\r\022\033\n\027PROCESS_CONTROL_INLET_4\020\016\022"
  "\033\n\027PROCESS_CONTROL_INLET_5\020\017\022\033\n\027PROCESS_"
  "CONTROL_INLET_6\020\020\022\033\n\027PROCESS_CONTROL_INL"
  "ET_7\020\021\022\033\n\027PROCESS_CONTROL_INLET_8\020\022\022\033\n\027P"
  "ROCESS_CONTROL_INLET_9\020\023\022\034\n\030PROCESS_CONT"
  "ROL_OUTLET_0\020\036\022\034\n\030PROCESS_CONTROL_OUTLET"
  "_1\020\037\022\034\n\030PROCESS_CONTROL_OUTLET_2\020 \022\034\n\030PR"
  "OCESS_CONTROL_OUTLET_3\020!\022\034\n\030PROCESS_CONT"
  "ROL_OUTLET_4\020\"\022\034\n\030PROCESS_CONTROL_OUTLET"
  "_5\020#\022\034\n\030PROCESS_CONTROL_OUTLET_6\020$\022\034\n\030PR"
  "OCESS_CONTROL_OUTLET_7\020%\022\034\n\030PROCESS_CONT"
  "ROL_OUTLET_8\020&\022\034\n\030PROCESS_CONTROL_OUTLET"
  "_9\020\'*\311\001\n\022Over_border_status\022\036\n\032OVER_BORD"
  "ER_STATUS_UNKNOWN\020\000\022\035\n\031OVER_BORDER_STATU"
  "S_NORMAL\020\001\022\034\n\030OVER_BORDER_STATUS_FRONT\020\002"
  "\022\033\n\027OVER_BORDER_STATUS_BACK\020\003\022\033\n\027OVER_BO"
  "RDER_STATUS_LEFT\020\004\022\034\n\030OVER_BORDER_STATUS"
  "_RIGHT\020\005*\303\001\n\021Car_height_status\022\035\n\031CAR_HE"
  "IGHT_STATUS_UNKNOWN\020\000\022\033\n\027CAR_HEIGHT_STAT"
  "US_SMALL\020\001\022\034\n\030CAR_HEIGHT_STATUS_MEDIUM\020\002"
  "\022\033\n\027CAR_HEIGHT_STATUS_LARGE\020\003\022\032\n\026CAR_HEI"
  "GHT_STATUS_HUGE\020\004\022\033\n\027CAR_HEIGHT_STATUS_F"
  "AULT\020\005*\257\001\n\023Outside_door_status\022\037\n\033OUTSID"
  "E_DOOR_STATUS_UNKNOWN\020\000\022\034\n\030OUTSIDE_DOOR_"
  "STATUS_OPEN\020\001\022\035\n\031OUTSIDE_DOOR_STATUS_CLO"
  "SE\020\002\022\033\n\027OUTSIDE_DOOR_STATUS_RUN\020\003\022\035\n\031OUT"
  "SIDE_DOOR_STATUS_FAULT\020\004*w\n\024Outside_door"
  "_control\022 \n\034OUTSIDE_DOOR_CONTROL_UNKNOWN"
  "\020\000\022\035\n\031OUTSIDE_DOOR_CONTROL_OPEN\020\001\022\036\n\032OUT"
  "SIDE_DOOR_CONTROL_CLOSE\020\002*\306\006\n\016Process_st"
  "atus\022\032\n\026PROCESS_STATUS_UNKNOWN\020\000\022\034\n\030PROC"
  "ESS_STATUS_FULL_AUTO\020\001\022\031\n\025PROCESS_STATUS"
  "_MANUAL\020\002\022\035\n\031PROCESS_STATUS_AUTO_CLOSE\020\003"
  "\022\034\n\030PROCESS_STATUS_AUTO_OPEN\020\004\022\033\n\027PROCES"
  "S_STATUS_TO_READY\020\005\022\030\n\024PROCESS_STATUS_RE"
  "SET\020\007\022\027\n\023PROCESS_STATUS_STOP\020\010\022\030\n\024PROCES"
  "S_STATUS_FAULT\020\t\022\032\n\026PROCESS_STATUS_INLET"
  "_0\020\n\022\032\n\026PROCESS_STATUS_INLET_1\020\013\022\032\n\026PROC"
  "ESS_STATUS_INLET_2\020\014\022\032\n\026PROCESS_STATUS_I"
  "NLET_3\020\r\022\032\n\026PROCESS_STATUS_INLET_4\020\016\022\032\n\026"
  "PROCESS_STATUS_INLET_5\020\017\022\032\n\026PROCESS_STAT"
  "US_INLET_6\020\020\022\032\n\026PROCESS_STATUS_INLET_7\020\021"
  "\022\032\n\026PROCESS_STATUS_INLET_8\020\022\022\032\n\026PROCESS_"
  "STATUS_INLET_9\020\023\022\033\n\027PROCESS_STATUS_OUTLE"
  "T_0\020\036\022\033\n\027PROCESS_STATUS_OUTLET_1\020\037\022\033\n\027PR"
  "OCESS_STATUS_OUTLET_2\020 \022\033\n\027PROCESS_STATU"
  "S_OUTLET_3\020!\022\033\n\027PROCESS_STATUS_OUTLET_4\020"
  "\"\022\033\n\027PROCESS_STATUS_OUTLET_5\020#\022\033\n\027PROCES"
  "S_STATUS_OUTLET_6\020$\022\033\n\027PROCESS_STATUS_OU"
  "TLET_7\020%\022\033\n\027PROCESS_STATUS_OUTLET_8\020&\022\033\n"
  "\027PROCESS_STATUS_OUTLET_9\020\'"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_singlechip_5fmsg_2eproto_deps[1] = {
  &::descriptor_table_message_5fbase_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_singlechip_5fmsg_2eproto_sccs[5] = {
  &scc_info_InputDi_singlechip_5fmsg_2eproto.base,
  &scc_info_OutputDo_singlechip_5fmsg_2eproto.base,
  &scc_info_singlechip_data_singlechip_5fmsg_2eproto.base,
  &scc_info_terminal_msg_singlechip_5fmsg_2eproto.base,
  &scc_info_terminal_status_msg_singlechip_5fmsg_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_singlechip_5fmsg_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_singlechip_5fmsg_2eproto = {
  false, false, descriptor_table_protodef_singlechip_5fmsg_2eproto, "singlechip_msg.proto", 3706,
  &descriptor_table_singlechip_5fmsg_2eproto_once, descriptor_table_singlechip_5fmsg_2eproto_sccs, descriptor_table_singlechip_5fmsg_2eproto_deps, 5, 1,
  schemas, file_default_instances, TableStruct_singlechip_5fmsg_2eproto::offsets,
  file_level_metadata_singlechip_5fmsg_2eproto, 5, file_level_enum_descriptors_singlechip_5fmsg_2eproto, file_level_service_descriptors_singlechip_5fmsg_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_singlechip_5fmsg_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_singlechip_5fmsg_2eproto)), true);
namespace message {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Process_control_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_singlechip_5fmsg_2eproto);
  return file_level_enum_descriptors_singlechip_5fmsg_2eproto[0];
}
bool Process_control_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Over_border_status_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_singlechip_5fmsg_2eproto);
  return file_level_enum_descriptors_singlechip_5fmsg_2eproto[1];
}
bool Over_border_status_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Car_height_status_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_singlechip_5fmsg_2eproto);
  return file_level_enum_descriptors_singlechip_5fmsg_2eproto[2];
}
bool Car_height_status_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Outside_door_status_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_singlechip_5fmsg_2eproto);
  return file_level_enum_descriptors_singlechip_5fmsg_2eproto[3];
}
bool Outside_door_status_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Outside_door_control_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_singlechip_5fmsg_2eproto);
  return file_level_enum_descriptors_singlechip_5fmsg_2eproto[4];
}
bool Outside_door_control_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Process_status_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_singlechip_5fmsg_2eproto);
  return file_level_enum_descriptors_singlechip_5fmsg_2eproto[5];
}
bool Process_status_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
      return true;
    default:
      return false;
  }
}


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

void InputDi::InitAsDefaultInstance() {
}
class InputDi::_Internal {
 public:
  using HasBits = decltype(std::declval<InputDi>()._has_bits_);
  static void set_has_di0(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_di1(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_di2(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_di3(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_di4(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_di5(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_di6(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_di7(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_di8(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_di9(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static void set_has_di10(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_di11(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static void set_has_di12(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static void set_has_di13(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
  static void set_has_di14(HasBits* has_bits) {
    (*has_bits)[0] |= 16384u;
  }
  static void set_has_di15(HasBits* has_bits) {
    (*has_bits)[0] |= 32768u;
  }
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x0000ffff) ^ 0x0000ffff) != 0;
  }
};

InputDi::InputDi(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:message.InputDi)
}
InputDi::InputDi(const InputDi& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&di0_, &from.di0_,
    static_cast<size_t>(reinterpret_cast<char*>(&di15_) -
    reinterpret_cast<char*>(&di0_)) + sizeof(di15_));
  // @@protoc_insertion_point(copy_constructor:message.InputDi)
}

void InputDi::SharedCtor() {
  ::memset(&di0_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&di15_) -
      reinterpret_cast<char*>(&di0_)) + sizeof(di15_));
}

InputDi::~InputDi() {
  // @@protoc_insertion_point(destructor:message.InputDi)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void InputDi::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void InputDi::ArenaDtor(void* object) {
  InputDi* _this = reinterpret_cast< InputDi* >(object);
  (void)_this;
}
void InputDi::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void InputDi::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const InputDi& InputDi::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_InputDi_singlechip_5fmsg_2eproto.base);
  return *internal_default_instance();
}


void InputDi::Clear() {
// @@protoc_insertion_point(message_clear_start:message.InputDi)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&di0_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&di7_) -
        reinterpret_cast<char*>(&di0_)) + sizeof(di7_));
  }
  if (cached_has_bits & 0x0000ff00u) {
    ::memset(&di8_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&di15_) -
        reinterpret_cast<char*>(&di8_)) + sizeof(di15_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* InputDi::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // required int32 Di0 = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _Internal::set_has_di0(&has_bits);
          di0_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di1 = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          _Internal::set_has_di1(&has_bits);
          di1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          _Internal::set_has_di2(&has_bits);
          di2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di3 = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          _Internal::set_has_di3(&has_bits);
          di3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di4 = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          _Internal::set_has_di4(&has_bits);
          di4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di5 = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          _Internal::set_has_di5(&has_bits);
          di5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di6 = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          _Internal::set_has_di6(&has_bits);
          di6_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di7 = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          _Internal::set_has_di7(&has_bits);
          di7_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di8 = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          _Internal::set_has_di8(&has_bits);
          di8_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di9 = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          _Internal::set_has_di9(&has_bits);
          di9_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di10 = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          _Internal::set_has_di10(&has_bits);
          di10_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di11 = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          _Internal::set_has_di11(&has_bits);
          di11_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di12 = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          _Internal::set_has_di12(&has_bits);
          di12_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di13 = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
          _Internal::set_has_di13(&has_bits);
          di13_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di14 = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          _Internal::set_has_di14(&has_bits);
          di14_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Di15 = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
          _Internal::set_has_di15(&has_bits);
          di15_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* InputDi::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:message.InputDi)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 Di0 = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_di0(), target);
  }

  // required int32 Di1 = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_di1(), target);
  }

  // required int32 Di2 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_di2(), target);
  }

  // required int32 Di3 = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_di3(), target);
  }

  // required int32 Di4 = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_di4(), target);
  }

  // required int32 Di5 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_di5(), target);
  }

  // required int32 Di6 = 7;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_di6(), target);
  }

  // required int32 Di7 = 8;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_di7(), target);
  }

  // required int32 Di8 = 9;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_di8(), target);
  }

  // required int32 Di9 = 10;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_di9(), target);
  }

  // required int32 Di10 = 11;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_di10(), target);
  }

  // required int32 Di11 = 12;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(12, this->_internal_di11(), target);
  }

  // required int32 Di12 = 13;
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_di12(), target);
  }

  // required int32 Di13 = 14;
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(14, this->_internal_di13(), target);
  }

  // required int32 Di14 = 15;
  if (cached_has_bits & 0x00004000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(15, this->_internal_di14(), target);
  }

  // required int32 Di15 = 16;
  if (cached_has_bits & 0x00008000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(16, this->_internal_di15(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.InputDi)
  return target;
}

size_t InputDi::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.InputDi)
  size_t total_size = 0;

  if (_internal_has_di0()) {
    // required int32 Di0 = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di0());
  }

  if (_internal_has_di1()) {
    // required int32 Di1 = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di1());
  }

  if (_internal_has_di2()) {
    // required int32 Di2 = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di2());
  }

  if (_internal_has_di3()) {
    // required int32 Di3 = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di3());
  }

  if (_internal_has_di4()) {
    // required int32 Di4 = 5;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di4());
  }

  if (_internal_has_di5()) {
    // required int32 Di5 = 6;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di5());
  }

  if (_internal_has_di6()) {
    // required int32 Di6 = 7;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di6());
  }

  if (_internal_has_di7()) {
    // required int32 Di7 = 8;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di7());
  }

  if (_internal_has_di8()) {
    // required int32 Di8 = 9;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di8());
  }

  if (_internal_has_di9()) {
    // required int32 Di9 = 10;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di9());
  }

  if (_internal_has_di10()) {
    // required int32 Di10 = 11;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di10());
  }

  if (_internal_has_di11()) {
    // required int32 Di11 = 12;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di11());
  }

  if (_internal_has_di12()) {
    // required int32 Di12 = 13;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di12());
  }

  if (_internal_has_di13()) {
    // required int32 Di13 = 14;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di13());
  }

  if (_internal_has_di14()) {
    // required int32 Di14 = 15;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di14());
  }

  if (_internal_has_di15()) {
    // required int32 Di15 = 16;
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di15());
  }

  return total_size;
}
size_t InputDi::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:message.InputDi)
  size_t total_size = 0;

  if (((_has_bits_[0] & 0x0000ffff) ^ 0x0000ffff) == 0) {  // All required fields are present.
    // required int32 Di0 = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di0());

    // required int32 Di1 = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di1());

    // required int32 Di2 = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di2());

    // required int32 Di3 = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di3());

    // required int32 Di4 = 5;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di4());

    // required int32 Di5 = 6;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di5());

    // required int32 Di6 = 7;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di6());

    // required int32 Di7 = 8;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di7());

    // required int32 Di8 = 9;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di8());

    // required int32 Di9 = 10;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di9());

    // required int32 Di10 = 11;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di10());

    // required int32 Di11 = 12;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di11());

    // required int32 Di12 = 13;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di12());

    // required int32 Di13 = 14;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di13());

    // required int32 Di14 = 15;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di14());

    // required int32 Di15 = 16;
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_di15());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void InputDi::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.InputDi)
  GOOGLE_DCHECK_NE(&from, this);
  const InputDi* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<InputDi>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.InputDi)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.InputDi)
    MergeFrom(*source);
  }
}

void InputDi::MergeFrom(const InputDi& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.InputDi)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      di0_ = from.di0_;
    }
    if (cached_has_bits & 0x00000002u) {
      di1_ = from.di1_;
    }
    if (cached_has_bits & 0x00000004u) {
      di2_ = from.di2_;
    }
    if (cached_has_bits & 0x00000008u) {
      di3_ = from.di3_;
    }
    if (cached_has_bits & 0x00000010u) {
      di4_ = from.di4_;
    }
    if (cached_has_bits & 0x00000020u) {
      di5_ = from.di5_;
    }
    if (cached_has_bits & 0x00000040u) {
      di6_ = from.di6_;
    }
    if (cached_has_bits & 0x00000080u) {
      di7_ = from.di7_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x0000ff00u) {
    if (cached_has_bits & 0x00000100u) {
      di8_ = from.di8_;
    }
    if (cached_has_bits & 0x00000200u) {
      di9_ = from.di9_;
    }
    if (cached_has_bits & 0x00000400u) {
      di10_ = from.di10_;
    }
    if (cached_has_bits & 0x00000800u) {
      di11_ = from.di11_;
    }
    if (cached_has_bits & 0x00001000u) {
      di12_ = from.di12_;
    }
    if (cached_has_bits & 0x00002000u) {
      di13_ = from.di13_;
    }
    if (cached_has_bits & 0x00004000u) {
      di14_ = from.di14_;
    }
    if (cached_has_bits & 0x00008000u) {
      di15_ = from.di15_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void InputDi::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.InputDi)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void InputDi::CopyFrom(const InputDi& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:message.InputDi)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool InputDi::IsInitialized() const {
  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
  return true;
}

void InputDi::InternalSwap(InputDi* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(InputDi, di15_)
      + sizeof(InputDi::di15_)
      - PROTOBUF_FIELD_OFFSET(InputDi, di0_)>(
          reinterpret_cast<char*>(&di0_),
          reinterpret_cast<char*>(&other->di0_));
}

::PROTOBUF_NAMESPACE_ID::Metadata InputDi::GetMetadata() const {
  return GetMetadataStatic();
}


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

void OutputDo::InitAsDefaultInstance() {
}
class OutputDo::_Internal {
 public:
  using HasBits = decltype(std::declval<OutputDo>()._has_bits_);
  static void set_has_do0(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_do1(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_do2(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_do3(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_do4(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_do5(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_do6(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_do7(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x000000ff) ^ 0x000000ff) != 0;
  }
};

OutputDo::OutputDo(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:message.OutputDo)
}
OutputDo::OutputDo(const OutputDo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&do0_, &from.do0_,
    static_cast<size_t>(reinterpret_cast<char*>(&do7_) -
    reinterpret_cast<char*>(&do0_)) + sizeof(do7_));
  // @@protoc_insertion_point(copy_constructor:message.OutputDo)
}

void OutputDo::SharedCtor() {
  ::memset(&do0_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&do7_) -
      reinterpret_cast<char*>(&do0_)) + sizeof(do7_));
}

OutputDo::~OutputDo() {
  // @@protoc_insertion_point(destructor:message.OutputDo)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OutputDo::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OutputDo::ArenaDtor(void* object) {
  OutputDo* _this = reinterpret_cast< OutputDo* >(object);
  (void)_this;
}
void OutputDo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OutputDo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OutputDo& OutputDo::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OutputDo_singlechip_5fmsg_2eproto.base);
  return *internal_default_instance();
}


void OutputDo::Clear() {
// @@protoc_insertion_point(message_clear_start:message.OutputDo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&do0_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&do7_) -
        reinterpret_cast<char*>(&do0_)) + sizeof(do7_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OutputDo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // required int32 Do0 = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _Internal::set_has_do0(&has_bits);
          do0_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do1 = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          _Internal::set_has_do1(&has_bits);
          do1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          _Internal::set_has_do2(&has_bits);
          do2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do3 = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          _Internal::set_has_do3(&has_bits);
          do3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do4 = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          _Internal::set_has_do4(&has_bits);
          do4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do5 = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          _Internal::set_has_do5(&has_bits);
          do5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do6 = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          _Internal::set_has_do6(&has_bits);
          do6_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 Do7 = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          _Internal::set_has_do7(&has_bits);
          do7_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OutputDo::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:message.OutputDo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 Do0 = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_do0(), target);
  }

  // required int32 Do1 = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_do1(), target);
  }

  // required int32 Do2 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_do2(), target);
  }

  // required int32 Do3 = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_do3(), target);
  }

  // required int32 Do4 = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_do4(), target);
  }

  // required int32 Do5 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_do5(), target);
  }

  // required int32 Do6 = 7;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_do6(), target);
  }

  // required int32 Do7 = 8;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_do7(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.OutputDo)
  return target;
}

size_t OutputDo::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.OutputDo)
  size_t total_size = 0;

  if (_internal_has_do0()) {
    // required int32 Do0 = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do0());
  }

  if (_internal_has_do1()) {
    // required int32 Do1 = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do1());
  }

  if (_internal_has_do2()) {
    // required int32 Do2 = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do2());
  }

  if (_internal_has_do3()) {
    // required int32 Do3 = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do3());
  }

  if (_internal_has_do4()) {
    // required int32 Do4 = 5;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do4());
  }

  if (_internal_has_do5()) {
    // required int32 Do5 = 6;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do5());
  }

  if (_internal_has_do6()) {
    // required int32 Do6 = 7;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do6());
  }

  if (_internal_has_do7()) {
    // required int32 Do7 = 8;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do7());
  }

  return total_size;
}
size_t OutputDo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:message.OutputDo)
  size_t total_size = 0;

  if (((_has_bits_[0] & 0x000000ff) ^ 0x000000ff) == 0) {  // All required fields are present.
    // required int32 Do0 = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do0());

    // required int32 Do1 = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do1());

    // required int32 Do2 = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do2());

    // required int32 Do3 = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do3());

    // required int32 Do4 = 5;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do4());

    // required int32 Do5 = 6;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do5());

    // required int32 Do6 = 7;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do6());

    // required int32 Do7 = 8;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_do7());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OutputDo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.OutputDo)
  GOOGLE_DCHECK_NE(&from, this);
  const OutputDo* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OutputDo>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.OutputDo)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.OutputDo)
    MergeFrom(*source);
  }
}

void OutputDo::MergeFrom(const OutputDo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.OutputDo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      do0_ = from.do0_;
    }
    if (cached_has_bits & 0x00000002u) {
      do1_ = from.do1_;
    }
    if (cached_has_bits & 0x00000004u) {
      do2_ = from.do2_;
    }
    if (cached_has_bits & 0x00000008u) {
      do3_ = from.do3_;
    }
    if (cached_has_bits & 0x00000010u) {
      do4_ = from.do4_;
    }
    if (cached_has_bits & 0x00000020u) {
      do5_ = from.do5_;
    }
    if (cached_has_bits & 0x00000040u) {
      do6_ = from.do6_;
    }
    if (cached_has_bits & 0x00000080u) {
      do7_ = from.do7_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void OutputDo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.OutputDo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OutputDo::CopyFrom(const OutputDo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:message.OutputDo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OutputDo::IsInitialized() const {
  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
  return true;
}

void OutputDo::InternalSwap(OutputDo* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OutputDo, do7_)
      + sizeof(OutputDo::do7_)
      - PROTOBUF_FIELD_OFFSET(OutputDo, do0_)>(
          reinterpret_cast<char*>(&do0_),
          reinterpret_cast<char*>(&other->do0_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OutputDo::GetMetadata() const {
  return GetMetadataStatic();
}


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

void terminal_msg::InitAsDefaultInstance() {
  ::message::_terminal_msg_default_instance_._instance.get_mutable()->outputdo_ = const_cast< ::message::OutputDo*>(
      ::message::OutputDo::internal_default_instance());
}
class terminal_msg::_Internal {
 public:
  using HasBits = decltype(std::declval<terminal_msg>()._has_bits_);
  static void set_has_terminalid(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_dispatchdirection(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_processcontrol(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::message::OutputDo& outputdo(const terminal_msg* msg);
  static void set_has_outputdo(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x0000000f) ^ 0x0000000f) != 0;
  }
};

const ::message::OutputDo&
terminal_msg::_Internal::outputdo(const terminal_msg* msg) {
  return *msg->outputdo_;
}
terminal_msg::terminal_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:message.terminal_msg)
}
terminal_msg::terminal_msg(const terminal_msg& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_outputdo()) {
    outputdo_ = new ::message::OutputDo(*from.outputdo_);
  } else {
    outputdo_ = nullptr;
  }
  ::memcpy(&terminalid_, &from.terminalid_,
    static_cast<size_t>(reinterpret_cast<char*>(&processcontrol_) -
    reinterpret_cast<char*>(&terminalid_)) + sizeof(processcontrol_));
  // @@protoc_insertion_point(copy_constructor:message.terminal_msg)
}

void terminal_msg::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_terminal_msg_singlechip_5fmsg_2eproto.base);
  ::memset(&outputdo_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&processcontrol_) -
      reinterpret_cast<char*>(&outputdo_)) + sizeof(processcontrol_));
}

terminal_msg::~terminal_msg() {
  // @@protoc_insertion_point(destructor:message.terminal_msg)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void terminal_msg::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete outputdo_;
}

void terminal_msg::ArenaDtor(void* object) {
  terminal_msg* _this = reinterpret_cast< terminal_msg* >(object);
  (void)_this;
}
void terminal_msg::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void terminal_msg::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const terminal_msg& terminal_msg::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_terminal_msg_singlechip_5fmsg_2eproto.base);
  return *internal_default_instance();
}


void terminal_msg::Clear() {
// @@protoc_insertion_point(message_clear_start:message.terminal_msg)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(outputdo_ != nullptr);
    outputdo_->Clear();
  }
  if (cached_has_bits & 0x0000000eu) {
    ::memset(&terminalid_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&processcontrol_) -
        reinterpret_cast<char*>(&terminalid_)) + sizeof(processcontrol_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* terminal_msg::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // required int32 TerminalID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _Internal::set_has_terminalid(&has_bits);
          terminalid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 DispatchDirection = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          _Internal::set_has_dispatchdirection(&has_bits);
          dispatchdirection_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required .message.Process_control ProcessControl = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Process_control_IsValid(val))) {
            _internal_set_processcontrol(static_cast<::message::Process_control>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(3, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required .message.OutputDo OutPutDo = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_outputdo(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* terminal_msg::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:message.terminal_msg)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 TerminalID = 1;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_terminalid(), target);
  }

  // required int32 DispatchDirection = 2;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_dispatchdirection(), target);
  }

  // required .message.Process_control ProcessControl = 3;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_processcontrol(), target);
  }

  // required .message.OutputDo OutPutDo = 4;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::outputdo(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.terminal_msg)
  return target;
}

size_t terminal_msg::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.terminal_msg)
  size_t total_size = 0;

  if (_internal_has_outputdo()) {
    // required .message.OutputDo OutPutDo = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *outputdo_);
  }

  if (_internal_has_terminalid()) {
    // required int32 TerminalID = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_terminalid());
  }

  if (_internal_has_dispatchdirection()) {
    // required int32 DispatchDirection = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_dispatchdirection());
  }

  if (_internal_has_processcontrol()) {
    // required .message.Process_control ProcessControl = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_processcontrol());
  }

  return total_size;
}
size_t terminal_msg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:message.terminal_msg)
  size_t total_size = 0;

  if (((_has_bits_[0] & 0x0000000f) ^ 0x0000000f) == 0) {  // All required fields are present.
    // required .message.OutputDo OutPutDo = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *outputdo_);

    // required int32 TerminalID = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_terminalid());

    // required int32 DispatchDirection = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_dispatchdirection());

    // required .message.Process_control ProcessControl = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_processcontrol());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void terminal_msg::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.terminal_msg)
  GOOGLE_DCHECK_NE(&from, this);
  const terminal_msg* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<terminal_msg>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.terminal_msg)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.terminal_msg)
    MergeFrom(*source);
  }
}

void terminal_msg::MergeFrom(const terminal_msg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.terminal_msg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_outputdo()->::message::OutputDo::MergeFrom(from._internal_outputdo());
    }
    if (cached_has_bits & 0x00000002u) {
      terminalid_ = from.terminalid_;
    }
    if (cached_has_bits & 0x00000004u) {
      dispatchdirection_ = from.dispatchdirection_;
    }
    if (cached_has_bits & 0x00000008u) {
      processcontrol_ = from.processcontrol_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void terminal_msg::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.terminal_msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void terminal_msg::CopyFrom(const terminal_msg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:message.terminal_msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool terminal_msg::IsInitialized() const {
  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
  if (_internal_has_outputdo()) {
    if (!outputdo_->IsInitialized()) return false;
  }
  return true;
}

void terminal_msg::InternalSwap(terminal_msg* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(terminal_msg, processcontrol_)
      + sizeof(terminal_msg::processcontrol_)
      - PROTOBUF_FIELD_OFFSET(terminal_msg, outputdo_)>(
          reinterpret_cast<char*>(&outputdo_),
          reinterpret_cast<char*>(&other->outputdo_));
}

::PROTOBUF_NAMESPACE_ID::Metadata terminal_msg::GetMetadata() const {
  return GetMetadataStatic();
}


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

void singlechip_data::InitAsDefaultInstance() {
  ::message::_singlechip_data_default_instance_._instance.get_mutable()->inputdi_ = const_cast< ::message::InputDi*>(
      ::message::InputDi::internal_default_instance());
}
class singlechip_data::_Internal {
 public:
  using HasBits = decltype(std::declval<singlechip_data>()._has_bits_);
  static void set_has_terminalid(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_dispatchdirection(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_processstatus(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::message::InputDi& inputdi(const singlechip_data* msg);
  static void set_has_inputdi(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_resetflag(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_processcontrol(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_insideexistenceflag(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_overborderstatus(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_carheightstatuscurrent(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_carheightstatuspassing(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static void set_has_stopflag(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_outsidedoorstatus(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static void set_has_outsidedoorcontrol(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static void set_has_dispatchfinishflag(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
  static void set_has_outsideexistenceflag(HasBits* has_bits) {
    (*has_bits)[0] |= 16384u;
  }
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00007fff) ^ 0x00007fff) != 0;
  }
};

const ::message::InputDi&
singlechip_data::_Internal::inputdi(const singlechip_data* msg) {
  return *msg->inputdi_;
}
singlechip_data::singlechip_data(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:message.singlechip_data)
}
singlechip_data::singlechip_data(const singlechip_data& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_inputdi()) {
    inputdi_ = new ::message::InputDi(*from.inputdi_);
  } else {
    inputdi_ = nullptr;
  }
  ::memcpy(&terminalid_, &from.terminalid_,
    static_cast<size_t>(reinterpret_cast<char*>(&outsideexistenceflag_) -
    reinterpret_cast<char*>(&terminalid_)) + sizeof(outsideexistenceflag_));
  // @@protoc_insertion_point(copy_constructor:message.singlechip_data)
}

void singlechip_data::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_singlechip_data_singlechip_5fmsg_2eproto.base);
  ::memset(&inputdi_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&outsideexistenceflag_) -
      reinterpret_cast<char*>(&inputdi_)) + sizeof(outsideexistenceflag_));
}

singlechip_data::~singlechip_data() {
  // @@protoc_insertion_point(destructor:message.singlechip_data)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void singlechip_data::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete inputdi_;
}

void singlechip_data::ArenaDtor(void* object) {
  singlechip_data* _this = reinterpret_cast< singlechip_data* >(object);
  (void)_this;
}
void singlechip_data::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void singlechip_data::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const singlechip_data& singlechip_data::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_singlechip_data_singlechip_5fmsg_2eproto.base);
  return *internal_default_instance();
}


void singlechip_data::Clear() {
// @@protoc_insertion_point(message_clear_start:message.singlechip_data)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(inputdi_ != nullptr);
    inputdi_->Clear();
  }
  if (cached_has_bits & 0x000000feu) {
    ::memset(&terminalid_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&overborderstatus_) -
        reinterpret_cast<char*>(&terminalid_)) + sizeof(overborderstatus_));
  }
  if (cached_has_bits & 0x00007f00u) {
    ::memset(&carheightstatuscurrent_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&outsideexistenceflag_) -
        reinterpret_cast<char*>(&carheightstatuscurrent_)) + sizeof(outsideexistenceflag_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* singlechip_data::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // required int32 TerminalID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          _Internal::set_has_terminalid(&has_bits);
          terminalid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 DispatchDirection = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          _Internal::set_has_dispatchdirection(&has_bits);
          dispatchdirection_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required .message.Process_status ProcessStatus = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Process_status_IsValid(val))) {
            _internal_set_processstatus(static_cast<::message::Process_status>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(3, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required .message.InputDi InPutDi = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_inputdi(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 ResetFlag = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          _Internal::set_has_resetflag(&has_bits);
          resetflag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required .message.Process_control ProcessControl = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Process_control_IsValid(val))) {
            _internal_set_processcontrol(static_cast<::message::Process_control>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(6, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required int32 InsideExistenceFlag = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          _Internal::set_has_insideexistenceflag(&has_bits);
          insideexistenceflag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required .message.Over_border_status OverBorderStatus = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Over_border_status_IsValid(val))) {
            _internal_set_overborderstatus(static_cast<::message::Over_border_status>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(8, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required .message.Car_height_status CarHeightStatusCurrent = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Car_height_status_IsValid(val))) {
            _internal_set_carheightstatuscurrent(static_cast<::message::Car_height_status>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(9, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required .message.Car_height_status CarHeightStatusPassing = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Car_height_status_IsValid(val))) {
            _internal_set_carheightstatuspassing(static_cast<::message::Car_height_status>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(10, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required int32 StopFlag = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          _Internal::set_has_stopflag(&has_bits);
          stopflag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required .message.Outside_door_status OutsideDoorStatus = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Outside_door_status_IsValid(val))) {
            _internal_set_outsidedoorstatus(static_cast<::message::Outside_door_status>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(12, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required .message.Outside_door_control OutsideDoorControl = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::message::Outside_door_control_IsValid(val))) {
            _internal_set_outsidedoorcontrol(static_cast<::message::Outside_door_control>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(13, val, mutable_unknown_fields());
          }
        } else goto handle_unusual;
        continue;
      // required int32 DispatchFinishFlag = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
          _Internal::set_has_dispatchfinishflag(&has_bits);
          dispatchfinishflag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 OutsideExistenceFlag = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          _Internal::set_has_outsideexistenceflag(&has_bits);
          outsideexistenceflag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* singlechip_data::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:message.singlechip_data)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 TerminalID = 1;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_terminalid(), target);
  }

  // required int32 DispatchDirection = 2;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_dispatchdirection(), target);
  }

  // required .message.Process_status ProcessStatus = 3;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_processstatus(), target);
  }

  // required .message.InputDi InPutDi = 4;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::inputdi(this), target, stream);
  }

  // required int32 ResetFlag = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_resetflag(), target);
  }

  // required .message.Process_control ProcessControl = 6;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      6, this->_internal_processcontrol(), target);
  }

  // required int32 InsideExistenceFlag = 7;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_insideexistenceflag(), target);
  }

  // required .message.Over_border_status OverBorderStatus = 8;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      8, this->_internal_overborderstatus(), target);
  }

  // required .message.Car_height_status CarHeightStatusCurrent = 9;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      9, this->_internal_carheightstatuscurrent(), target);
  }

  // required .message.Car_height_status CarHeightStatusPassing = 10;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_carheightstatuspassing(), target);
  }

  // required int32 StopFlag = 11;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_stopflag(), target);
  }

  // required .message.Outside_door_status OutsideDoorStatus = 12;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      12, this->_internal_outsidedoorstatus(), target);
  }

  // required .message.Outside_door_control OutsideDoorControl = 13;
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      13, this->_internal_outsidedoorcontrol(), target);
  }

  // required int32 DispatchFinishFlag = 14;
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(14, this->_internal_dispatchfinishflag(), target);
  }

  // required int32 OutsideExistenceFlag = 15;
  if (cached_has_bits & 0x00004000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(15, this->_internal_outsideexistenceflag(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.singlechip_data)
  return target;
}

size_t singlechip_data::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.singlechip_data)
  size_t total_size = 0;

  if (_internal_has_inputdi()) {
    // required .message.InputDi InPutDi = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *inputdi_);
  }

  if (_internal_has_terminalid()) {
    // required int32 TerminalID = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_terminalid());
  }

  if (_internal_has_dispatchdirection()) {
    // required int32 DispatchDirection = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_dispatchdirection());
  }

  if (_internal_has_processstatus()) {
    // required .message.Process_status ProcessStatus = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_processstatus());
  }

  if (_internal_has_resetflag()) {
    // required int32 ResetFlag = 5;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_resetflag());
  }

  if (_internal_has_processcontrol()) {
    // required .message.Process_control ProcessControl = 6;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_processcontrol());
  }

  if (_internal_has_insideexistenceflag()) {
    // required int32 InsideExistenceFlag = 7;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_insideexistenceflag());
  }

  if (_internal_has_overborderstatus()) {
    // required .message.Over_border_status OverBorderStatus = 8;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_overborderstatus());
  }

  if (_internal_has_carheightstatuscurrent()) {
    // required .message.Car_height_status CarHeightStatusCurrent = 9;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_carheightstatuscurrent());
  }

  if (_internal_has_carheightstatuspassing()) {
    // required .message.Car_height_status CarHeightStatusPassing = 10;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_carheightstatuspassing());
  }

  if (_internal_has_stopflag()) {
    // required int32 StopFlag = 11;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_stopflag());
  }

  if (_internal_has_outsidedoorstatus()) {
    // required .message.Outside_door_status OutsideDoorStatus = 12;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_outsidedoorstatus());
  }

  if (_internal_has_outsidedoorcontrol()) {
    // required .message.Outside_door_control OutsideDoorControl = 13;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_outsidedoorcontrol());
  }

  if (_internal_has_dispatchfinishflag()) {
    // required int32 DispatchFinishFlag = 14;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_dispatchfinishflag());
  }

  if (_internal_has_outsideexistenceflag()) {
    // required int32 OutsideExistenceFlag = 15;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_outsideexistenceflag());
  }

  return total_size;
}
size_t singlechip_data::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:message.singlechip_data)
  size_t total_size = 0;

  if (((_has_bits_[0] & 0x00007fff) ^ 0x00007fff) == 0) {  // All required fields are present.
    // required .message.InputDi InPutDi = 4;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *inputdi_);

    // required int32 TerminalID = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_terminalid());

    // required int32 DispatchDirection = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_dispatchdirection());

    // required .message.Process_status ProcessStatus = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_processstatus());

    // required int32 ResetFlag = 5;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_resetflag());

    // required .message.Process_control ProcessControl = 6;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_processcontrol());

    // required int32 InsideExistenceFlag = 7;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_insideexistenceflag());

    // required .message.Over_border_status OverBorderStatus = 8;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_overborderstatus());

    // required .message.Car_height_status CarHeightStatusCurrent = 9;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_carheightstatuscurrent());

    // required .message.Car_height_status CarHeightStatusPassing = 10;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_carheightstatuspassing());

    // required int32 StopFlag = 11;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_stopflag());

    // required .message.Outside_door_status OutsideDoorStatus = 12;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_outsidedoorstatus());

    // required .message.Outside_door_control OutsideDoorControl = 13;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_outsidedoorcontrol());

    // required int32 DispatchFinishFlag = 14;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_dispatchfinishflag());

    // required int32 OutsideExistenceFlag = 15;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_outsideexistenceflag());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void singlechip_data::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.singlechip_data)
  GOOGLE_DCHECK_NE(&from, this);
  const singlechip_data* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<singlechip_data>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.singlechip_data)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.singlechip_data)
    MergeFrom(*source);
  }
}

void singlechip_data::MergeFrom(const singlechip_data& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.singlechip_data)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_inputdi()->::message::InputDi::MergeFrom(from._internal_inputdi());
    }
    if (cached_has_bits & 0x00000002u) {
      terminalid_ = from.terminalid_;
    }
    if (cached_has_bits & 0x00000004u) {
      dispatchdirection_ = from.dispatchdirection_;
    }
    if (cached_has_bits & 0x00000008u) {
      processstatus_ = from.processstatus_;
    }
    if (cached_has_bits & 0x00000010u) {
      resetflag_ = from.resetflag_;
    }
    if (cached_has_bits & 0x00000020u) {
      processcontrol_ = from.processcontrol_;
    }
    if (cached_has_bits & 0x00000040u) {
      insideexistenceflag_ = from.insideexistenceflag_;
    }
    if (cached_has_bits & 0x00000080u) {
      overborderstatus_ = from.overborderstatus_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00007f00u) {
    if (cached_has_bits & 0x00000100u) {
      carheightstatuscurrent_ = from.carheightstatuscurrent_;
    }
    if (cached_has_bits & 0x00000200u) {
      carheightstatuspassing_ = from.carheightstatuspassing_;
    }
    if (cached_has_bits & 0x00000400u) {
      stopflag_ = from.stopflag_;
    }
    if (cached_has_bits & 0x00000800u) {
      outsidedoorstatus_ = from.outsidedoorstatus_;
    }
    if (cached_has_bits & 0x00001000u) {
      outsidedoorcontrol_ = from.outsidedoorcontrol_;
    }
    if (cached_has_bits & 0x00002000u) {
      dispatchfinishflag_ = from.dispatchfinishflag_;
    }
    if (cached_has_bits & 0x00004000u) {
      outsideexistenceflag_ = from.outsideexistenceflag_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void singlechip_data::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.singlechip_data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void singlechip_data::CopyFrom(const singlechip_data& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:message.singlechip_data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool singlechip_data::IsInitialized() const {
  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
  if (_internal_has_inputdi()) {
    if (!inputdi_->IsInitialized()) return false;
  }
  return true;
}

void singlechip_data::InternalSwap(singlechip_data* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(singlechip_data, outsideexistenceflag_)
      + sizeof(singlechip_data::outsideexistenceflag_)
      - PROTOBUF_FIELD_OFFSET(singlechip_data, inputdi_)>(
          reinterpret_cast<char*>(&inputdi_),
          reinterpret_cast<char*>(&other->inputdi_));
}

::PROTOBUF_NAMESPACE_ID::Metadata singlechip_data::GetMetadata() const {
  return GetMetadataStatic();
}


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

void terminal_status_msg::InitAsDefaultInstance() {
  ::message::_terminal_status_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
      ::message::Base_info::internal_default_instance());
  ::message::_terminal_status_msg_default_instance_._instance.get_mutable()->singlechipdata_ = const_cast< ::message::singlechip_data*>(
      ::message::singlechip_data::internal_default_instance());
}
class terminal_status_msg::_Internal {
 public:
  using HasBits = decltype(std::declval<terminal_status_msg>()._has_bits_);
  static const ::message::Base_info& base_info(const terminal_status_msg* msg);
  static void set_has_base_info(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_terminal_id(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::message::singlechip_data& singlechipdata(const terminal_status_msg* msg);
  static void set_has_singlechipdata(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000007) ^ 0x00000007) != 0;
  }
};

const ::message::Base_info&
terminal_status_msg::_Internal::base_info(const terminal_status_msg* msg) {
  return *msg->base_info_;
}
const ::message::singlechip_data&
terminal_status_msg::_Internal::singlechipdata(const terminal_status_msg* msg) {
  return *msg->singlechipdata_;
}
void terminal_status_msg::clear_base_info() {
  if (base_info_ != nullptr) base_info_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
terminal_status_msg::terminal_status_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:message.terminal_status_msg)
}
terminal_status_msg::terminal_status_msg(const terminal_status_msg& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base_info()) {
    base_info_ = new ::message::Base_info(*from.base_info_);
  } else {
    base_info_ = nullptr;
  }
  if (from._internal_has_singlechipdata()) {
    singlechipdata_ = new ::message::singlechip_data(*from.singlechipdata_);
  } else {
    singlechipdata_ = nullptr;
  }
  terminal_id_ = from.terminal_id_;
  // @@protoc_insertion_point(copy_constructor:message.terminal_status_msg)
}

void terminal_status_msg::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_terminal_status_msg_singlechip_5fmsg_2eproto.base);
  ::memset(&base_info_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&terminal_id_) -
      reinterpret_cast<char*>(&base_info_)) + sizeof(terminal_id_));
}

terminal_status_msg::~terminal_status_msg() {
  // @@protoc_insertion_point(destructor:message.terminal_status_msg)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void terminal_status_msg::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete base_info_;
  if (this != internal_default_instance()) delete singlechipdata_;
}

void terminal_status_msg::ArenaDtor(void* object) {
  terminal_status_msg* _this = reinterpret_cast< terminal_status_msg* >(object);
  (void)_this;
}
void terminal_status_msg::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void terminal_status_msg::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const terminal_status_msg& terminal_status_msg::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_terminal_status_msg_singlechip_5fmsg_2eproto.base);
  return *internal_default_instance();
}


void terminal_status_msg::Clear() {
// @@protoc_insertion_point(message_clear_start:message.terminal_status_msg)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(base_info_ != nullptr);
      base_info_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(singlechipdata_ != nullptr);
      singlechipdata_->Clear();
    }
  }
  terminal_id_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* terminal_status_msg::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // required .message.Base_info base_info = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base_info(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required int32 terminal_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          _Internal::set_has_terminal_id(&has_bits);
          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // required .message.singlechip_data singlechipData = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_singlechipdata(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* terminal_status_msg::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:message.terminal_status_msg)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .message.Base_info base_info = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base_info(this), target, stream);
  }

  // required int32 terminal_id = 2;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_terminal_id(), target);
  }

  // required .message.singlechip_data singlechipData = 3;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::singlechipdata(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.terminal_status_msg)
  return target;
}

size_t terminal_status_msg::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.terminal_status_msg)
  size_t total_size = 0;

  if (_internal_has_base_info()) {
    // required .message.Base_info base_info = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *base_info_);
  }

  if (_internal_has_singlechipdata()) {
    // required .message.singlechip_data singlechipData = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *singlechipdata_);
  }

  if (_internal_has_terminal_id()) {
    // required int32 terminal_id = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_terminal_id());
  }

  return total_size;
}
size_t terminal_status_msg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:message.terminal_status_msg)
  size_t total_size = 0;

  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
    // required .message.Base_info base_info = 1;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *base_info_);

    // required .message.singlechip_data singlechipData = 3;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *singlechipdata_);

    // required int32 terminal_id = 2;
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_terminal_id());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void terminal_status_msg::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.terminal_status_msg)
  GOOGLE_DCHECK_NE(&from, this);
  const terminal_status_msg* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<terminal_status_msg>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.terminal_status_msg)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.terminal_status_msg)
    MergeFrom(*source);
  }
}

void terminal_status_msg::MergeFrom(const terminal_status_msg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.terminal_status_msg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
    }
    if (cached_has_bits & 0x00000002u) {
      _internal_mutable_singlechipdata()->::message::singlechip_data::MergeFrom(from._internal_singlechipdata());
    }
    if (cached_has_bits & 0x00000004u) {
      terminal_id_ = from.terminal_id_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void terminal_status_msg::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.terminal_status_msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void terminal_status_msg::CopyFrom(const terminal_status_msg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:message.terminal_status_msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool terminal_status_msg::IsInitialized() const {
  if (_Internal::MissingRequiredFields(_has_bits_)) return false;
  if (_internal_has_base_info()) {
    if (!base_info_->IsInitialized()) return false;
  }
  if (_internal_has_singlechipdata()) {
    if (!singlechipdata_->IsInitialized()) return false;
  }
  return true;
}

void terminal_status_msg::InternalSwap(terminal_status_msg* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(terminal_status_msg, terminal_id_)
      + sizeof(terminal_status_msg::terminal_id_)
      - PROTOBUF_FIELD_OFFSET(terminal_status_msg, base_info_)>(
          reinterpret_cast<char*>(&base_info_),
          reinterpret_cast<char*>(&other->base_info_));
}

::PROTOBUF_NAMESPACE_ID::Metadata terminal_status_msg::GetMetadata() const {
  return GetMetadataStatic();
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace message
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::message::InputDi* Arena::CreateMaybeMessage< ::message::InputDi >(Arena* arena) {
  return Arena::CreateMessageInternal< ::message::InputDi >(arena);
}
template<> PROTOBUF_NOINLINE ::message::OutputDo* Arena::CreateMaybeMessage< ::message::OutputDo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::message::OutputDo >(arena);
}
template<> PROTOBUF_NOINLINE ::message::terminal_msg* Arena::CreateMaybeMessage< ::message::terminal_msg >(Arena* arena) {
  return Arena::CreateMessageInternal< ::message::terminal_msg >(arena);
}
template<> PROTOBUF_NOINLINE ::message::singlechip_data* Arena::CreateMaybeMessage< ::message::singlechip_data >(Arena* arena) {
  return Arena::CreateMessageInternal< ::message::singlechip_data >(arena);
}
template<> PROTOBUF_NOINLINE ::message::terminal_status_msg* Arena::CreateMaybeMessage< ::message::terminal_status_msg >(Arena* arena) {
  return Arena::CreateMessageInternal< ::message::terminal_status_msg >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
