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
Probier's mal mit PortMon: http://www.microsoft.com/technet/sysinternals/utilities/portmon.mspx Kann aber nicht sagen, ob das bei deinen Daten funktioniert, kommt auf den Zugriff an.
Werd' ich direkt mal testen. Vielen Dank für die ultra-schnelle Antwort!
Hmm, das Tool scheint leider nicht unter XP x64 zu funktionieren. Es kommt direkt bei Programmstart die Fehlermeldung "Error 0", es folgt das Programmende...
Das war zu erwarten... 32-Bit-Treiber laufen auf 64-bit nicht. Da wird es wohl das Einfachste sein, wenn du zu den Tests einen 32-Bit-Hobel nimmst.
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 ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.