123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- //
- // Created by huli on 2020/7/20.
- //
- #include "dispatch_manager.h"
- #include <cstdlib>
- Dispatch_manager::Dispatch_manager()
- {
- m_dispatch_manager_status = E_DISPATCH_MANAGER_UNKNOW;
- // m_carrier_number = 0;
- }
- Dispatch_manager::~Dispatch_manager()
- {
- dispatch_manager_uninit();
- }
- //调度管理 初始化
- Error_manager Dispatch_manager::dispatch_manager_init(int dispatch_id)
- {
- m_dispatch_manager_status = E_DISPATCH_MANAGER_READY;
- m_dispatch_id = dispatch_id;
- // m_carrier_number = size;
- //
- // for (int i = 0; i < size; ++i)
- // {
- // Carrier_base * p_arrier_base = new Carrier_base;
- // p_arrier_base->carrier_base_init();
- // m_carrier_vector.push_back(p_arrier_base);
- // }
- return Error_code::SUCCESS;
- }
- //调度管理 反初始化
- Error_manager Dispatch_manager::dispatch_manager_uninit()
- {
- // //回收搬运器的内存
- // for (int i = 0; i < m_carrier_number; ++i)
- // {
- // m_carrier_vector[i]->carrier_base_uninit();
- // delete(m_carrier_vector[i]);
- // }
- m_dispatch_manager_status = E_DISPATCH_MANAGER_UNKNOW;
- // m_carrier_number = 0;
- // m_carrier_vector.clear();
- return Error_code::SUCCESS;
- }
- //对外的接口函数,负责接受并处理任务单,
- Error_manager Dispatch_manager::execute_task(Dispatch_manager::Dispatch_motion_direction dispatch_motion_direction)
- {
- return Error_code::SUCCESS;
- // std::this_thread::sleep_for(std::chrono::seconds(rand()%3+3));
- if ( dispatch_motion_direction == E_PICKUP_CAR )
- {
- return Error_code::SUCCESS;
- }
- // return Error_code::SUCCESS;
- // srand(0);
- unsigned int t_probability = rand();
- if ( t_probability%100 >=20 )
- {
- return Error_code::SUCCESS;
- }
- else
- {
- return Error_manager(Error_code::ERROR, Error_level::MINOR_ERROR,
- " Dispatch_manager::execute_task() error ");
- }
- }
- //检查状态
- Error_manager Dispatch_manager::check_status()
- {
- if ( m_dispatch_manager_status == E_DISPATCH_MANAGER_READY )
- {
- return Error_code::SUCCESS;
- }
- else if ( m_dispatch_manager_status == E_DISPATCH_MANAGER_STORE || m_dispatch_manager_status == E_DISPATCH_MANAGER_STORE )
- {
- return Error_manager(Error_code::DISPATCH_MANAGER_STATUS_BUSY, Error_level::NEGLIGIBLE_ERROR,
- " Dispatch_manager::check_status() error ");
- }
- else
- {
- return Error_manager(Error_code::DISPATCH_MANAGER_STATUS_ERROR, Error_level::MINOR_ERROR,
- " Dispatch_manager::check_status() error ");
- }
- return Error_code::SUCCESS;
- }
- Dispatch_manager::Dispatch_manager_status Dispatch_manager::get_dispatch_manager_status()
- {
- return m_dispatch_manager_status;
- }
- int Dispatch_manager::get_dispatch_id()
- {
- return m_dispatch_id;
- }
- void Dispatch_manager::set_dispatch_id(int dispatch_id)
- {
- m_dispatch_id = dispatch_id;
- }
|