Programar la cámara IP Zaapa CIPRW (ZA-CIPRW) en .NET

12:47 pm Informática, Proyectos

Uno de los problemas que veo con la cámara IP Zaapa que me compré es que sólo se puede manejar desde un navegador Internet Explorer, y la verdad es que eso le quita mucho potencial a una cámara tan completa y barata como esta. Por eso me he puesto manos a la obra para desengranar un poco el funcionamiento y poder crear una aplicación de escritorio para poder manejarla.

Todo el trabajo de investigación ha estado centrado en ver cómo funciona el código fuente javascript de la página web que ofrece la cámara zaapa, ya que buscando por internet no he encontrado nada sobre cómo manejarla.

Lo primero que nos encontramos es que instancia un objeto llamado DVM_IPCam2.ocx. Buscando por internet he encontrado muy poca información sobre ese fichero en cuestión y mucho menos de la API OLE que encierra.

Por suerte el Visual Studio .NET puede incorporar ocx y ver de una tacada todos los métodos, propiedades y eventos que maneja el control ocx. Para ello dentro del Cuadro de herramientas, se pulsa con el botón derecho en Componentes y se selecciona Elegir Elementos… Después se pulsa sobre la pestaña Componentes COM y se selecciona DVM_IPCam2 Control.

dvmipcam2

Si no existiese es que no está registrado en Windows. Entonces habría que descargar el ocx desde la dirección http://<ip de la camara>/codebase/DVM_IPCam2.ocx, guardarlo en c:\windows\system32 y desde una consola de ms-dos ejecutar regsvr32 c:\windows\system32\DVM_IPCam2.ocx y después volver a repetir el proceso de Visual Studio.

Con esto ya tendremos el componente ocx para insertarlo en el formulario. Ahora para acceder a la cámara hay que seguir los siguientes pasos:

  • Conectar con la cámara usando el método MonitorConnect, pasándole como parámetros la dirección host o ip de la cámara, el puerto por el que escucha (normalmente el 80), el usuario y la contraseña.
  • Capturar el evento OnMonitorConnectResult y si la conexión ha sido satisfactoria pasar al siguiente punto
  • Empezar a recibir las imágenes dentro del control ocx usando el método PlayVideo.
  • Esperar a recibir las imágenes con el evento OnPlayVideoResult.
  • Hacer el resto de operaciones: mover la cámara con el método DecoderControl, hacer fotografías con el método Photo2, grabar un video con el método StartRecord2, reiniciar la cámara con el método RebootCamera, etc.
  • Cuando se termine de trabajar con la cámara llamar a los métodos StopVideo, StopRecord y MonitorDisconnect.

He desarrollado una pequeña aplicación que muestra estos conceptos. No hace comprobaciones de errores para simplificar el código:

aplicacioncamara

Podeis descargar el código fuente en c# y un ejecutable desde aquí.

El siguiente paso sería tratar de hacer que funcionase el firefox para windows y en un futuro conocer el protocolo para manejarlo desde linux, desde un iphone o desde cualquier otro entorno.

11 Respuestas
  1. Berny :

    Fecha: 24 agosto 2009 @ 17:55

    Buen principio, soy usuario de apple y llevo muchisimo tiempo detrás de poder hacerla funcionar con Safari y con iphone pero nada de nada.
    Actualmente hay un plugin para firefox y poder hacerla funionar con windows. Creo que lo puedes encontrar en la pagina oficial de zaapa. Pero para apple, nada de nada…

    Saludos.

  2. guanche :

    Fecha: 21 febrero 2010 @ 11:39

    Buen trabajo aunque me da un fallo al ejecutarlo de “Unhandeld exception..”.

    Ojala sallga algo pronto para Linux porque la tengo desde hace mas de un año bajo mínimos por no poder conectarme desde linux. :(

    Saludos a todos
    guanche

  3. Meta :

    Fecha: 28 mayo 2010 @ 20:04

    Me encanta el invento. Eso que estaba haciendo mi propio proyecto usando una WebCAM fija comprando los servomortores a parte, móduolo de Wi-fi a parte que cuesta más caro y tiempo en hacer.

    guanche de las Islas Canarias: Los errores los puedes controlar con Try. Lo hizo así para que podamos entender el ejemplo que ha publicado.

    Me gusta más la cámara ya que tiene más posibilidad de movimiento en grados y 8 metros de distancia en la oscuridad por infrarojo.

    http://www.foscam.com/Products_List.asp?id=128

    Otra cosa que no veo necesario usar esto: ejecutar regsvr32 c:\windows\system32\DVM_IPCam2.ocx.

    Has hecho un buen trabajo.

  4. Juan :

    Fecha: 29 agosto 2010 @ 16:33

    Estoy intentando modificar tu aplicación pues me parece super interesante.
    Me da fallo al conectar de Overflow. Gratifico si alguien me puede ayudar.
    Un saludo
    camswifi@gmail.com

  5. Davod P :

    Fecha: 19 octubre 2010 @ 0:48

    Bueno toda parecer estar bueno por que tube problema con visual 2005 me gustario por favor que si me pueden enviar los codigos pero en Visual Basic 2008, en estos momentos estoy desarrollando una aplicacion pero me esta costando. Mi idea es del video capturado derectamente desde vb 2008, capturar una foto y compararla con la Base de conocimiento si esa persona pertenece a la empresa y enviar un sms al celular via bluetooth que dicha persona ha ingresa y si no pertenece mandar un sms que hay un introzo en area restringida. Por fovor le Quedaria enternamente agradecido si me ayudad a terminar esa aplicacion yo ya tengo la base de conocimiento en SQL 2005, Gracias

  6. admin :

    Fecha: 7 noviembre 2010 @ 21:16

    Lo siento pero tendrá que transformar el código de visual c# a visual basic.

  7. Victor :

    Fecha: 2 julio 2011 @ 9:53

    Hola, llevo unos días buscando como controlar la cam desde iphone (via accediendo desde algun navegador) y me acabo de topar con esta web.
    Lo cual me acaba de aclarar las cosas: No voy a poder.
    No soy programador y no me puedo meter ahi en visual studio a inventar, pero se me ocurre otra via:
    Se podría sacar el video (como si de un stream se tratara) para poder acceder a través de otros programas. Se perdería el control físico de la cámara, pero… Gracias y muy buen trabajo.

  8. admin :

    Fecha: 2 julio 2011 @ 13:05

    Quin sabe, a lo mejor alguien ya ha encontrado el protocolo que usa y se puede implementar en cualquier navegador, pero yo estuve buscando y no encontré más que eso.

  9. erpes :

    Fecha: 5 agosto 2011 @ 22:44

    Hola, para los que quieran utilizar esta cámara con el iphone, (va por Victor), podéis usar el programa “LiveCam Pro”, (de pago, un par de eurillos…que compensan), configurándola como una Foscam, en concreto el modelo FI8908W.

    Por cierto, alguien sabe si hay actualizaciones del firmware para esta cámara. Lo estoy buscando como un loco.

  10. Lolillo :

    Fecha: 1 noviembre 2011 @ 23:26

    Muchas gracias erpes. Llevaba mucho tiempo intentando ver la cámara en el iphone.
    Quizas lo que buscas está en:
    http://www.zaapa.co.uk/Public/ficha_producto.asp?CPRO=761
    Saludos.

  11. elcarpanta :

    Fecha: 22 noviembre 2011 @ 21:20

    Hola, he ido a actualizar el firmware y se ha quedado bloqueada, ni con el botón reset pulsado vuelve a la vida… De hecho cuando la desenchufo y la vuelvo a enchufar, no hace esos movimientos característicos… ¿qué puedo hacer? AYUDA!!!!!!

Leave a comment

Your comment

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.