Forum: Mikrocontroller und Digitale Elektronik Wiport GPIOs steuern


von Heinrich Plett (Gast)


Lesenswert?

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

von Matthias S. (ms99)


Lesenswert?

> 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

von Heinrich Plett (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Matthias S. (ms99)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.