Stap 5: Parse OSC berichten
Wat we nu moeten doen is uittreksel van de nummers van de berichten die we hebben gekregen en iets nuttigs mee doen.
Voor dit ga ik alleen te concentreren op de attentiewaarde afkomstig uit BrainWaveOSC. Trent heeft een gunstige benoemde de waarden met zinvolle adres patronen, dus alles wat we moeten doen is controleren onze binnenkomende berichten voor het en het uitlichten.
Binnen uw oscEvent functie, zult u wilt toevoegen:
Als (theMessage.checkAddrPattern("/attention") == true) {}
println ("uw aandacht is:" + theMessage.get(0).floatValue());
}
Om ervoor te zorgen uw console krijgt niet overspoeld met andere berichten, commentaar uit uw println uit de vorige stap met / / aan het begin zodat kijkt het als dit:
println ("OSC bericht ontvangen! Het adres patroon is "+ theMessage.addrPattern() +". De typetag is: "+ theMessage.typetag());
Uw toepassing uitvoeren
Uw toepassing opnieuw uitvoert met de knop afspelen in de hogere linkerhoek. Ditmaal moet uw console iets als tonen:
Uw niveau van aandacht is: 0.0
Ik was niet mijn headset dragen als ik was het testen van het zodat het uiterlijk vertoon opwaarts zoals 0.0. Als u het draagt, moet u zien de aantallen wijzigen.
Toevoegen van een globale variabele
Awesome. We zijn dus nu ontvangen slechts de waarden van de aandacht en ze afdrukken op het scherm. We moeten een manier die informatie doorgeven aan een andere functie, zodat we iets mee kunnen doen. De gemakkelijke manier om dit te doen is met een globale variabele. Voeg deze regel onder OscP5 oscp5;
float currentAttention;
Wijzig uw functie oscEvent er als volgt uitzien:
Als (theMessage.checkAddrPattern("/attention") == true) {}
currentAttention = theMessage.get(0).floatValue();
println ("uw aandacht is:" + currentAttention);
}
Nu, je hebt gemaakt van een variabele die kan worden benaderd vanuit elke functie en wordt bijgewerkt wanneer oscEvent een OSC-bericht met het adres patroon ziet "/ aandacht".