迁移pi上的master分支
This commit is contained in:
150
src/pTaskManger/TaskManger.h
Normal file
150
src/pTaskManger/TaskManger.h
Normal file
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* @Author: 1553836110 1553836110@qq.com
|
||||
* @Date: 2023-09-28 15:45:17
|
||||
* @LastEditors: zjk 1553836110@qq.com
|
||||
* @LastEditTime: 2023-11-08 14:53:05
|
||||
* @FilePath: /moos-ivp-pi/src/pTaskManger/TaskManger.h
|
||||
* @Description:
|
||||
*
|
||||
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
|
||||
*/
|
||||
/************************************************************/
|
||||
/* NAME: zjk */
|
||||
/* ORGN: MIT */
|
||||
/* FILE: TaskManger.h */
|
||||
/* DATE: */
|
||||
/************************************************************/
|
||||
|
||||
#ifndef TaskManger_HEADER
|
||||
#define TaskManger_HEADER
|
||||
|
||||
#include "MOOS/libMOOS/MOOSLib.h"
|
||||
#include "MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
|
||||
#include <queue>
|
||||
#include <list>
|
||||
#include "json/json.h"
|
||||
#include "VarDataPair.h"
|
||||
|
||||
using namespace std;
|
||||
enum TaskType{WAYPOINTS, CONSTDEPTH, CONSTSPEED, CONSTHEADING, WAYPOLYGON, NOTYPE};
|
||||
enum Status{FAULT=0, UNRUN=1, MANUAL=2 ,RUN=3, CONFIG=5};
|
||||
// class TaskManger : public CMOOSApp
|
||||
class TaskManger : public AppCastingMOOSApp
|
||||
{
|
||||
public:
|
||||
TaskManger();
|
||||
virtual ~TaskManger();
|
||||
|
||||
bool OnNewMail(MOOSMSG_LIST &NewMail);
|
||||
bool Iterate();
|
||||
bool OnConnectToServer();
|
||||
bool OnStartUp();
|
||||
void RegisterVariables();
|
||||
bool buildReport();
|
||||
void postFaultNumber(int n);
|
||||
|
||||
bool setSpeed(double speed);
|
||||
bool setMaxDepth(string depth);
|
||||
bool setWpt(std::string wpt, string speed, string depth);
|
||||
bool setWayPol(string polygon, string speed, string depth);
|
||||
bool setTaskTimer(string timerCount);
|
||||
bool setSafetyRules(string maxTime, string maxDepth, string minAltitude, string polygon);
|
||||
bool setWayConfig(string lead, string lead_damper, string capture_line, string capture_radius,string slip_radius);
|
||||
|
||||
bool sendNode(const string current_node, list<string> &nodeList);
|
||||
|
||||
bool getWord(const string str, int ct, string &word);
|
||||
string getSpeed(const string node);
|
||||
string getDepth(const string node);
|
||||
string getWayPoint(const string node);
|
||||
string getWayPolygon(const list<string> nodeList);
|
||||
string getNodeName(const string node);
|
||||
string getNode(list<string> &nodelist);
|
||||
string getTimeCount();
|
||||
string getMaxDepth();
|
||||
TaskType getTaskTpye(const string node);
|
||||
|
||||
int readTaskFile(string taskName);
|
||||
int readSafetyRules(string fileName);
|
||||
int readWayConfig(string fileName);
|
||||
void postReportToSSM();
|
||||
|
||||
inline void clearHelmFlag(){Notify("HELM_MAP_CLEAR",0.0);}
|
||||
inline void taskStart();
|
||||
inline void taskFinish();
|
||||
void FaultFlagClear();
|
||||
inline void InitConfig();
|
||||
|
||||
const string UPDATE_WPT = "WPT_UPDATE";
|
||||
const string UPDATE_SPD = "SPEED_UPDATE";
|
||||
const string UPDATE_DEP = "DEPTH_UPDATE";
|
||||
const string UPDATE_TIMER = "TIMER_UPDATES";
|
||||
const string UPDATE_MAXDEP = "MAXDEEP_UPDATES";
|
||||
const string UPDATE_OPREGION = "OPREGION_UPDATES";
|
||||
const string UPDATE_RESETFAULT = "OPREGION_RESET";
|
||||
|
||||
const string MSG_WPTFLAG = "CurrentPointComplete";
|
||||
const string MSG_ENDFLAG = "END_WayPoint";
|
||||
const string MSG_START = "START";
|
||||
const string MSG_SENDSAFTRULES = "SendSaftRules";
|
||||
const string MSG_FALUT = "TaskFault";
|
||||
const string MSG_RUN = "RUN";
|
||||
const string MSG_CLEARFAULT = "ClearFalut";
|
||||
|
||||
const string MSG_IN_SSM = "uMission_action_cmd";
|
||||
const string MSG_TO_SSM = "uMission_task_fb";
|
||||
const string MSG_TO_FH = "uMission_fault_fb";
|
||||
const string MSG_IN_FH = "uDrive_fault_fb";
|
||||
const string MSG_IN_MAN = "uManual_enable_cmd"; //TODO: 增加手操状态
|
||||
|
||||
protected:
|
||||
// 任务参数
|
||||
string node_wpt;
|
||||
string node_depth;
|
||||
string node_speed;
|
||||
// 安全规则
|
||||
string maxDepth;
|
||||
string maxTime;
|
||||
string safePolygon;
|
||||
string minAltitude="0";
|
||||
// 路径参数
|
||||
string lead;
|
||||
string lead_damper;
|
||||
string lead_to_start;
|
||||
string capture_line;
|
||||
string capture_radius;
|
||||
string slip_radius;
|
||||
string efficiency_measure;
|
||||
|
||||
string faultMsg;
|
||||
|
||||
TaskType nodeType;
|
||||
list<string> nodeList;
|
||||
|
||||
private:
|
||||
bool current_node_complete = false;
|
||||
bool current_pol_complete = false;
|
||||
bool start=false;
|
||||
bool time_out=false;
|
||||
int st=10;
|
||||
int faultNumber = 0;
|
||||
int readTask = 0;
|
||||
string msg;
|
||||
string current_node;
|
||||
Status state = UNRUN;
|
||||
|
||||
Json::Value RepList;
|
||||
Json::StreamWriterBuilder RepJsBuilder;
|
||||
|
||||
|
||||
//任务文件参数
|
||||
//TODO:动态配置任务文件等参数
|
||||
string planConfigPath;
|
||||
vector<string> taskList;
|
||||
int taskCount;
|
||||
string taskName;
|
||||
//发送节点信息
|
||||
Json::Value node_rpt;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user