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

#include "singlechip_msg.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.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>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace protobuf_message_5fbase_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_message_5fbase_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Base_info;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_message_5fbase_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Id_struct;
}  // namespace protobuf_message_5fbase_2eproto
namespace protobuf_singlechip_5fmsg_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_singlechip_5fmsg_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_InputDi;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_singlechip_5fmsg_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_OutputDo;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_singlechip_5fmsg_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Singlechip_data;
}  // namespace protobuf_singlechip_5fmsg_2eproto
namespace message {
class InputDiDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<InputDi>
      _instance;
} _InputDi_default_instance_;
class OutputDoDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<OutputDo>
      _instance;
} _OutputDo_default_instance_;
class terminal_msgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<terminal_msg>
      _instance;
} _terminal_msg_default_instance_;
class Singlechip_dataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Singlechip_data>
      _instance;
} _Singlechip_data_default_instance_;
class Terminal_status_msgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Terminal_status_msg>
      _instance;
} _Terminal_status_msg_default_instance_;
}  // namespace message
namespace protobuf_singlechip_5fmsg_2eproto {
static void InitDefaultsInputDi() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::google::protobuf::internal::SCCInfo<0> scc_info_InputDi =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsInputDi}, {}};

static void InitDefaultsOutputDo() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::google::protobuf::internal::SCCInfo<0> scc_info_OutputDo =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsOutputDo}, {}};

static void InitDefaultsterminal_msg() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::google::protobuf::internal::SCCInfo<1> scc_info_terminal_msg =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsterminal_msg}, {
      &protobuf_singlechip_5fmsg_2eproto::scc_info_OutputDo.base,}};

static void InitDefaultsSinglechip_data() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_Singlechip_data_default_instance_;
    new (ptr) ::message::Singlechip_data();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Singlechip_data::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Singlechip_data =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsSinglechip_data}, {
      &protobuf_singlechip_5fmsg_2eproto::scc_info_InputDi.base,}};

static void InitDefaultsTerminal_status_msg() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::message::_Terminal_status_msg_default_instance_;
    new (ptr) ::message::Terminal_status_msg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Terminal_status_msg::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<3> scc_info_Terminal_status_msg =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsTerminal_status_msg}, {
      &protobuf_message_5fbase_2eproto::scc_info_Base_info.base,
      &protobuf_message_5fbase_2eproto::scc_info_Id_struct.base,
      &protobuf_singlechip_5fmsg_2eproto::scc_info_Singlechip_data.base,}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_InputDi.base);
  ::google::protobuf::internal::InitSCC(&scc_info_OutputDo.base);
  ::google::protobuf::internal::InitSCC(&scc_info_terminal_msg.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Singlechip_data.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Terminal_status_msg.base);
}

::google::protobuf::Metadata file_level_metadata[5];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[6];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di0_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di4_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di5_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di6_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di7_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di8_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di9_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di10_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di11_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di12_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di13_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di14_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::InputDi, di15_),
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do0_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do4_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do5_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do6_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::OutputDo, do7_),
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::terminal_msg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::terminal_msg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::terminal_msg, terminalid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::terminal_msg, dispatchdirection_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::terminal_msg, processcontrol_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::terminal_msg, outputdo_),
  1,
  2,
  3,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, terminalid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, dispatchdirection_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, processstatus_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, inputdi_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, resetflag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, processcontrol_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, insideexistenceflag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, overborderstatus_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, carheightstatuscurrent_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, carheightstatuspassing_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, stopflag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, outsidedoorstatus_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, outsidedoorcontrol_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, dispatchfinishflag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Singlechip_data, outsideexistenceflag_),
  1,
  2,
  3,
  0,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Terminal_status_msg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Terminal_status_msg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Terminal_status_msg, base_info_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Terminal_status_msg, id_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Terminal_status_msg, singlechipdata_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Terminal_status_msg, singlechip_validity_),
  0,
  1,
  2,
  3,
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_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, 115, sizeof(::message::Terminal_status_msg)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_InputDi_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_OutputDo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_terminal_msg_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Singlechip_data_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Terminal_status_msg_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "singlechip_msg.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 5);
}

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n\024singlechip_msg.proto\022\007message\032\022message"
      "_base.proto\"\337\001\n\007InputDi\022\013\n\003Di0\030\001 \001(\005\022\013\n\003"
      "Di1\030\002 \001(\005\022\013\n\003Di2\030\003 \001(\005\022\013\n\003Di3\030\004 \001(\005\022\013\n\003D"
      "i4\030\005 \001(\005\022\013\n\003Di5\030\006 \001(\005\022\013\n\003Di6\030\007 \001(\005\022\013\n\003Di"
      "7\030\010 \001(\005\022\013\n\003Di8\030\t \001(\005\022\013\n\003Di9\030\n \001(\005\022\014\n\004Di1"
      "0\030\013 \001(\005\022\014\n\004Di11\030\014 \001(\005\022\014\n\004Di12\030\r \001(\005\022\014\n\004D"
      "i13\030\016 \001(\005\022\014\n\004Di14\030\017 \001(\005\022\014\n\004Di15\030\020 \001(\005\"r\n"
      "\010OutputDo\022\013\n\003Do0\030\001 \001(\005\022\013\n\003Do1\030\002 \001(\005\022\013\n\003D"
      "o2\030\003 \001(\005\022\013\n\003Do3\030\004 \001(\005\022\013\n\003Do4\030\005 \001(\005\022\013\n\003Do"
      "5\030\006 \001(\005\022\013\n\003Do6\030\007 \001(\005\022\013\n\003Do7\030\010 \001(\005\"z\n\014ter"
      "minal_msg\022\022\n\nTerminalID\030\001 \001(\005\022\031\n\021Dispatc"
      "hDirection\030\002 \001(\005\022\026\n\016ProcessControl\030\003 \001(\005"
      "\022#\n\010OutPutDo\030\004 \001(\0132\021.message.OutputDo\"\344\004"
      "\n\017Singlechip_data\022\022\n\nTerminalID\030\001 \001(\005\022\031\n"
      "\021DispatchDirection\030\002 \001(\005\022.\n\rProcessStatu"
      "s\030\003 \001(\0162\027.message.Process_status\022!\n\007InPu"
      "tDi\030\004 \001(\0132\020.message.InputDi\022\021\n\tResetFlag"
      "\030\005 \001(\005\0220\n\016ProcessControl\030\006 \001(\0162\030.message"
      ".Process_control\022\033\n\023InsideExistenceFlag\030"
      "\007 \001(\005\0225\n\020OverBorderStatus\030\010 \001(\0162\033.messag"
      "e.Over_border_status\022:\n\026CarHeightStatusC"
      "urrent\030\t \001(\0162\032.message.Car_height_status"
      "\022:\n\026CarHeightStatusPassing\030\n \001(\0162\032.messa"
      "ge.Car_height_status\022\020\n\010StopFlag\030\013 \001(\005\0227"
      "\n\021OutsideDoorStatus\030\014 \001(\0162\034.message.Outs"
      "ide_door_status\0229\n\022OutsideDoorControl\030\r "
      "\001(\0162\035.message.Outside_door_control\022\032\n\022Di"
      "spatchFinishFlag\030\016 \001(\005\022\034\n\024OutsideExisten"
      "ceFlag\030\017 \001(\005\"\262\001\n\023Terminal_status_msg\022%\n\t"
      "base_info\030\001 \002(\0132\022.message.Base_info\022%\n\ti"
      "d_struct\030\002 \001(\0132\022.message.Id_struct\0220\n\016si"
      "nglechipData\030\003 \001(\0132\030.message.Singlechip_"
      "data\022\033\n\023singlechip_validity\030\004 \001(\010*\344\006\n\017Pr"
      "ocess_control\022\033\n\027PROCESS_CONTROL_UNKNOWN"
      "\020\000\022\035\n\031PROCESS_CONTROL_FULL_AUTO\020\001\022\032\n\026PRO"
      "CESS_CONTROL_MANUAL\020\002\022\036\n\032PROCESS_CONTROL"
      "_AUTO_CLOSE\020\003\022\035\n\031PROCESS_CONTROL_AUTO_OP"
      "EN\020\004\022\034\n\030PROCESS_CONTROL_TO_READY\020\005\022\031\n\025PR"
      "OCESS_CONTROL_RESET\020\007\022\030\n\024PROCESS_CONTROL"
      "_STOP\020\010\022\031\n\025PROCESS_CONTROL_FAULT\020\t\022\033\n\027PR"
      "OCESS_CONTROL_INLET_0\020\n\022\033\n\027PROCESS_CONTR"
      "OL_INLET_1\020\013\022\033\n\027PROCESS_CONTROL_INLET_2\020"
      "\014\022\033\n\027PROCESS_CONTROL_INLET_3\020\r\022\033\n\027PROCES"
      "S_CONTROL_INLET_4\020\016\022\033\n\027PROCESS_CONTROL_I"
      "NLET_5\020\017\022\033\n\027PROCESS_CONTROL_INLET_6\020\020\022\033\n"
      "\027PROCESS_CONTROL_INLET_7\020\021\022\033\n\027PROCESS_CO"
      "NTROL_INLET_8\020\022\022\033\n\027PROCESS_CONTROL_INLET"
      "_9\020\023\022\034\n\030PROCESS_CONTROL_OUTLET_0\020\036\022\034\n\030PR"
      "OCESS_CONTROL_OUTLET_1\020\037\022\034\n\030PROCESS_CONT"
      "ROL_OUTLET_2\020 \022\034\n\030PROCESS_CONTROL_OUTLET"
      "_3\020!\022\034\n\030PROCESS_CONTROL_OUTLET_4\020\"\022\034\n\030PR"
      "OCESS_CONTROL_OUTLET_5\020#\022\034\n\030PROCESS_CONT"
      "ROL_OUTLET_6\020$\022\034\n\030PROCESS_CONTROL_OUTLET"
      "_7\020%\022\034\n\030PROCESS_CONTROL_OUTLET_8\020&\022\034\n\030PR"
      "OCESS_CONTROL_OUTLET_9\020\'*\311\001\n\022Over_border"
      "_status\022\036\n\032OVER_BORDER_STATUS_UNKNOWN\020\000\022"
      "\035\n\031OVER_BORDER_STATUS_NORMAL\020\001\022\034\n\030OVER_B"
      "ORDER_STATUS_FRONT\020\002\022\033\n\027OVER_BORDER_STAT"
      "US_BACK\020\003\022\033\n\027OVER_BORDER_STATUS_LEFT\020\004\022\034"
      "\n\030OVER_BORDER_STATUS_RIGHT\020\005*\303\001\n\021Car_hei"
      "ght_status\022\035\n\031CAR_HEIGHT_STATUS_UNKNOWN\020"
      "\000\022\033\n\027CAR_HEIGHT_STATUS_SMALL\020\001\022\034\n\030CAR_HE"
      "IGHT_STATUS_MEDIUM\020\002\022\033\n\027CAR_HEIGHT_STATU"
      "S_LARGE\020\003\022\032\n\026CAR_HEIGHT_STATUS_HUGE\020\004\022\033\n"
      "\027CAR_HEIGHT_STATUS_FAULT\020\005*\257\001\n\023Outside_d"
      "oor_status\022\037\n\033OUTSIDE_DOOR_STATUS_UNKNOW"
      "N\020\000\022\034\n\030OUTSIDE_DOOR_STATUS_OPEN\020\001\022\035\n\031OUT"
      "SIDE_DOOR_STATUS_CLOSE\020\002\022\033\n\027OUTSIDE_DOOR"
      "_STATUS_RUN\020\003\022\035\n\031OUTSIDE_DOOR_STATUS_FAU"
      "LT\020\004*w\n\024Outside_door_control\022 \n\034OUTSIDE_"
      "DOOR_CONTROL_UNKNOWN\020\000\022\035\n\031OUTSIDE_DOOR_C"
      "ONTROL_OPEN\020\001\022\036\n\032OUTSIDE_DOOR_CONTROL_CL"
      "OSE\020\002*\224\013\n\016Process_status\022\032\n\026PROCESS_STAT"
      "US_UNKNOWN\020\000\022\034\n\030PROCESS_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_A"
      "UTO_OPEN\020\004\022\033\n\027PROCESS_STATUS_TO_READY\020\005\022"
      "\030\n\024PROCESS_STATUS_RESET\020\007\022\027\n\023PROCESS_STA"
      "TUS_STOP\020\010\022\030\n\024PROCESS_STATUS_FAULT\020\t\022\032\n\026"
      "PROCESS_STATUS_INLET_0\020\n\022\032\n\026PROCESS_STAT"
      "US_INLET_1\020\013\022\032\n\026PROCESS_STATUS_INLET_2\020\014"
      "\022\032\n\026PROCESS_STATUS_INLET_3\020\r\022\032\n\026PROCESS_"
      "STATUS_INLET_4\020\016\022\032\n\026PROCESS_STATUS_INLET"
      "_5\020\017\022\032\n\026PROCESS_STATUS_INLET_6\020\020\022\032\n\026PROC"
      "ESS_STATUS_INLET_7\020\021\022\032\n\026PROCESS_STATUS_I"
      "NLET_8\020\022\022\032\n\026PROCESS_STATUS_INLET_9\020\023\022\033\n\027"
      "PROCESS_STATUS_INLET_10\020\024\022\033\n\027PROCESS_STA"
      "TUS_INLET_11\020\025\022\033\n\027PROCESS_STATUS_INLET_1"
      "2\020\026\022\033\n\027PROCESS_STATUS_INLET_13\020\027\022\033\n\027PROC"
      "ESS_STATUS_INLET_14\020\030\022\033\n\027PROCESS_STATUS_"
      "INLET_15\020\031\022\033\n\027PROCESS_STATUS_INLET_16\020\032\022"
      "\033\n\027PROCESS_STATUS_INLET_17\020\033\022\033\n\027PROCESS_"
      "STATUS_INLET_18\020\034\022\033\n\027PROCESS_STATUS_INLE"
      "T_19\020\035\022\033\n\027PROCESS_STATUS_OUTLET_0\020\036\022\033\n\027P"
      "ROCESS_STATUS_OUTLET_1\020\037\022\033\n\027PROCESS_STAT"
      "US_OUTLET_2\020 \022\033\n\027PROCESS_STATUS_OUTLET_3"
      "\020!\022\033\n\027PROCESS_STATUS_OUTLET_4\020\"\022\033\n\027PROCE"
      "SS_STATUS_OUTLET_5\020#\022\033\n\027PROCESS_STATUS_O"
      "UTLET_6\020$\022\033\n\027PROCESS_STATUS_OUTLET_7\020%\022\033"
      "\n\027PROCESS_STATUS_OUTLET_8\020&\022\033\n\027PROCESS_S"
      "TATUS_OUTLET_9\020\'\022\034\n\030PROCESS_STATUS_OUTLE"
      "T_10\020(\022\034\n\030PROCESS_STATUS_OUTLET_11\020)\022\034\n\030"
      "PROCESS_STATUS_OUTLET_12\020*\022\034\n\030PROCESS_ST"
      "ATUS_OUTLET_13\020+\022\034\n\030PROCESS_STATUS_OUTLE"
      "T_14\020,\022\034\n\030PROCESS_STATUS_OUTLET_15\020-\022\034\n\030"
      "PROCESS_STATUS_OUTLET_16\020.\022\034\n\030PROCESS_ST"
      "ATUS_OUTLET_17\020/\022\034\n\030PROCESS_STATUS_OUTLE"
      "T_18\0200\022\034\n\030PROCESS_STATUS_OUTLET_19\0201"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 4316);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "singlechip_msg.proto", &protobuf_RegisterTypes);
  ::protobuf_message_5fbase_2eproto::AddDescriptors();
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_singlechip_5fmsg_2eproto
namespace message {
const ::google::protobuf::EnumDescriptor* Process_control_descriptor() {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_singlechip_5fmsg_2eproto::file_level_enum_descriptors[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 ::google::protobuf::EnumDescriptor* Over_border_status_descriptor() {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_singlechip_5fmsg_2eproto::file_level_enum_descriptors[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 ::google::protobuf::EnumDescriptor* Car_height_status_descriptor() {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_singlechip_5fmsg_2eproto::file_level_enum_descriptors[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 ::google::protobuf::EnumDescriptor* Outside_door_status_descriptor() {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_singlechip_5fmsg_2eproto::file_level_enum_descriptors[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 ::google::protobuf::EnumDescriptor* Outside_door_control_descriptor() {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_singlechip_5fmsg_2eproto::file_level_enum_descriptors[4];
}
bool Outside_door_control_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Process_status_descriptor() {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_singlechip_5fmsg_2eproto::file_level_enum_descriptors[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 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
      return true;
    default:
      return false;
  }
}


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

void InputDi::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int InputDi::kDi0FieldNumber;
const int InputDi::kDi1FieldNumber;
const int InputDi::kDi2FieldNumber;
const int InputDi::kDi3FieldNumber;
const int InputDi::kDi4FieldNumber;
const int InputDi::kDi5FieldNumber;
const int InputDi::kDi6FieldNumber;
const int InputDi::kDi7FieldNumber;
const int InputDi::kDi8FieldNumber;
const int InputDi::kDi9FieldNumber;
const int InputDi::kDi10FieldNumber;
const int InputDi::kDi11FieldNumber;
const int InputDi::kDi12FieldNumber;
const int InputDi::kDi13FieldNumber;
const int InputDi::kDi14FieldNumber;
const int InputDi::kDi15FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

InputDi::InputDi()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_singlechip_5fmsg_2eproto::scc_info_InputDi.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.InputDi)
}
InputDi::InputDi(const InputDi& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(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();
}

void InputDi::SharedDtor() {
}

void InputDi::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* InputDi::descriptor() {
  ::protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const InputDi& InputDi::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_singlechip_5fmsg_2eproto::scc_info_InputDi.base);
  return *internal_default_instance();
}


void InputDi::Clear() {
// @@protoc_insertion_point(message_clear_start:message.InputDi)
  ::google::protobuf::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 & 255u) {
    ::memset(&di0_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&di7_) -
        reinterpret_cast<char*>(&di0_)) + sizeof(di7_));
  }
  if (cached_has_bits & 65280u) {
    ::memset(&di8_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&di15_) -
        reinterpret_cast<char*>(&di8_)) + sizeof(di15_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool InputDi::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.InputDi)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 Di0 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_di0();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di0_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di1 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_di1();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di1_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di2 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_di2();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di2_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di3 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_di3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di4 = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          set_has_di4();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di4_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di5 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
          set_has_di5();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di5_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di6 = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
          set_has_di6();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di6_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di7 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
          set_has_di7();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di7_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di8 = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
          set_has_di8();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di8_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di9 = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(80u /* 80 & 0xFF */)) {
          set_has_di9();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di9_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di10 = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(88u /* 88 & 0xFF */)) {
          set_has_di10();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di10_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di11 = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(96u /* 96 & 0xFF */)) {
          set_has_di11();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di11_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di12 = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(104u /* 104 & 0xFF */)) {
          set_has_di12();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di12_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di13 = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(112u /* 112 & 0xFF */)) {
          set_has_di13();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di13_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di14 = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(120u /* 120 & 0xFF */)) {
          set_has_di14();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di14_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Di15 = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(128u /* 128 & 0xFF */)) {
          set_has_di15();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &di15_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.InputDi)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.InputDi)
  return false;
#undef DO_
}

void InputDi::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.InputDi)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 Di0 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->di0(), output);
  }

  // optional int32 Di1 = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->di1(), output);
  }

  // optional int32 Di2 = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->di2(), output);
  }

  // optional int32 Di3 = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->di3(), output);
  }

  // optional int32 Di4 = 5;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->di4(), output);
  }

  // optional int32 Di5 = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->di5(), output);
  }

  // optional int32 Di6 = 7;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->di6(), output);
  }

  // optional int32 Di7 = 8;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->di7(), output);
  }

  // optional int32 Di8 = 9;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(9, this->di8(), output);
  }

  // optional int32 Di9 = 10;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(10, this->di9(), output);
  }

  // optional int32 Di10 = 11;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(11, this->di10(), output);
  }

  // optional int32 Di11 = 12;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(12, this->di11(), output);
  }

  // optional int32 Di12 = 13;
  if (cached_has_bits & 0x00001000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(13, this->di12(), output);
  }

  // optional int32 Di13 = 14;
  if (cached_has_bits & 0x00002000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(14, this->di13(), output);
  }

  // optional int32 Di14 = 15;
  if (cached_has_bits & 0x00004000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(15, this->di14(), output);
  }

  // optional int32 Di15 = 16;
  if (cached_has_bits & 0x00008000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(16, this->di15(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.InputDi)
}

::google::protobuf::uint8* InputDi::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.InputDi)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 Di0 = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->di0(), target);
  }

  // optional int32 Di1 = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->di1(), target);
  }

  // optional int32 Di2 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->di2(), target);
  }

  // optional int32 Di3 = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->di3(), target);
  }

  // optional int32 Di4 = 5;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->di4(), target);
  }

  // optional int32 Di5 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->di5(), target);
  }

  // optional int32 Di6 = 7;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->di6(), target);
  }

  // optional int32 Di7 = 8;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->di7(), target);
  }

  // optional int32 Di8 = 9;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(9, this->di8(), target);
  }

  // optional int32 Di9 = 10;
  if (cached_has_bits & 0x00000200u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(10, this->di9(), target);
  }

  // optional int32 Di10 = 11;
  if (cached_has_bits & 0x00000400u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(11, this->di10(), target);
  }

  // optional int32 Di11 = 12;
  if (cached_has_bits & 0x00000800u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(12, this->di11(), target);
  }

  // optional int32 Di12 = 13;
  if (cached_has_bits & 0x00001000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(13, this->di12(), target);
  }

  // optional int32 Di13 = 14;
  if (cached_has_bits & 0x00002000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(14, this->di13(), target);
  }

  // optional int32 Di14 = 15;
  if (cached_has_bits & 0x00004000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(15, this->di14(), target);
  }

  // optional int32 Di15 = 16;
  if (cached_has_bits & 0x00008000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(16, this->di15(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.InputDi)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional int32 Di0 = 1;
    if (has_di0()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di0());
    }

    // optional int32 Di1 = 2;
    if (has_di1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di1());
    }

    // optional int32 Di2 = 3;
    if (has_di2()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di2());
    }

    // optional int32 Di3 = 4;
    if (has_di3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di3());
    }

    // optional int32 Di4 = 5;
    if (has_di4()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di4());
    }

    // optional int32 Di5 = 6;
    if (has_di5()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di5());
    }

    // optional int32 Di6 = 7;
    if (has_di6()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di6());
    }

    // optional int32 Di7 = 8;
    if (has_di7()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di7());
    }

  }
  if (_has_bits_[8 / 32] & 65280u) {
    // optional int32 Di8 = 9;
    if (has_di8()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di8());
    }

    // optional int32 Di9 = 10;
    if (has_di9()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di9());
    }

    // optional int32 Di10 = 11;
    if (has_di10()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di10());
    }

    // optional int32 Di11 = 12;
    if (has_di11()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di11());
    }

    // optional int32 Di12 = 13;
    if (has_di12()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di12());
    }

    // optional int32 Di13 = 14;
    if (has_di13()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di13());
    }

    // optional int32 Di14 = 15;
    if (has_di14()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di14());
    }

    // optional int32 Di15 = 16;
    if (has_di15()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->di15());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void InputDi::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.InputDi)
  GOOGLE_DCHECK_NE(&from, this);
  const InputDi* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const InputDi>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.InputDi)
    ::google::protobuf::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(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    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 & 65280u) {
    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 ::google::protobuf::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 {
  return true;
}

void InputDi::Swap(InputDi* other) {
  if (other == this) return;
  InternalSwap(other);
}
void InputDi::InternalSwap(InputDi* other) {
  using std::swap;
  swap(di0_, other->di0_);
  swap(di1_, other->di1_);
  swap(di2_, other->di2_);
  swap(di3_, other->di3_);
  swap(di4_, other->di4_);
  swap(di5_, other->di5_);
  swap(di6_, other->di6_);
  swap(di7_, other->di7_);
  swap(di8_, other->di8_);
  swap(di9_, other->di9_);
  swap(di10_, other->di10_);
  swap(di11_, other->di11_);
  swap(di12_, other->di12_);
  swap(di13_, other->di13_);
  swap(di14_, other->di14_);
  swap(di15_, other->di15_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata InputDi::GetMetadata() const {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void OutputDo::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int OutputDo::kDo0FieldNumber;
const int OutputDo::kDo1FieldNumber;
const int OutputDo::kDo2FieldNumber;
const int OutputDo::kDo3FieldNumber;
const int OutputDo::kDo4FieldNumber;
const int OutputDo::kDo5FieldNumber;
const int OutputDo::kDo6FieldNumber;
const int OutputDo::kDo7FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

OutputDo::OutputDo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_singlechip_5fmsg_2eproto::scc_info_OutputDo.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.OutputDo)
}
OutputDo::OutputDo(const OutputDo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(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();
}

void OutputDo::SharedDtor() {
}

void OutputDo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* OutputDo::descriptor() {
  ::protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const OutputDo& OutputDo::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_singlechip_5fmsg_2eproto::scc_info_OutputDo.base);
  return *internal_default_instance();
}


void OutputDo::Clear() {
// @@protoc_insertion_point(message_clear_start:message.OutputDo)
  ::google::protobuf::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 & 255u) {
    ::memset(&do0_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&do7_) -
        reinterpret_cast<char*>(&do0_)) + sizeof(do7_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool OutputDo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.OutputDo)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 Do0 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_do0();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do0_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do1 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_do1();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do1_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do2 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_do2();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do2_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do3 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_do3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do4 = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          set_has_do4();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do4_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do5 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
          set_has_do5();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do5_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do6 = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
          set_has_do6();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do6_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 Do7 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
          set_has_do7();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &do7_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.OutputDo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.OutputDo)
  return false;
#undef DO_
}

void OutputDo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.OutputDo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 Do0 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->do0(), output);
  }

  // optional int32 Do1 = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->do1(), output);
  }

  // optional int32 Do2 = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->do2(), output);
  }

  // optional int32 Do3 = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->do3(), output);
  }

  // optional int32 Do4 = 5;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->do4(), output);
  }

  // optional int32 Do5 = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->do5(), output);
  }

  // optional int32 Do6 = 7;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->do6(), output);
  }

  // optional int32 Do7 = 8;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->do7(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.OutputDo)
}

::google::protobuf::uint8* OutputDo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.OutputDo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 Do0 = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->do0(), target);
  }

  // optional int32 Do1 = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->do1(), target);
  }

  // optional int32 Do2 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->do2(), target);
  }

  // optional int32 Do3 = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->do3(), target);
  }

  // optional int32 Do4 = 5;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->do4(), target);
  }

  // optional int32 Do5 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->do5(), target);
  }

  // optional int32 Do6 = 7;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->do6(), target);
  }

  // optional int32 Do7 = 8;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->do7(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.OutputDo)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional int32 Do0 = 1;
    if (has_do0()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do0());
    }

    // optional int32 Do1 = 2;
    if (has_do1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do1());
    }

    // optional int32 Do2 = 3;
    if (has_do2()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do2());
    }

    // optional int32 Do3 = 4;
    if (has_do3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do3());
    }

    // optional int32 Do4 = 5;
    if (has_do4()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do4());
    }

    // optional int32 Do5 = 6;
    if (has_do5()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do5());
    }

    // optional int32 Do6 = 7;
    if (has_do6()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do6());
    }

    // optional int32 Do7 = 8;
    if (has_do7()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->do7());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OutputDo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.OutputDo)
  GOOGLE_DCHECK_NE(&from, this);
  const OutputDo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const OutputDo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.OutputDo)
    ::google::protobuf::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(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    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 ::google::protobuf::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 {
  return true;
}

void OutputDo::Swap(OutputDo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void OutputDo::InternalSwap(OutputDo* other) {
  using std::swap;
  swap(do0_, other->do0_);
  swap(do1_, other->do1_);
  swap(do2_, other->do2_);
  swap(do3_, other->do3_);
  swap(do4_, other->do4_);
  swap(do5_, other->do5_);
  swap(do6_, other->do6_);
  swap(do7_, other->do7_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata OutputDo::GetMetadata() const {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void terminal_msg::InitAsDefaultInstance() {
  ::message::_terminal_msg_default_instance_._instance.get_mutable()->outputdo_ = const_cast< ::message::OutputDo*>(
      ::message::OutputDo::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int terminal_msg::kTerminalIDFieldNumber;
const int terminal_msg::kDispatchDirectionFieldNumber;
const int terminal_msg::kProcessControlFieldNumber;
const int terminal_msg::kOutPutDoFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

terminal_msg::terminal_msg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_singlechip_5fmsg_2eproto::scc_info_terminal_msg.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.terminal_msg)
}
terminal_msg::terminal_msg(const terminal_msg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_outputdo()) {
    outputdo_ = new ::message::OutputDo(*from.outputdo_);
  } else {
    outputdo_ = NULL;
  }
  ::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() {
  ::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();
}

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

void terminal_msg::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* terminal_msg::descriptor() {
  ::protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const terminal_msg& terminal_msg::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_singlechip_5fmsg_2eproto::scc_info_terminal_msg.base);
  return *internal_default_instance();
}


void terminal_msg::Clear() {
// @@protoc_insertion_point(message_clear_start:message.terminal_msg)
  ::google::protobuf::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_ != NULL);
    outputdo_->Clear();
  }
  if (cached_has_bits & 14u) {
    ::memset(&terminalid_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&processcontrol_) -
        reinterpret_cast<char*>(&terminalid_)) + sizeof(processcontrol_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool terminal_msg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.terminal_msg)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 TerminalID = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_terminalid();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &terminalid_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 DispatchDirection = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_dispatchdirection();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &dispatchdirection_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 ProcessControl = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_processcontrol();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &processcontrol_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.OutputDo OutPutDo = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_outputdo()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.terminal_msg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.terminal_msg)
  return false;
#undef DO_
}

void terminal_msg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.terminal_msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 TerminalID = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->terminalid(), output);
  }

  // optional int32 DispatchDirection = 2;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->dispatchdirection(), output);
  }

  // optional int32 ProcessControl = 3;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->processcontrol(), output);
  }

  // optional .message.OutputDo OutPutDo = 4;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_outputdo(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.terminal_msg)
}

::google::protobuf::uint8* terminal_msg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.terminal_msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 TerminalID = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->terminalid(), target);
  }

  // optional int32 DispatchDirection = 2;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->dispatchdirection(), target);
  }

  // optional int32 ProcessControl = 3;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->processcontrol(), target);
  }

  // optional .message.OutputDo OutPutDo = 4;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_outputdo(), deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.terminal_msg)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 15u) {
    // optional .message.OutputDo OutPutDo = 4;
    if (has_outputdo()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *outputdo_);
    }

    // optional int32 TerminalID = 1;
    if (has_terminalid()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->terminalid());
    }

    // optional int32 DispatchDirection = 2;
    if (has_dispatchdirection()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->dispatchdirection());
    }

    // optional int32 ProcessControl = 3;
    if (has_processcontrol()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->processcontrol());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void terminal_msg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.terminal_msg)
  GOOGLE_DCHECK_NE(&from, this);
  const terminal_msg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const terminal_msg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.terminal_msg)
    ::google::protobuf::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(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_outputdo()->::message::OutputDo::MergeFrom(from.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 ::google::protobuf::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 {
  return true;
}

void terminal_msg::Swap(terminal_msg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void terminal_msg::InternalSwap(terminal_msg* other) {
  using std::swap;
  swap(outputdo_, other->outputdo_);
  swap(terminalid_, other->terminalid_);
  swap(dispatchdirection_, other->dispatchdirection_);
  swap(processcontrol_, other->processcontrol_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata terminal_msg::GetMetadata() const {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void Singlechip_data::InitAsDefaultInstance() {
  ::message::_Singlechip_data_default_instance_._instance.get_mutable()->inputdi_ = const_cast< ::message::InputDi*>(
      ::message::InputDi::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Singlechip_data::kTerminalIDFieldNumber;
const int Singlechip_data::kDispatchDirectionFieldNumber;
const int Singlechip_data::kProcessStatusFieldNumber;
const int Singlechip_data::kInPutDiFieldNumber;
const int Singlechip_data::kResetFlagFieldNumber;
const int Singlechip_data::kProcessControlFieldNumber;
const int Singlechip_data::kInsideExistenceFlagFieldNumber;
const int Singlechip_data::kOverBorderStatusFieldNumber;
const int Singlechip_data::kCarHeightStatusCurrentFieldNumber;
const int Singlechip_data::kCarHeightStatusPassingFieldNumber;
const int Singlechip_data::kStopFlagFieldNumber;
const int Singlechip_data::kOutsideDoorStatusFieldNumber;
const int Singlechip_data::kOutsideDoorControlFieldNumber;
const int Singlechip_data::kDispatchFinishFlagFieldNumber;
const int Singlechip_data::kOutsideExistenceFlagFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Singlechip_data::Singlechip_data()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_singlechip_5fmsg_2eproto::scc_info_Singlechip_data.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Singlechip_data)
}
Singlechip_data::Singlechip_data(const Singlechip_data& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_inputdi()) {
    inputdi_ = new ::message::InputDi(*from.inputdi_);
  } else {
    inputdi_ = NULL;
  }
  ::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() {
  ::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();
}

void Singlechip_data::SharedDtor() {
  if (this != internal_default_instance()) delete inputdi_;
}

void Singlechip_data::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Singlechip_data::descriptor() {
  ::protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Singlechip_data& Singlechip_data::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_singlechip_5fmsg_2eproto::scc_info_Singlechip_data.base);
  return *internal_default_instance();
}


void Singlechip_data::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Singlechip_data)
  ::google::protobuf::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_ != NULL);
    inputdi_->Clear();
  }
  if (cached_has_bits & 254u) {
    ::memset(&terminalid_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&overborderstatus_) -
        reinterpret_cast<char*>(&terminalid_)) + sizeof(overborderstatus_));
  }
  if (cached_has_bits & 32512u) {
    ::memset(&carheightstatuscurrent_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&outsideexistenceflag_) -
        reinterpret_cast<char*>(&carheightstatuscurrent_)) + sizeof(outsideexistenceflag_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Singlechip_data::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Singlechip_data)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 TerminalID = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_terminalid();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &terminalid_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 DispatchDirection = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_dispatchdirection();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &dispatchdirection_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Process_status ProcessStatus = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Process_status_IsValid(value)) {
            set_processstatus(static_cast< ::message::Process_status >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                3, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.InputDi InPutDi = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_inputdi()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 ResetFlag = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          set_has_resetflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &resetflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Process_control ProcessControl = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Process_control_IsValid(value)) {
            set_processcontrol(static_cast< ::message::Process_control >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                6, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 InsideExistenceFlag = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
          set_has_insideexistenceflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &insideexistenceflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Over_border_status OverBorderStatus = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Over_border_status_IsValid(value)) {
            set_overborderstatus(static_cast< ::message::Over_border_status >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                8, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Car_height_status CarHeightStatusCurrent = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Car_height_status_IsValid(value)) {
            set_carheightstatuscurrent(static_cast< ::message::Car_height_status >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                9, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Car_height_status CarHeightStatusPassing = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(80u /* 80 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Car_height_status_IsValid(value)) {
            set_carheightstatuspassing(static_cast< ::message::Car_height_status >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                10, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 StopFlag = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(88u /* 88 & 0xFF */)) {
          set_has_stopflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &stopflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Outside_door_status OutsideDoorStatus = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(96u /* 96 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Outside_door_status_IsValid(value)) {
            set_outsidedoorstatus(static_cast< ::message::Outside_door_status >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                12, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Outside_door_control OutsideDoorControl = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(104u /* 104 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Outside_door_control_IsValid(value)) {
            set_outsidedoorcontrol(static_cast< ::message::Outside_door_control >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                13, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 DispatchFinishFlag = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(112u /* 112 & 0xFF */)) {
          set_has_dispatchfinishflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &dispatchfinishflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 OutsideExistenceFlag = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(120u /* 120 & 0xFF */)) {
          set_has_outsideexistenceflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &outsideexistenceflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Singlechip_data)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Singlechip_data)
  return false;
#undef DO_
}

void Singlechip_data::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Singlechip_data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 TerminalID = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->terminalid(), output);
  }

  // optional int32 DispatchDirection = 2;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->dispatchdirection(), output);
  }

  // optional .message.Process_status ProcessStatus = 3;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      3, this->processstatus(), output);
  }

  // optional .message.InputDi InPutDi = 4;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_inputdi(), output);
  }

  // optional int32 ResetFlag = 5;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->resetflag(), output);
  }

  // optional .message.Process_control ProcessControl = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      6, this->processcontrol(), output);
  }

  // optional int32 InsideExistenceFlag = 7;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->insideexistenceflag(), output);
  }

  // optional .message.Over_border_status OverBorderStatus = 8;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      8, this->overborderstatus(), output);
  }

  // optional .message.Car_height_status CarHeightStatusCurrent = 9;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      9, this->carheightstatuscurrent(), output);
  }

  // optional .message.Car_height_status CarHeightStatusPassing = 10;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      10, this->carheightstatuspassing(), output);
  }

  // optional int32 StopFlag = 11;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(11, this->stopflag(), output);
  }

  // optional .message.Outside_door_status OutsideDoorStatus = 12;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      12, this->outsidedoorstatus(), output);
  }

  // optional .message.Outside_door_control OutsideDoorControl = 13;
  if (cached_has_bits & 0x00001000u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      13, this->outsidedoorcontrol(), output);
  }

  // optional int32 DispatchFinishFlag = 14;
  if (cached_has_bits & 0x00002000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(14, this->dispatchfinishflag(), output);
  }

  // optional int32 OutsideExistenceFlag = 15;
  if (cached_has_bits & 0x00004000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(15, this->outsideexistenceflag(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Singlechip_data)
}

::google::protobuf::uint8* Singlechip_data::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Singlechip_data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 TerminalID = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->terminalid(), target);
  }

  // optional int32 DispatchDirection = 2;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->dispatchdirection(), target);
  }

  // optional .message.Process_status ProcessStatus = 3;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      3, this->processstatus(), target);
  }

  // optional .message.InputDi InPutDi = 4;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_inputdi(), deterministic, target);
  }

  // optional int32 ResetFlag = 5;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->resetflag(), target);
  }

  // optional .message.Process_control ProcessControl = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      6, this->processcontrol(), target);
  }

  // optional int32 InsideExistenceFlag = 7;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->insideexistenceflag(), target);
  }

  // optional .message.Over_border_status OverBorderStatus = 8;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      8, this->overborderstatus(), target);
  }

  // optional .message.Car_height_status CarHeightStatusCurrent = 9;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      9, this->carheightstatuscurrent(), target);
  }

  // optional .message.Car_height_status CarHeightStatusPassing = 10;
  if (cached_has_bits & 0x00000200u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      10, this->carheightstatuspassing(), target);
  }

  // optional int32 StopFlag = 11;
  if (cached_has_bits & 0x00000400u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(11, this->stopflag(), target);
  }

  // optional .message.Outside_door_status OutsideDoorStatus = 12;
  if (cached_has_bits & 0x00000800u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      12, this->outsidedoorstatus(), target);
  }

  // optional .message.Outside_door_control OutsideDoorControl = 13;
  if (cached_has_bits & 0x00001000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      13, this->outsidedoorcontrol(), target);
  }

  // optional int32 DispatchFinishFlag = 14;
  if (cached_has_bits & 0x00002000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(14, this->dispatchfinishflag(), target);
  }

  // optional int32 OutsideExistenceFlag = 15;
  if (cached_has_bits & 0x00004000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(15, this->outsideexistenceflag(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Singlechip_data)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional .message.InputDi InPutDi = 4;
    if (has_inputdi()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *inputdi_);
    }

    // optional int32 TerminalID = 1;
    if (has_terminalid()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->terminalid());
    }

    // optional int32 DispatchDirection = 2;
    if (has_dispatchdirection()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->dispatchdirection());
    }

    // optional .message.Process_status ProcessStatus = 3;
    if (has_processstatus()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->processstatus());
    }

    // optional int32 ResetFlag = 5;
    if (has_resetflag()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->resetflag());
    }

    // optional .message.Process_control ProcessControl = 6;
    if (has_processcontrol()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->processcontrol());
    }

    // optional int32 InsideExistenceFlag = 7;
    if (has_insideexistenceflag()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->insideexistenceflag());
    }

    // optional .message.Over_border_status OverBorderStatus = 8;
    if (has_overborderstatus()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->overborderstatus());
    }

  }
  if (_has_bits_[8 / 32] & 32512u) {
    // optional .message.Car_height_status CarHeightStatusCurrent = 9;
    if (has_carheightstatuscurrent()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->carheightstatuscurrent());
    }

    // optional .message.Car_height_status CarHeightStatusPassing = 10;
    if (has_carheightstatuspassing()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->carheightstatuspassing());
    }

    // optional int32 StopFlag = 11;
    if (has_stopflag()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->stopflag());
    }

    // optional .message.Outside_door_status OutsideDoorStatus = 12;
    if (has_outsidedoorstatus()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->outsidedoorstatus());
    }

    // optional .message.Outside_door_control OutsideDoorControl = 13;
    if (has_outsidedoorcontrol()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->outsidedoorcontrol());
    }

    // optional int32 DispatchFinishFlag = 14;
    if (has_dispatchfinishflag()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->dispatchfinishflag());
    }

    // optional int32 OutsideExistenceFlag = 15;
    if (has_outsideexistenceflag()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->outsideexistenceflag());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Singlechip_data::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Singlechip_data)
  GOOGLE_DCHECK_NE(&from, this);
  const Singlechip_data* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Singlechip_data>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Singlechip_data)
    ::google::protobuf::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(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_inputdi()->::message::InputDi::MergeFrom(from.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 & 32512u) {
    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 ::google::protobuf::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 {
  return true;
}

void Singlechip_data::Swap(Singlechip_data* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Singlechip_data::InternalSwap(Singlechip_data* other) {
  using std::swap;
  swap(inputdi_, other->inputdi_);
  swap(terminalid_, other->terminalid_);
  swap(dispatchdirection_, other->dispatchdirection_);
  swap(processstatus_, other->processstatus_);
  swap(resetflag_, other->resetflag_);
  swap(processcontrol_, other->processcontrol_);
  swap(insideexistenceflag_, other->insideexistenceflag_);
  swap(overborderstatus_, other->overborderstatus_);
  swap(carheightstatuscurrent_, other->carheightstatuscurrent_);
  swap(carheightstatuspassing_, other->carheightstatuspassing_);
  swap(stopflag_, other->stopflag_);
  swap(outsidedoorstatus_, other->outsidedoorstatus_);
  swap(outsidedoorcontrol_, other->outsidedoorcontrol_);
  swap(dispatchfinishflag_, other->dispatchfinishflag_);
  swap(outsideexistenceflag_, other->outsideexistenceflag_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Singlechip_data::GetMetadata() const {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

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()->id_struct_ = const_cast< ::message::Id_struct*>(
      ::message::Id_struct::internal_default_instance());
  ::message::_Terminal_status_msg_default_instance_._instance.get_mutable()->singlechipdata_ = const_cast< ::message::Singlechip_data*>(
      ::message::Singlechip_data::internal_default_instance());
}
void Terminal_status_msg::clear_base_info() {
  if (base_info_ != NULL) base_info_->Clear();
  clear_has_base_info();
}
void Terminal_status_msg::clear_id_struct() {
  if (id_struct_ != NULL) id_struct_->Clear();
  clear_has_id_struct();
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Terminal_status_msg::kBaseInfoFieldNumber;
const int Terminal_status_msg::kIdStructFieldNumber;
const int Terminal_status_msg::kSinglechipDataFieldNumber;
const int Terminal_status_msg::kSinglechipValidityFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Terminal_status_msg::Terminal_status_msg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_singlechip_5fmsg_2eproto::scc_info_Terminal_status_msg.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Terminal_status_msg)
}
Terminal_status_msg::Terminal_status_msg(const Terminal_status_msg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_base_info()) {
    base_info_ = new ::message::Base_info(*from.base_info_);
  } else {
    base_info_ = NULL;
  }
  if (from.has_id_struct()) {
    id_struct_ = new ::message::Id_struct(*from.id_struct_);
  } else {
    id_struct_ = NULL;
  }
  if (from.has_singlechipdata()) {
    singlechipdata_ = new ::message::Singlechip_data(*from.singlechipdata_);
  } else {
    singlechipdata_ = NULL;
  }
  singlechip_validity_ = from.singlechip_validity_;
  // @@protoc_insertion_point(copy_constructor:message.Terminal_status_msg)
}

void Terminal_status_msg::SharedCtor() {
  ::memset(&base_info_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&singlechip_validity_) -
      reinterpret_cast<char*>(&base_info_)) + sizeof(singlechip_validity_));
}

Terminal_status_msg::~Terminal_status_msg() {
  // @@protoc_insertion_point(destructor:message.Terminal_status_msg)
  SharedDtor();
}

void Terminal_status_msg::SharedDtor() {
  if (this != internal_default_instance()) delete base_info_;
  if (this != internal_default_instance()) delete id_struct_;
  if (this != internal_default_instance()) delete singlechipdata_;
}

void Terminal_status_msg::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Terminal_status_msg::descriptor() {
  ::protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Terminal_status_msg& Terminal_status_msg::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_singlechip_5fmsg_2eproto::scc_info_Terminal_status_msg.base);
  return *internal_default_instance();
}


void Terminal_status_msg::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Terminal_status_msg)
  ::google::protobuf::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 & 7u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(base_info_ != NULL);
      base_info_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(id_struct_ != NULL);
      id_struct_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(singlechipdata_ != NULL);
      singlechipdata_->Clear();
    }
  }
  singlechip_validity_ = false;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Terminal_status_msg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Terminal_status_msg)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .message.Base_info base_info = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_base_info()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Id_struct id_struct = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_id_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Singlechip_data singlechipData = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_singlechipdata()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional bool singlechip_validity = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_singlechip_validity();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &singlechip_validity_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Terminal_status_msg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Terminal_status_msg)
  return false;
#undef DO_
}

void Terminal_status_msg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Terminal_status_msg)
  ::google::protobuf::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) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_base_info(), output);
  }

  // optional .message.Id_struct id_struct = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->_internal_id_struct(), output);
  }

  // optional .message.Singlechip_data singlechipData = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, this->_internal_singlechipdata(), output);
  }

  // optional bool singlechip_validity = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->singlechip_validity(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Terminal_status_msg)
}

::google::protobuf::uint8* Terminal_status_msg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Terminal_status_msg)
  ::google::protobuf::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 = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_base_info(), deterministic, target);
  }

  // optional .message.Id_struct id_struct = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->_internal_id_struct(), deterministic, target);
  }

  // optional .message.Singlechip_data singlechipData = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, this->_internal_singlechipdata(), deterministic, target);
  }

  // optional bool singlechip_validity = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->singlechip_validity(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Terminal_status_msg)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required .message.Base_info base_info = 1;
  if (has_base_info()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *base_info_);
  }
  if (_has_bits_[0 / 32] & 14u) {
    // optional .message.Id_struct id_struct = 2;
    if (has_id_struct()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *id_struct_);
    }

    // optional .message.Singlechip_data singlechipData = 3;
    if (has_singlechipdata()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *singlechipdata_);
    }

    // optional bool singlechip_validity = 4;
    if (has_singlechip_validity()) {
      total_size += 1 + 1;
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Terminal_status_msg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Terminal_status_msg)
  GOOGLE_DCHECK_NE(&from, this);
  const Terminal_status_msg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Terminal_status_msg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Terminal_status_msg)
    ::google::protobuf::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(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_id_struct()->::message::Id_struct::MergeFrom(from.id_struct());
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_singlechipdata()->::message::Singlechip_data::MergeFrom(from.singlechipdata());
    }
    if (cached_has_bits & 0x00000008u) {
      singlechip_validity_ = from.singlechip_validity_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Terminal_status_msg::CopyFrom(const ::google::protobuf::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 ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  if (has_base_info()) {
    if (!this->base_info_->IsInitialized()) return false;
  }
  return true;
}

void Terminal_status_msg::Swap(Terminal_status_msg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Terminal_status_msg::InternalSwap(Terminal_status_msg* other) {
  using std::swap;
  swap(base_info_, other->base_info_);
  swap(id_struct_, other->id_struct_);
  swap(singlechipdata_, other->singlechipdata_);
  swap(singlechip_validity_, other->singlechip_validity_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Terminal_status_msg::GetMetadata() const {
  protobuf_singlechip_5fmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_singlechip_5fmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace message
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::InputDi* Arena::CreateMaybeMessage< ::message::InputDi >(Arena* arena) {
  return Arena::CreateInternal< ::message::InputDi >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::OutputDo* Arena::CreateMaybeMessage< ::message::OutputDo >(Arena* arena) {
  return Arena::CreateInternal< ::message::OutputDo >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::terminal_msg* Arena::CreateMaybeMessage< ::message::terminal_msg >(Arena* arena) {
  return Arena::CreateInternal< ::message::terminal_msg >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Singlechip_data* Arena::CreateMaybeMessage< ::message::Singlechip_data >(Arena* arena) {
  return Arena::CreateInternal< ::message::Singlechip_data >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Terminal_status_msg* Arena::CreateMaybeMessage< ::message::Terminal_status_msg >(Arena* arena) {
  return Arena::CreateInternal< ::message::Terminal_status_msg >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
