Hi,
I’m using the ImageServer to integrate some third party software for a client’s Milestone system, but I’m having some trouble getting PTZ commands to work consistently across cameras.
From the management server ServerCommandService.GetConfiguration, for a given camera I have something like this:
‘PtzSettings’: {
‘Capabilities’: {
‘CapabilityInfo’: [
{
'Absolute': True,
'Automatic': False,
'CapabilityId': 'a7c77dac-a453-49b9-8b5b-f62032f68889',
'Name': 'pan',
'Relative': True,
'Speed': True,
'Start': True,
'Stop': True
},
{
'Absolute': True,
'Automatic': False,
'CapabilityId': '3df02e10-0e76-4861-bcb2-bf6e4a9852d0',
'Name': 'tilt',
'Relative': True,
'Speed': True,
'Start': True,
'Stop': True
},
{
'Absolute': True,
'Automatic': False,
'CapabilityId': 'c8dba1db-f29b-414e-b4ca-b0d24b63e17e',
'Name': 'zoom',
'Relative': True,
'Speed': True,
'Start': True,
'Stop': True
}
]
},
‘EditPreset’: True,
‘IsCenterOnPositionInViewSupported’: True,
‘IsPtzCenterAndZoomToRectangleSupported’: True,
‘IsPtzDiagonalSupported’: True,
‘IsPtzHomeSupported’: False,
‘Presets’: {
‘PresetInfo’: [
{
'Id': 'foo',
'Locked': False,
'Name': 'Test 1',
'Position': {
'Pan': -0.800547491723962,
'Tilt': 0.327621957874059,
'Zoom': 0.0
},
'Shortcut': None
},
{
'Id': 'bar',
'Locked': False,
'Name': 'Test 2',
'Position': {
'Pan': -0.147759103641457,
'Tilt': 0.765688093419186,
'Zoom': 0.407843137254902
},
'Shortcut': None
}
]
},
‘PtzEnabled’: True
},
How can I use this to determine which ImageServer PTZ methods are supported? (ptz, ptzcenter, and ptzrectangle).
Ex, in my experiments, different cameras with the same setting as above do and do not respond when I send “ptzcenter” commands (I get a normal looking xml response indicating that the camera received the request, but the camera itself does not execute any ptz action). This is surprising to me since it appears that almost all the capabilities are set to True. The simple ptz commands using “up”, “down”, “left”, “right”, etc do work. Why might this be? old/unsupported software/drivers on a per-camera basis? Or am I missing something obvious in the config info?
Thanks for the help,
Steven