0.2.1 • Published 7 years ago

node-pumatronix v0.2.1

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

node-pumatronix

Módulo para configuração e controle das câmeras Pumatronix ITSCAM

Resumo

O módulo node-pumatronix foi desenvolvido para facilitar o interfaceamento das câmeras Pumatronix ITSCAM com aplicações desenvolvidas em Node.js.

Todos os testes foram realizados com uma câmera Pumatronix ITSCAM 403.

ESTE PROJETO ENCONTRA-SE EM DESENVOLVIMENTO, PORTANTO, É ESPERADO QUE EXISTAM ERROS NO PROGRAMA.

Recursos

  • Faz upload das configurações contidas em um arquivo .ini para a câmera. Configurações passiveis de serem alteradas via socket serão alteradas via socket. Algumas configurações só podem ser alteradas via http; para estas configurações, será utilizado o protocolo http, conforme especificado no datasheet da câmera.
  • Cria um servidor FTP para que a câmera salve os arquivos de imagem capturados.
  • Requisita imagens via socket TCP e as salva em um diretório definido pelo usuário.

Instalação

npm install node-pumatronix --save

API

var camera = require('node-pumatronix');
  • camera.findCameras(timeout, callback)
    • Envia pacote broadcast UDP e lista respostas de cameras conectadas à rede
  • camera.iniciarFTP(porta, 'rootDir', logLevel)
    • Cria um servidor FTP, útil se a camera estiver programada para utilizar um servidor ftp. logLevel controla o nivel de verbosidade do servidor FTP; 0= verbosidade mínima, 4= verbosidade máxima.
  • camera.calcCRC(buf)
    • Calcula o CRC do buffer argumento para o envio de dados via socket.
  • camera.enviarComando('host', buffer)
    • Envia buffer ao host. Nao é necessario incluir os bytes CRC, pois eles são calculados automaticamente.
  • camera.reset('host')
    • Envia comando de reset à camera.
  • camera.uploadSettings('host', iniFile)
    • Envia configurações contidas no arquivo .ini à camera.
  • camera.getImage('host', 'caminho', ntpEnable)
    • Requisita imagem e salva na pasta indicada em 'caminho'. O nome do arquivo é a data e hora da captura. Caso a pasta não exista, cria a pasta.
    • Se ntpEnable=1, compara o horário do sistema local com o de um servidor NTP.
      • Se o horário local diferir do servidor em menos de 5 segundos, continua a rotina normalmente.
      • Se o horário local diferir do servidor entre 5 e 60 segundos, mostra aviso no console e prossegue a execução do programa.
      • Se o horário local diferir do servidor mais de 60 segundos, mostra aviso no console e para a execução do programa.
      • Se o servidor NTP não estiver disponível, um aviso será mostrado no console e o programa seguirá normalmente.
  • camera.updateDateTime('hostname')
    • Atualiza a data e a hora da câmera com base na data e hora do sistema local. Útil se a câmera não estiver programada para fazer uso de um servidor NTP, uma vez que a informação de data e hora é perdida em caso de falha na alimentação da câmera.

Uso

var camera = require('node-pumatronix');
var hostname = '192.168.1.192';

camera.findCameras(1500, function(camerasEncontradas){
    if(camerasEncontradas.length > 0){
        console.log('cameras encontradas:')
        console.log(camerasEncontradas);
    }

    else
        console.log('nenhuma camera encontrada');
});

camera.iniciarFTP(41237, 'FTP/', 2); //inicia servidor FTP com diretório raiz 'FTP/'. 
                                     //dentro do diretório raiz, será criada uma pasta
                                     //para cada usuário conectado. Qualquer senha será aceita.

setInterval(function(){
    camera.getImage(hostname,'./camera/')
},2000);

ini

Exemplo de arquivo .ini esperado pelo módulo:

[rede]
IP=192.168.1.192
netMask=255.255.255.0
gateway=192.168.1.251
DNS=208.67.222.222

[servidor]
;tipoServidor 0:nenhum 1:FTP 2:ITSCAM PRO 3:RTSP 4:K32 5:panoramica 6:porta serial 7:nao implementado 8:arquivos
nImagensRequisicaoRede=1
nImagensRequisicaoIO=1
tipoServidor=1
enderecoServidor=192.168.1.73
enderecoServidorRedundante=
portaServidor=41237
arquivoFTP=/%u
usuarioFTP=pumatronix1
senhaFTP=main
ativarNTP=1
enderecoNTP=a.st1.ntp.br


[imagem]
;tipoShutter: 0:fixo 1:automatico 2:fixo modo dia e automatico modo noite
;autoGanho 0:fixo 1:automatico
;formatoImagens 0:BMP 1:JPG
;modoTrigger 1:desabilitado 2:borda de subida 3:borda de descida 4:ambas as bordas 5:aproximacao
;            6:afastamento rapido 7:afastamento lento 8:continuo 9:periodico 10:nivel alto
;            11:nivel baixo 12:subida e aproximacao
;tipoSaida 1:flash 2:IO
;configSaidas 0:ambas desabilitadas 1:saida 1 habilitada 2:saida 2 habilitada 3:ambas as saidas habilitadas
;delayShutterFlash 100-25000, multiplo de 0.4us
;tMinNovaImagem 0-60000ms
;modoTeste 0:imagem capturada 1:padrao vertical 2:padrao horizontal 3:padrao diagonal
;nivelClaridade 7-62
;ganhoMaxDif 0-72
;configGanhoMaxDif 0:desabilitado 1:habilitado dia 2:habilitado noite
;balancoBranco [R, G, B] 0-255, sendo 0 ajuste automatico
;gamma 0:resposta linear 1:resposta logaritmica padrao 70-255 curvas personalizadas
;realceBordas 0:desabilidato 1:filtro de primeira ordem 2:filtro de segunda ordem 3:filtro de segunda ordem com deteccao suave
;colorNight 0:escala de cinza 1:imagem colorida
;modoGammaDif 0:desabilitado 1:habilitado modo dia 2:habilitado modo noite
;gammaDif 0:linear 1:log 70-255:curvas personalizadas
;modoOperacao 0:dia/noite automatico 1:dia 2:noite
;modoOCR 0:desabilitado 1:rapido 2:normal 3:lento 4:muito lento
;triggerAlternativo 0:desabilitado 1:habilitado dia 2:habilitado noite
;segundaConfOCR 0:desabilitado 1:habilitado dia 2:habilitado noite
HDR=1 
tipoShutter=0
modoTrigger=2
valorShutterFixo=150
valorShutterMax=450
autoGanho=0
ganhoFixo=72
ganhoMax=72
nivelClaridade=53
tipoSaida=2
configSaidas=0
delayShutterFlash=200
tMinNovaImagem=0
modoTeste=0
ganhoMaxDif=40
configGanhoMaxDif=0
formatoImagens=1
qualidadeImagens=100
rotacao180=0
pesos=[15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]
saturacao=85
nivelPreto=10
ganhoDigital=100
balancoBranco=[0, 0, 0]
gamma=1
realceBordas=0
colorNight=0
modoGammaDif=0
gammaDif=110
intensidadeFlashSegundoDisparo=10
atrasoMultExpDia=0
atrasoMultExpNoite=0
ganhoEletronicoSegundaFotoLuzVisivel=20
ganhoEletronicoSegundaFotoLuzIR=20
autoIrisDC=1
modoOperacao=2
modoOCR=0
triggerAlternativo=0
valorTriggerDif=2
segundaConfOCR=0
valorOCRDif=2
0.2.1

7 years ago

0.2.0

7 years ago

0.1.10

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago