1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // Created by zx on 2020/7/16.
- //
- #include "pickup_terminal.h"
- #include "Terminal_communication.h"
- pickup_terminal::pickup_terminal(message::Car_info car_info)
- {
- m_car_info=car_info;
- }
- pickup_terminal::~pickup_terminal()
- {
- m_exit_cond.set_pass_ever(true);
- }
- Error_manager pickup_terminal::pickup(int terminal_id)
- {
- message::Pickup_command_request_msg request;
- message::Base_info base_info;
- base_info.set_msg_type(message::ePickup_command_request_msg);
- base_info.set_sender(message::eTerminor);
- base_info.set_receiver(message::eMain);
- request.mutable_base_info()->CopyFrom(base_info);
- request.mutable_car_info()->CopyFrom(m_car_info);
- request.set_terminal_id(terminal_id);
- //发送停车请求
- Error_manager code;
- message::Pickup_command_response_msg response;
- code=Terminal_communication::get_instance_pointer()->pickup_request(request,response);
- if(code!=SUCCESS)
- {
- std::cout<<"取车请求失败:"<<code.to_string()<<std::endl;
- return ERROR;
- }
- //等待停车完成
- bool last_signal=false;
- message::Picking_process_statu_msg last_msg;
- while(m_exit_cond.wait_for_millisecond(200)==false)
- {
- message::Picking_process_statu_msg msg;
- code = Terminal_communication::get_instance_pointer()->get_picking_statu(m_car_info.license(), msg);
- if (code == SUCCESS)
- {
- last_signal=true;
- last_msg=msg;
- }
- if(last_signal==true&&(last_msg.completed()==true||last_msg.back_completed()==true))
- {
- //取车完成
- return SUCCESS;
- }
- }
- return FAILED;
- }
|