Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Wenn Werte von Processing aus an weitere Applikationen (z.B. MAX) übergeben werden sollen, oder wenn in Processing Werte aus diesen Programmen empfangen werden sollen, verwenden wir die Processing Library oscP5 (http://www.sojamo.de/libraries/oscP5/). Diese muss ebenfalls heruntergeladen werden und dann im library Ordner von Processing platziert werden. 

Um diese nun per OSC an einen anderen Computer zu versenden müssen wir zunächst die OSC Library initialisieren:

1.import oscP5.*; // Import the OSC Libary
2.import netP5.*; // Import the net Library
3. 
4.OscP5 oscP5; // Make an instance of the OSC Library
5.NetAddress myRemoteLocation; // Set a net Address

Im nächsten Schritt übergeben wir die Werte für die OSC Kommunikation innerhalb des setup():

1.void setup()
2.{
3....
4.oscP5 = new OscP5(this,12000); // start oscP5, listening for incoming messages at port 12000  
5.myRemoteLocation = newNetAddress("172.31.224.73",12000); // The Address defined here is the Address of the Receiver
6....
7.}

Um ausgehende Daten zu handeln kreiert man nun lediglich eine neue OSC Message, hängt die zu schickenden Daten (in unserem Fall die Werte des Potentiometers) an und versendet dann das gesamte Packet:

1.OscMessage myMessage = new OscMessage("Arduino"); // New Message 
2.myMessage.add(theData); // Add Data
3.oscP5.send(myMessage, myRemoteLocation); // Send Message

Ausgangspunkt für den Versand bzw. das Empfangen von Daten bilden folgende zwei Beispiele:

Beispiel OSC Senden
import oscP5.*; // Import the OSC Libary
import netP5.*; // Import the net Library
OscP5 oscP5; // Make an instance of the OSC Library
NetAddress myRemoteLocation; // Set a net Address
void setup()
{
size(400,400);
oscP5 = new OscP5(this,0000); // start oscP5, listening for incoming messages at port 12000
myRemoteLocation = new NetAddress("172.31.224.95",1111); // The Address defined here is the Address of the Receiver
}
void draw()
{
background(0);
sendOSC(255);
}
void sendOSC(int theData)
{
OscMessage myMessage = new OscMessage("Moritz"); // New Message
myMessage.add(theData); // Add Data
oscP5.send(myMessage, myRemoteLocation); // Send Message
}
Beispiel OSC Empfangen
import oscP5.*;
import netP5.*;
OscP5 oscP5;
//NetAddress myRemoteLocation;
void setup()
{
size(800, 400);
oscP5 = new OscP5(this, 7777);
//myRemoteLocation = new NetAddress("localhost",12000);
}
void draw()
{
}
void oscEvent(OscMessage theOscMessage)
{
print("### received an osc message.");
println(" addrpattern: "+theOscMessage.addrPattern());
//print(" typetag: "+theOscMessage.typetag());
//print(millis());
if(theOscMessage.addrPattern().equals("/CoM"))
{
println(theOscMessage.get(0).stringValue()+" "+theOscMessage.get(1).stringValue()+" "+theOscMessage.get(2).stringValue());
}
}