51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
import oscP5.*;
|
|
import netP5.*;
|
|
|
|
OscP5 oscP5;
|
|
NetAddress arduinoAddress;
|
|
//the number of analog pins on this controller
|
|
int analogPins = 16;
|
|
//an array of all of the pin values
|
|
int[] pinVals = new int[analogPins];
|
|
|
|
void setup() {
|
|
frameRate(60);
|
|
size(320, 100);
|
|
background(0);
|
|
//initialize the listening port
|
|
oscP5 = new OscP5(this, 9999);
|
|
//the outgoing communication to the arduino
|
|
arduinoAddress = new NetAddress("128,32.122.252", 8888);
|
|
}
|
|
|
|
|
|
void draw() {
|
|
//clear the previous bars
|
|
fill(0);
|
|
rect(0, 0, width, height);
|
|
//draw each of the bars showing the pin value
|
|
for (int i = 0; i < analogPins; i++) {
|
|
int value = pinVals[i];
|
|
int barWidth = width/analogPins;
|
|
float barHeight = (value/1024.)*height;
|
|
//draws the new bar in white
|
|
fill(255);
|
|
rect(barWidth*i, height - barHeight, barWidth, barHeight);
|
|
}
|
|
}
|
|
|
|
// incoming osc message are forwarded to the oscEvent method.
|
|
void oscEvent(OscMessage msg) {
|
|
String address = msg.addrPattern();
|
|
if (address.startsWith("/analog/")) {
|
|
//then it's an analog reading
|
|
//split the address
|
|
String[] splitAddr = address.split("/");
|
|
//the third element should be the number
|
|
int pinNum = Integer.parseInt(splitAddr[2]);
|
|
int val = msg.get(0).intValue();
|
|
pinVals[pinNum] = val;
|
|
}
|
|
}
|
|
|