Ejemplo n.º 1
0
int GetServiceCap::GetService(OnvifClientDevice &onvifDevice)
{
		OnvifClientDevice *onvifDeviceobj;
		onvifDeviceobj=&onvifDevice;

		OnvifClientPTZ ptz(*onvifDeviceobj);
		_tptz__GetServiceCapabilitiesResponse ServiceCapResponse;
		int test1=-1;
		ptz.Initialize();

		test1=ptz.GetServiceCapabilities(ServiceCapResponse);
		bool x1;
		x1=ServiceCapResponse.Capabilities->EFlip;	// EFlip Support means camera will adjust itself after 90' tilt to display image normally else it will be shown upside down
		cout<<"EFLIP_SUPPORT : "<<x1<<"\n";
		bool x2;
		x2=ServiceCapResponse.Capabilities->Reverse;	//	Indicates whether or not reversing of PT control direction is supported
		cout<<"REVERSE_SUPPORT : "<<x2<<"\n";
		bool x3;
		x3=ServiceCapResponse.Capabilities->GetCompatibleConfigurations;	//	Indicates support for the GetCompatibleConfigurations command
		cout<<"GETCOMPATIBLECONFIGURATIONS_COMMAND_SUPPORT : "<<x3<<"\n";
		bool x4;
		x4=ServiceCapResponse.Capabilities->MoveStatus;		//	Indicates that the PTZVector includes MoveStatus information
		cout<<"PTZVECTOR_MOVESTATUS_INFORMATION : "<<x4<<"\n";
		bool x5;
		x5=ServiceCapResponse.Capabilities->StatusPosition;		//	Indicates that the PTZVector includes Position information
		cout<<"PTZVECTOR_POSITION_INFORMATION : "<<x5<<"\n";
		cout<<"\n";
	return 0;

}
Ejemplo n.º 2
0
int main(int argc, char **argv) 
{ 
  Aria::init();
  ArRobot robot;
  ArArgumentParser parser(&argc, argv);
  ArRobotConnector con(&parser, &robot);
  if (!con.connectRobot())
  {
  	ArLog::log(ArLog::Terse, "Error connecting to robot.");
    Aria::exit(1);
  }
  if(!Aria::parseArgs())
  {
  	ArLog::log(ArLog::Terse, "Error parsing program arguments.");
    Aria::logOptions();
    Aria::exit(2);
  }

  //ArRVisionPTZ ptz(&robot);
  ArVCC4 ptz(&robot);
  //ArSonyPTZ ptz(&robot);
  //ArDPPTU ptz(&robot);

  ArLog::log(ArLog::Normal, "Using robot connection. (Aux. serial port 1)");

  robot.runAsync(true);
  robot.comInt(ArCommands::SONAR, 0);
  robot.comInt(ArCommands::ENABLE, 0);
  robot.comInt(ArCommands::SOUNDTOG, 0);

  if(!ptz.init())
  {
  	ArLog::log(ArLog::Terse, "Error connecting to and initializing PTZ.");
    Aria::exit(3);
  }

  // ptz.getRealPanTilt();  // vcc4 only
  if(ptz.canGetRealPanTilt()) ArLog::log(ArLog::Normal, "PTU will report real measured pan/tilt positions.");
  else ArLog::log(ArLog::Normal, "PTU cannot report real measured pan/tilt positions, will report commanded positions instead.");
  testPan(&ptz, ptz.getMaxPosPan(), "max");
  testPan(&ptz, ptz.getMaxNegPan(), "min");
  testPan(&ptz, 45);
  testPan(&ptz, -45);
  testPan(&ptz, 0);
  ArLog::log(ArLog::Normal, "Reset...");
  ptz.reset();
  ArUtil::sleep(WAIT);
  testPanRel(&ptz, 45);
  testPanRel(&ptz, -45);
  testPan(&ptz, 0);
  ArLog::log(ArLog::Normal, "Reset...");
  ptz.reset();
  ArUtil::sleep(WAIT);
  ArLog::log(ArLog::Normal, "");

  testTilt(&ptz, ptz.getMaxPosTilt(), "max");
  testTilt(&ptz, ptz.getMaxNegTilt(), "min");
  testTilt(&ptz, 45);
  testTilt(&ptz, -45);
  testTilt(&ptz, 0);
  ArLog::log(ArLog::Normal, "Reset...");
  ptz.reset();
  ArUtil::sleep(WAIT);
  testTiltRel(&ptz, 45);
  testTiltRel(&ptz, -45);
  testTilt(&ptz, 0);
  ArLog::log(ArLog::Normal, "Reset...");
  ptz.reset();
  ArUtil::sleep(WAIT);
  ArLog::log(ArLog::Normal, "");

  if(ptz.canZoom())
  {
    if(ptz.canGetRealZoom()) ArLog::log(ArLog::Normal, "PTZ will report real measured zoom positions.");
    else ArLog::log(ArLog::Normal, "PTZ cannot report real measured zoom positions, will report commanded positions instead.");
    testZoom(&ptz, ptz.getMaxZoom(), "max");
    testZoom(&ptz, ptz.getMinZoom(), "min");
    testZoom(&ptz, 0);
    ptz.reset();
    ArUtil::sleep(WAIT);
  }
  else
  {
    ArLog::log(ArLog::Normal, "PTU has no zoom feature.");
  }


  Aria::exit(0);
}