// // Created by huli on 2020/9/25. // #include "dispatch_communication.h" Dispatch_communication::Dispatch_communication() { } Dispatch_communication::~Dispatch_communication() { } //初始化 通信 模块。如下三选一 Error_manager Dispatch_communication::communication_init() { int t_index = 0; std::vector t_variable_information_vector; //往map通信缓存里面添加所需要的buf std::unique_lock t_lock1(m_receive_buf_lock); std::unique_lock t_lock2(m_send_buf_lock); Snap7_buf t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved50", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved51_69", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 19 }); t_index += sizeof(unsigned char)*19; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_x", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_y", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_b", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_z", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved87_89", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 3 }); t_index += sizeof(unsigned char)*3; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_wheelbase", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_d1", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_d2", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_snap7_buf.init(CATCHER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 50, sizeof(Catcher_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[0] = t_snap7_buf; t_snap7_buf.init(CATCHER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 50, sizeof(Catcher_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_send_buf_map[1] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_key", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_snap7_buf.init(CATCHER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 0, sizeof(Catcher_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[2] = t_snap7_buf; t_snap7_buf.init(CATCHER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 0, sizeof(Catcher_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_send_buf_map[3] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_key", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved51_69", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 19 }); t_index += sizeof(unsigned char)*19; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_x", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_y", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_b", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_z", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_clamp_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved87_89", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 3 }); t_index += sizeof(unsigned char)*3; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_wheelbase", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_d1", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_d2", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_snap7_buf.init(CATCHER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Catcher_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[0] = t_snap7_buf; t_snap7_buf.init(CATCHER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Catcher_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_receive_buf_map[1] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_heartbeat", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_safe_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_work_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_load_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved4_37", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 34 }); t_index += sizeof(unsigned char)*34; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_x", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_y", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_b", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_z", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_d1", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_d2", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_clamp_motion1", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_clamp_motion2", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_clamp_motion3", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_clamp_motion4", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved66_99", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 34 }); t_index += sizeof(unsigned char)*34; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_error_code", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_warning_code", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_error_description", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 256 }); t_index += sizeof(unsigned char)*256; t_snap7_buf.init(CATCHER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Catcher_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[2] = t_snap7_buf; t_snap7_buf.init(CATCHER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Catcher_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_receive_buf_map[3] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved50", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved51_71", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 21 }); t_index += sizeof(unsigned char)*21; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_x", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_y", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_z", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_y1", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_y2", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_joint_motion_x", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_joint_motion_y", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved95", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_space_id", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(int)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_floor_id", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(int)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_wheelbase", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_send_buf_map[4] = t_snap7_buf; t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[5] = t_snap7_buf; t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[6] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_key", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_send_buf_map[7] = t_snap7_buf; t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[8] = t_snap7_buf; t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[9] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_key", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved51_71", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 21 }); t_index += sizeof(unsigned char)*21; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_x", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_y", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_z", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_y1", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_y2", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_clamp_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_joint_motion_x", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_joint_motion_y", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved95", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_space_id", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(int)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_floor_id", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(int)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_wheelbase", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_receive_buf_map[4] = t_snap7_buf; t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[5] = t_snap7_buf; t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_3, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[6] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_heartbeat", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_safe_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_work_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_load_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved4_37", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 34 }); t_index += sizeof(unsigned char)*34; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_x", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_y", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_z", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_y1", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_y2", typeid(float).name(), t_index,sizeof(float), 1 }); t_index += sizeof(float)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_clamp_motion1", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_clamp_motion2", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_small_sports_car_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_joint_motion_x1", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_joint_motion_x2", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved63_101", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 39 }); t_index += sizeof(unsigned char)*39; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_error_code", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_warning_code", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_error_description", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 256 }); t_index += sizeof(unsigned char)*256; t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_receive_buf_map[7] = t_snap7_buf; t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[8] = t_snap7_buf; t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[9] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved50", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved51_69", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 19 }); t_index += sizeof(unsigned char)*19; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_inside_door_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_outside_door_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_turntable_direction", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_0, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[10] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_send_buf_map[11] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[12] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[13] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_4, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[14] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_5, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[15] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_6, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[16] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_7, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[17] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_key", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_0, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[18] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_send_buf_map[19] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[20] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[21] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_4, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[22] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_5, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[23] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_6, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[24] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_7, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_send_buf_map[25] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_key", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved51_69", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 19 }); t_index += sizeof(unsigned char)*19; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_inside_door_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_outside_door_motion", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_respons_turntable_direction", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_0, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[10] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_receive_buf_map[11] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[12] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_3, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[13] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_4, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[14] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_5, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[15] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_6, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[16] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_7, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[17] = t_snap7_buf; t_index = 0; t_variable_information_vector.clear(); t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_heartbeat", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_safe_status", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_sensor_status1", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_sensor_status2", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved4_35", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 32 }); t_index += sizeof(unsigned char)*32; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_turntable_direction", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved37", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 1 }); t_index += sizeof(unsigned char)*1; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_error_code", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_warning_code", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 50 }); t_index += sizeof(unsigned char)*50; t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_actual_error_description", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 256 }); t_index += sizeof(unsigned char)*256; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_0, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[18] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION); m_receive_buf_map[19] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[20] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_3, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[21] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_4, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[22] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_5, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[23] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_6, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[24] = t_snap7_buf; t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_7, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION); m_receive_buf_map[25] = t_snap7_buf; return Snap7_communication_base::communication_init(); } //反初始化 通信 模块。 Error_manager Dispatch_communication::communication_uninit() { return Snap7_communication_base::communication_uninit(); } //更新数据 Error_manager Dispatch_communication::updata_receive_buf() { // return Error_code::SUCCESS; std::unique_lock t_lock1(m_receive_buf_lock); std::unique_lock t_lock2(m_data_lock); memcpy(&m_catcher_response_from_plc_to_dispatch[0], m_receive_buf_map[0].mp_buf_obverse, m_receive_buf_map[0].m_size); memcpy(&m_catcher_response_from_plc_to_dispatch[1], m_receive_buf_map[1].mp_buf_obverse, m_receive_buf_map[1].m_size); memcpy(&m_catcher_status_from_plc_to_dispatch[0], m_receive_buf_map[2].mp_buf_obverse, m_receive_buf_map[2].m_size); memcpy(&m_catcher_status_from_plc_to_dispatch[1], m_receive_buf_map[3].mp_buf_obverse, m_receive_buf_map[3].m_size); memcpy(&m_carrier_response_from_plc_to_dispatch[0], m_receive_buf_map[4].mp_buf_obverse, m_receive_buf_map[4].m_size); memcpy(&m_carrier_response_from_plc_to_dispatch[1], m_receive_buf_map[5].mp_buf_obverse, m_receive_buf_map[5].m_size); memcpy(&m_carrier_response_from_plc_to_dispatch[2], m_receive_buf_map[6].mp_buf_obverse, m_receive_buf_map[6].m_size); memcpy(&m_carrier_status_from_plc_to_dispatch[0], m_receive_buf_map[7].mp_buf_obverse, m_receive_buf_map[7].m_size); memcpy(&m_carrier_status_from_plc_to_dispatch[1], m_receive_buf_map[8].mp_buf_obverse, m_receive_buf_map[8].m_size); memcpy(&m_carrier_status_from_plc_to_dispatch[2], m_receive_buf_map[9].mp_buf_obverse, m_receive_buf_map[9].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[0], m_receive_buf_map[10].mp_buf_obverse, m_receive_buf_map[10].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[1], m_receive_buf_map[11].mp_buf_obverse, m_receive_buf_map[11].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[2], m_receive_buf_map[12].mp_buf_obverse, m_receive_buf_map[12].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[3], m_receive_buf_map[13].mp_buf_obverse, m_receive_buf_map[13].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[4], m_receive_buf_map[14].mp_buf_obverse, m_receive_buf_map[14].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[5], m_receive_buf_map[15].mp_buf_obverse, m_receive_buf_map[15].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[6], m_receive_buf_map[16].mp_buf_obverse, m_receive_buf_map[16].m_size); memcpy(&m_passageway_response_from_plc_to_dispatch[7], m_receive_buf_map[17].mp_buf_obverse, m_receive_buf_map[17].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[0], m_receive_buf_map[18].mp_buf_obverse, m_receive_buf_map[18].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[1], m_receive_buf_map[19].mp_buf_obverse, m_receive_buf_map[19].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[2], m_receive_buf_map[20].mp_buf_obverse, m_receive_buf_map[20].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[3], m_receive_buf_map[21].mp_buf_obverse, m_receive_buf_map[21].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[4], m_receive_buf_map[22].mp_buf_obverse, m_receive_buf_map[22].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[5], m_receive_buf_map[23].mp_buf_obverse, m_receive_buf_map[23].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[6], m_receive_buf_map[24].mp_buf_obverse, m_receive_buf_map[24].m_size); memcpy(&m_passageway_status_from_plc_to_dispatch[7], m_receive_buf_map[25].mp_buf_obverse, m_receive_buf_map[25].m_size); return Error_code::SUCCESS; } Error_manager Dispatch_communication::updata_send_buf() { std::unique_lock t_lock1(m_send_buf_lock); std::unique_lock t_lock2(m_data_lock); m_catcher_request_from_dispatch_to_plc_for_data[0].m_reserved50 = 1; m_catcher_request_from_dispatch_to_plc_for_data[1].m_reserved50 = 1; memcpy(m_send_buf_map[0].mp_buf_obverse, &m_catcher_request_from_dispatch_to_plc_for_data[0], m_send_buf_map[0].m_size); memcpy(m_send_buf_map[1].mp_buf_obverse, &m_catcher_request_from_dispatch_to_plc_for_data[1], m_send_buf_map[1].m_size); memcpy(m_send_buf_map[2].mp_buf_obverse, &m_catcher_request_from_dispatch_to_plc_for_key[0], m_send_buf_map[2].m_size); memcpy(m_send_buf_map[3].mp_buf_obverse, &m_catcher_request_from_dispatch_to_plc_for_key[1], m_send_buf_map[3].m_size); m_carrier_request_from_dispatch_to_plc_for_data[0].m_reserved50 = 1; m_carrier_request_from_dispatch_to_plc_for_data[1].m_reserved50 = 1; m_carrier_request_from_dispatch_to_plc_for_data[2].m_reserved50 = 1; memcpy(m_send_buf_map[4].mp_buf_obverse, &m_carrier_request_from_dispatch_to_plc_for_data[0], m_send_buf_map[4].m_size); memcpy(m_send_buf_map[5].mp_buf_obverse, &m_carrier_request_from_dispatch_to_plc_for_data[1], m_send_buf_map[5].m_size); memcpy(m_send_buf_map[6].mp_buf_obverse, &m_carrier_request_from_dispatch_to_plc_for_data[2], m_send_buf_map[6].m_size); memcpy(m_send_buf_map[7].mp_buf_obverse, &m_carrier_request_from_dispatch_to_plc_for_key[0], m_send_buf_map[7].m_size); memcpy(m_send_buf_map[8].mp_buf_obverse, &m_carrier_request_from_dispatch_to_plc_for_key[1], m_send_buf_map[8].m_size); memcpy(m_send_buf_map[9].mp_buf_obverse, &m_carrier_request_from_dispatch_to_plc_for_key[2], m_send_buf_map[9].m_size); m_passageway_request_from_dispatch_to_plc_for_data[0].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[1].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[2].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[3].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[4].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[5].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[6].m_reserved50 = 1; m_passageway_request_from_dispatch_to_plc_for_data[7].m_reserved50 = 1; memcpy(m_send_buf_map[10].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[0], m_send_buf_map[10].m_size); memcpy(m_send_buf_map[11].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[1], m_send_buf_map[11].m_size); memcpy(m_send_buf_map[12].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[2], m_send_buf_map[12].m_size); memcpy(m_send_buf_map[13].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[3], m_send_buf_map[13].m_size); memcpy(m_send_buf_map[14].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[4], m_send_buf_map[14].m_size); memcpy(m_send_buf_map[15].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[5], m_send_buf_map[15].m_size); memcpy(m_send_buf_map[16].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[6], m_send_buf_map[16].m_size); memcpy(m_send_buf_map[17].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_data[7], m_send_buf_map[17].m_size); memcpy(m_send_buf_map[18].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[0], m_send_buf_map[18].m_size); memcpy(m_send_buf_map[19].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[1], m_send_buf_map[19].m_size); memcpy(m_send_buf_map[20].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[2], m_send_buf_map[20].m_size); memcpy(m_send_buf_map[21].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[3], m_send_buf_map[21].m_size); memcpy(m_send_buf_map[22].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[4], m_send_buf_map[22].m_size); memcpy(m_send_buf_map[23].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[5], m_send_buf_map[23].m_size); memcpy(m_send_buf_map[24].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[6], m_send_buf_map[24].m_size); memcpy(m_send_buf_map[25].mp_buf_obverse, &m_passageway_request_from_dispatch_to_plc_for_key[7], m_send_buf_map[25].m_size); return Error_code::SUCCESS; }