From: Carle C. <car...@us...> - 2005-01-31 20:49:05
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21012 Modified Files: extractMarieCommandBehavior.cpp newMarieCommandBehavior.cpp Log Message: add behavior's parameters support Index: extractMarieCommandBehavior.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/extractMarieCommandBehavior.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** extractMarieCommandBehavior.cpp 2 Jan 2005 14:43:57 -0000 1.2 --- extractMarieCommandBehavior.cpp 31 Jan 2005 20:48:33 -0000 1.3 *************** *** 46,52 **** * @input_description The MarieCommandBehavior object * ! * @output_name ROBOTFLOW_ACTIVATION * @output_description RobotFlow activation vector * @output_type Vector<int> * END*/ --- 46,56 ---- * @input_description The MarieCommandBehavior object * ! * @output_name RF_ACTIVATION_VECTOR * @output_description RobotFlow activation vector * @output_type Vector<int> + * + * @output_name PARAMS_VECTOR + * @output_description Parameters (String format) vector + * @output_type Vector<String> * END*/ *************** *** 64,67 **** --- 68,74 ---- //outputs int m_activationID; + + //outputs + int m_parametersID; public: *************** *** 75,79 **** //outputs ! m_activationID = addOutput("ROBOTFLOW_ACTIVATION"); } --- 82,89 ---- //outputs ! m_activationID = addOutput("RF_ACTIVATION_VECTOR"); ! ! //outputs ! m_parametersID = addOutput("PARAMS_VECTOR"); } *************** *** 85,89 **** //create behavior activation vector (RobotFlow) ! Vector<int> *vect = Vector<int>::alloc(Behavior::get_behavior_size()); //get known behavior names --- 95,102 ---- //create behavior activation vector (RobotFlow) ! Vector<int> *vectActivations = Vector<int>::alloc(Behavior::get_behavior_size()); ! ! //create behavior activation vector (RobotFlow) ! Vector<String> *vectParams = Vector<String>::alloc(Behavior::get_behavior_size()); //get known behavior names *************** *** 91,111 **** const std::map<std::string, bool> &activationMap = command->getActivationMap(); //copy activation values if they exists, else set activation to false (0) ! for (int i = 0; i < vect->size(); i++) { //check if behavior exists if (activationMap.find(behaviorNames[i]) != activationMap.end()) { ! (*vect)[i] = (int) command->getActivation(behaviorNames[i]); } else { //default, not activated ! (*vect)[i] = 0; } } //output result ! out[count] = ObjectRef(vect); } --- 104,130 ---- const std::map<std::string, bool> &activationMap = command->getActivationMap(); + const std::map<std::string, std::string> ¶metersMap = command->getParametersMap(); //copy activation values if they exists, else set activation to false (0) ! for (int i = 0; i < vectActivations->size(); i++) { //check if behavior exists if (activationMap.find(behaviorNames[i]) != activationMap.end()) { ! (*vectActivations)[i] = (int) command->getActivation(behaviorNames[i]); } else { //default, not activated ! (*vectActivations)[i] = 0; } + + (*vectParams)[i] = command->getParameters(behaviorNames[i]); } //output result ! (*outputs[m_activationID].buffer)[count] = ObjectRef(vectActivations); ! (*outputs[m_parametersID].buffer)[count] = ObjectRef(vectParams); ! ! } Index: newMarieCommandBehavior.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/newMarieCommandBehavior.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** newMarieCommandBehavior.cpp 2 Jan 2005 14:43:58 -0000 1.2 --- newMarieCommandBehavior.cpp 31 Jan 2005 20:48:33 -0000 1.3 *************** *** 50,53 **** --- 50,57 ---- * @input_description true if the specified behavior is activated * + * @input_name BEHAVIOR_PARAMETERS + * @input_type String + * @input_description Behavior's parameters in String form (seperated by space) + * * @output_name COMMAND_BEHAVIOR * @output_description Output MARIE BehaviorCommand data object *************** *** 66,69 **** --- 70,74 ---- int m_behaviorNameID; int m_behaviorActivationID; + int m_behaviorParametersID; //outputs int m_behaviorCommandID; *************** *** 78,81 **** --- 83,87 ---- m_behaviorNameID = addInput("BEHAVIOR_NAME"); m_behaviorActivationID = addInput("BEHAVIOR_ACTIVATION"); + m_behaviorParametersID = addInput("BEHAVIOR_PARAMETERS"); //outputs *************** *** 88,100 **** ObjectRef BehaviorNameValue = getInput(m_behaviorNameID,count); ObjectRef BehaviorActivationValue = getInput(m_behaviorActivationID,count); ! if (!BehaviorNameValue->isNil() && !BehaviorActivationValue->isNil()) { RCPtr<String> name = BehaviorNameValue; RCPtr<Bool> activation = BehaviorActivationValue; MarieCommandBehavior *cb = new MarieCommandBehavior(); cb->setActivation(name->val(), activation->val()); out[count] = ObjectRef(cb); --- 94,109 ---- ObjectRef BehaviorNameValue = getInput(m_behaviorNameID,count); ObjectRef BehaviorActivationValue = getInput(m_behaviorActivationID,count); + ObjectRef BehaviorParametersValue = getInput(m_behaviorParametersID,count); ! if (!BehaviorNameValue->isNil() && !BehaviorActivationValue->isNil() && !BehaviorParametersValue->isNil()) { RCPtr<String> name = BehaviorNameValue; RCPtr<Bool> activation = BehaviorActivationValue; + RCPtr<String> parameters = BehaviorParametersValue; MarieCommandBehavior *cb = new MarieCommandBehavior(); cb->setActivation(name->val(), activation->val()); + cb->setParameters(name->val(), parameters->val()); out[count] = ObjectRef(cb); |