Guten Tag,
vielleicht hat jemand ein paar Infos für mich, was die Steuerung der
GPIOs des Wiport angeht ... wäre Klasse.
Folgende Situation:
Ich habe einen Wiport Version 6.1.0.1 mit 11 GPIOs, die individuell zu
schalten sind.
1. Frage: Wie kann ich das in einer möglichst einfachen Syntax tun?
Laut User Guide muss zum Verbindungsaufbau ein String im Format
C192.168.178.2/30704 übermittelt werden.
Aber wo kommt der "Nutz" - Befehl? Ich will ja z.B. die Richtung der
Pins ändern, also 19,01,00,00,00,01,00,00,00 --> Wie ist da die
richtige Syntax? Telnet + o.g.String? Oder erst Telnet + IP-Adresse und
dann zusätzlich o.g.String?
Ich möchte die I/Os steuern, ohne die Java-Scripts des C't - Projekts
nutzen zu müssen, da man dafür eine funktionierende Java Runtime
Environment braucht - und dafür ist auf dem Wiport einfach zu wenig
Speicher.
Letzten Endes möchte ich schlicht und einfach die GPIOs ein - oder
ausschalten. In welche Umgebung ich diese Steuerung einbaue, weiss ich
noch nicht; es soll aber auf jeden Fall unabhängig von einem laufenden
Rechner sein.
(alle java - und php-Ansätze setzen meines Wissens einen Server voraus)
Wenn das Schalten gelingt, möchte ich zusätzlich auch
überwachungsfunktionen realisieren, z.B. Status der Heizung oder so.
2. Frage:
Gibt es eine Entwicklungsumgebung, mit der man das grundsätzliche
Verhalten des Wiport ändern kann? Z.B. sind nach einem Reboot alle 11
GPIOs als Eingänge geschaltet. Ich möchte aber 6 als Eingang und 5 als
Ausgang per default haben.
Auch wieder: Per Port 30718 kann man das statisch schalten --> ABER WIE
GENAU?? Die Antwort dazu bleibt das User Guide schuldig. Jedenfalls habe
ich keine entdeckt.
Hat jemand noch mit diesem Wiport zu tun und kann mir helfen? Ich messe
und tippe hier schon seit vielen Stunden, aber die GPIOs bleiben eisern
auf + 2,2 Volt - also als Eingang.
Vielen Dank!!!
Heinrich
> Folgende Situation:>> Ich habe einen Wiport Version 6.1.0.1 mit 11 GPIOs, die individuell zu> schalten sind.>> 1. Frage: Wie kann ich das in einer möglichst einfachen Syntax tun?>> Laut User Guide muss zum Verbindungsaufbau ein String im Format> C192.168.178.2/30704 übermittelt werden.>> Aber wo kommt der "Nutz" - Befehl? Ich will ja z.B. die Richtung der> Pins ändern, also 19,01,00,00,00,01,00,00,00 --> Wie ist da die> richtige Syntax? Telnet + o.g.String? Oder erst Telnet + IP-Adresse und> dann zusätzlich o.g.String?
Du musst auf dem PC ein UDP- oder TCP-Client Programm programmieren das
sich mit dem Port 77F0 bzw. 77FE des WiPort verbindet und dann die
entstprechenden Strings schicken.
Programmiersprache und Betriebsystem egal (Linux, Windows, C, C++, Java,
C#..)
Über Telnet wirds wohl schwierig, da man hier schlecht Strings mit
0-Bytes schicken kann, un die sind nötig.
Die Strings die man schicken muss sind in der Doku mit Beispielen
angegeben. Seite 70 und folgende.
http://www.lantronix.com/pdf/WiPort_UG.pdf
Wichtig ist, dass man zuerst die Richtung der PINs und die Active-LEvels
setzt.
Dann kann man den Status der Ports verändern.
> Letzten Endes möchte ich schlicht und einfach die GPIOs ein - oder> ausschalten. In welche Umgebung ich diese Steuerung einbaue, weiss ich> noch nicht; es soll aber auf jeden Fall unabhängig von einem laufenden> Rechner sein.
Zum Schalten der GPIOs wird der Rechner wohl laufen müssen, da der
WiPort in diesem Betriebsmodus ja quasi "dumm" ist. Das heißt er setzt
immer ein zweites System voraus, das ihm über TCP oder UDP die Befehle
schickt.
>> Wenn das Schalten gelingt, möchte ich zusätzlich auch> überwachungsfunktionen realisieren, z.B. Status der Heizung oder so.>
Auch das muss aber ein übergeordnetes System machen, der WiPort ist ein
"dummer" End-Knoten
> 2. Frage:> Gibt es eine Entwicklungsumgebung, mit der man das grundsätzliche> Verhalten des Wiport ändern kann?
Ja, die gibt es, ist aber glaub ich keine frei verfügbare Software
sondern muss man bei Lantronix kaufen, oder zumindest speziell anfragen,
glaube ich, bin mir aber nicht ganz sicher. Man kann damit in C komplett
eigene Software schreiben. Ist aber schwiriger als das Schalten der Pins
über UDP/TCP.
> Z.B. sind nach einem Reboot alle 11> GPIOs als Eingänge geschaltet. Ich möchte aber 6 als Eingang und 5 als> Ausgang per default haben.
Das kann man aber ohne spezielle eigene Firmware konfigurieren, entweder
über das Web-Interface oder eben per UDP/TCP über den Port 77FE
> Auch wieder: Per Port 30718 kann man das statisch schalten --> ABER WIE> GENAU?? Die Antwort dazu bleibt das User Guide schuldig. Jedenfalls habe> ich keine entdeckt.
Steht im Kapitel 6:
Command 19h: SetDirections
und
Command 1Ah: SetActive Levels
Geht genauso wie im Example 2 beschrieben, eben nur mit anderem Kommando
>> Hat jemand noch mit diesem Wiport zu tun und kann mir helfen? Ich messe> und tippe hier schon seit vielen Stunden, aber die GPIOs bleiben eisern> auf + 2,2 Volt - also als Eingang.>> Vielen Dank!!!>> Heinrich
Danke für die schnelle Reaktion!
Ich habe jetzt ein entspr. Programm installiert(s.Anhang), aber das
einzige, was ich als Antwort bekomme, ist Y YYYY ... seltsam, irgendwas
versteht der Wiport wohl nicht ... und ich auch :-)
Ich habe es auch in der Schreibweise 0x10,0x00 usw. probiert, aber mit
gleichem Ergebnis.
Hast Du vielleicht noch eine Idee?
YYY ... das klingt so als ob Dein Programm die Antwort des WiPort als
ASCII Zeichen interpretiert.
Aber es ist doch schon gut wenn er antwortet, dann hat er vermutlich was
korrektes empfangen.
Besser wäre es wenn Du wirklich mit eigenem Quellcode etwas hin
schickst, und die Antwort empfängst und interpretierst.
Fertige Programme haben für solche Sachen immer Ihre Tücken.
Um ein paar Zeilen Quellcode wirst Du nicht drum rum kommen.