TTrix
Software Design

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&amp;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&amp;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&amp;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&amp;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>