[TeamTalk 333]: [869] trunk/TeamTalk/Agents/TeamTalkBackend: Dynamic processes now use OLYMPUS_ROOT.

tk@edam.speech.cs.cmu.edu tk at edam.speech.cs.cmu.edu
Thu Nov 8 17:05:23 EST 2007


An HTML attachment was scrubbed...
URL: http://mailman.srv.cs.cmu.edu/pipermail/teamtalk-developers/attachments/20071108/d2aa6cfc/attachment-0001.html
-------------- next part --------------
Modified: trunk/TeamTalk/Agents/TeamTalkBackend/agent.cpp
===================================================================
--- trunk/TeamTalk/Agents/TeamTalkBackend/agent.cpp	2007-11-07 21:58:55 UTC (rev 868)
+++ trunk/TeamTalk/Agents/TeamTalkBackend/agent.cpp	2007-11-08 22:05:23 UTC (rev 869)
@@ -1,7 +1,7 @@
 #include "agent.h"
 #include <utils.h>
 #ifdef WIN32
-#include <win32dep.h>
+#  include <win32dep.h>
 #endif
 
 #include <sstream>
@@ -23,14 +23,14 @@
 
 void Agent::spawnHub(const string& uppername) 
 {
-  static const string HUB = "..\\..\\Libraries\\Galaxy\\Bin\\x86-nt\\hub.exe";
+  static const string HUB = OLYMPUS_ROOT + "\\Bin\\x86-nt\\HUB.exe";
 
-	map<string, string> subs;
-	subs["%%DialogManager%%"] = uppername;
-	subs["%%DMPort%%"] = stringOf(iDMPort);
-	subs["%%HeliosPort%%"] = stringOf(iHeliosPort);
+  map<string, string> subs;
+  subs["%%DialogManager%%"] = uppername;
+  subs["%%DMPort%%"] = stringOf(iDMPort);
+  subs["%%HeliosPort%%"] = stringOf(iHeliosPort);
 
-	string cfilename = writeSpecializedConfig("TeamTalk-hub-desktop", "pgm", subs, uppername);
+  string cfilename = writeSpecializedConfig("TeamTalk-hub-desktop", "pgm", subs, uppername);
 
   ostringstream cmd, title;
   cmd << HUB << " -verbosity 3 -pgm_file " << cfilename;
@@ -41,12 +41,12 @@
 
 void Agent::spawnHelios(const string& uppername) 
 {
-  static const string HELIOS = "..\\..\\Bin\\x86-nt\\Helios3.exe";
+  static const string HELIOS = OLYMPUS_ROOT + "\\Bin\\x86-nt\\Helios.exe";
 
   map<string, string> subs;
-	subs["%%NAME%%"] = uppername;
+  subs["%%NAME%%"] = uppername;
 
-	string cfilename = writeSpecializedConfig("helios", "cfg", subs, uppername);
+  string cfilename = writeSpecializedConfig("helios", "cfg", subs, uppername);
 
   ostringstream cmd, title;
   cmd << HELIOS << " -maxconns 6 -port " << iHeliosPort << " -config " << cfilename;
@@ -60,23 +60,23 @@
   static const string DM = "..\\..\\Bin\\x86-nt\\TeamTalkDM.exe";
 	
   map<string, string> subs;
-	subs["%%ServerName%%"] = uppername;
-	subs["%%ServerPort%%"] = stringOf(iDMPort);
-	if(safeness == "SAFE") {
-		subs["%%EXPLORATION_MODE%%"] = "epsilon-greedy";
-		subs["%%EXPL_CONF-CONFIDENT%%"] = "-";
-		subs["%%ACCEPT-UNCONFIDENT%%"] = "10";
-		subs["%%EXPL_CONF-UNCONFIDENT%%"] = "-";
-	} else {
-		subs["%%EXPLORATION_MODE%%"] = "greedy";
-		subs["%%EXPL_CONF-CONFIDENT%%"] = "0";
-		subs["%%ACCEPT-UNCONFIDENT%%"] = "-100";
-		subs["%%EXPL_CONF-UNCONFIDENT%%"] = "10";
-	}
+  subs["%%ServerName%%"] = uppername;
+  subs["%%ServerPort%%"] = stringOf(iDMPort);
+  if(safeness == "SAFE") {
+    subs["%%EXPLORATION_MODE%%"] = "epsilon-greedy";
+    subs["%%EXPL_CONF-CONFIDENT%%"] = "-";
+    subs["%%ACCEPT-UNCONFIDENT%%"] = "10";
+    subs["%%EXPL_CONF-UNCONFIDENT%%"] = "-";
+  } else {
+    subs["%%EXPLORATION_MODE%%"] = "greedy";
+    subs["%%EXPL_CONF-CONFIDENT%%"] = "0";
+    subs["%%ACCEPT-UNCONFIDENT%%"] = "-100";
+    subs["%%EXPL_CONF-UNCONFIDENT%%"] = "10";
+  }
 
-	writeSpecializedConfig("expl", "pol", subs, uppername);
-	writeSpecializedConfig("grounding", "policies", subs, uppername);
-	string cfilename = writeSpecializedConfig("TeamTalkDM", "cfg", subs, uppername);
+  writeSpecializedConfig("expl", "pol", subs, uppername);
+  writeSpecializedConfig("grounding", "policies", subs, uppername);
+  string cfilename = writeSpecializedConfig("TeamTalkDM", "cfg", subs, uppername);
 
   ostringstream cmd, title;
   cmd << DM << " -maxconns 6 -config " << cfilename;
@@ -96,120 +96,120 @@
                                      const map<string, string>& subs, 
                                      const string name) 
 {
-	ostringstream cfilename;
-	cfilename << temp;
-	if(!name.empty()) cfilename << '-' << name;
-	cfilename << '.' << ext;
-	ostringstream tfilename;
-	tfilename << temp << "-template" << '.' << ext;
+  ostringstream cfilename;
+  cfilename << temp;
+  if(!name.empty()) cfilename << '-' << name;
+  cfilename << ".instance." << ext;
+  ostringstream tfilename;
+  tfilename << temp << "-template" << '.' << ext;
 
-	//get config template
-	string ss;
-	{
-		ifstream ctemplate(tfilename.str().c_str());
-		stringbuf s;
-		ctemplate.get(s, char_traits<char>::eof());
-		ss = s.str();
-	}
+  //get config template
+  string ss;
+  {
+    ifstream ctemplate(tfilename.str().c_str());
+    stringbuf s;
+    ctemplate.get(s, char_traits<char>::eof());
+    ss = s.str();
+  }
 
-	substitute(ss, subs);
+  substitute(ss, subs);
 
-	//write new config file
-	ofstream config(cfilename.str().c_str());
-	config << ss;
+  //write new config file
+  ofstream config(cfilename.str().c_str());
+  config << ss;
 
-	return cfilename.str();
+  return cfilename.str();
 }
 
 Gal_Frame Agent::galaxyFrame(const Msg* msgp) 
 {
-	Gal_Frame f;
+  Gal_Frame f;
 
-	//robot reporting location
-	const MsgRobLocation *rloc = dynamic_cast<const MsgRobLocation*>(msgp);
-	if(rloc != NULL) {
-		f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
-		Gal_SetProp(f, ":type", Gal_StringObject("location"));
-		Gal_SetProp(f, ":robot_name", Gal_StringObject(rloc->getSender().c_str()));
-		Gal_SetProp(f, ":x", Gal_FloatObject((float)rloc->getX()));
-		Gal_SetProp(f, ":y", Gal_FloatObject((float)rloc->getY()));
-		Gal_SetProp(f, ":r", Gal_FloatObject((float)rloc->getAngle()));
+  //robot reporting location
+  const MsgRobLocation *rloc = dynamic_cast<const MsgRobLocation*>(msgp);
+  if(rloc != NULL) {
+    f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
+    Gal_SetProp(f, ":type", Gal_StringObject("location"));
+    Gal_SetProp(f, ":robot_name", Gal_StringObject(rloc->getSender().c_str()));
+    Gal_SetProp(f, ":x", Gal_FloatObject((float)rloc->getX()));
+    Gal_SetProp(f, ":y", Gal_FloatObject((float)rloc->getY()));
+    Gal_SetProp(f, ":r", Gal_FloatObject((float)rloc->getAngle()));
     Gal_SetProp(f, ":error", Gal_IntObject(rloc->getErrorState()));
-		return f;
-	}
+    return f;
+  }
 
-	//robot reporting a movement
-	const MsgCmdGoTo *move = dynamic_cast<const MsgCmdGoTo*>(msgp);
-	if(move != NULL) {
-		f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
-		Gal_SetProp(f, ":type", Gal_StringObject("goal"));
-		Gal_SetProp(f, ":robot_name", Gal_StringObject(move->getSender().c_str()));
-		Gal_SetProp(f, ":relative", Gal_IntObject(move->isRelative()? 1: 0));
-		Gal_SetProp(f, ":x", Gal_FloatObject((float)move->getX()));
-		Gal_SetProp(f, ":y", Gal_FloatObject((float)move->getY()));
+  //robot reporting a movement
+  const MsgCmdGoTo *move = dynamic_cast<const MsgCmdGoTo*>(msgp);
+  if(move != NULL) {
+    f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
+    Gal_SetProp(f, ":type", Gal_StringObject("goal"));
+    Gal_SetProp(f, ":robot_name", Gal_StringObject(move->getSender().c_str()));
+    Gal_SetProp(f, ":relative", Gal_IntObject(move->isRelative()? 1: 0));
+    Gal_SetProp(f, ":x", Gal_FloatObject((float)move->getX()));
+    Gal_SetProp(f, ":y", Gal_FloatObject((float)move->getY()));
     Gal_SetProp(f, ":status", Gal_StringObject(move->getStatus()));
     Gal_SetProp(f, ":taskid", Gal_IntObject(move->getTaskID()));
-		return f;
-	}
+    return f;
+  }
 
-	//robot reporting halt
-	const MsgCmdHalt *halt = dynamic_cast<const MsgCmdHalt*>(msgp);
-	if(halt != NULL) {
-		f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
-		Gal_SetProp(f, ":type", Gal_StringObject("halt"));
-		Gal_SetProp(f, ":robot_name", Gal_StringObject(halt->getSender().c_str()));
-		return f;
-	}
+  //robot reporting halt
+  const MsgCmdHalt *halt = dynamic_cast<const MsgCmdHalt*>(msgp);
+  if(halt != NULL) {
+    f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
+    Gal_SetProp(f, ":type", Gal_StringObject("halt"));
+    Gal_SetProp(f, ":robot_name", Gal_StringObject(halt->getSender().c_str()));
+    return f;
+  }
 
-	//robot reporting going to home
-	const MsgCmdHome *home = dynamic_cast<const MsgCmdHome*>(msgp);
-	if(home != NULL) {
-		f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
-		Gal_SetProp(f, ":type", Gal_StringObject("goal"));
-		Gal_SetProp(f, ":robot_name", Gal_StringObject(home->getSender().c_str()));
-		Gal_SetProp(f, ":relative", Gal_IntObject(0));
-		Gal_SetProp(f, ":x", Gal_FloatObject(0));
-		Gal_SetProp(f, ":y", Gal_FloatObject(0));
+  //robot reporting going to home
+  const MsgCmdHome *home = dynamic_cast<const MsgCmdHome*>(msgp);
+  if(home != NULL) {
+    f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
+    Gal_SetProp(f, ":type", Gal_StringObject("goal"));
+    Gal_SetProp(f, ":robot_name", Gal_StringObject(home->getSender().c_str()));
+    Gal_SetProp(f, ":relative", Gal_IntObject(0));
+    Gal_SetProp(f, ":x", Gal_FloatObject(0));
+    Gal_SetProp(f, ":y", Gal_FloatObject(0));
     Gal_SetProp(f, ":status", Gal_StringObject(home->getStatus()));
-		return f;
-	}
+    return f;
+  }
 
-	//robot reporting follow
-	const MsgCmdFollow *follow = dynamic_cast<const MsgCmdFollow*>(msgp);
-	if(home != NULL) {
-		f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
-		Gal_SetProp(f, ":type", Gal_StringObject("follow"));
-		Gal_SetProp(f, ":robot_name", Gal_StringObject(follow->getSender().c_str()));
+  //robot reporting follow
+  const MsgCmdFollow *follow = dynamic_cast<const MsgCmdFollow*>(msgp);
+  if(home != NULL) {
+    f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
+    Gal_SetProp(f, ":type", Gal_StringObject("follow"));
+    Gal_SetProp(f, ":robot_name", Gal_StringObject(follow->getSender().c_str()));
     Gal_SetProp(f, ":status", Gal_StringObject(follow->getStatus()));
-		//string host = follow->content()->leader;
-		//string::size_type i = host.find(':');
-		//int port = 0;
-		//if(i != string::npos) {
-		//	port = atoi(string(host, i+1, host.size()-i-1).c_str());
-		//	host.resize(i);
-		//}
-		//Gal_SetProp(f, ":followee", Gal_StringObject(client.find(host, port).c_str()));
-		return f;
-	}
+    //string host = follow->content()->leader;
+    //string::size_type i = host.find(':');
+    //int port = 0;
+    //if(i != string::npos) {
+    //	port = atoi(string(host, i+1, host.size()-i-1).c_str());
+    //	host.resize(i);
+    //}
+    //Gal_SetProp(f, ":followee", Gal_StringObject(client.find(host, port).c_str()));
+    return f;
+  }
 
-	//robot reporting cover
-	const MsgCmdCover *cover = dynamic_cast<const MsgCmdCover*>(msgp);
-	if(cover != NULL) {
-		f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
-		Gal_SetProp(f, ":type", Gal_StringObject("cover"));
-		Gal_SetProp(f, ":robot_name", Gal_StringObject(cover->getSender().c_str()));
+  //robot reporting cover
+  const MsgCmdCover *cover = dynamic_cast<const MsgCmdCover*>(msgp);
+  if(cover != NULL) {
+    f = Gal_MakeFrame("robot_message", GAL_CLAUSE);
+    Gal_SetProp(f, ":type", Gal_StringObject("cover"));
+    Gal_SetProp(f, ":robot_name", Gal_StringObject(cover->getSender().c_str()));
     geometry::Polygon<float> polygon = cover->getPolygon();
     Gal_Object *xs = new Gal_Object[polygon.size()];
-		Gal_Object *ys = new Gal_Object[polygon.size()];
-		for(unsigned int i=0; i<polygon.size(); i++) {
+    Gal_Object *ys = new Gal_Object[polygon.size()];
+    for(unsigned int i=0; i<polygon.size(); i++) {
       xs[i] = Gal_FloatObject((float)polygon[i].x);
-			ys[i] = Gal_FloatObject((float)polygon[i].y);
-		}
-		Gal_SetProp(f, ":x", Gal_ListObject(xs, (int)polygon.size()));
+      ys[i] = Gal_FloatObject((float)polygon[i].y);
+    }
+    Gal_SetProp(f, ":x", Gal_ListObject(xs, (int)polygon.size()));
     Gal_SetProp(f, ":y", Gal_ListObject(ys, (int)polygon.size()));
     Gal_SetProp(f, ":status", Gal_StringObject(cover->getStatus()));
-		return f;
-	}
+    return f;
+  }
 
   //robot sending camera image
   const MsgMap *image = dynamic_cast<const MsgMap*>(msgp);
@@ -221,12 +221,12 @@
     Gal_SetProp(f, ":height", Gal_IntObject(image->getHeight()));
     Gal_SetProp(f, ":invoice", Gal_IntObject(image->getInvoice()));
     Gal_SetProp(f, ":jpeg", 
-                Gal_BinaryObject((void *) image->getImageData().c_str(), 
-                                 (int) image->getImageDataSize()));
+      Gal_BinaryObject((void *) image->getImageData().c_str(), 
+      (int) image->getImageDataSize()));
     return f;
   }
 
-	return Gal_MakeFrame("bogus", GAL_CLAUSE);
+  return Gal_MakeFrame("bogus", GAL_CLAUSE);
 }
 
 void Agent::spawnMinorGalaxy(const string& name, const string& safeness) 
@@ -235,6 +235,7 @@
   string uppersafeness(safeness);
   toupper(uppername); toupper(uppersafeness);
   info << "got new robot: " << uppername << ' ' << uppersafeness << endl;
+  OLYMPUS_ROOT = getenv("OLYMPUS_ROOT");
   spawnHelios(uppername);
   spawnDM(uppername, uppersafeness);
   spawnHub(uppername);
@@ -246,20 +247,18 @@
 Agent::Agent(TeamTalk::RobotClient* robotClient, GalIO_CommStruct* comm) 
 : name_(robotClient->getName()), robotClient_(robotClient), comm_(comm) {}
 
-Agent::~Agent() 
-{
-}
+Agent::~Agent() {}
 
 void Agent::processMessage(const Msg* m)
 {
   Gal_Frame f;
   const MsgRobLocation *rloc = dynamic_cast<const MsgRobLocation*>(m);
-	if(rloc != NULL) {
-		if(location_ == *rloc) return;
+  if(rloc != NULL) {
+    if(location_ == *rloc) return;
     if(location_.getErrorState() != rloc->getErrorState()) 
       SendErrorStatusToDM(rloc->getErrorState());
-		location_ = *rloc;
-	}
+    location_ = *rloc;
+  }
   const MsgCmdGoTo *move = dynamic_cast<const MsgCmdGoTo*>(m);
   if(move != NULL) SendMoveStatusToDM(move);
   const MsgRobDone *done = dynamic_cast<const MsgRobDone*>(m);
@@ -277,12 +276,12 @@
       commitments_.erase(i);
     }
   } else f = galaxyFrame(m);
-	char *frame_name = Gal_FrameName(f);
-	if(frame_name != NULL && !strcmp(frame_name, "robot_message")) {
-		debug << "sending to '" << name_ << "' hub: " << m->render() << endl;
-		writeFrame(f);
-		Gal_FreeFrame(f);
-	}
+  char *frame_name = Gal_FrameName(f);
+  if(frame_name != NULL && !strcmp(frame_name, "robot_message")) {
+    debug << "sending to '" << name_ << "' hub: " << m->render() << endl;
+    writeFrame(f);
+    Gal_FreeFrame(f);
+  }
 }
 
 void Agent::writeFrame(Gal_Frame f) const
@@ -306,76 +305,76 @@
 void Agent::SendMessageToDM(const string& sMsgType, 
                             const map<string, string>& sMessages) const
 {
-	// variables holding the nested galaxy parse frame
-	Gal_Frame gfInput, gfParse, gfSlot, gfNet;
-	Gal_Object *pgoParses, *pgoSlots, *pgoNets;
+  // variables holding the nested galaxy parse frame
+  Gal_Frame gfInput, gfParse, gfSlot, gfNet;
+  Gal_Object *pgoParses, *pgoSlots, *pgoNets;
 
-	// start assembling the frame
-	gfInput = Gal_MakeFrame("main", GAL_CLAUSE);
+  // start assembling the frame
+  gfInput = Gal_MakeFrame("main", GAL_CLAUSE);
 
-	pgoParses = (Gal_Object *)malloc(sizeof(Gal_Object));
-	gfParse = Gal_MakeFrame("parse", GAL_CLAUSE);
+  pgoParses = (Gal_Object *)malloc(sizeof(Gal_Object));
+  gfParse = Gal_MakeFrame("parse", GAL_CLAUSE);
 
-	pgoSlots = (Gal_Object *)malloc(sizeof(Gal_Object));
-	gfSlot = Gal_MakeFrame("slot", GAL_CLAUSE);
+  pgoSlots = (Gal_Object *)malloc(sizeof(Gal_Object));
+  gfSlot = Gal_MakeFrame("slot", GAL_CLAUSE);
 
-	pgoNets = (Gal_Object *)calloc(sMessages.size(), sizeof(Gal_Object));
+  pgoNets = (Gal_Object *)calloc(sMessages.size(), sizeof(Gal_Object));
 
   string hyp;
   string parse;
 
-	// construct the nets
+  // construct the nets
   map<string, string>::const_iterator smi = sMessages.begin();
   for(int i = 0; smi != sMessages.end(); smi++, i++) {
     if(i) {
       hyp.append(" ");
       parse.append(" ");
     }
-	  gfNet = Gal_MakeFrame("net", GAL_CLAUSE);
+    gfNet = Gal_MakeFrame("net", GAL_CLAUSE);
     string sNetName = " " + smi->first + " ";
-	  Gal_SetProp(gfNet, ":name", Gal_StringObject(sNetName.c_str()));
-	  Gal_SetProp(gfNet, ":contents", Gal_StringObject(smi->second.c_str()));
+    Gal_SetProp(gfNet, ":name", Gal_StringObject(sNetName.c_str()));
+    Gal_SetProp(gfNet, ":contents", Gal_StringObject(smi->second.c_str()));
     hyp.append(smi->second);
     parse.append("( " + smi->first + "( " + smi->second + " ) )");
-	  pgoNets[i] = Gal_FrameObject(gfNet);
+    pgoNets[i] = Gal_FrameObject(gfNet);
   }
 
-	// then construct the encompassing slot
-	Gal_SetProp(gfSlot, ":nets", Gal_ListObject(pgoNets, (int)sMessages.size()));
-	Gal_SetProp(gfSlot, ":numnets", Gal_IntObject((int)sMessages.size()));
+  // then construct the encompassing slot
+  Gal_SetProp(gfSlot, ":nets", Gal_ListObject(pgoNets, (int)sMessages.size()));
+  Gal_SetProp(gfSlot, ":numnets", Gal_IntObject((int)sMessages.size()));
   string sNetName = " " + sMsgType + " ";
-	Gal_SetProp(gfSlot, ":name", Gal_StringObject(sNetName.c_str()));
-	Gal_SetProp(gfSlot, ":contents", Gal_StringObject(hyp.c_str()));
-	Gal_SetProp(gfSlot, ":frame", Gal_StringObject(" RobotMessage "));
-	pgoSlots[0] = Gal_FrameObject(gfSlot);
+  Gal_SetProp(gfSlot, ":name", Gal_StringObject(sNetName.c_str()));
+  Gal_SetProp(gfSlot, ":contents", Gal_StringObject(hyp.c_str()));
+  Gal_SetProp(gfSlot, ":frame", Gal_StringObject(" RobotMessage "));
+  pgoSlots[0] = Gal_FrameObject(gfSlot);
 
-	// then construct the encompassing parse
-	Gal_SetProp(gfParse, ":slots", Gal_ListObject(pgoSlots, 1));
-	Gal_SetProp(gfParse, ":numslots", Gal_IntObject(1));
-	Gal_SetProp(gfParse, ":uttid", Gal_StringObject("-1"));
-	Gal_SetProp(gfParse, ":hyp", Gal_StringObject(hyp.c_str()));
-	Gal_SetProp(gfParse, ":hyp_index", Gal_IntObject(0));
-	Gal_SetProp(gfParse, ":hyp_num_parses", Gal_IntObject(1));
-	Gal_SetProp(gfParse, ":decoder_score", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":am_score", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":lm_score", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":frame_num", Gal_IntObject(0));
-	Gal_SetProp(gfParse, ":acoustic_gap_norm", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":avg_wordconf", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":min_wordconf", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":max_wordconf", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":avg_validwordconf", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":min_validwordconf", Gal_FloatObject(0));
-	Gal_SetProp(gfParse, ":max_validwordconf", Gal_FloatObject(0));		
-	string sParseString = "RobotMessage \n" + sMsgType + " " + parse + "\n\n"; 
-	Gal_SetProp(gfParse, ":parsestring", Gal_StringObject(sParseString.c_str()));
-	pgoParses[0] = Gal_FrameObject(gfParse);
+  // then construct the encompassing parse
+  Gal_SetProp(gfParse, ":slots", Gal_ListObject(pgoSlots, 1));
+  Gal_SetProp(gfParse, ":numslots", Gal_IntObject(1));
+  Gal_SetProp(gfParse, ":uttid", Gal_StringObject("-1"));
+  Gal_SetProp(gfParse, ":hyp", Gal_StringObject(hyp.c_str()));
+  Gal_SetProp(gfParse, ":hyp_index", Gal_IntObject(0));
+  Gal_SetProp(gfParse, ":hyp_num_parses", Gal_IntObject(1));
+  Gal_SetProp(gfParse, ":decoder_score", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":am_score", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":lm_score", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":frame_num", Gal_IntObject(0));
+  Gal_SetProp(gfParse, ":acoustic_gap_norm", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":avg_wordconf", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":min_wordconf", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":max_wordconf", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":avg_validwordconf", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":min_validwordconf", Gal_FloatObject(0));
+  Gal_SetProp(gfParse, ":max_validwordconf", Gal_FloatObject(0));		
+  string sParseString = "RobotMessage \n" + sMsgType + " " + parse + "\n\n"; 
+  Gal_SetProp(gfParse, ":parsestring", Gal_StringObject(sParseString.c_str()));
+  pgoParses[0] = Gal_FrameObject(gfParse);
 
-	Gal_SetProp(gfInput, ":parses", Gal_ListObject(pgoParses, 1));
-	Gal_SetProp(gfInput, ":total_numparses", Gal_IntObject(1));
-	Gal_SetProp(gfInput, ":input_source", Gal_StringObject("TeamTalkBackend"));
+  Gal_SetProp(gfInput, ":parses", Gal_ListObject(pgoParses, 1));
+  Gal_SetProp(gfInput, ":total_numparses", Gal_IntObject(1));
+  Gal_SetProp(gfInput, ":input_source", Gal_StringObject("TeamTalkBackend"));
 
-	// finally, write it to the hub
+  // finally, write it to the hub
   writeFrame(gfInput);
 
   //and free everything
@@ -388,7 +387,7 @@
 void Agent::SendErrorStatusToDM(int error) const {
   string error_report = (error? "I am experiencing an error condition. Please help.": 
     "All systems are OK.");
-  SendMessageToDM("ERROR", error_report);
+SendMessageToDM("ERROR", error_report);
 }
 
 void Agent::SendMoveStatusToDM(const MsgCmdGoTo* move) const {
@@ -443,290 +442,290 @@
 void Agent::location_query() const
 {
   static const char *const compass_points[] = {
-	  "east", "east north east", "north east", "north north east",
-	  "north", "north north west", "north west", "west north west",
-	  "west", "west south west", "south west", "south south west",
-	  "south", "south south east", "south east", "east south east"};
-	static const float precision = 1.1F; //110 cm precision
+    "east", "east north east", "north east", "north north east",
+    "north", "north north west", "north west", "west north west",
+    "west", "west south west", "south west", "south south west",
+    "south", "south south east", "south east", "east south east"};
+    static const float precision = 1.1F; //110 cm precision
 
-	ostringstream ossMessage;
-  const Point<float> p = location_.getLocation();
-	double distanceFromHome = p.length();
-	if(distanceFromHome < precision) {
-		ossMessage << "I am home.";
-	} else {
-		ossMessage << setiosflags(ios_base::fixed) << setprecision(1);
-		ossMessage << "I am "
-			<< p.length() << " meters from home; bearing is ";
-		int a = ((int)(p.angle()*180/PI+PI/16)/16)%16;
-		ossMessage << compass_points[a] << '.';
-	}
-	SendMessageToDM("Location", ossMessage.str());
+    ostringstream ossMessage;
+    const Point<float> p = location_.getLocation();
+    double distanceFromHome = p.length();
+    if(distanceFromHome < precision) {
+      ossMessage << "I am home.";
+    } else {
+      ossMessage << setiosflags(ios_base::fixed) << setprecision(1);
+      ossMessage << "I am "
+        << p.length() << " meters from home; bearing is ";
+      int a = ((int)(p.angle()*180/PI+PI/16)/16)%16;
+      ossMessage << compass_points[a] << '.';
+    }
+    SendMessageToDM("Location", ossMessage.str());
 }
 
 void Agent::move_cardinal_command(const Gal_Frame& inframe) 
 {
-	debug << "sending move query to backend" << endl;
-	string s_distance(Gal_GetString(inframe, ":distance"));
-	string s_units(Gal_GetString(inframe, ":units"));
-	string s_direction(Gal_GetString(inframe, ":direction"));
-	if(!(s_distance.empty() && s_direction.empty())) {
-		error("agent") << "distance or direction missing" << endl;
-	} else {
-		Point<float> vec(static_cast<float>(GetNumber999(s_distance)), 0);
-		if(!s_distance.empty()) {
-			if(!s_units.empty()) {
-				if(s_units == "FOOT" || s_units == "FEET") {
-					vec.x *= 0.3048F;
-				} else if(s_units == "YARD" || s_units == "YARDS") {
-					vec.x *= 0.9144F;
-				}
-			}
-			MsgCmdGoTo *go = NULL;
-			if(s_direction == "NORTH") 
-				go = new MsgCmdGoTo(vec.rotate(PI/2));
-			else if(s_direction == "NORTHEAST") 
-				go = new MsgCmdGoTo(vec.rotate(PI/4));
-			else if(s_direction == "NORTHWEST") 
-				go = new MsgCmdGoTo(vec.rotate(3*PI/4));
-			else if(s_direction == "EAST")
-				go = new MsgCmdGoTo(vec);
-			else if(s_direction == "SOUTH") 
-				go = new MsgCmdGoTo(vec.rotate(-PI/2));
-			else if(s_direction == "SOUTHEAST") 
-				go = new MsgCmdGoTo(vec.rotate(-PI/4));
-			else if(s_direction == "SOUTHWEST") 
-				go = new MsgCmdGoTo(vec.rotate(-3*PI/4));
-			else if(s_direction == "WEST") 
-				go = new MsgCmdGoTo(vec.rotate(PI));
-			if(go != NULL) {
+  debug << "sending move query to backend" << endl;
+  string s_distance(Gal_GetString(inframe, ":distance"));
+  string s_units(Gal_GetString(inframe, ":units"));
+  string s_direction(Gal_GetString(inframe, ":direction"));
+  if(!(s_distance.empty() && s_direction.empty())) {
+    error("agent") << "distance or direction missing" << endl;
+  } else {
+    Point<float> vec(static_cast<float>(GetNumber999(s_distance)), 0);
+    if(!s_distance.empty()) {
+      if(!s_units.empty()) {
+        if(s_units == "FOOT" || s_units == "FEET") {
+          vec.x *= 0.3048F;
+        } else if(s_units == "YARD" || s_units == "YARDS") {
+          vec.x *= 0.9144F;
+        }
+      }
+      MsgCmdGoTo *go = NULL;
+      if(s_direction == "NORTH") 
+        go = new MsgCmdGoTo(vec.rotate(PI/2));
+      else if(s_direction == "NORTHEAST") 
+        go = new MsgCmdGoTo(vec.rotate(PI/4));
+      else if(s_direction == "NORTHWEST") 
+        go = new MsgCmdGoTo(vec.rotate(3*PI/4));
+      else if(s_direction == "EAST")
+        go = new MsgCmdGoTo(vec);
+      else if(s_direction == "SOUTH") 
+        go = new MsgCmdGoTo(vec.rotate(-PI/2));
+      else if(s_direction == "SOUTHEAST") 
+        go = new MsgCmdGoTo(vec.rotate(-PI/4));
+      else if(s_direction == "SOUTHWEST") 
+        go = new MsgCmdGoTo(vec.rotate(-3*PI/4));
+      else if(s_direction == "WEST") 
+        go = new MsgCmdGoTo(vec.rotate(PI));
+      if(go != NULL) {
 #ifdef USE_TXT_COMMANDS
-          sendAction(go);
+        sendAction(go);
 #else
-					r->sendGoToCmd(1, go->content()->taskid,
-					go->content()->x, go->content()->y, go->content()->angle,
-					go->content()->useAngle(), go->content()->useRelative());
+        r->sendGoToCmd(1, go->content()->taskid,
+          go->content()->x, go->content()->y, go->content()->angle,
+          go->content()->useAngle(), go->content()->useRelative());
 #endif
-				delete go;
-			} else
-				error("agent") << "unknown direction " << s_direction << endl;
-		}
-	}
+        delete go;
+      } else
+        error("agent") << "unknown direction " << s_direction << endl;
+    }
+  }
 } 
 
 void Agent::move_relative_command(const Gal_Frame& inframe)
 {
-	debug << "sending move relative query to backend" << endl;
-	string s_distance;
-	if (Gal_GetString(inframe, ":distance"))
-		s_distance = Gal_GetString(inframe, ":distance");
-	string s_direction;
-	if (Gal_GetString(inframe, ":direction"))
-		s_direction = Gal_GetString(inframe, ":direction");
-	string s_units;
-	if (Gal_GetString(inframe, ":units"))
-		s_units = Gal_GetString(inframe, ":units");
-	if(s_distance.empty() || s_direction.empty()) {
-		error("agent") << "distance or direction missing" << endl;
-	} else {
-		if(!s_distance.empty()) {
-			Point<float> vec(static_cast<float>(GetNumber999(s_distance)), 0);
-			if(!s_units.empty()) {
-				if(s_units == "FOOT" || s_units == "FEET") {
-					vec.x *= 0.3048F;
-				} else if(s_units == "YARD" || s_units == "YARDS") {
-					vec.x *= 0.9144F;
-				}
-			}
-			MsgCmdGoTo *go = NULL;
-			if(s_direction == "STRAIGHT" || 
-				s_direction == "FORWARD" || 
-				s_direction == "FORWARDS" ||
-				s_direction == "AROUND")
-				go = new MsgCmdGoTo(vec);
-			else if(s_direction.substr(0, 5) == "RIGHT")
-				go = new MsgCmdGoTo(vec.rotate(-PI/2));
-			else if(s_direction.substr(0, 4) == "LEFT")
-				go = new MsgCmdGoTo(vec.rotate(PI/2));
-			else if(s_direction == "BACK" ||
-				s_direction == "BACKWARD" ||
-				s_direction == "BACKWARDS")
-				go = new MsgCmdGoTo(vec.rotate(PI));
-			if(go != NULL) {
+  debug << "sending move relative query to backend" << endl;
+  string s_distance;
+  if (Gal_GetString(inframe, ":distance"))
+    s_distance = Gal_GetString(inframe, ":distance");
+  string s_direction;
+  if (Gal_GetString(inframe, ":direction"))
+    s_direction = Gal_GetString(inframe, ":direction");
+  string s_units;
+  if (Gal_GetString(inframe, ":units"))
+    s_units = Gal_GetString(inframe, ":units");
+  if(s_distance.empty() || s_direction.empty()) {
+    error("agent") << "distance or direction missing" << endl;
+  } else {
+    if(!s_distance.empty()) {
+      Point<float> vec(static_cast<float>(GetNumber999(s_distance)), 0);
+      if(!s_units.empty()) {
+        if(s_units == "FOOT" || s_units == "FEET") {
+          vec.x *= 0.3048F;
+        } else if(s_units == "YARD" || s_units == "YARDS") {
+          vec.x *= 0.9144F;
+        }
+      }
+      MsgCmdGoTo *go = NULL;
+      if(s_direction == "STRAIGHT" || 
+        s_direction == "FORWARD" || 
+        s_direction == "FORWARDS" ||
+        s_direction == "AROUND")
+        go = new MsgCmdGoTo(vec);
+      else if(s_direction.substr(0, 5) == "RIGHT")
+        go = new MsgCmdGoTo(vec.rotate(-PI/2));
+      else if(s_direction.substr(0, 4) == "LEFT")
+        go = new MsgCmdGoTo(vec.rotate(PI/2));
+      else if(s_direction == "BACK" ||
+        s_direction == "BACKWARD" ||
+        s_direction == "BACKWARDS")
+        go = new MsgCmdGoTo(vec.rotate(PI));
+      if(go != NULL) {
         commitments_.push_back(new MsgCmdGoTo(*go));
 #ifdef USE_TXT_COMMANDS
-			  sendAction(go);
+        sendAction(go);
 #else
-				r->sendGoToCmd(go->content()->priority, go->content()->taskid,
-				go->content()->x, go->content()->y, go->content()->angle,
-				go->content()->useAngle(), go->content()->useRelative());
+        r->sendGoToCmd(go->content()->priority, go->content()->taskid,
+          go->content()->x, go->content()->y, go->content()->angle,
+          go->content()->useAngle(), go->content()->useRelative());
 #endif
-				delete go;
-			} else
-				error("agent") << "unknown direction " << s_direction << endl;
-		}
-	}
+        delete go;
+      } else
+        error("agent") << "unknown direction " << s_direction << endl;
+    }
+  }
 } 
 
 void Agent::halt_command()
 {
-	MsgCmdHalt halt;
+  MsgCmdHalt halt;
 #ifdef USE_TXT_COMMANDS
-		sendAction(&halt);
+  sendAction(&halt);
 #else
-		r->sendHalt(halt.content()->priority, halt.content()->taskid);
+  r->sendHalt(halt.content()->priority, halt.content()->taskid);
 #endif
 }
 
 void Agent::follow_command(const Gal_Frame& inframe)
 {
-	debug << "sending follow command to backend" << endl;
-	string followee = Gal_GetString(inframe, ":followee");
-	if(followee.empty()) {
-		error("agent") << "no followee" << endl;
-	} else {
-		MsgCmdFollow follow;
+  debug << "sending follow command to backend" << endl;
+  string followee = Gal_GetString(inframe, ":followee");
+  if(followee.empty()) {
+    error("agent") << "no followee" << endl;
+  } else {
+    MsgCmdFollow follow;
 #ifdef USE_TXT_COMMANDS
-		sendAction(&follow);
+    sendAction(&follow);
 #else
-		r->sendFollow(follow.content()->priority, follow.content()->taskid);
+    r->sendFollow(follow.content()->priority, follow.content()->taskid);
 #endif
-	}
+  }
 }
 
 void Agent::move_to_goal_command(const Gal_Frame& inframe)
 {
-	debug << "sending goal movement to backend" << endl;
-	string ordinal(Gal_GetString(inframe, ":ordinal"));
-	if(ordinal == "home") {
-		string sRelDist(Gal_GetString(inframe, ":relDist"));
-		if(sRelDist == "1") {
-			MsgCmdHome home;
+  debug << "sending goal movement to backend" << endl;
+  string ordinal(Gal_GetString(inframe, ":ordinal"));
+  if(ordinal == "home") {
+    string sRelDist(Gal_GetString(inframe, ":relDist"));
+    if(sRelDist == "1") {
+      MsgCmdHome home;
       robotClient_->sendHome(home.getPriority(), home.getTaskID());
-			//p_client->sendPacket(robot, MsgCmdHome());
-		} else if(sRelDist == "2") {
-			error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
-			return;
-		} else if(sRelDist == "3") {
-			error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
-			return;
-		} else if(sRelDist == "4") {
-			error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
-			return;
-		} else if(sRelDist == "5") {
-			error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
-			return;
-		} else if(sRelDist == "6") {
-			error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
-			return;
-		} else {
-			error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
-			return;
-		}
-	} else {
-		//absolute ordinal
-		istringstream issOrdinal(ordinal);
-		string token;
-		issOrdinal >> token;
-		float f_xcoord, f_ycoord;
-		if(token == "NEGATIVE") {
-			debug << "got negative x" << endl;
-			issOrdinal >> token;
-			ostringstream dispval;
-			debug << '"' << token << '"' << endl;
-			f_xcoord = static_cast<float>(-GetNumber999(token));
-		} else {
-			debug << '"' << token << '"' << endl;
-			f_xcoord = static_cast<float>(GetNumber999(token));
-		}
-		debug("agent") << "got x" << endl;
-		issOrdinal >> token;
-		if(token == "NEGATIVE") {
-			debug("agent") << "got negative y" << endl;
-			issOrdinal >> token;
-			debug("agent") << '"' << token << '"' << endl;
-			f_ycoord = static_cast<float>(-GetNumber999(token));
-		} else {
-			debug("agent") << '"' << token << '"' << endl;
-			f_ycoord = static_cast<float>(GetNumber999(token));
-		}
-		debug("agent") << "got y" << endl;
-		MsgCmdGoTo go(Point<float>(f_xcoord, f_ycoord), true);
+      //p_client->sendPacket(robot, MsgCmdHome());
+    } else if(sRelDist == "2") {
+      error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
+      return;
+    } else if(sRelDist == "3") {
+      error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
+      return;
+    } else if(sRelDist == "4") {
+      error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
+      return;
+    } else if(sRelDist == "5") {
+      error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
+      return;
+    } else if(sRelDist == "6") {
+      error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
+      return;
+    } else {
+      error("agent") << "relative to goal '" << sRelDist << '\'' << " not understood" << endl;
+      return;
+    }
+  } else {
+    //absolute ordinal
+    istringstream issOrdinal(ordinal);
+    string token;
+    issOrdinal >> token;
+    float f_xcoord, f_ycoord;
+    if(token == "NEGATIVE") {
+      debug << "got negative x" << endl;
+      issOrdinal >> token;
+      ostringstream dispval;
+      debug << '"' << token << '"' << endl;
+      f_xcoord = static_cast<float>(-GetNumber999(token));
+    } else {
+      debug << '"' << token << '"' << endl;
+      f_xcoord = static_cast<float>(GetNumber999(token));
+    }
+    debug("agent") << "got x" << endl;
+    issOrdinal >> token;
+    if(token == "NEGATIVE") {
+      debug("agent") << "got negative y" << endl;
+      issOrdinal >> token;
+      debug("agent") << '"' << token << '"' << endl;
+      f_ycoord = static_cast<float>(-GetNumber999(token));
+    } else {
+      debug("agent") << '"' << token << '"' << endl;
+      f_ycoord = static_cast<float>(GetNumber999(token));
+    }
+    debug("agent") << "got y" << endl;
+    MsgCmdGoTo go(Point<float>(f_xcoord, f_ycoord), true);
 #ifdef USE_TXT_COMMANDS
-		sendAction(&go);
+    sendAction(&go);
 #else
-		r->sendGoToCmd(go.content()->priority, go.content()->taskid,
-		go.content()->x, go.content()->y, go.content()->angle,
-		go.content()->useAngle(), go.content()->useRelative());
+    r->sendGoToCmd(go.content()->priority, go.content()->taskid,
+      go.content()->x, go.content()->y, go.content()->angle,
+      go.content()->useAngle(), go.content()->useRelative());
 #endif
-	}
+  }
 }
 
 void Agent::turn_command(const Gal_Frame& inframe)
 {
-	debug("agent") << "got turn command" << endl;
-	string sDirection(Gal_GetString(inframe, ":direction"));
-	bool bRel(false);
-	double fRad;
-	if(sDirection == "NORTH") fRad = PI/2;
-	else if(sDirection == "NORTHEAST") fRad = PI/4;
-	else if(sDirection == "NORTHWEST") fRad = 3*PI/4;
-	else if(sDirection == "EAST") fRad = 0;
-	else if(sDirection == "WEST") fRad = PI;
-	else if(sDirection == "SOUTH") fRad = 3*PI/2;
-	else if(sDirection == "SOUTHEAST") fRad = 7*PI/4;
-	else if(sDirection == "SOUTHWEST") fRad = 5*PI/4;
-	else if(sDirection == "STRAIGHT" ||
-		sDirection == "FORWARD" ||
-		sDirection == "FORWARDS") {
-			bRel = true;
-			fRad = 0;
-	} else if(sDirection.substr(0, 5) == "RIGHT") {
-		string sQual;
-		if(Gal_GetString(inframe, ":increment"))
-			sQual = (Gal_GetString(inframe, ":increment"));
-		bRel = true;
-		if(sQual.empty() || sQual == "<UNDEFINED>") {
-			fRad = -PI/2;
-		} else {
-			fRad = -GetNumber999(sQual)*PI/180;
-		}
-	} else if(sDirection.substr(0, 4) == "LEFT") {
-		string sQual;
-		if(Gal_GetString(inframe, ":increment"))
-			sQual = (Gal_GetString(inframe, ":increment"));
-		bRel = true;
-		if(sQual.empty() || sQual == "<UNDEFINED>") {
-			fRad = PI/2;
-		} else {
-			fRad = GetNumber999(sQual)*PI/180;
-		}
-	} else if(sDirection == "AROUND" ||
-		sDirection == "BACK" ||
-		sDirection == "BACKWARD" ||
-		sDirection == "BACKWARDS") {
-			bRel = true;
-			fRad = PI;
-	} else {
-		error("agent") << "unknown direction " << sDirection << endl;
-		return;
-	}
-	MsgCmdGoTo turn((float)fRad);
+  debug("agent") << "got turn command" << endl;
+  string sDirection(Gal_GetString(inframe, ":direction"));
+  bool bRel(false);
+  double fRad;
+  if(sDirection == "NORTH") fRad = PI/2;
+  else if(sDirection == "NORTHEAST") fRad = PI/4;
+  else if(sDirection == "NORTHWEST") fRad = 3*PI/4;
+  else if(sDirection == "EAST") fRad = 0;
+  else if(sDirection == "WEST") fRad = PI;
+  else if(sDirection == "SOUTH") fRad = 3*PI/2;
+  else if(sDirection == "SOUTHEAST") fRad = 7*PI/4;
+  else if(sDirection == "SOUTHWEST") fRad = 5*PI/4;
+  else if(sDirection == "STRAIGHT" ||
+    sDirection == "FORWARD" ||
+    sDirection == "FORWARDS") {
+      bRel = true;
+      fRad = 0;
+  } else if(sDirection.substr(0, 5) == "RIGHT") {
+    string sQual;
+    if(Gal_GetString(inframe, ":increment"))
+      sQual = (Gal_GetString(inframe, ":increment"));
+    bRel = true;
+    if(sQual.empty() || sQual == "<UNDEFINED>") {
+      fRad = -PI/2;
+    } else {
+      fRad = -GetNumber999(sQual)*PI/180;
+    }
+  } else if(sDirection.substr(0, 4) == "LEFT") {
+    string sQual;
+    if(Gal_GetString(inframe, ":increment"))
+      sQual = (Gal_GetString(inframe, ":increment"));
+    bRel = true;
+    if(sQual.empty() || sQual == "<UNDEFINED>") {
+      fRad = PI/2;
+    } else {
+      fRad = GetNumber999(sQual)*PI/180;
+    }
+  } else if(sDirection == "AROUND" ||
+    sDirection == "BACK" ||
+    sDirection == "BACKWARD" ||
+    sDirection == "BACKWARDS") {
+      bRel = true;
+      fRad = PI;
+  } else {
+    error("agent") << "unknown direction " << sDirection << endl;
+    return;
+  }
+  MsgCmdGoTo turn((float)fRad);
 #ifdef USE_TXT_COMMANDS
-	sendAction(&turn);
+  sendAction(&turn);
 #else
-	r->sendGoToCmd(turn.content()->priority, turn.content()->taskid,
-	turn.content()->x, turn.content()->y, turn.content()->angle,
-	turn.content()->useAngle(), turn.content()->useRelative());
+  r->sendGoToCmd(turn.content()->priority, turn.content()->taskid,
+    turn.content()->x, turn.content()->y, turn.content()->angle,
+    turn.content()->useAngle(), turn.content()->useRelative());
 #endif
 }
 
 void Agent::set_pose_command(const Gal_Frame& inframe)
 {
-	debug("agent") << "got set pose command" << endl;
-	const char* x = Gal_GetString(inframe, ":x");
-	const char* y = Gal_GetString(inframe, ":y");
-	const char* a = Gal_GetString(inframe, ":angle");
+  debug("agent") << "got set pose command" << endl;
+  const char* x = Gal_GetString(inframe, ":x");
+  const char* y = Gal_GetString(inframe, ":y");
+  const char* a = Gal_GetString(inframe, ":angle");
   if(!x) {
     error("agent") << "x is null" << endl;
     return;
@@ -739,9 +738,9 @@
     error("agent") << "angle is null" << endl;
     return;
   }
-	MsgCmdSetPos set_pos((float)atof(x), (float)atof(y), (float)atof(a));
-	debug("agent") << "setpos (" << x << ' ' << y << ") " << a;
-  
+  MsgCmdSetPos set_pos((float)atof(x), (float)atof(y), (float)atof(a));
+  debug("agent") << "setpos (" << x << ' ' << y << ") " << a;
+
   sendAction(&set_pos);
 }
 

Modified: trunk/TeamTalk/Agents/TeamTalkBackend/agent.h
===================================================================
--- trunk/TeamTalk/Agents/TeamTalkBackend/agent.h	2007-11-07 21:58:55 UTC (rev 868)
+++ trunk/TeamTalk/Agents/TeamTalkBackend/agent.h	2007-11-08 22:05:23 UTC (rev 869)
@@ -15,6 +15,9 @@
 
 //The Agent represents a robot, including its connections to the hub and
 //its spawned galaxy servers
+
+static string OLYMPUS_ROOT;
+
 class Agent {
 private:
   GalIO_CommStruct* comm_; //hub connection for this agent


More information about the TeamTalk-developers mailing list