You are on page 1of 13

Procedimiento para aadir Nuevos Protocolos PTZ a los productos de las series: NV MP 4 Eyes PRO

Laboratorios de AVerMedia ESPAA

Procedimiento para aadir nuevos protocolos para el manejo de cmaras PTZ (Speed Dome)

Introduccin
El propsito de este script es proporcionar un modo sencillo de aadir nuevos protocolos a sus sistemas de video vigilancia NV / MP / 4Eyes. Reserve este procedimiento para usuarios experimentados. Consulte con su distribuidor para saber ms sobre este proceso.

Protocolo del servidor


Acceda a la carpeta donde se instal la aplicacin y localice la carpeta ptz. Podr ver una carpeta llamada protocol, en el interior observar los siguientes archivos:

ZTMap.INI Controla la informacin de todas las PTZ Protocol.INI Protocol es el nombre del protocolo. Indica a la aplicacin DVR cmo manejar ese modelo de cmaras. Cada tipo de cmara PTZ deber tener su propio protocolo. Todos los archivos INI estn escritos en formato estndar de Windows INI (texto plano) que es modificable usando cualquier editor de textos como Notepad, UltraEdit etc

Editar un protocolo existente


1. 2. 3. 4. 5. 6. Encuentre el archivo que necesite modificar Abra el archivo INI con un editor de textos (No use Microsoft Word) Busque la seccin donde desea hacer el cambio y hgalo. Salve el archivo Ejecute DVR.exe y pruebe Si necesita realizar alguna modificacin ms, repita los pasos 3 5

En el archivo ZTMap.INI,

[ChoseProtocol] 0 = A_Product 1 = B_Product 2 = C_Product [SetProtocol] A_Product = A_Protocol.ini B_Product = A_Protocol.ini (una cmara distinta podra usar el mismo protocolo) C_Product = C_Protocol.ini

Localice la seccin [ChoseProtocol], A_Product (B_Product, C_Product) es el nombre mostrado en el cuadro de dilogo Configurar. Despus en la seccin [SetProtocol], encontrar A_Protocol.ini (C_Protocol.ini) disponibles en la carpeta ptz Por ejemplo, [ChoseProtocol] 0=Pelco-D [SetProtocol] Pelco-D = Pelco-D.INI

Si quisiera modificar el Pelco-D, tendra que enlazar y modificar el archivo PelcoD.INI

Crear un nuevo protocolo


1. Aada una nueva entrada en el archivo ZTMap.ini 2. Duplique un archivo INI que contenga otro protocolo (para usarlo como plantilla) y renmbrelo para que concuerde con la nueva entrada ZTMap.ini 3. Edite este nuevo archivo INI 4. Salve el archivo 5. Ejecute DVR.EXE, seleccione el nuevo protocolo y pruebe. 6. Si necesita realizar ms modificaciones, repita los pasos 3 5 Un ejemplo,

Aadimos la siguiente lnea al archivo ZTMap.ini:

[ChoseProtocol] 15=Mi Protocolo [SetProtocol] Mi Protocolo = Mi Protocolo.INI

Copie el archive DProtocol.ini, y renmbrelo como Mi Protocolo.ini Abra el archivo Mi Protocolo.ini y modifique todas las entradas que necesite (los detalles se muestran ms abajo). Salve el archivo y pruebe.

Cmo depurar el protocolo


Para depurar un protocolo necesitar las siguientes herramientas: 1. DVR.EXE para probar el protocolo 2. Editor de textos, para modificar el protocolo Notas: 1. Si hace cambios en ZTMap.ini, deber cerrar y volver a abrir DVR.EXE para que los cambios tenga efecto 2. Reconecte la cmara PTZ cada vez que salve el archivo para que adopte el nuevo comportamiento. 3. Si un comando no funciona, quite la corriente de la cmara PTZ y reconecte de nuevo.

Formato
Esta seccin describe el formato del script (INI del protocolo):

Archivo INI estndar


El archivo de protocolo es un archivo INI estndar de Windows, que puede ser editado usando un editor de texto plano. Los archivos INI estn compuestos por varias secciones. Una seccin es un grupo de pares de parmetro=valor como estos: [Seccin 1] Parmetro 1=Valor 1 [Seccin 2] Parmetro 1= Valor 1

Secciones y acciones
Una seccin comienza as: [Nombre de seccin] Parmetro = Valor

Hay algunas secciones predefinidas en un script: Parmetros de Comunicacin [CommDCB] Define los parmetros para conectarse con la cmara PTZ a travs del puerto serie, como los baudios, el tamao, bits de parada y paridad. Definiciones Globales [Initial] Define los valores iniciales de las variables. Todos estos parmetros sern copiados a la seccin [Globals] tras la conexin [Globals] Define las variables comunes. Acciones para los botones de la interfaz de usuario Botones de la Interfaz En esta seccin podr asociar un botn de la interfaz de DVR.EXE con una accin de su cmara PTZ. Las acciones son: - Pan Izquierda - Pan derecha - Tilt Arriba

Tilt Abajo Etc

Acciones Las acciones son teclas predefinidas. Tiene dos acciones que describen lo que sucede cuando el usuario presiona un botn. - Bajar: llamado cuando el usuario presiona un botn - Subir: llamado cuando el usuario deja de presionar el botn.

Comandos
Formato bsico <Comando Parmetros> Control de Flujo Ir a (goto) Llamar (Call) Comentarios Una lnea que comienza por un punto y coma (;) es tratado como un comentario. ; esta lnea es un comentario Parmetros Variable Variables que empiezan por una letra, mayscula o minscula. Constantes Caracteres: Caracteres que estn encerrados entre comillas simples (), por ejemplo a B. Numricos: Decimales: Nmeros decimales que estn formados por caracteres numricos 0 - 9 Binario: Nmeros binarios que comienzan con un 0, y seguidos por una b. Son nmeros formados por unos y ceros. Hexadecimal: Nmeros que comienzan por un 0 y van seguidos de una x

Funciones Los nombres de las funciones comienzan por $ Etiquetas Una etiqueta, como una variable, empieza por una letra.

Referencia
Variables Globales predefinidas
Las variables globales predefinidas estn situadas en la seccin [Globals]. Estas variables deben ser establecidas y cambiadas automticamente. [Globals] Variable=Valor

Nota: Valor debera ser un nmero decimal. Los valores en binario o hexadecimal no estn soportados en este momento. Address: ID de cada cmara PTZ. El valor depender de cada cmara. PanSpeed: Velocidad de paneo. El valor depender de cada cmara. TiltSpeed: Velocidad de giro. El valor depender de cada cmara. Variables definidas por el usuario.

Comandos
Set o Uso: Set {Variable }={Valor} o Comentario: se utiliza para establecer un valor en una variable. Si la variable no existe se crear una nueva

Send o Uso: Send {Byte} [ , {Byte}] o Comentario: Enva una lista de bytes al puerto serie. Byte representa un byte (octeto) de datos que pueden ser un nmero (decimal/binario/hexadecimal), una variable, o una funcin. Goto o Uso: Goto {Etiqueta} o Comentario: controla el flujo de ejecucin del script, cuando aparece este comando la ejecucin del programa continuar desde la etiqueta especificada y no volver hacia atrs, es decir, se trata de realizar un

salto hasta la etiqueta especificada. Si la etiqueta no existiese en la seccin , se buscar en la seccin [Globals] Call o Uso: Call {Etiqueta} o Comentario: el control de flujo del script saltar a la etiqueta especificada como parmetro, despus de la ejecucin de esa etiqueta el control de flujo del script volver al punto de llamada. Si la etiqueta no existiese en la seccin actual, se buscar en la seccin [Global] Delay o Uso: Delay {Valor} o Comentario: realiza una pasusa de algunos milisegundos (especificados como parmetro) antes de ejecutar el siguiente comando. Algunas operaciones requieren este tipo de pausas.

Funciones
CheckSum (N, L, Valor) Calcula una suma de comprobacin (checksum) aadiendo todos los bytes especificados juntos. o Parmetros: Byte de comienzo N: ndice (comenzado en 0) con la lista de bytes del comando Send Byte indicador de Longitud L El Valor que muestra los bits usados. Si este valor no est establecido: [retorno = 0xFF & resultado], si no [retorno = Valor & resultado] o Retorno: Byte de datos. o Ejemplo: <Send 1,0,3,1,2,$CheckSum(0,5)> return 1+0+3+1+2 = 7 <Send 1,0,3,1,2,$CheckSumC(0,5,0x03)> return 3 & 7 = 3

CheckSumX(N, L) Calcula una suma de comprobacin (check sum) usando XOR de los bytes especificados unos tras otros. o Parmetros: Byte de inicio N: ndice (comenzado en 0) con la lista de bytes del comando Send Byte indicador de longitud L Retorno: Byte de datos. CheckSumC(N, L, Valor)

Calcula una suma de comprobacin (check sum) sumando todos los bytes especificados y retorna si complementario o diferencia. Parmetros: Byte de inicio N: ndice (comenzado en 0) con la lista de bytes del comando Send Byte indicador de longitud L El Valor obtenido ser: Si este valor no est establecido [retorno = 0xFF resultado], si no [retorno = Valor resultado] Retorno: Byte de datos. Ejemplos: <Send 1,0,3,1,2,$CheckSumC(0,5)> retorno 255-7 = 248 <Send 1,0,3,1,2,$CheckSumC(0,5,0x20)> retorno 32-7 = 25 OR (Valor1, Valor2) Devuelve el resultado de la operacin lgica OR de dos parmetros o Ejemplo: $OR (Address, 0x80) o Devuelve: byte de datos = Adress | 0x80 (algo como Address + 0x80) Sum (Valor1, Valor2) Suma estos dos parmetros o Ejemplo: $Sum (Adress, 0x80) o Devuelve: Byte de datos [retorno = Address + 0x80] Diff(Valor1, Valor2) Obtiene la diferencia (Valor1 Valor2) o Ejemplo: $Diff(Address, 0x80) o Devuelve: Byte de datos. [retorno = Address 0x80]

Ejemplo de Protocolo
; Pelco-D.INI [Pan Left] ;el comando PANEO IZQUIERDO Up=<Call Stop> ; Detiene el paneo cuando el usuario suelta el botn Down=<Send SYNC,Address,0,0x04,PanSpeed,TiltSpeed,$CheckSum(1,5)> ; hace que la cmara empiece el paneo cuando el usuario pulsa el botn [Pan Right] Up=<Call Stop> Down=<Send SYNC,Address,0,0x02,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Tilt Up] Up=<Call Stop> Down=<Send SYNC,Address,0,0x08,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Tilt Down] Up=<Call Stop> Down=<Send SYNC,Address,0,0x10,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Up Right] Up=<Call Stop> Down=<Send SYNC,Address,0,0x0A,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Up Left] Up=<Call Stop> Down=<Send SYNC,Address,0,0x0C,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Down Right] Up=<Call Stop> Down=<Send SYNC,Address,0,0x12,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Down Left] Up=<Call Stop> Down=<Send SYNC,Address,0,0x14,PanSpeed,TiltSpeed,$CheckSum(1,5)> [Speed 1] ; Asigna la velocidad nivel 1, el ms lento Up= Down=<Set PanSpeed=16><Set TiltSpeed=16> [Speed 2] ; Asigna la velocidad 2 Up= Down=<Set PanSpeed=32><Set TiltSpeed=32> [Speed 3] ; Asigna la velocidad 3 Up= Down=<Set PanSpeed=48><Set TiltSpeed=48> [Speed 4] ; Asigna la velocidad 4, la ms rpida Up= Down=<Set PanSpeed=63><Set TiltSpeed=63> [Zoom In]

10

Up=<Call Stop> ; Nota: algunas PTZ el comando STOP-ZOOMING es diferente del normal. Down=<Send SYNC,Address,0x00,0x20,0x3F,0x3F,$CheckSum(1,5)> [Zoom Out] Up=<Call Stop> Down=<Send SYNC,Address,0x00,0x40,0x3F,0x3F,$CheckSum(1,5)> [Focus In] Up=<Call Stop> Down=<Send SYNC,Address,0x01,0x00,0x3F,0x3F,$CheckSum(1,5)> ; Nota: algunas PTZ tienen la posibilidad auto-Focus y no se puede ajustar el enfoque cuando est en este modo [Focus Out] Up=<Call Stop> Down=<Send SYNC,Address,0x00,0x80,0x3F,0x3F,$CheckSum(1,5)> [Auto Pan] [Auto Pan Stop] ; no usado ahora [Group 1] [Group 2] [Group 3] [Group 4] ; no usado ahora [Set Preset] ; para asignar la posicin a preestablecida actual Up= Down=<Send SYNC,Address,0,0x03,0,PresetNo,$CheckSum(1,5)> [Preset 1] ; ir a la primera posicin preestablecida Up= ; La preestablecida se est moviendo y luego para. No hay necesidad de comando de stop. Down=<Set PresetNo=1><Goto GoPreset> ; Encuentra GoPreset en seccin [Globals] [Preset 2] ; va a la segunda posicin preestablecida Up= Down=<Set PresetNo=2><Goto GoPreset> [Preset 3] Up= Down=<Set PresetNo=3><Goto GoPreset> [Preset 4] Up= Down=<Set PresetNo=4><Goto GoPreset> [Preset 5] Up= Down=<Set PresetNo=5><Goto GoPreset> [Preset 6] Up=

11

Down=<Set PresetNo=6><Goto GoPreset> [Preset 7] Up= Down=<Set PresetNo=7><Goto GoPreset> [Preset 8] Up= Down=<Set PresetNo=8><Goto GoPreset> [Preset 9] Up= Down=<Set PresetNo=9><Goto GoPreset> [Preset 10] Up= Down=<Set PresetNo=10><Goto GoPreset> [Preset 11] Up= Down=<Set PresetNo=11><Goto GoPreset> [Preset 12] Up= Down=<Set PresetNo=12><Goto GoPreset> [Preset 13] Up= Down=<Set PresetNo=13><Goto GoPreset> [Preset 14] Up= Down=<Set PresetNo=14><Goto GoPreset> [Preset 15] Up= Down=<Set PresetNo=15><Goto GoPreset> [Preset 16] Up= Down=<Set PresetNo=16><Goto GoPreset> [Globals] SYNC=0xFF Initial= ; la accin de inicializacin si es necesaria en alguna PTZ GoPreset=<Send Address,0,0x11,0,PresetNo,$CheckSumX(0,5)> Address=2 ; Valor de Address ser actualizada por DVR.EXE cuando conecta a otra cmara PanSpeed=8 TiltSpeed=8 ; Velocidad de Pan/Tilt ser aadida / actualizada despus que el usuario pulsa OK en el dilogo Preset Setup [CommDCB] ; Los valores en esta seccin sirven para establecer la conexin con la PTZ BaudRate=2400 ByteSize=8

12

StopBits=ONESTOPBIT ; StopBits=ONE5STOPBITS ; StopBits=TWOSTOPBITS Parity=NOPARITY ; Parity=EVENPARITY ; Parity=ODDPARITY ; Parity=MARKPARITY

13

You might also like