Example #1
0
void KeyPTU::status(void)
{
  ArLog::log(ArLog::Normal, "\r\nStatus:\r\n_________________________\r\n");
  ArLog::log(ArLog::Normal, "Pan Position       =  %d deg", myPTU.getPan());
  ArLog::log(ArLog::Normal, "Tilt Position      =  %d deg", myPTU.getTilt());
  ArLog::log(ArLog::Normal, "Zoom Position      =  %d", myPTU.getZoom());
  ArLog::log(ArLog::Normal, "Pan Slew           =  %d deg/s", myPTU.getPanSlew());
  ArLog::log(ArLog::Normal, "Tilt Slew          =  %d deg/s", myPTU.getTiltSlew());
  ArLog::log(ArLog::Normal, "Position Increment =  %d deg", myPosIncrement);
  if (myPTU.getPower())
    ArLog::log(ArLog::Normal, "Power is ON");
  else
    ArLog::log(ArLog::Normal, "Power is OFF");
  ArLog::log(ArLog::Normal, "\r\n");
}
	virtual ArActionDesired *fire (ArActionDesired currentDesired)
	{
	Bottle CAMBottle;
	NewData = Mycopyofmodule->GetBottleData("CAMin",&CAMBottle,SamgarModule::NoStep);
		
	if(NewData){WhereInList=0;PrecBottle=CAMBottle;} // if theres new data reset the system

	// if its reached the desired tilt/pan get the next lot of data if there is more data in the list
	if(ptz.getPan()==pan && ptz.getTilt() == tilt && WhereInList<PrecBottle.size())   
		{
		pan = PrecBottle.get(WhereInList).asDouble();WhereInList++;
		tilt = PrecBottle.get(WhereInList).asDouble();WhereInList++;			
		}
	else  // if its not reached the desired pan/tilt send the command again.
		{
		ptz.pan(pan);
		ptz.tilt(tilt);
		}
		return &myDesired;
	}