Ir para conteúdo
Fórum Script Brasil

Dilson_boy

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Sobre Dilson_boy

Dilson_boy's Achievements

0

Reputação

  1. É isso mesmo eim cara, tu salvo minha vida mais uma vez! kkkkk vlwsss!!! =D []'s
  2. Opa ai sim funcionou! Valeu tu é o cara Fvox! Bom agora surgiu um outro pequeno problema, nós estamos escrevendo um arquivo.txt com uma sequência numérica de uma array. Ex .: @am1 = 12 20 35 50. Até ai tranquilo. Porém esta sequência deve ser recuperada em outro arquivo. Ex.: open = my $fh , '<', 'ouvinte.txt'; my @a = <$fh>; dai quando eu dou print no primeiro elemento: print '$a[0]'; aparece 12 20 35 50 sendo que o pretendido seria print '$a[0]'; aparecesse somente o primeiro elemento da array 12; Preciso de cada elemento pois farei um tratamento matemático deles. Grato!
  3. E ISSO MESMO QUE EU PRECISO! TODOS DISPARANDO SIMULTANEAMENTE! IREI TESTAR E POSTO A RESPOSTA AQUI NO FÓRUM... MUITO OBRIGADO MAIS UMA VEZ!!
  4. E ae galerinha estou aqui de novo, com um problema um pouco diferente. Acredito que pra vocês programadores será fácil. Eu gerei 4 programas que fazer a coleta de dados, o problema é que eles precisam executar o processo exatamente no mesmo instante! Para isso eu gerei uma programação no crontab. * * * * * * perl ./Ouvinte.pl * * * * * * perl ./Estação1.pl * * * * * * perl ./Estação2.pl * * * * * * perl ./Estação3.pl O problema é que a precisão de 1 minuto para mim é muito ruim! eu precisaria executar os 4 programas no mesmo segundo. Alguém teria alguma idéia de como fazê-lo? Obrigado e abraços!
  5. Aew cara consegui fazer dar certo! É isso mesmo que você falou eu preciso gerar uma array e capturar as informações: fiz isso da seguinte forma: code: my @watts; my $i =0; for ($i=0 , $i<=8000, $i++);{ if (sock-> recv($newmsg,$MAXLEN)) { [$watts] [$i] = unpack("S", substr( $newmsg, 6, 2)); } } Valeu pela ajuda camarada!! Dessa forma funfou!!
  6. Ok farei este teste, também estava olhando para outras formas de se fazer isso e encontrei o rrdtool, vou tentar das 2 formas, a que der certo eu posto aqui no fórum! Muito obrigado!
  7. Ola pessoal estou com um problemão no meu tcc rsrs. Estou fazendo aquisição de amostras de um módulo arduino que se comunica através de uma interface udp com níveis de quantização de 0 a 1023. Estou armazenando esta aquisição na variável $watts. O problema consiste em gerar um arquivo wav com várias amostras dentro dele, com este programa que eu fiz, ele está armazenando apenas 1 valor na variável $watts. Quando eu gero um loop na variável ele pega o valor e mostra 8000 vezes! Alguém tem uma idéia de como eu poderia armazenar várias amostras que chegado da UDP em uma variável? Ou alguma forma de fazer aquisição destes dados? Segue o programa: #!/usr/bin/perl -w # cclisten - UDP Currentcost listener use strict; use IO::Socket; my($msglen,$sock, $newmsg, $MAXLEN, $PORTNO); my($lasttimestamp,$timestamp,$tempr,$watts,$errcount,$timeouts); $MAXLEN = 1024; $PORTNO = 52240; $sock = IO::Socket::INET->new(LocalPort => $PORTNO, Proto => 'udp', LocalAddr => '192.168.10.255', Broadcast => 1) or die "socket: $@"; print "Awaiting UDP messages on port $PORTNO\n"; $lasttimestamp = 0; while ($sock->recv($newmsg, $MAXLEN)) { $msglen = length($newmsg); $timestamp = unpack("L", substr( $newmsg, 0, 4)); $tempr = unpack("S", substr( $newmsg, 4, 2)) / 10; $watts = unpack("S", substr( $newmsg, 6, 2)); #print "tempo: $tempr Obtendo dados: $watts\n"; use Audio::Wav; my $wav = new Audio::Wav; my $sample_rate = 44100; my $bits_sample = 10; my $details = { 'bits_sample' => $bits_sample, 'sample_rate' => $sample_rate, 'channels' => 1, # if you'd like this module not to use a write cache, uncomment the next line #'no_cache' => 1, }; my $write = $wav -> write( 'testesom.wav', $details ); my $i; for $i (44..8000){ print "$watts\n"; $write -> write($watts); } $write -> finish(); die "recv: $!"; }
×
×
  • Criar Novo...