Hallo,
ich bin ziemlich neu in der Materie und habe mich gleich in ein riesen Projekt gestürzt.
Ich habe eine Programm-Vorlage gefunden, mit der man über einen ComPort Befehle senden kann. In meinem Fall möchte ich Hex-Befehle an einen Beamer senden.
Jetzt möchte ich aber gerne auch Informationen vom Beamer empfangen können. Und da ist mein Problem.
Hier seht ihr meine "Vorlage": http://www.autohotkey.com/board/topic/2 ... le-script/
Und hier einige Befehle des Beamers(letzte Seite unten): http://www.optoma.co.uk/uploads/RS232/E ... -en-GB.pdf
Kann mir einer vielleicht ein Beispiel schreiben? Ich stelle mir das so vor, dass man auf einen Button drückt und dann einen Wert vom Beamer empfängt.
In der PDF ist außerdem die Rede von einem automatisch gesendetem Code. Wie funktioniert das?
Vielen Dank für eure Hilfe!
Ich wäre euch sehr dankbar, wenn mir jemand ein Beispiel schreiben könnte.
Read ComPort
Moderator: jNizM
Re: Read ComPort
Hallo,
wenn ich Dich richtig verstehe, ist das Senden für Dich kein Problem. Ich habe leider auch keine Ahnung, aber, wenn ich das PDF so lese, denke ich, dass Du die dort aufgeführten Sequenzen erst einmal senden musst, damit Du eine Antwort vom Beamer bekommst. Die kannst Du dann nach einer angemessenen Wartezeit auslesen, falls das Skript nicht selbst wartet.
Das Auslesen automatisch gesendeter Informationen würde ich in einen Timer legen.
Wie sieht Dein Skript bisher aus?
wenn ich Dich richtig verstehe, ist das Senden für Dich kein Problem. Ich habe leider auch keine Ahnung, aber, wenn ich das PDF so lese, denke ich, dass Du die dort aufgeführten Sequenzen erst einmal senden musst, damit Du eine Antwort vom Beamer bekommst. Die kannst Du dann nach einer angemessenen Wartezeit auslesen, falls das Skript nicht selbst wartet.
Das Auslesen automatisch gesendeter Informationen würde ich in einen Timer legen.
Wie sieht Dein Skript bisher aus?
Re: Read ComPort
Hallo,
genauso verstehe ich das auch. Das Senden ist für mich kein Problem. Zum Senden habe ich ein Beispiel bekommen. Dies ist aus der Quelle, die ich verlinkt habe.
Das mit dem Timer und den verschiedenen Befehlen kann ich mir selbst zusammenbasteln. Ich brauche nur Hilfe beim konkreten "Empfangs"-abschnitt. Ein Beispiel, wo ich den entsprechenden Befehl sende und dann den Rückgabewert verarbeiten kann, würde mir sehr helfen.
Mein Skript ist ziemlich komplex, aber die Schlüsselzeilen sind die, die auch verlinkt sind.
genauso verstehe ich das auch. Das Senden ist für mich kein Problem. Zum Senden habe ich ein Beispiel bekommen. Dies ist aus der Quelle, die ich verlinkt habe.
Das mit dem Timer und den verschiedenen Befehlen kann ich mir selbst zusammenbasteln. Ich brauche nur Hilfe beim konkreten "Empfangs"-abschnitt. Ein Beispiel, wo ich den entsprechenden Befehl sende und dann den Rückgabewert verarbeiten kann, würde mir sehr helfen.
Mein Skript ist ziemlich komplex, aber die Schlüsselzeilen sind die, die auch verlinkt sind.
Re: Read ComPort
Na gut, noch mal langsam.
Ich habe keine Möglichkeit, die Kommunikation per RS232 zu testen.
- Ich nehme mal an, dass Du das Skript aus dem zweiten Posting benutzt. Das stellt genau vier Funktionen zur Verfügung:
- RS232_Initialize()
- RS232_Write()
- RS232_Read()
- RS232_Close()
- Du sagst, dass Du senden kannst. Die Funktionen RS232_Initialize() und RS232_Write() laufen also schon mal fehlerfrei.
- Laut PDF muss man dem Beamer bestimmte Bytesequenzen senden, damit er als Antwort bestimmte Statuswerte zurückliefert.
- Das Senden hast Du im Griff, es geht also nur noch um den anschließenden Aufruf der Funktion RS232_Read().
Ich habe keine Möglichkeit, die Kommunikation per RS232 zu testen.
Re: Read ComPort
Ganz genau! Nur RS232_Read funktioniert noch nicht.
Leider kann ich das Programm auch nicht nach jeder Änderung testen, da ich den Beamer nicht zuhause habe. Ist nicht unbedingt vorteilhaft, das weiß ich
Das ist doch der entscheidene Teil, den ich benötige, oder? Also wenn man den nach dem Senden eines Befehles (z.B. An/Aus - Power State), dieses Teil in eine Schleife legt, würde in Read_Data dann die Variable stehen? Laut Anleitung käme zurük: OKn (n : 0/1 = Off/On). Die Verarbeitung von diesem Wert ist ja kein Thema mehr. Aber rein vom Verständnis ist diese Vorgehensweise denkbar?
Leider kann ich das Programm auch nicht nach jeder Änderung testen, da ich den Beamer nicht zuhause habe. Ist nicht unbedingt vorteilhaft, das weiß ich
Code: Select all
Read_Data := RS232_Read(RS232_FileHandle,"0xFF",RS232_Bytes_Received)
Re: Read ComPort
Da ich hier auch nichts habe, würde ich vorschlagen, dass Du das einfach mal ausprobierst. Die Syntax Read_Data := RS232_Read(RS232_FileHandle,"0xFF",RS232_Bytes_Received) legt nahe, dass die Funktion auch mehrere Bytes am Stück ohne Schleife lesen kann (0xFF = 255).
Sende das Steuerkommando, warte ein paar Zehntelsekunden, setze das RS232_Read() ab und schau nach, was sich in Read_Data findet.
Sende das Steuerkommando, warte ein paar Zehntelsekunden, setze das RS232_Read() ab und schau nach, was sich in Read_Data findet.
Re: Read ComPort
Werde ich so bald wie möglich testen. Wird Ende der Woche passieren.
Sobald ich es herausgefunden habe, melde ich mich hier.
EDIT:
Ich habe zwar geschummelt, aber es klappt. Ich habe TxD und RxD mal überbrückt und dann einfach mal ein Befehl gesendet und siehe da, er empfängt diesen wieder. Das heißt, das Empfangen funktioniert!
Also sollte es auch am Beamer funktionieren. Ich melde mich, sobald ich es weiß.
Sobald ich es herausgefunden habe, melde ich mich hier.
EDIT:
Ich habe zwar geschummelt, aber es klappt. Ich habe TxD und RxD mal überbrückt und dann einfach mal ein Befehl gesendet und siehe da, er empfängt diesen wieder. Das heißt, das Empfangen funktioniert!
Also sollte es auch am Beamer funktionieren. Ich melde mich, sobald ich es weiß.
Re: Read ComPort
Hallo!
Ich weiß nicht, ob ich ein neues Thema aufmachen sollte, da es thematisch sich doch mit meinem alten Thread überschneidet.
Ich habe auf verschiedenen Seiten im Internet gelesen, dass man die I/O-Pins der RS232-Schnittstelle missbrauchen kann, um zum Beispiel eine daran angeschlossene LED an- und auszuschalten. Oder einen Schalter an die "Messleitungen" zu stecken.
Ich weiß, dass das nicht die schönste Lösung ist. Dafür gibt es Mikrocontroller.
Doch meine Frage ist jetzt, kann ich das mit AHK? Ich habe nichts dazu gefunden.
Hier habe ich etwas interessantes gefunden, aber ich glaube, dass wurde mit Delphi programmiert?
Danke
Ich weiß nicht, ob ich ein neues Thema aufmachen sollte, da es thematisch sich doch mit meinem alten Thread überschneidet.
Ich habe auf verschiedenen Seiten im Internet gelesen, dass man die I/O-Pins der RS232-Schnittstelle missbrauchen kann, um zum Beispiel eine daran angeschlossene LED an- und auszuschalten. Oder einen Schalter an die "Messleitungen" zu stecken.
Ich weiß, dass das nicht die schönste Lösung ist. Dafür gibt es Mikrocontroller.
Doch meine Frage ist jetzt, kann ich das mit AHK? Ich habe nichts dazu gefunden.
Hier habe ich etwas interessantes gefunden, aber ich glaube, dass wurde mit Delphi programmiert?
Danke
Re: Read ComPort
http://www.autohotkey.com/de/forum/view ... 252560210f
Das habe ich grade gefunden.
Das habe ich grade gefunden.
Recommends AHK Studio
Re: Read ComPort
Den Thread habe ich gar nicht gefunden. Ist aber sehr hilfreich. Es klappt wunderbar, eine LED ein und auszuschalten. Jetzt bleibt mir nur noch die Frage offen, ob ich auf empfangen kann? Also ob low oder high ist.
Vielen Dank an euch!
Vielen Dank an euch!
Who is online
Users browsing this forum: No registered users and 16 guests