123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 |
- //
- // 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<Snap7_buf::Variable_information> t_variable_information_vector;
- //往map通信缓存里面添加所需要的buf
- std::unique_lock<std::mutex> t_lock1(m_receive_buf_lock);
- std::unique_lock<std::mutex> 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), 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_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_99", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 34 });
- t_index += sizeof(unsigned char)*37;
- 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;
- 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<std::mutex> t_lock1(m_receive_buf_lock);
- std::unique_lock<std::mutex> 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);
- return Error_code::SUCCESS;
- }
- Error_manager Dispatch_communication::updata_send_buf()
- {
- std::unique_lock<std::mutex> t_lock1(m_send_buf_lock);
- std::unique_lock<std::mutex> 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);
- // Dispatch_communication::Catcher_request_from_dispatch_to_plc_for_key * tp_catcher_request_from_dispatch_to_plc_for_key =
- // & Dispatch_communication::get_instance_references().m_catcher_request_from_dispatch_to_plc_for_key[1];
- // int k1 = tp_catcher_request_from_dispatch_to_plc_for_key->m_request_key[0];
- // std::cout << " huli test :::: " << " k1 = " << k1 << std::endl;
- // int k2 = tp_catcher_request_from_dispatch_to_plc_for_key->m_request_key[1];
- // std::cout << " huli test :::: " << " k2 = " << k2 << std::endl;
- // std::cout << " huli test :::: " << " ***************************** = " << std::endl;
- return Error_code::SUCCESS;
- }
|