Perl og seriel

From: Kim Esben Jørgensen (none@kej--galnet.as.lh.bsd-dk.dk)
Date: Thu 15 Jul 2004 - 15:42:05 CEST


Date: Thu, 15 Jul 2004 15:42:05 +0200 (CEST)
Subject: Perl og seriel
From: Kim Esben Jørgensen <none@kej--galnet.as.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk

Hejsa

Jeg har købt en sjov lille ting til at måle temperatur med. Den forbindes
med seriel porten (den sidder på cuaa1 hos mig). Og jeg skal så derigennem
kunne måle temperaturen.
I følge dokumentationen skal jeg sææte RTS on og DTR så den får strøm.
Køre 2400, ingen paritet og 1 stopbit.
Hvis jeg så sender 1 control byte skal jeg vente lidt, og så skulle jeg
modtage noget data.

Hvis jeg sender 0x04 skulle jeg få data fra føler nr.1.

<kode>
my $ob = Device::SerialPort->new ("/dev/cuaa1") || die "Ingen forbindelse.";

$ob->baudrate ('2400') || die "fejl";
$ob->parity ("none") || die "fejl";
$ob->stopbits (1) || die "fejl";

$ob->handshake("none") || die "fejl";
$ob->rts_active (0) || die "fejl";
$ob->dtr_active (1) || die "fejl";
$ob->write_settings || die "fejl";
sleep 1;

$ob->write('0x04');
sleep 1;
print $ob->input();
</kode>

Men det virker ikke, jeg modtager ikke noget. Den virker derimod fint på
windows.

Dokumentation her.
http://www.picotech.com/document/pdf/th03.pdf

Jeg har prøvet med et null-modem kabel mellem min windows og bsd'en og
kørt hexdump /dev/cuaa1 - det gav ikke noget særligt brugbart.

Nogen der har en idé om hvad jeg gør forkert? Jeg ved godt det ikke er BSD
specifik - men jeg har prøvet alt.

Mvh.
Kim Esben Jørgensen
Tlf: +45 26872504



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:41 CET