Go Down

Topic: Nachrichten an iPhone über das Netzwerk an welche IP? (Read 810 times) previous topic - next topic

juhecomp

Hallo,

mit meinem iPhone möchte ich den Arduino per OSC mit Hilfe des Ethernetshields steuern.
Dies habe ich auch schon wunderbar geschafft.
Nun möchte ich allerdings, dass der Arduino auch Nachrichten an das iPhone zurück schickt. (zum Beispiel: wenn Eingang 1 = HIGH sende "1")
Theoretisch wäre das ja auch mit z_osc möglich allerdings müsste dann die IP Adresse des Empfangs-iPhones bekannt sein.
Gibt es eine Möglichkeit die IP Adresse aus der empfangenen Nachricht auszulesen?
Also ungefähr so:

1. iPhone schickt von IP Adresse "192.168.1.xx" einen Befehl an Arduino
2. Arduino erkennt von welcher IP Adresse der Befehl kommt, führt ihn aus und antwortet an die gleiche IP Adresse (192.168.1.xx)

Ich hoffe ich habe mich nicht zu unverständlich ausgedrückt :smiley-roll-sweat:


Vielleicht weiß jemand von euch ja eine Lösung.


MFG Juhecomp

michael_x

OSC = http://en.wikipedia.org/wiki/Open_Sound_Control
???

Schon verrückt, was es auf iPhones alles für Zeugs gibt.

Quote
Gibt es eine Möglichkeit die IP Adresse aus der empfangenen Nachricht auszulesen?
So funktioniert jede Server-Client Kommunikation über IP, schon auf der socket - Ebene. Auf jede Nachricht eines Clients kann ein Server antworten.

https://github.com/recotana/ArdOSC hast du sicher schon gesehen.

pylon

Ich denke, Dein Problem ist, dass Du nicht an die IP des anfragenden Rechners ran kommst. Die Ethernet-Bibliothek bietet diese Möglichkeit leider nicht an. Du könntest die Information direkt auf dem WizNet5100 auslesen (Register 0x0X0C, wobei X = 4, 5, 6, 7 ist für die 4 Verbindungen, die der Chip unterstützt), aber wie gesagt, die Bibliothek unterstützt Dich darin überhaupt nicht.

Ein Problem dürfte auch sein, dass auf der iPhone-Seite kein Prozess am Lauschen ist. Wie willst Du denn auf das iPhone connecten, welchen Service möchtest Du dort benutzen? Wenn Du auf dem Arduino keinen Server programmiert hast, gibt er ja auch keine Antwort, wenn Du darauf zu verbinden versuchst. Ohne einen entsprechenden Server wird auch das iPhone nicht antworten und so mit Hintergrund-Prozessen liegt das iPhone meines Wissens auf Kriegsfuss.

mkl0815

Welche OCS-Lösung setzt Du denn ein? OSC steht ja nur für Open-Sound-Control, Implementierungen gibt es aber verschiedene. Z.B  iOCS oder touchOCS ...
Gut wäre auch der Sektch mit dem Du arbeitest. Evtl. sieht man ja da schon, wie Du an die IP kommst.
Mario.

mkl0815


Ein Problem dürfte auch sein, dass auf der iPhone-Seite kein Prozess am Lauschen ist. Wie willst Du denn auf das iPhone connecten, welchen Service möchtest Du dort benutzen? Wenn Du auf dem Arduino keinen Server programmiert hast, gibt er ja auch keine Antwort, wenn Du darauf zu verbinden versuchst. Ohne einen entsprechenden Server wird auch das iPhone nicht antworten und so mit Hintergrund-Prozessen liegt das iPhone meines Wissens auf Kriegsfuss.

Vermutlich baut das iPhone einmal eine TCP-Verbindung zum Arduino auf, um OSC messages zu senden. Auf der gleichen Verbindung kann man dann auch einfach antworten. Dabei wäre es aber wichtig zu wissen, welche OSC-Implementierung verwendet wird. Einige (z.B. touchOSC) lauschen auch auf einem eigenen Port.
Besonders cool wäre es natürlich, dem Arduino "ZeroConf / Bonjour" beizubringen :-)

juhecomp

#5
Nov 01, 2012, 06:27 pm Last Edit: Nov 01, 2012, 06:31 pm by juhecomp Reason: 1
Also momentan mache ich das ganze noch mit touchOSC.
In touchOSC soll dann optimalerweise eine "LED" aufleuchten wenn ein bestimmter Eingang des Arduino auf HIGH steht.
Später wenn ich etwas mehr in die iPhone Programmierung eingestiegen bin möchte ich eine eigene App schreiben.


P.S.: Ich habe gerade einen Beitrag des Benutzers "Jolle" gefunden der ein ähnliches (evtl. das gleiche) Problem hat:
http://arduino.cc/forum/index.php?topic=123842.0

außerdem habe ich ein Video gefunden, bei dem das ganze wohl über Bonjour läuft (danke mkl0815 für die Anregung):
http://vimeo.com/9145690

moehoe

Hallo juhecomp,

falls du dich erstmal für die TouchOSC Variante entscheidest kann ich dir nur raten dir die Beispielprogramme anzugucken!
Die haben mir selber extrem geholfen, wenn man einmal richtig durchgeblickt hat.
Vielleicht hilft dir das auch noch weiter:   http://arduino.cc/forum/index.php/topic,70691.0.html

Gruß Moritz

Go Up