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!


Wo die meisten DSL-Modems, erheblich exponierter, mit 2.4 auskommen müssen..
Kommentar