Basic touch buttons example for Hexiwear
Dependencies: Hexi_KW40Z
Diff: main.cpp
- Revision:
- 1:80e17bcc26e4
- Parent:
- 0:f7ef26f17610
- Child:
- 2:5b025ef2835a
diff -r f7ef26f17610 -r 80e17bcc26e4 main.cpp
--- 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)
{