diff --git a/SLIPtest.ino b/SLIPtest.ino new file mode 100644 index 0000000..653a433 --- /dev/null +++ b/SLIPtest.ino @@ -0,0 +1,63 @@ + +#include +#include +#include +#include +#include +#include +#include +SLIPEncodedSerial SLIPSerial(Serial); +#include + +const int smoothSize = 20; +int val0[smoothSize], val1[smoothSize], val2[smoothSize]; + +bool checkFlutter(int input[]) { + boolean result = true; + for (int i = 1; i <=(smoothSize-1); i++) { + if(input[0] == input[i]) {result = false;} else {}; + } + return result; + +}; + +void setup() { + Serial.begin(9600); + while(!Serial); +} + + +void loop() { + for (int i = (smoothSize-1); i >=1; i --) { + val0[i] = val0[i-1]; + val1[i] = val1[i-1]; + val2[i] = val2[i-1]; + }; + val0[0] = analogRead(0); + val1[0] = analogRead(1); + val2[0] = analogRead(2); + OSCMessage msg0("/0"); + if (checkFlutter(val0)) { //check if the value is the same as the last couple + msg0.add(val0[0]); + msg0.send(SLIPSerial); // send the bytes to the SLIP stream + SLIPSerial.endPacket(); // mark the end of the OSC Packet + msg0.empty(); // free space occupied by message + }; + + if(checkFlutter(val1)) { + OSCMessage msg1("/1"); + msg1.add(val1[0]); + msg1.send(SLIPSerial); + SLIPSerial.endPacket(); + msg1.empty(); + }; + + if(checkFlutter(val2)) { + OSCMessage msg1("/2"); + msg1.add(val2[0]); + msg1.send(SLIPSerial); + SLIPSerial.endPacket(); + msg1.empty(); + }; + delay(30); +}