Hi,
ich habe heute meinen IR-Schreib-lesekopf fuer den eHZ (volkszaehler.org - wiki - EMH eHZ-H) bekommen (USB-Variante) und hab' ihn gleich ans Wiregate gesteckt.
Egal was ich versucht habe (socat, stty+cat, perl), die Daten entsprechen nicht dem Protokoll. Stecke ich den Leser allerdings an einen anderen PC, funktioniert das gleiche Perl-Skript auf Anhieb (ebenso cutecom, socat).
Habe auch die Einstellungen der Schnittstelle mit stty -F /dev/powermeter0 verglichen, waren identisch.
Das Skript sieht so aus:
Steh' ich auf dem Schlauch oder habe ich noch was vergessen?
Danke!
ich habe heute meinen IR-Schreib-lesekopf fuer den eHZ (volkszaehler.org - wiki - EMH eHZ-H) bekommen (USB-Variante) und hab' ihn gleich ans Wiregate gesteckt.
Egal was ich versucht habe (socat, stty+cat, perl), die Daten entsprechen nicht dem Protokoll. Stecke ich den Leser allerdings an einen anderen PC, funktioniert das gleiche Perl-Skript auf Anhieb (ebenso cutecom, socat).
Habe auch die Einstellungen der Schnittstelle mit stty -F /dev/powermeter0 verglichen, waren identisch.
Das Skript sieht so aus:
Code:
my $PORT='/dev/powermeter0'; use warnings; use strict; use utf8; use Device::SerialPort; my $tty = new Device::SerialPort($PORT) || die "can't open $PORT: $!"; $tty->baudrate(9600) || die 'fail setting baudrate'; $tty->databits(8) || die 'fail setting databits'; $tty->stopbits(1) || die 'fail setting stopbits'; $tty->parity("none") || die 'fail setting parity'; $tty->write_settings || die 'fail write settings'; $tty->rts_active(0); $tty->dtr_active(0); $tty->read_char_time(0); $tty->read_const_time(3000); #$tty->debug(1); my $timeout = 10; while ($timeout > 0) { my ($num_read, $s) = $tty->read(316); ... $tty->close || die "can't close $PORT: $!";
Danke!
Kommentar