|
@@ -991,10 +991,10 @@ void RecipeContext::updateTime(BOOL newStep)
|
|
|
|
|
|
|
|
|
|
|
|
-string* RecipeContext::getCommandParam(string command)
|
|
|
+char * RecipeContext::getCommandParam(string command)
|
|
|
{
|
|
|
EV->postInfoLog("RecipeContext::getCommandParam(string command)");
|
|
|
- string ret = "";
|
|
|
+
|
|
|
//根据命令名称获取(当前step)的参数列表(不包含命令本身)
|
|
|
// 流程:
|
|
|
// 1.如果当前步骤非法,则返回NULL
|
|
@@ -1002,28 +1002,36 @@ string* RecipeContext::getCommandParam(string command)
|
|
|
// 3.返回command指定关键字的参数列表
|
|
|
// 4.注意C++中数组(指针)没有长度,所以要以NULL空指针结尾
|
|
|
|
|
|
+ static CommandMapST* retcommand;
|
|
|
if (currentRecipeType == currentRecipeTypeValue::NormalRecipe)
|
|
|
{
|
|
|
- //ret = mainStepList[currentStepNo].commandMap[command];
|
|
|
+ retcommand = mainStepList.get(currentStepNo)->commandMaps;
|
|
|
}
|
|
|
if (currentRecipeType == currentRecipeTypeValue::SubRecipe)
|
|
|
{
|
|
|
-
|
|
|
- //ret = subStepListMap[currentOtherRecipeKey][currentOtherStepNo].commandMap[command];
|
|
|
-
|
|
|
+ retcommand = subStepListMap.get(CovertIntToChar(currentOtherRecipeKey))->get(currentOtherStepNo)->commandMaps;
|
|
|
+ }
|
|
|
+ if (currentRecipeType == currentRecipeTypeValue::AlarmRecipe)
|
|
|
+ {
|
|
|
+ retcommand = alarmStepListMap.get(CovertIntToChar(currentOtherRecipeKey))->get(currentOtherStepNo)->commandMaps;
|
|
|
}
|
|
|
-
|
|
|
if (currentRecipeType == currentRecipeTypeValue::AbortRecipe)
|
|
|
{
|
|
|
- //ret = abortStepListMap[currentOtherRecipeKey][currentOtherStepNo].commandMap[command];
|
|
|
+ retcommand = abortStepListMap.get(CovertIntToChar(currentOtherRecipeKey))->get(currentOtherStepNo)->commandMaps;
|
|
|
}
|
|
|
|
|
|
- if (currentRecipeType == currentRecipeTypeValue::AlarmRecipe)
|
|
|
+ for (int i = 0; i < 200; i++)
|
|
|
{
|
|
|
- //ret = alarmStepListMap[currentOtherRecipeKey][currentOtherStepNo].commandMap[command];
|
|
|
+ if (retcommand == NULL) break; // 先判断数组指针有效性
|
|
|
+ if (retcommand[i].Command[0] == '\0') continue; // 跳过空元素
|
|
|
+ if (retcommand[i].Param[0] == '\0') continue; // 跳过空元素
|
|
|
+ if (retcommand[i].Command== command.c_str())
|
|
|
+ {
|
|
|
+ return (retcommand[i].Param);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- return &ret;
|
|
|
+ return NULL;
|
|
|
}
|
|
|
|
|
|
|