Re: usb com port

From: Robert Jeppesen <none_at_robert--sermilik.dk.lh.bsd-dk.dk>
Date: Tue, 04 May 2010 21:35:38 +0200
To: bsd-novice_at_bsd-dk.dk

Ebbe Hjorth skrev:
>> Ebbe Hjorth skrev:
>>> Hej,
>>>
>>> Jeg har et lille program, tsl, jeg gerne vil have til at læse data fra
>>> en
>>> comport temperatur måler.
>>>
>>> Jeg har prøvet med stty på at sætte com porten rigtigt op, men der
>>> kommer
>>> forsat bare russike tegn ad-libitum frem.
>>>
>>> 2. Når jeg bruger cu -l /dev/ttyU0 via putty så kommer der som sagt
>>> masser
>>> af russike tegn, men hvordan får jeg afbrudt cu igen? Der sker intet ved
>>> ctrl+c og jeg er træt af at lukke putty ned og logge på igen.
>>>
>>> 3. Nogen der har en god metode til at af læse data fra sådan en fætter?
>>> (http://www.eekit.dk/product.asp?product=426) jeg vil gerne have data ud
>>> til f.eks. et script hvert 5 minut så jeg kan få det i MRTG og knyttet
>>> sammen med mit sms overvågningssystem.
>>>
>> Hej Ebbe,
>>
>> man cu nævner ~. til at afbryde cu, ligesom med i tip.
>>
>> Jeg har en del perl scripts der henter data via snmp & telnet , trækker de
>> ønskede data, og putter disse i rrd filer.
>> Pga konfirmation har jeg travlt, men jeg sender info efter weekenden.
>>
>>
>
> Hej Robert,
>
> Mener du at man skal trykke ~ + . for at afbryde?
Yeps
>
> Er det efter weekenden nu? :)
Med en snmpwalk kan jeg hente følgende:
$ snmpwalk -v 1 -c public 10.101.77.33 1.3.6.1.4.1.13732.1.4.3.1.2
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.268733 = STRING: "5.800000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.270412 = STRING: "7.780000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.275761 = STRING: "9.270000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.275824 = STRING: "10.560000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.276694 = STRING: "7.300000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.5068656 = STRING: "9.020000"

Dette er SNR (Signal to Noise Ratio) for 6 modemer hvor fx. 268733 er
serienr for hvert enkelt modem.

Nedestående perlscript henter disse data og lægger SNR i en rrd fil.
Der benyttes en rrd fil pr modem. Serienr indgår i filnavnet.
Scripten finder selv ud af om der er kommet et nyt modem og opretter så
en rrd fil til dette.

I perlscriptet udføres selve snmpwalk kommandoen som et eksternt kald.
Bemærk at tegnene før og efter kommandoen er dem der sidder over | tasten.

mvh
Robert

#!/usr/bin/perl
#
use RRDs;

$datadir = "/var/db/rrds/";
$NMS = "-v 1 -c public 10.101.77.33";
$DSdownSNR = "DS:DownSNR:GAUGE:120:0:100";
$RRAaverage = "RRA:AVERAGE:0.5:1:46080";
$interval = 60;
$step = "-s $interval";
$OIDdownSNR = '1.3.6.1.4.1.13732.1.4.3.1.2';

@DownSNR = `/usr/local/bin/snmpwalk $NMS $OIDdownSNR`;

$cur_time = time();

sub UpdateDownSNR {
       if (!(-e $rra_file)) {
 
RRDs::create("$rra_file","$step","$DSdownSNR","$RRAaverage","$RRA10min");
         my $ERR=RRDs::error;
         print ("$ERR\n") if $ERR;
       }
       RRDs::update ("$rra_file","$cur_time:$DownSNR");
       my $ERR=RRDs::error;
       print ("$Remote $cur_time $ERR\n") if $ERR;
}

for (@DownSNR) {
   if (/3\.1\.2\.(.+) =/){
     $Remote = $1;
     if (/"(.+)"/) {
       $DownSNR = $1;
       $rra_file = "$datadir$Remote\_DownSNR.rrd";
       &UpdateDownSNR;
     }
   }
}
Received on Tue 04 May 2010 - 21:36:04 CEST

This archive was generated by hypermail 2.2.0 : Wed 27 Mar 2013 - 10:40:20 CET