Basic touch buttons example for Hexiwear
Dependencies: Hexi_KW40Z
Diff: main.cpp
- Revision:
- 1:80e17bcc26e4
- Parent:
- 0:f7ef26f17610
- Child:
- 2:5b025ef2835a
--- a/main.cpp Mon Sep 19 02:51:26 2016 +0000 +++ b/main.cpp Mon Sep 19 03:40:21 2016 +0000 @@ -6,15 +6,6 @@ void StartHaptic(void); void StopHaptic(void const *n); -void HandleButtons(hexi_buttons_t button); - -kw40z_callbacks_t callbacks = -{ - .buttons = HandleButtons, - .alert = NULL, - .passkey = NULL, - .notifications = NULL, -}; DigitalOut redLed(LED1); DigitalOut greenLed(LED2); @@ -26,57 +17,65 @@ /* Instantiate the Hexi KW40Z Driver (UART TX, UART RX) */ KW40Z kw40z_device(PTE24, PTE25); + +void ButtonUp(void) +{ + StartHaptic(); + redLed = LED_ON; + greenLed = LED_OFF; + blueLed = LED_OFF; +} + +void ButtonDown(void) +{ + StartHaptic(); + + redLed = LED_OFF; + greenLed = LED_ON; + blueLed = LED_OFF; +} + +void ButtonRight(void) +{ + StartHaptic(); + + redLed = LED_OFF; + greenLed = LED_OFF; + blueLed = LED_ON; +} + +void ButtonLeft(void) +{ + StartHaptic(); + + redLed = LED_ON; + greenLed = LED_OFF; + blueLed = LED_OFF; +} + +void ButtonSlide(void) +{ + StartHaptic(); + + redLed = LED_ON; + greenLed = LED_ON; + blueLed = LED_OFF; +} + int main() { /* Register callbacks to application functions */ - kw40z_device.attach(&callbacks); + kw40z_device.attach_buttonUp(&ButtonUp); + kw40z_device.attach_buttonDown(&ButtonDown); + kw40z_device.attach_buttonLeft(&ButtonLeft); + kw40z_device.attach_buttonRight(&ButtonRight); + kw40z_device.attach_buttonSlide(&ButtonSlide); while (true) { Thread::wait(500); } } - -void HandleButtons(hexi_buttons_t button) -{ - StartHaptic(); - - switch(button) - { - case pressUp: - redLed = LED_ON; - greenLed = LED_OFF; - blueLed = LED_OFF; - break; - - case pressDown: - redLed = LED_OFF; - greenLed = LED_ON; - blueLed = LED_OFF; - break; - - case pressLeft: - redLed = LED_OFF; - greenLed = LED_OFF; - blueLed = LED_ON; - break; - - case pressRight: - redLed = LED_ON; - greenLed = LED_ON; - blueLed = LED_OFF; - break; - - case slide: - redLed = LED_ON; - greenLed = LED_ON; - blueLed = LED_ON; - break; - - default: - break; - } -} void StartHaptic(void) {