#ifndef WANJI_MANAGER_TASK_HH
#define WANJI_MANAGER_TASK_HH
#include <string.h>
#include <mutex>
#include <atomic>
#include <chrono>

#include "../task/task_command_manager.h"
#include "../error_code/error_code.h"
#include "../tool/common_data.h"


//万集测量任务单
class Wanji_manager_task : public Task_Base
{
public:
    // 构造函数
	Wanji_manager_task();
    // 析构
    ~Wanji_manager_task();
	//初始化函数
	Error_manager task_init(int terminal_id, std::chrono::system_clock::time_point command_time	);
	Error_manager task_init(Task_statu task_statu,
							std::string task_statu_information,
							void* p_tast_receiver,
							std::chrono::milliseconds task_over_time,
							int terminal_id,
							std::chrono::system_clock::time_point command_time
	);
public://get or set member variable
	int get_terminal_id();
	std::chrono::system_clock::time_point get_command_time();
	Common_data::Car_wheel_information get_car_wheel_information();
	void set_car_wheel_information(Common_data::Car_wheel_information car_wheel_information);

private:
	//终端id
	int 										m_terminal_id;
	//下发指令的时间点. 从command_time提前一个扫描周期, 然后取最新的点
	std::chrono::system_clock::time_point 		m_command_time;
    // 测量结果
    Common_data::Car_wheel_information			m_car_wheel_information;

};

#endif // !WANJI_MANAGER_TASK_HH