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; }
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); }