OSC Kommunikation in Processing
1. IP Adresse herausfinden
Unter einer IP Adresse versteht man den Standort eines Computers in einem Netzwerk.
Schritte:
Firewall ausstellen (Privat und Public Domain).
im Windows Suchfeld "CMD" oder "MeshLabServer" eingeben.
In dem MeshLabServer-Fenster, “ipconfig” eingeben.
Beispiel einer IP Adresse: 192.168.236.75
2. Verbindung mit anderer IP Adresse
Ping ist ein Diagnose-Werkzeug, mit dem überprüft werden kann, ob ein bestimmter Host in einem IP-Netwerk erreichbar ist.
In dem MeshLabServer-Fenster, “ping IPAdresse” eingeben.
Troubleshooting:
Firewall prüfen: Settings > Firewall & Network protection > Domain Network, Private Network & Public Network ausschalten.
Vergabe der IP Adresse prüfen: Auf das Internetsymbol rechtsklick > Open Netzwerk and Internet Settings > Change Adapter Options > Auf das PC-Symbol mit dem Internet.
Rechtsklick > Properties > Internet Protocol Version 4 >> (doppelklick)
Wenn hier eine feste IP Adresse steht “Use the following IP address”, umstellen auf “Obtain an IP adress automatically”.
3. in Processing
oscP5 Library (by Andreas Schlegel) herunterladen:[1]
Dazu einen neuen Processing Sketch öffnen.
Im Sketch oben in der Leiste auf “Scetch” > “Import Library” > oscP5
Im Sketch die Library wieder rauslöschen( brauchen wir nicht) und bei “File”>”Examples”>”Contributed Libraries”>”oscP5”> “oscP5SendRecieve”.
Den Examplecode haben wir wie folgt verändert;
a) wir haben unsere eigenen IP-Adressen eingefügt:
b) wir haben die jeweilig anderen PC als Variable deklariert:
c) IP Adresse der anderen Person hinzufügen:
d) Code:
/**
* oscP5sendreceive by andreas schlegel
* example shows how to send and receive osc messages.
* oscP5 website at http://www.sojamo.de/oscP5
*/
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
NetAddress TomasRemoteLocation;
void setup() {
size(400,400);
frameRate(25);
/* start oscP5, listening for incoming messages at port 12000 */
oscP5 = new OscP5(this,12000);
/* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
* an ip address and a port number. myRemoteLocation is used as parameter in
* oscP5.send() when sending osc packets to another computer, device,
* application. usage see below. for testing purposes the listening port
* and the port of the remote location address are the same, hence you will
* send messages back to this sketch.
*/
//myRemoteLocation = new NetAddress("192.168.236.83",12000);
TomasRemoteLocation = new NetAddress("192.168.236.75",12000);
}
void draw() {
background(0);
}
void mousePressed() {
/* in the following different ways of creating osc messages are shown by example */
OscMessage myMessage = new OscMessage("/halloTomas");
myMessage.add(123); /* add an int to the osc message */
/* send the message */
//oscP5.send(myMessage, myRemoteLocation);
oscP5.send(myMessage, TomasRemoteLocation);
}
/* incoming osc message are forwarded to the oscEvent method. */
void oscEvent(OscMessage theOscMessage) {
/* print the address pattern and the typetag of the received OscMessage */
print("### received an osc message.");
print(" addrpattern: "+theOscMessage.addrPattern());
println(" typetag: "+theOscMessage.typetag());
}