Hallo zusammen, ich möcht gern etwas mit meinem RasPi rumspielen, dafür hab ich nen PCA9532 per I2C und Pegelwandler angeschlossen. Dazu hab ich jeden 2ten OutPin mit ner LED + Vorwiederstand verbunden und jeden daneben liegenden Pin mit dem Ausgang davor verbunden. Der Plan dahinter ist, ich möch überprüfen können , ob der Ausgang richtig geschalten hat. Via i2cset und i2cget in der Konsole klappt das schon sehr gut. Jetzt möchte ich über eine Windowsanwendung 1-8 LEDs einschalten und über die benachbarten Pins überprüfen, ob auch geschalten wurde. Sprich ich klick in einem C# Programm auf LED_01_ein und die LED_01 geht an und über die Rückmeldung über Eingang 02 bekomm ich das Feedback, das die LED auch wirklich angegangen ist. Für die Umsetzung such ich ne Lib für den Raspi in C auf die ich meine "Schalt X ein und melde Y zurück"_API aufsetzen kann! Muss ich mich echt um TCP/IP kümmern, wenn Linux doch das schon macht? Hab gelesen, das Websockets so ein bidirektionales Protokoll bereitstellt. C is kein Prob für mich, nur is Linux volles Neuland :-S WiringPi ist schon ein guter Ansatz,nur fehlt mir da noch die LanGeschichte. Mein Pi soll wirklich nix anderes machen, als Kommandos per TCP/IP empfangen, umsetzen ( an i2c ausgeben ) und das ergebnis zurück liefern. Hab bis jetzt nur ATMegas programmiert und wär über jeden Denkanstoss/Tipp dankbar. Möcht mir einfache ne Bastelumgebung schaffen, z.B. anderer Chip vllt per Spi aber gleiche Ansteuerung über die API. Meine Idee geht dahin, das ich n paar Dateien in mein C_Projekt einbinde und initialisiere und wenn über TCP/IP n Kommando kommt , das entsprechend (m)einer API decodiere und n Event/Interrupt bekomme auf den ich reagieren kann. Wenn das ganze auch noch in ca 10ms passiert könnt ich mir noch n paar schöne Regelalgorithmen damit vorstellen ;-) Sorry wegen dem langen Text, aber dachte je mehr Info um so besser :-D MfG Hans
Linux auf dem Pi ist wie Linux auf dem PC. Für TCP/IP unter Linux gibt
es genug Tutorials im Netz und Bibliotheken ebenfalls wie Sand am Meer.
> Muss ich mich echt um TCP/IP kümmern, wenn Linux doch das schon macht?
Du sollst keinen TCP/IP-Stack schreiben, sondern den von Linux benutzen.
Wie man das macht, findest du sicherlich selbst heraus. Wenn du C
kannst, ist das wirklich einfach. :-)
30 Sekunden gesucht: http://www.cs.ucsb.edu/~almeroth/classes/W01.176B/hw2/examples/tcp-server.c Der Code ist kürzer als dein Posting hier. Und der Client-Code dazu ist noch kürzer. Vielleicht trotzdem ein Tutorial dazu lesen, damit man weiss, was da überhaupt passiert.
Hans M. schrieb: > Für die Umsetzung such ich ne Lib für den Raspi in C auf die ich meine > "Schalt X ein und melde Y zurück"_API aufsetzen kann! > Muss ich mich echt um TCP/IP kümmern, wenn Linux doch das schon macht? Warum solltest du das müssen? Wie du schon sagst, macht Linux das doch schon. > Hab gelesen, das Websockets so ein bidirektionales Protokoll > bereitstellt. Müssen es Websockets sein? Ich würde einfach direkt auf TCP/IP gehen. > Meine Idee geht dahin, das ich n paar Dateien in mein C_Projekt einbinde > und initialisiere und wenn über TCP/IP n Kommando kommt , das > entsprechend (m)einer API decodiere und n Event/Interrupt bekomme auf > den ich reagieren kann. Wenn das ganze auch noch in ca 10ms passiert > könnt ich mir noch n paar schöne Regelalgorithmen damit vorstellen ;-) Das sollte kein Problem sein.
Wenn Du noch weniger betreffend TCP/IP machen willst, kannst Du auch den inetd, bzw den xinetd verwenden. Das ist ein Programm das nichts anderes macht als einen Port auf zu machen, und wenn eine Verbindung kommt wird Dein Programm aufgerufen und Standard Ein- und Ausgabe auf die Verbindung gelegt. Und wenn Du Dich nicht mal mehr um Websocket kümmern willst, gibts websocketd. http://websocketd.com/ Vielleicht eine kleine generelle Anmerkung. Unter unixoiden Systemen (von denen Linux eines ist) schreibt man in der Regel seine Programme so, dass sie nur eine Sache machen, die dafür gut, und mit textuellen Schnittstellen. Sprich Du hast hier zum Beispiel einen Websocketserver, der gibt Text an Dein Programm weiter. Dein Programm braucht sich nicht um Websocket kümmern oder irgendwelche Bibliotheken reinlinken, weil die Schnittstelle einfacher Text ist. Dadurch kannst Du auch trivial Programmiersprachen mischen und Programmteile als Shellskript machen.
:
Bearbeitet durch User
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.