Seite 1 von 1

USB zu Seriell

Verfasst: Montag 12. September 2005, 09:36
von antimicro
Hi,
ich möchte einen Umsetzer schreiben um einen COM Port zu simulieren. Geht das? Zum Schluss wird die USB Maus in ihren Port gesteckt und das Script simuliert einen seriellen Port (z.B. COM1). Andere/Ältere Programme können die USB Maus dann nutzen. Problem ist eben der serielle Port. Wie lässt man einen solchen entstehen?

Ich wär für jede Idee dankbar...

Re: USB zu Seriell

Verfasst: Montag 12. September 2005, 15:13
von ProgChild
antimicro hat geschrieben:Wie lässt man einen solchen entstehen?
Mit einem Treiber. Dummerweise geht das nicht mit Python. Zumindest bei den meisten Betriebssystemen nicht.

Du kannst mal schauen, ob es da nicht schon einen Fertigen Treiber gibt, denn du "fehrnsteuern" kannst.

Verfasst: Montag 12. September 2005, 16:59
von Leonidas
Unter Linux könntest du warscheinlich eine Datei erstellen und die Programme statt auf /dev/ttyS0 auf diese Datei lenken.

Oder unter Hurd, da kannst du alles machen, was dir in den Kopf kommt. Spätestens wenn Version 1.0 draußen ist ;)

Verfasst: Montag 12. September 2005, 20:31
von ProgChild
Leonidas hat geschrieben:Unter Linux könntest du warscheinlich eine Datei erstellen und die Programme statt auf /dev/ttyS0 auf diese Datei lenken.
Ich hab auch schon an eine FIFO gedacht. Kann aber sein, dass das nicht klappt, weil das Programm ein Device verlangt...

Dummerweise hat unser Freund antimicro es nicht für nötig Gehalten, für welches Betriebssystem er das plant :roll:

Verfasst: Dienstag 13. September 2005, 10:45
von antimicro
Sorry, habt ja recht.
Unter Windows, eben COM1.

Hmm. Das kann ja eigentlich nicht so aufwendig sein, oder? Es gibt ja massenhaft Software die nicht existierende Hardware simuliert. D-Tools z.B. CD/DVD Laufwerke. Ein Bereich im Speicher könnte man dann mit Python ansteuern und manipulieren.

Verfasst: Dienstag 13. September 2005, 12:26
von Leonidas
antimicro hat geschrieben:Hmm. Das kann ja eigentlich nicht so aufwendig sein, oder? Es gibt ja massenhaft Software die nicht existierende Hardware simuliert. D-Tools z.B. CD/DVD Laufwerke.
Daemon Tools sind in C/C++ und vielleicht auch zum Teil in Assembler geschrieben. Das ist ein riesen Aufwand und leicht ist es nicht.
antimicro hat geschrieben:Ein Bereich im Speicher könnte man dann mit Python ansteuern und manipulieren.
Also die Ansteuerung von Speicherbereichen von fremden Programmen sollte eigentlich in echten 32-Bit Betriebssystemen nicht möglich sein, denke ich mir. Für sowas benutzt man API-Funktionen, auf die aber Python soweit ich weiß keinen Zugriff hat. ABer wenn du dafür ein Lowleve C-Modul schreibst und es dann über Python ansteuerst, sollte es möglich sein.

Verfasst: Dienstag 13. September 2005, 13:09
von jens
Welches Programm fragt denn direkt am COM-Port die Maus ab??? Doch höchstens der Maustreiber, oder?

Die Positionsdaten der Maus kann man doch auf anderem Wege erhalten...

Verfasst: Dienstag 13. September 2005, 15:26
von antimicro
Es geht ja nicht um die Positionsdaten allein. Denn an etwas moderneren PCs gibt es keine seriellen Schnittstellen mehr; auf jeden Fall nicht an meinem hier.

Eigentlich schade, aber das, dass ein solcher aufwand wird hätte ich nie gedacht.

Verfasst: Dienstag 13. September 2005, 15:43
von jens
Achso... Dafür könnte ein c't Projekt interressant sein... Da wurde COM Ports per Hardware an's LAN gepackt...
Ich denke fertige Lösungen COM -> USB wird es auch geben...

Verfasst: Dienstag 13. September 2005, 21:41
von BlackJack
antimicro hat geschrieben:Es geht ja nicht um die Positionsdaten allein. Denn an etwas moderneren PCs gibt es keine seriellen Schnittstellen mehr; auf jeden Fall nicht an meinem hier.

Eigentlich schade, aber das, dass ein solcher aufwand wird hätte ich nie gedacht.
Die Frage ist auch was Du damit machen willst. Programme die wirklich direkt den COM-Port, also die Hardware abfragen wird man nicht so leicht "täuschen" können und alle die eine höhere API benutzen brauchen den COM-Port nicht zwingend, oder!?

Verfasst: Mittwoch 14. September 2005, 07:44
von antimicro
Ich möchte ein DOS Programm täuschen was direkt die serielle Schnittstelle unter DOS abfragt. Ich dachte dafür gibt es spezielle Speicheradresse die dafür vorgesehen sind und die man mit Python von außen manipulieren kann. Vielleicht muss ich mal nach einem etwas besseren DOS Emulator suchen. Ach ja ... *leises stöhnen*

Verfasst: Mittwoch 14. September 2005, 15:41
von mitsuhiko
Es gibt USB --> COM Adapter.
EInzige Möglichkeit auf manchen aktuellen Servern zu einer Seriellen Konsole zu kommen. afaik 20€ das Stück.

Verfasst: Dienstag 20. September 2005, 06:41
von jens
Auf Daily Python-URL ist gerade PyUSB aufgetaucht... Ist aber noch im frühen Entwicklungsstadium...