From c85bcf5ad5e0f029f176dcdee660b50867c9c00d Mon Sep 17 00:00:00 2001 From: zhaojingkui <1553836110@qq.com> Date: Wed, 29 Nov 2023 10:23:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=A8=8B=E5=BA=8F=E8=B7=AF=E5=BE=84=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=8F=8A=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setting/WayConfigParam.json | 9 +++++ src/pTaskManagement/TaskManger.cpp | 50 ++++++++++++++++++++-------- src/pTaskManagement/TaskManger.h | 5 +-- src/pTaskManagement/pTaskManger.moos | 3 +- 4 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 setting/WayConfigParam.json diff --git a/setting/WayConfigParam.json b/setting/WayConfigParam.json new file mode 100644 index 0000000..3760740 --- /dev/null +++ b/setting/WayConfigParam.json @@ -0,0 +1,9 @@ +{ + "lead" : 8, + "lead_damper" : 1, + "lead_to_start" : false, + "capture_line" : true, + "capture_radius" : 5, + "slip_radius" : 15, + "efficiency_measure" :"all" +} diff --git a/src/pTaskManagement/TaskManger.cpp b/src/pTaskManagement/TaskManger.cpp index e8f01b9..c4a16c9 100644 --- a/src/pTaskManagement/TaskManger.cpp +++ b/src/pTaskManagement/TaskManger.cpp @@ -359,13 +359,13 @@ bool TaskManger::Iterate() readSafetyRules(); setSafetyRules(maxTime, maxDepth, minAltitude, safePolygon); // setMaxDepth(maxDepth); - setMaxDepth("2"); + setMaxDepth(maxDepth); st = 49; break; } case 41: //路径参数配置 { - readWayConfig("a"); + readWayConfig(); setWayConfig(lead,lead_damper,capture_line,capture_radius,slip_radius); st = 49; //setWayConfig(); @@ -444,14 +444,21 @@ bool TaskManger::OnStartUp() if(param == "SAFETYRULESPATH") { safetyRulesPath = value; - RepList["RulesPath"] = safetyRulesPath; - } + //RepList["RulesPath"] = safetyRulesPath; + } + if(param == "WAYCONFIGPARAMPATH") + { + wayParamPath = value; + RepList["WayConfigPath"] = wayParamPath; + } } } if(planConfigPath == "") reportConfigWarning("NO TASK FILE PATH"); if(planConfigPath == "") reportConfigWarning("NO TASK SAFETY RULES CONFIG"); + if(wayParamPath == "") + reportConfigWarning("NO WAY PARAM CONFIG"); RegisterVariables(); return(true); } @@ -748,15 +755,32 @@ int TaskManger::readSafetyRules() } -int TaskManger::readWayConfig(string filename) +int TaskManger::readWayConfig() { - lead = "8"; - lead_damper = "1"; - lead_to_start = "false"; - capture_line = "true"; - capture_radius = "5"; - slip_radius = "15"; - efficiency_measure = "all"; + ifstream ifs; + ifs.open(wayParamPath, ios::in); + Json::Reader reader; + Json::Value inputJsonValue; + reader.parse(ifs, inputJsonValue); + ifs.close(); + if(!inputJsonValue.isMember("lead") + || !inputJsonValue.isMember("lead_damper") + || !inputJsonValue.isMember("lead_to_start") + || !inputJsonValue.isMember("capture_line") + || !inputJsonValue.isMember("capture_radius") + || !inputJsonValue.isMember("efficiency_measure") + || !inputJsonValue.isMember("slip_radius")) + return 1; + if(!inputJsonValue["points"].isArray()) + return 2; + lead = doubleToString(inputJsonValue["lead"].asDouble()); + lead_damper = doubleToString(inputJsonValue["lead_damper"].asDouble()); + lead_to_start = boolToString(inputJsonValue["lead_to_start"].asBool()); + capture_line = boolToString(inputJsonValue["capture_line"].asBool()); + capture_radius = doubleToString(inputJsonValue["capture_radius"].asDouble()); + slip_radius = doubleToString(inputJsonValue["slip_radius"].asDouble()); + efficiency_measure = inputJsonValue["efficiency_measure"].asString(); + return true; } /** @@ -1046,7 +1070,7 @@ inline void TaskManger::InitConfig() // readSafetyRules(); setSafetyRules(maxTime, maxDepth, minAltitude, safePolygon); - readWayConfig("a"); + readWayConfig(); setWayConfig(lead,lead_damper,capture_line,capture_radius,slip_radius); } diff --git a/src/pTaskManagement/TaskManger.h b/src/pTaskManagement/TaskManger.h index d1dae8c..7a84d32 100644 --- a/src/pTaskManagement/TaskManger.h +++ b/src/pTaskManagement/TaskManger.h @@ -2,7 +2,7 @@ * @Author: 1553836110 1553836110@qq.com * @Date: 2023-09-28 15:45:17 * @LastEditors: zhaojingkui 1553836110@qq.com - * @LastEditTime: 2023-11-28 15:38:44 + * @LastEditTime: 2023-11-29 10:08:55 * @FilePath: /moos-ivp-pi/src/pTaskManagement/TaskManger.h * @Description: * @@ -66,7 +66,7 @@ class TaskManger : public AppCastingMOOSApp int readTaskFile(string taskName); int readSafetyRules(); - int readWayConfig(string fileName); + int readWayConfig(); void postReportToSSM(); inline void clearHelmFlag(){Notify("HELM_MAP_CLEAR",0.0);} @@ -142,6 +142,7 @@ private: //TODO:动态配置任务文件等参数 string planConfigPath; string safetyRulesPath; + string wayParamPath; vector taskList; int taskCount; string taskName; diff --git a/src/pTaskManagement/pTaskManger.moos b/src/pTaskManagement/pTaskManger.moos index a9d1c58..092de1b 100644 --- a/src/pTaskManagement/pTaskManger.moos +++ b/src/pTaskManagement/pTaskManger.moos @@ -8,6 +8,7 @@ ProcessConfig = pTaskManger AppTick = 10 CommsTick = 10 planConfigPath = /home/zjk/project/work/moos-ivp-pi/setting/PlanConfigure.json - planConfigPath = /home/zjk/project/work/moos-ivp-pi/setting/SafetyRules.json + safetyRulesPath = /home/zjk/project/work/moos-ivp-pi/setting/SafetyRules.json + wayConfigParamPath = /home/zjk/project/work/moos-ivp-pi/setting/WayConfigParam.json }