brewco/keyboard.c

Wed, 02 Dec 2015 17:16:41 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 02 Dec 2015 17:16:41 +0100
changeset 443
6b80a37fdf8d
parent 441
bde74a8f2ad7
child 451
2247970de278
permissions
-rw-r--r--

Added programming display CGRAM. Added display of characters from CGRAM. Changed prompts to allow free prompt strings. More code for the brewsystem unit editor.

435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /*****************************************************************************
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * Copyright (C) 2015
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * Michiel Broek <mbroek at mbse dot eu>
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 *
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * This file is part of the mbsePi-apps
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 *
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 * This is free software; you can redistribute it and/or modify it
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * under the terms of the GNU General Public License as published by the
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * Free Software Foundation; either version 2, or (at your option) any
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * later version.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 *
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 * mbsePi-apps is distributed in the hope that it will be useful, but
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 * General Public License for more details.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 *
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 * along with ThermFerm; see the file COPYING. If not, write to the Free
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 *****************************************************************************/
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 #include "brewco.h"
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 #include "lcd-pcf8574.h"
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 #include "slcd.h"
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 #include "keyboard.h"
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 * 10 Milliseconds counts for a key to be short or long pressed.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 #define PRESS_NORMAL 5
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 #define PRESS_LONG 200
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 * LCD timeout in seconds
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 #define LCD_SLEEP 120
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 * Menu timeout in seconds
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 #define MENU_TIMEOUT 60
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 extern int my_shutdown;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 extern int debug;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 extern int setupmenu;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 extern uint16_t keys;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 extern uint16_t leds;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 extern int slcdHandle;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 int Key_Enter = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 int Key_Return = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 int Key_Up = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 int Key_Down = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 int previous_key = KEY_NONE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 int menutimer = 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 int keypressed(void);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
67
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
68 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
69 * Wait for a key. Return the pressed key.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
70 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
71 int keywait(void)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
72 {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
73 int key;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
74
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
75 do {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
76 usleep(50000);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
77 slcdDummy(slcdHandle);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
78 key = keycheck();
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
79 if (my_shutdown)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
80 return KEY_NONE;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
81 } while (key == KEY_NONE);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
82
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
83 fprintf(stdout, "keywait %d\n", key);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
84 return key;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
85 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
86
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
87
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
88
435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 * Check for a key. Return last pressed key or none.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 int keycheck(void)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 int key, retkey = KEY_NONE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 key = keypressed();
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 if ((key == KEY_NONE) && (previous_key != KEY_NONE)) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 retkey = previous_key;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 previous_key = key;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 return retkey;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 int keypressed(void)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108 {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 if (Key_Enter && Key_Up && Key_Down && Key_Return)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 return KEY_ALL;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 if (Key_Up)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 return KEY_UP;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 if (Key_Down)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 return KEY_DOWN;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 if (Key_Enter)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 return KEY_ENTER;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 if (Key_Return)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 return KEY_RETURN;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 return KEY_NONE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123 #ifdef HAVE_WIRINGPI_H
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
124 PI_THREAD (my_keyboard_loop)
435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 #else
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
126 void *my_keyboard_loop(void *threadid)
435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 int Return = 0, Enter = 0, Up = 0, Down = 0, Backlight = LCD_SLEEP, AnyKey = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 time_t Last = (time_t)0, Now;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 pinMode(PANEL_RETURN, INPUT);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 pinMode(PANEL_ENTER, INPUT);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135 pinMode(PANEL_UP, INPUT);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 pinMode(PANEL_DOWN, INPUT);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
139 syslog(LOG_NOTICE, "Thread my_keyboard_loop started");
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 435
diff changeset
140 if (debug)
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
141 fprintf(stdout, "Thread my_keyboard_loop started\n");
435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144 * Loop forever until the external shutdown variable is set.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146 for (;;) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 if (my_shutdown)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148 break;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
150 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 if (digitalRead(PANEL_ENTER) && ((keys & 0x0001) == 0)) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
152 #else
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153 if ((keys & 0x0001) == 0) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 Enter = 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 Key_Enter = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 } else {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 Enter++;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 if (Enter > PRESS_NORMAL)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 Key_Enter = TRUE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
164 if (digitalRead(PANEL_RETURN) && ((keys & 0x0002) == 0)) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 #else
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 if ((keys & 0x0002) == 0) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 Return = 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169 Key_Return = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
170 } else {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 Return++;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172 if (Return > PRESS_NORMAL)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173 Key_Return = TRUE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
174 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 if (digitalRead(PANEL_UP) && ((keys & 0x0008) == 0)) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 #else
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 if ((keys & 0x0008) == 0) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 Up = 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182 Key_Up = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
183 } else {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184 Up++;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 if (Up > PRESS_NORMAL)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186 Key_Up = TRUE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
190 if (digitalRead(PANEL_DOWN) && ((keys & 0x0004) == 0)) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
191 #else
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192 if ((keys & 0x0004) == 0) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 Down = 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 Key_Down = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196 } else {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
197 Down++;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
198 if (Down > PRESS_NORMAL)
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
199 Key_Down = TRUE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
200 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
201
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
202 if (Key_Enter || Key_Return || Key_Up || Key_Down) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 AnyKey = TRUE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 * Any key is pressed.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
206 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
208 piLock(LOCK_LCD);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
209 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
210 setBacklight(1);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
211 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
212 piUnlock(LOCK_LCD);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
213 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
214 Backlight = LCD_SLEEP;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
215 menutimer = 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
216 } else {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
217 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
218 * No key pressed.
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
219 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
220 AnyKey = FALSE;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
221 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
222
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
223 Now = time(NULL);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
224 if (Now != Last) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
225 Last = Now;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
226
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
227 if (AnyKey == FALSE) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
228 if (Backlight == 1) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
229 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
230 piLock(LOCK_LCD);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
231 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
232 setBacklight(0);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
233 #ifdef HAVE_WIRINGPI_H
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
234 piUnlock(LOCK_LCD);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
235 #endif
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
236 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
237 if (Backlight > 0) {
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
238 Backlight--;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
239 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
240 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
241 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
242
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
243 /*
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
244 * Loop 10 milliseconds
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
245 */
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
246 usleep(10000);
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
247 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
248
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
249 syslog(LOG_NOTICE, "Thread my_keyboard_loop stopped");
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 435
diff changeset
250 if (debug)
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
251 fprintf(stdout, "Thread my_keyboard_loop stopped\n");
435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
252 return 0;
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
253 }
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
254
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
255

mercurial