Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
import oscP5.*; // oscP5 Library importieren
import netP5.*; // netP5 Library importieren
 
OscP5 oscP5; // Kontrollobjekt anlegen
NetAddress remoteLocation; // Zieladresse anlegen

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

Code Block
void setup() {
  oscP5 = new OscP5(this, 12000); // Library starten und auf Port 12000 auf eingehende Nachrichten warten
  remoteLocation = new NetAddress("172.31.224.73", 12000); // Die IP Adresse sowie der Port des Empfänger
}

Um a usgehende 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:

Code Block
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:

...

languagejava
titleBeispiel OSC Senden
collapsetrue

...

Nun müssen wir nur noch Nachrichten erstellen und diese and die Zieladresse schicken:

Code Block
void mousePressed() {
  size(400, 400);
  oscP5OscMessage msg = new OscP5(this, 0000); // start oscP5, listening for incoming messages at port 12000
  myRemoteLocation = new NetAddress("172.31.224.95", 1111OscMessage("/test"); // TheNeue 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(theDataNachricht mit "/test" als Adress-Muster
  msg.add(123); // AddEinfache Zahl Dataanhängen
  oscP5.send(myMessagemsg, myRemoteLocationremoteLocation);  // Senden Sendder MessageNachricht
}

Code Block
languagejava
titleBeispiel OSC Empfangen
collapsetrue
import oscP5.*;
import netP5.*;
OscP5 oscP5; 

void setup()
{
  size(800, 400);
  oscP5 = new OscP5(this, 7777); 
}

void draw()
{
}

Um Nachrichten zu empfangen können wir folgenden Code hinzufügen:

Code Block
void oscEvent(OscMessage theOscMessagemsg) {
  printprintln("### received an osc message.Neue Nachricht");
  println(" addrpatternAddrPattern: " +theOscMessage msg.addrPattern()); // Ausgeben des  //printAdress-Muster
  println(" typetagTypeTag: " +theOscMessage msg.typetag()); // Ausgeben des Type-Tag
 
  //print(millis()); Adress-Muster überprüfen
  if (theOscMessagemsg.addrPattern().equals("/CoMtest")) {
	// Mitgesendete Zahl {ausgeben
    println(theOscMessage.get(0).stringValueintValue()+" "+theOscMessage.get(1).stringValue()+" "+theOscMessage.get(2).stringValue());
  }
}