Moin!
Vielleicht gehört das nicht ganz hierhin, aber da ich an einem
LPT-Logger per µc arbeite: Wer kennt einen guten LPT-Sniffer, der am
besten auch mit XP x64 zusammenarbeitet?
Ich will die Daten, die mein Logger sammelt, abgleichen, da es
Differenzen zwischen der Quelle und dem Logger gibt, und ich nun
sicherstellen will, dass korrekt geloggt wird bzw. überrüfen will, woher
die unbekannten Daten kommen.
Bin für jeden Tipp dankbar!
Gruß Matze
Hmm, das Tool scheint leider nicht unter XP x64 zu funktionieren. Es
kommt direkt bei Programmstart die Fehlermeldung "Error 0", es folgt das
Programmende...
Geht leider nicht, da die Software, deren gesendete Daten ich überprüfen
will, nur unter 64 Bit läuft, außerdem habe ich hier auf der Arbeit kein
32-Bit-System installiert.
Mir ist gerade noch die Idee gekommen, VMWare zu nutzen. Könnte klappen,
ist aber umständlich. Mir wäre lieber, jemand hat das rettende Tool auf
Lager...
Auf welche Art und Weise steuert denn die von Dir verwendete Software
den LPT-Port an? Geht sie davon aus, daß da ein Drucker angeschlossen
ist und sendet einfach nur Daten an den Drucker?
In diesem Falle sollte es möglich sein, in eine Datei zu drucken, da
bedarf es weder Portmon noch einer Druckerportloggerhardware.
Das Drucken in eine Datei kann entweder direkt in der Software oder aber
in den Konfigurationseigenschaften des Druckertreibers eingestellt
werden.
Falls nein, was exakt macht die Software denn?
Die Software kommuniziert mit einem Scanner. Der Großteil der
Kommunikation geschieht über SCSI, es werden jedoch einige Daten über
den Parallel-Port (Platine mit µc im Scanner) ausgetauscht.
Da in diesem Datenstrom wohl irgendwelche Zeichen empfangen werden, die
eindeutig nicht von der Software kommen, ist es meine Aufgabe, die
Quelle dieser störenden Daten zu finden.
Einen scheinbar funktionierenden LPT-Logger habe ich schon gebastelt.
Dies ist jedoch in der Hinsicht kritisch, als dass der Tiny2313, den ich
verwende(n muss), nur ein 128k EEPROM besitzt. Also habe ich zwei
Varianten realisiert: Das Schreiben, bis das EEPROM voll ist, und das
endlose Beschreiben (ist der Speicher voll, wird am Anfang wieder
aufgesetzt, so dass letztendlich die 128 letzten Bytes festgehalten
werden).
Die Software habe ich ebenfalls angepasst, zusätzlich zur Ausgabe über
den LPT erzeuge ich eine Datei, die mit den gleichen Daten gefüttert
wird.
Da schon bei Programmstart knapp 500 Bytes übertragen werden, kann ich
mit meinem Logger nicht alles festhalten. Ein Vergleich ist also schwer.
Feststeht, dass der Logger beim Start immer 4-5 Bytes loggt, die nicht
vom Programm kommen. Weitere Differenzen konnte ich noch nicht
feststellen.
Es wäre klasse, wenn ich mit einem dritten Programm den LPT-Port sniffen
könnte, und so einen kompletten Log vom Vorgang hätte. Den könnte ich
dann mit meiner erzeugten Datei vergleichen.
VMWare scheint übrigens nicht zu funktionieren. Wahrscheinlich blockiert
die virtuelle Maschine den LPT, so dass unsere Software schicken kann,
was sie will, es kommt nicht an.
Gruß Matze
Nachschlag: Die Software schickt die Daten über einen hauseigenen
Treiber. Der Grund ist wahrscheinlich bekannt (Ansteuerung vom LPT seit
Win2000 nicht mehr so einfach über inp, outp).
Dabei wird per CreateFile und WriteFile an den Port 0x378 geschickt.
_matze wrote:
> Einen scheinbar funktionierenden LPT-Logger habe ich schon gebastelt.> Dies ist jedoch in der Hinsicht kritisch, als dass der Tiny2313, den ich> verwende(n muss), nur ein 128k EEPROM besitzt. Also habe ich zwei> Varianten realisiert: Das Schreiben, bis das EEPROM voll ist, und das> endlose Beschreiben (ist der Speicher voll, wird am Anfang wieder> aufgesetzt, so dass letztendlich die 128 letzten Bytes festgehalten> werden).
Wiso speicherst du die Daten im langsamen EEPROM ? Schick die Daten doch
direkt per UART an eine beliebige Terminal Software auf dem PC.
@benedikt:
Geht leider nicht, das Platinendesign ist fest, alle Pins vom µc sind
belegt, die Möglichkeiten UART (Geschwindigkeit) und externes EEPROM
(mehr Platz) sind also leider ausgeschlossen. Mit der Geschwindigkeit
ist übrigens alles in Ordnung, alle Daten kommen an (soweit ich das
sehen kann).
Eine Lösung direkt auf dem PC wäre also besser.
> Die Software schickt die Daten über einen hauseigenen Treiber.
Na dann hast du ja einen Kandidaten, dem sehr genau auf die Finger zu
gucken, sich lohnen könnte.
So, hat sich erledigt. Ich habe das Programm (auf dem µc) nochmal
komplett umgekrempelt und auf das Wesentliche reduziert, und siehe da!
Es funktioniert! Ich habe keine Ahnung, was nun am Programm anders sein
soll (hab leider keine Kopie gemacht), aber na ja, hauptsache es klappt.
Gruß Matze
Hi,
danke für die gute Info.
Aber wenn ich meinen LTP loggen möchte kommt immer
Portmon kann nicht auf Paralel0 zugreifen. Das Device ist in Benutzung.
Auch ein Neustart des PS´s hat nichts gebracht. Denn es nutzt kein
anderes Programm zu der Zeit das Device. Weiß einer wie ich das zum
laufen bekommen kann?
Denn auch ich möchte mein LTP loggen.
OS Win XP SP2
Danke
Nicole
Hi,
so ich habe es hin bekommen ich habe den LTP einfach auf LTP2 gestellt.
So nun bekomme ich aber keine Daten.
Wer kennt denn ein Toll mit dem ich jetzt wrklich den LTP loggen kann ?