Custom configuration file
With IP Vision Pro version 2.1.0 and up it is possible to create a custom configuration file for your camera.
The configuration file must be named cgiDataUser.plist and can be sent to IP Vision Pro using the built-in web server.
A sample configuration file can be downloaded here: cgiDataUser.plist
Different configurations for several cameras can be created. Each with a set of Capabilities and a corresponding CommandSet.
A camera can have the following capabilities defined:
- M MJPEG cgi
command
Mandatory.
Defines the cgi command to retrieve a MJPEG stream.
- P pan buttons
Enable Left and Right buttons.
- T tilt buttons
Enable Up and Down buttons.
- X up-left, up-right, down-left, down-right
buttons
Enable diagonal buttons.
- Z zoom buttons
Enable zoom buttons.
- H home button
Enable home button.
- 1 relay control (on/off) buttons
Enable I/O buttons.
- N day/night buttons
Enable day/night buttons.
- R preset buttons
Enable preset buttons.
- S step commands
Supports single step commands.
- C continuous
commands
Supports continuos movement commands.
- D proportional commands
Supports proportional displacement commands.
IP Vision Pro uses HTTP GET method for all commands.
If '&' is required on a command it must be escaped using &
%d in proportional commands are replaced at runtime by a number derived from a swipe gesture multiplied the base value especified in each command.
Sample cgiDataUser.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC
"-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>FormatVersion</key>
<integer>1</integer>
<key>Data</key>
<array>
<dict>
<!-- Capabilities options
P pan buttons
T tilt buttons
X up-left, up-right, down-left, down-right buttons
Z zoom buttons
H home button
1 relay control (on/off) buttons
N day/night buttons
R preset buttons
M MJPEG cgi command
S step commands
C continuous commands
D proportional commands
-->
<key>Brand</key>
<string>Test</string>
<key>Cameras</key>
<array>
<dict>
<key>Model</key>
<string>generic</string>
<key>Capabilities</key>
<string>M</string>
<key>CommandSetLabel</key>
<string>CGI1</string>
</dict>
<dict>
<key>Model</key>
<string>generic PTZ</string>
<key>Capabilities</key>
<string>RPTZSCDH1NXM</string>
<key>CommandSetLabel</key>
<string>CGI1</string>
</dict>
</array>
<key>CommandSet</key>
<array>
<dict>
<key>Label</key>
<string>CGI1</string>
<key>MJPEG</key>
<string>/axis-cgi/mjpg/video.cgi?resolution=320x240</string>
<key>PTZ_Home</key>
<string>/axis-cgi/com/ptz.cgi?move=home</string>
<key>PT_UpLeft_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rpan=-%d&rtilt=%d</string>
<integer>10</integer>
</array>
<key>PT_Up_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rtilt=%d</string>
<integer>10</integer>
</array>
<key>PT_UpRight_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rpan=%d&rtilt=%d</string>
<integer>10</integer>
</array>
<key>PT_Left_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rpan=%d</string>
<integer>-10</integer>
</array>
<key>PT_Right_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rpan=%d</string>
<integer>10</integer>
</array>
<key>PT_DownLeft_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rpan=-%d&rtilt=-%d</string>
<integer>10</integer>
</array>
<key>PT_Down_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rtilt=%d</string>
<integer>-10</integer>
</array>
<key>PT_DownRight_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rpan=%d&rtilt=-%d</string>
<integer>10</integer>
</array>
<key>ZOOM_In_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rzoom=%d</string>
<integer>100</integer>
</array>
<key>ZOOM_Out_Displacement</key>
<array>
<string>/axis-cgi/com/ptz.cgi?rzoom=%d</string>
<integer>-100</integer>
</array>
<key>PT_UpLeft_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=upleft</string>
<key>PT_Up_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=up</string>
<key>PT_UpRight_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=upright</string>
<key>PT_Left_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=left</string>
<key>PT_Right_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=right</string>
<key>PT_DownLeft_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=downleft</string>
<key>PT_Down_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=down</string>
<key>PT_DownRight_Step</key>
<string>/axis-cgi/com/ptz.cgi?move=downright</string>
<key>ZOOM_In_Step</key>
<string>/axis-cgi/com/ptz.cgi?rzoom=100</string>
<key>ZOOM_Out_Step</key>
<string>/axis-cgi/com/ptz.cgi?rzoom=-100</string>
<key>PT_UpLeft_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=-1,1</string>
<key>PT_Up_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=0,1</string>
<key>PT_UpRight_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=1,1</string>
<key>PT_Left_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=-1,0</string>
<key>PT_Right_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=1,0</string>
<key>PT_DownLeft_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=-1,-1</string>
<key>PT_Down_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=0,-1</string>
<key>PT_DownRight_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=1,-1</string>
<key>PT_Stop</key>
<string>/axis-cgi/com/ptz.cgi?continuouspantiltmove=0,0</string>
<key>ZOOM_In_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouszoommove=1</string>
<key>ZOOM_Out_Start</key>
<string>/axis-cgi/com/ptz.cgi?continuouszoommove=-1</string>
<key>ZOOM_Stop</key>
<string>/axis-cgi/com/ptz.cgi?continuouszoommove=0</string>
<key>DigitalIO_ON</key>
<string>/axis-cgi/io/virtualinput.cgi?action=6:/</string>
<key>DigitalIO_OFF</key>
<string>/axis-cgi/io/virtualinput.cgi?action=6:\</string>
<key>DayNight_ON</key>
<string>/axis-cgi/com/ptz.cgi?backlight=on</string>
<key>DayNight_OFF</key>
<string>/axis-cgi/com/ptz.cgi?backlight=off</string>
<key>Preset1</key>
<string>/axis-cgi/com/ptz.cgi?gotoserverpresetno=1</string>
<key>Preset2</key>
<string>/axis-cgi/com/ptz.cgi?gotoserverpresetno=2</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>