]> git.earman.xyz Git - sensor-watch.git/blob
916a92360f494735356fa58263e45d7c414458bc
[sensor-watch.git] /
1 /*
2     This module implements some business logic to test.
3
4     Signal events by calling the functions on the module.
5 */
6
7 #include <stdio.h>
8 #include <string.h>
9 #include "event_processor.h"
10 #include "display.h"
11
12 void event_deviceReset(void)
13 {
14     //printf ("Device reset\n");
15     display_turnOffStatusLed();
16 }
17
18 void event_volumeKnobMaxed(void)
19 {
20     display_setVolume(11);
21 }
22
23 void event_powerReadingUpdate(int powerReading)
24 {
25     if (powerReading >= 5)
26     {
27         display_turnOnStatusLed();
28     }
29 }
30
31 void event_modeSelectButtonPressed(void)
32 {
33     static int mode = 0;
34
35     if (mode == 0)
36     {
37         display_setModeToMinimum();
38         mode++;
39     }
40     else if (mode == 1)
41     {
42         display_setModeToMaximum();
43         mode++;
44     }
45     else if (mode == 2)
46     {
47         display_setModeToAverage();
48         mode++;
49     }
50     else
51     {
52         mode = 0;
53     }
54 }
55
56 void event_devicePoweredOn(void)
57 {
58     if (display_isError())
59     {
60         display_powerDown();
61     }
62 }
63
64 void event_keyboardCheckTimerExpired(void)
65 {
66     char userEntry[100];
67
68     display_getKeyboardEntry(userEntry, 100);
69
70     if (strcmp(userEntry, "sleep") == 0)
71     {
72         display_powerDown();
73     }
74 }
75
76 static bool event_lastComplete = false;
77
78 /* Function called when the display update is complete. */
79 static void displayUpdateComplete(void)
80 {
81     event_lastComplete = true;
82 }
83
84 void event_newDataAvailable(int data)
85 {
86     event_lastComplete = false;
87     display_updateData(data, displayUpdateComplete);
88 }
89
90 bool eventProcessor_isLastEventComplete(void)
91 {
92     return event_lastComplete;
93 }