123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //
- // Created by zx on 2020/7/16.
- //
- #include "store_terminal.h"
- #include "Terminal_communication.h"
- threadsafe_queue<message::Car_info>* store_command::p_command_queue=new threadsafe_queue<message::Car_info>;
- store_command::store_command(message::Car_info msg)
- {
- m_car_info=msg;
- }
- store_command::~store_command()
- {
- m_exit_cond.set_pass_ever(true);
- }
- Error_manager store_command::storing(int terminal_id)
- {
- message::Store_command_request_msg request;
- message::Base_info base_info;
- base_info.set_msg_type(message::eStore_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);
- message::Locate_information locate_info;
- locate_info.set_locate_x(0.9);
- locate_info.set_locate_y(2.25);
- locate_info.set_locate_angle(90.0);
- locate_info.set_locate_wheel_base(2.7);
- locate_info.set_locate_width(m_car_info.car_width());
- locate_info.set_locate_height(m_car_info.car_height());
- locate_info.set_locate_correct(true);
- request.mutable_locate_information()->CopyFrom(locate_info);
- request.set_terminal_id(terminal_id);
- //发送停车请求
- Error_manager code;
- message::Store_command_response_msg response;
- code=Terminal_communication::get_instance_pointer()->store_request(request,response);
- if(code!=SUCCESS)
- {
- LOG(WARNING)<<" request_error: "<<code.to_string()<<std::endl;
- return ERROR;
- }
- if(response.code().error_code()!=0)
- {
- LOG(WARNING)<<" store request response code error: "<<response.code().error_description();
- return ERROR;
- }
- //等待停车完成
- bool last_signal=false;
- message::Storing_process_statu_msg last_msg;
- while(m_exit_cond.wait_for_millisecond(50)==false)
- {
- message::Storing_process_statu_msg msg;
- code = Terminal_communication::get_instance_pointer()->get_storing_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))
- {
- //停车完成
- p_command_queue->push(m_car_info);
- return SUCCESS;
- }
- }
- return FAILED;
- }
|