Post


Como cambiar las vistas de un capturador USB de cuatro canales

Yo tengo el EASYCAP USB para 4 canales, y lo que buscaba era poder controlar las vistas de entrega este dispositivo al USB. Alquien diria, para que te complicas la vida, la razon, es que desde hace un buen tiempo, estoy diseñando mi propia centra de vigilancia casera. Como tengo un presupuesto limitado, necesito usar pocas computadoras para lograr eso, pero mi sistema requiere muchas camaras.

El problema es que no existe una aplicacion que sea compatible con esta rutina, es decir, el FLASH no provee ninguna forma de cambiar los canales, por que siemplemente no esta implementado como un API estandar.

Existe un DLL que hace eso exactamente, y es usado por el Mulviwier para hacer lo que no esta buscando, cambiar los canales.

function  KRDevice(DeviceName: PChar): Longint; cdecl; external 'krpgio.dll' name '?KRDevice@@YA_NPAD@Z';
procedure KRReadI2cReg (A: Integer; pB: PInteger);  cdecl; external 'krpgio.dll' name '?KRReadI2cReg@@YAXHPAH@Z';
procedure KRSetReg (A, B, C, D: Integer); cdecl; external 'krpgio.dll' name '?KRSetReg@@YAXHHHH@Z';

El KRDevice y KRReadl2cReg son ejecutados cada 200ms, y siembre tienen los mismo valores :

// Cada 200ms
KRDevice(“CAM”)
KRReadI2cReg(0x15, pBuffer)
 

Donde pBuffer es un apuntadora a un DWord.

// Comienzo de fase
KRSetReg(1, 0, 3, 1)
KRSetReg(0, 128, 2, 128)
KRSetReg(1, 1, 3, 1)

// Termino de face (termino del app)
KRSetReg(1, 0, 3, 1)
KRSetReg(0, 0, 2, 128)
KRSetReg(1, 1, 3, 1)

// Cambiando entrada en ciclos de 1 segundo
KRSetReg(0, 152, 2, 152) // Ch1
KRSetReg(0, 144, 2, 152) // Ch2
KRSetReg(0, 152, 2, 152) // Ch1
KRSetReg(0, 144, 2, 152) // Ch2 … y sigue y sigue

 



INICIO ---------------------------------------------------------------------------------------------------------------------------