npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-pumatronix

v0.2.1

Published

modulo de comunicacao com a camera Pumatronix ITSCAM

Downloads

2

Readme

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