perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 42
Click for quality!




10.02.2012 / 09:39

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl/CGI: Scripts des Perl-Archiv zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragLPT wählen bei Device-ParallelPort
Seitenanfang
Hi,

Ich habe mir in Perl einen Treiber für eine LED-Anzeigetafel geschreiben, welche über den LPT gesteuert wird. Da der Onboard-LPT für den Drucker gebraucht wird, habe ich mir eine I/O-Karte zugelegt. Ich schaffe es aber nicht, Perl zu sagen, er soll die I/O-Karte nehmen. Egal was ich tue, er gibt es immer auf dem Onboard-LPT aus.

Ich benutze Device-ParalelPort und INPOUT32.DLL

Das Script schaut, ohne das ganze if-then-bla, im Prinzip so aus:

use Device::ParallelPort;
use Device::ParallelPort::drv::win32;
$clock = Device::ParallelPort->new('win32');

$lpt_addr = "387";

$clock -> set_byte(chr($lpt_addr), $var1);
$clock -> set_control($var2);

Laut dem synopsys von cpan zu dem Modul, gibt man mit der Variable, die hier $lpt_addr heisst, die Startadresse des gewünschten LPT an. Läuft aber nicht. Das lustige ist, er gibt es auch auf dem Onboard-LPT aus, wenn ich als Adresse z.b. "3" angebe. Nach stundenlangem rumsuchen und versuchen, resigniere ich: help!

Grüße und frohe Feiertage,
Riffuchs

Datum: 26.12.2005-01:32

Beitragre: LPT wählen bei Device-ParallelPort (Erledigt)
Seitenanfang
Hi,

Problem gelöst. Der liebe Autor vom ach so toll durchdachten Modul hat keine Möglichkeit zur eigenen Angabe von Startadressen gelassen. Bei anderen Angaben, wird automatisch 0x2(3)78 verwendet. Eine Studie der PMs ergab dies. Naja, ich habe den Treiber umgeschrieben, und werde das mal dem Autor um die Ohren haun.

Wer das Problem ebenfalls bei sich lösen möchte, guckt bei ActivePerl in die Module:
/site/lib/DeviceParallelPort/drv.pm
/site/lib/DeviceParallelPort/drv/win32.pm

Ansonsten wird sich die kommenden Tage eine kleine Dokumentation unter riffuch.de finden lassen.

Schöne Feiertage,
Riffuchs

Datum: 26.12.2005-14:58

Beitragre: LPT wählen bei Device-ParallelPort (Erledigt)
Seitenanfang
Hi,

um die Ohren hauen find ich nicht so doll. ;) Jedere macht mal Fehler ey. Ist Dir bestimmt auch schon mal passiert. ;-)

-uw

Datum: 28.12.2005-16:31

Beitragre: LPT wählen bei Device-ParallelPort (Erledigt)
Seitenanfang
War auch nich wortwörtlich gemeint :) Die Mail mit der Anfrage auf einen Bug war gaaanz formvoll *Ehrenwort* ;)

Btw: es gibt doch ne Methode einen LPT-Port anzugeben, diese steht leider nicht im Synopsys.

->new(Win32:OPTION)
OPTION = Adresse (0x***) oder "LPT1/2" oder "0/1"

Anzumerken ist das LPT1/2 oder "0/1" intern auf 0x278 udn 0x378 festgelegt ist. Weicht die Adresse ab, muss man die Adresse manuell in der PM ändern.

Die Übergabe der Hardwareadresse (z.b. 0xF400) ist im Modul (win32.pm) fehlerhaft.

Sitz gerade dran und korrigiere den Fehler. Ausserdem bau ich gleich in das Modul eine Funktion zum bequemen steuern von Ralais ein, die als TODO ausgeschrieben war :)

Irgendwie mal nächste Woche publizieren, wenns denn mit Dokumentation fertig ist.

Datum: 28.12.2005-18:40

-






-
-