Stap 6: Gebouw de modi
Wij willen onze controller bestaat uit drie modi. In de eerste mode zullen we notities verzenden naar de computer. In de tweede modus sturen wij controle wijzigingen (CC) naar de computer en in de derde stand zullen wij kundig voor steken een "configure modus" waarin wij zal zitten kundig voor wijzigen van het kanaal van de midi uitgang.
We zullen schakelen tussen deze modi door te jatten links, rechts en omhoog met behulp van de sensor. Om te zien in welke modus u momenteel bent, we gonna bouwen in twee LED's. Blauw zullen Opmerking modus, gele zullen CC modus en beide leds op worden modus configureert.
We doen dit door het creëren van een enumeratie. Op deze manier kunnen wij houden onze code leesbaar en begrijpelijk is voor het menselijk oog.
enum Mode { CC, Note, Configure }; Mode currentMode = Note;
Wanneer dat is gebeurd het is vrij ongecompliceerd. Wanneer de gebruiker Jat links, wordt de currentMode Notitiemodus. Wanneer de gebruiker swipes recht, wordt currentMode CC modus.
void CheckForGestures() { if ( zx_sensor.gestureAvailable() ) {<br> gesture = zx_sensor.readGesture(); gesture_speed = zx_sensor.readGestureSpeed(); switch ( gesture ) { case NO_GESTURE: break; case RIGHT_SWIPE: currentMode = Note; break; case LEFT_SWIPE: currentMode = CC; break; case UP_SWIPE: currentMode = Configure; default: break; } } }
Nu, we hoeft te kijken in onze methode void loop wat aan te wanneer de huidige modus iets is.
if (currentMode == Note) {<br> SendNotes(); } if (currentMode == CC) { SendCC(); } else if (currentMode == Configure) { ConfigureMode(); } if (currentMode != Configure) { CheckForGestures(); }
Nogmaals: de volledige code zal worden gedownload bij de laatste stap.