Serielle Schnittstelle/Cygwin
Serielle Schnittstelle/Cygwin
am 20.04.2006 09:28:29 von Oliver Vecernik
Hallo Leute!
Ich möchte gerne unter Cygwin mittels Perl Daten von einer seriellen
Schnittstelle einlesen. Diese Schnittstelle (COM4) hängt mittels
USB-Adapter auf einem XP SP2 Notebook. Sollte ich hier falsch sein,
bitte fuppen...
$ uname -a
CYGWIN_NT-5.1 t636 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin
$ perl -v
This is perl, v5.8.7 built for cygwin-thread-multi-64int
(with 1 registered patch, see perl -V for more detail)
Leider schlagen beide Installationen fehl:
cpan> install Device::SerialPort
....
7: could not open port '/dev/ttyS1'. Are permissions correct?
cpan> install Win32::SerialPort
....
BBIRTH/Win32-SerialPort-0.19.tar.gz : writemakefile NO --
Unknown reason.
Hat das schon einmal jemand gemacht und kann mir einen Tipp geben, wie
das geht?
--
Viele Grüße
Oliver
Re: Serielle Schnittstelle/Cygwin
am 20.04.2006 19:22:18 von Wolf Behrenhoff
Oliver Vecernik schrieb:
> Hallo Leute!
>
> Ich möchte gerne unter Cygwin mittels Perl Daten von einer seriellen
> Schnittstelle einlesen. Diese Schnittstelle (COM4) hängt mittels
> USB-Adapter auf einem XP SP2 Notebook. Sollte ich hier falsch sein,
> bitte fuppen...
>
> $ perl -v
>
> This is perl, v5.8.7 built for cygwin-thread-multi-64int
> (with 1 registered patch, see perl -V for more detail)
>
>
> Leider schlagen beide Installationen fehl:
>
> cpan> install Win32::SerialPort
> ...
> BBIRTH/Win32-SerialPort-0.19.tar.gz : writemakefile NO --
> Unknown reason.
Hm... Ich habe zwar nichts, was ich gerade mal an einem seriellen Port
testen könnte, aber Win32::SerialPort ließ sich bei mir eben problemlos
installieren. Allerdings habe ich erstens ein ActivePerl hier und
zweitens habe ich es manuell installiert. Das Modul hat kein und erzeugt
kein Makefile und weicht damit von der "normalen" Prozedur "perl
Makefile.pl, nmake, nmake test, nmake install" ab. Wie in der README.txt
beschrieben, muss man "perl Makefile.pl", dann "perl test.pl" und
schließlich "perl install.pl" ausführen. Vielleicht probierst du das so
mal bei dir aus?
Wolf
Re: Serielle Schnittstelle/Cygwin
am 24.04.2006 07:26:39 von Oliver Vecernik
Wolf Behrenhoff schrieb:
> Hm... Ich habe zwar nichts, was ich gerade mal an einem seriellen Port
> testen könnte, aber Win32::SerialPort ließ sich bei mir eben problemlos
> installieren. Allerdings habe ich erstens ein ActivePerl hier und
> zweitens habe ich es manuell installiert. Das Modul hat kein und erzeugt
> kein Makefile und weicht damit von der "normalen" Prozedur "perl
> Makefile.pl, nmake, nmake test, nmake install" ab. Wie in der README.txt
> beschrieben, muss man "perl Makefile.pl", dann "perl test.pl" und
> schließlich "perl install.pl" ausführen. Vielleicht probierst du das so
> mal bei dir aus?
Ich möchte möglichst portabel bleiben und habe daher Device::SerialPort
manuell installiert. Es schlägt zwar `make test' fehl, aber immerhin
kann ich schon Daten empfangen und senden.
--
Viele Grüße
Oliver
Re: Serielle Schnittstelle/Cygwin
am 24.04.2006 11:05:34 von Christian Lackas
* Oliver Vecernik [2006-04-24]:
Hallo Oliver,
> Ich möchte möglichst portabel bleiben und habe daher Device::SerialPort
> manuell installiert.
die beiden Module haben das gleiche Interface (wenn du dich auf die
Gemeinsamkeiten der Betriebssysteme beschränkst). Es ist daher idR
möglich per einfacher Fallunterscheidung das richtige Modul auszuwählen
my $port;
if ($^O eq 'MSWin32') {
require Win32::SerialPort;
$port = Win32::SerialPort->new('COM3');
} else {
require Device::SerialPort;
$port = Device::SerialPort->new('/dev/cuaa0');
}
und anschliessend dann völlig unabhängig vom System zu verwenden.
Das verwendete Device ist ja eh ein vom Anwender mitzuteilender
Parameter.
> Es schlägt zwar `make test' fehl, aber immerhin kann ich schon Daten
> empfangen und senden.
Du sparst dir so auch die ganze cygwin Laufzeitumgebung.
Gruß
Christian
--
Nichtstun ist besser als mit viel Mühe nichts schaffen. (Laotse)
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker