src/main.cpp

Sun, 25 Oct 2020 23:00:17 +0100

author
David Douard <david.douard@sdf3.org>
date
Sun, 25 Oct 2020 23:00:17 +0100
changeset 36
a6c7292742a0
parent 35
b2dca6b935bb
child 37
07e8ca2bdf6d
permissions
-rw-r--r--

Add support for the shift flag

1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 #include "stdio.h"
4
219766126afb another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents: 3
diff changeset
2
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
3 #include <mbed.h>
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
4 #include <rtos.h>
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
5 #include <string>
4
219766126afb another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents: 3
diff changeset
6
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
7 #include "Terminal6x8.h"
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
8 #include "Mono19x27.h"
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
9 #include "Mono15x22.h"
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10 #include "Arial12x12.h"
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
12 #include "SSD1322.h"
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
13 #include "hp34comm.h"
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
15 #include "QEI.h"
18
4fd621551d55 [full replacement] implement a state machine for Rx
David Douard <david.douard@logilab.fr>
parents: 17
diff changeset
16 #include "Keypad.h"
4fd621551d55 [full replacement] implement a state machine for Rx
David Douard <david.douard@logilab.fr>
parents: 17
diff changeset
17
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
18 // Pins and device declarations
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
19 #if defined TARGET_NUCLEO_F446RE
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
20 #include "def_f446re.h"
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
21 #elif defined TARGET_HP34970_FP_F303RD
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
22 #include "def_hp34970_fp.h"
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
23 #endif
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
24
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
25 #include "platform/CircularBuffer.h"
26
86f099bda525 Several stuff
David Douard <david.douard@sdfa3.org>
parents: 23
diff changeset
26
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
27
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
28 SSD1322 *dsp;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
29 HPSerial *hp;
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
30 volatile uint8_t must_refresh;
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
31 Thread tdsp, tloop;
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
32 Ticker blinker;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
33 Timeout rst_delay;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
34 Timeout splashscreen_timer;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
35 InterruptIn rst(HP_RST);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
36
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
37 QEI qenc(KP_ENC1, KP_ENC2, NC, 16);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
38 volatile uint8_t knob;
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
39 bool shift; // true when kp is shifted, cleared by command 0x01 from Unit
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
40 volatile bool splashscreen;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
41
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
42
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
43 typedef enum {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
44 KEY_NONE=0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
45 KEY_PRESSED,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
46 KEY_RELEASED
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
47 } key_event_t;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
48
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
49 typedef struct keycode {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
50 uint8_t row;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
51 uint8_t col;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
52 key_event_t keyevent;
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
53 } keycode_t;
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
54
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
55 //volatile keycode_t cur_keycode;
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
56
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
57 #define KEY_BUF_SIZE 10
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
58 CircularBuffer<keycode_t, KEY_BUF_SIZE> key_buf;
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
59
34
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
60 #define KP_NROWS 4
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
61 #define KP_NCOLS 5
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
62 DigitalIn kp_rows[KP_NROWS] = {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
63 KP_R0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
64 KP_R1,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
65 KP_R2,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
66 KP_R3
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
67 };
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
68
34
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
69 DigitalOut kp_columns[KP_NCOLS] = {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
70 KP_C0, KP_C1,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
71 KP_C2, KP_C3,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
72 KP_C4
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
73 };
18
4fd621551d55 [full replacement] implement a state machine for Rx
David Douard <david.douard@logilab.fr>
parents: 17
diff changeset
74
36
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
75 /* key mapping
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
76 RxC code name
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
77 0x2 0x00 View
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
78 0x1 0x01 Mon
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
79 3x3 0x02 Sto/Rcl
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
80 0x0 0x03 Scan
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
81 1x2 0x04 Alarm
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
82 1x1 0x05 Mx+B
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
83 1x0 0x06 Measure
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
84 2x0 0x07 Interval
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
85 3x2 0x08 Card Reset
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
86 3x1 0x09 Close
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
87 3x0 0x0A Open
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
88 0x3 0x0B Read
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
89 2x3 0x0C Shift
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
90 1x3 0x0D Write
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
91 0x4 0x0E Left
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
92 1x4 0x0F Right
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
93 2x2 0x10 Advanced
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
94 2x1 0x11 Step
34
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
95 */
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
96
36
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
97 uint8_t kp_mapping[KP_NROWS][KP_NCOLS] = {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
98 {0x03, 0x01, 0x00, 0x0B, 0x0E},
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
99 {0x06, 0x05, 0x04, 0x0D, 0x0F},
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
100 {0x07, 0x11, 0x10, 0x0C, 0xFF},
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
101 {0x0A, 0x09, 0x08, 0x02, 0xFF}
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
102 };
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
103
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
104 void kp_cb(uint8_t row, uint8_t col);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
105 void kr_cb(uint8_t row, uint8_t col);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
106
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
107 Keypad *kpad;
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
108 uint8_t curchar;
26
86f099bda525 Several stuff
David Douard <david.douard@sdfa3.org>
parents: 23
diff changeset
109 //uint8_t curcmd;
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
110 uint8_t nchars;
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
111 char buffer[MAX_BUFF+1];
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
112
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
113 void timeout_h() {
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
114 #if defined(HAS_LED)
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
115 led = !led;
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
116 #endif
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
117 }
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
118
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
119 typedef struct _DSP
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
120 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
121 uint8_t cmd;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
122 uint8_t color;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
123 uint8_t bgcolor;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
124 uint8_t x0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
125 uint8_t y0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
126 uint8_t fmt; // 0x01=>ascii, 0x02=>hex, 0x04=>bits, 0x08=>flags, 0x80=>ignore
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
127 uint8_t maxsize;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
128 uint8_t width;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
129 const unsigned char* font;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
130 char buffer[MAX_BUFF+1];
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
131 } DSP;
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
132
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
133 static DSP table[] =
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
134 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
135 { 0x00, 0xF, 0x0, 0, 0, 0x01, MAX_BUFF, 245, Mono19x27}, // main display
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
136 { 0x0C, 0xF, 0x0,196, 34, 0x01, 3, 45, Mono15x22}, // channels display
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
137 { 0x0A, 0xF, 0x0, 0, 57, 0x08, 4, 0, Terminal6x8}, // flags + bits
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
138 };
2
d0826e4a1ff7 several improvements
David Douard <david.douard@logilab.fr>
parents: 1
diff changeset
139
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
140 // 9x10
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
141 const unsigned char icon_alarm[] __attribute__((aligned (2))) =
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
142 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
143 0x1c, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
144 0x3e, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
145 0x7f, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
146 0x7f, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
147 0x7f, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
148 0x7f, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
149 0x7f, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
150 0x7f, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
151 0xff, 0x80,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
152 0x10, 0x0
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
153 };
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
154
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
155 const unsigned char icon_curve[] __attribute__((aligned (2))) =
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
156 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
157 0x80, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
158 0x80, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
159 0x80, 0x80,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
160 0x81, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
161 0x9e, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
162 0xa0, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
163 0xc0, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
164 0x80, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
165 0x80, 0x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
166 0xff, 0x80
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
167 };
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
168
2
d0826e4a1ff7 several improvements
David Douard <david.douard@logilab.fr>
parents: 1
diff changeset
169 typedef struct _FLAG
d0826e4a1ff7 several improvements
David Douard <david.douard@logilab.fr>
parents: 1
diff changeset
170 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
171 uint8_t flag;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
172 uint8_t x;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
173 uint8_t y;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
174 bool reverse;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
175 const char* msg;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
176 const unsigned char* icon;
2
d0826e4a1ff7 several improvements
David Douard <david.douard@logilab.fr>
parents: 1
diff changeset
177 } FLAG;
d0826e4a1ff7 several improvements
David Douard <david.douard@logilab.fr>
parents: 1
diff changeset
178
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
179 typedef struct _FRAME
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
180 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
181 uint16_t flag;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
182 uint8_t x0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
183 uint8_t y0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
184 uint8_t x1;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
185 uint8_t y1;
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
186 } FRAME;
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
187
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
188 static const FLAG flags[] =
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
189 {
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
190 // flag, zone, x0, y0, reverse, msg, icon
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
191 // right-side icons area
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
192 { 0x00, 246, 0, false, NULL, icon_alarm}, // F1.0
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
193 { 0x01, 246, 11, false, NULL, icon_curve}, // F1.1
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
194
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
195 // F1.2 == Channel frame
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
196 { 0x03, 197, 27, false, "Channel"}, // F1.3
34
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
197 // F1.7 == Alarm frame
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
198
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
199 { 0x34, 0, 28+8, false, "MON"}, // F4.4
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
200 { 0x33, 0, 28+16, false, "VIEW"}, // F4.3
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
201 { 0x35, 0, 28, true, "SCAN"}, // F4.5
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
202 { 0x36, 0, 28+25, true, "CONFIG"}, // F4.6
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
203
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
204 { 0x32, 40, 52, false, "*"}, // F4.2
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
205 { 0x31, 50, 52, false, "ADRS"}, // F4.1
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
206 { 0x30, 80, 52, false, "RMT"}, // F4.0
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
207 { 0x27, 104, 52, true, "ERROR"}, // F3.7
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
208
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
209 { 0x26, 140, 52, false, "EXT"}, // F3.6
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
210 { 0x25, 164, 52, false, "ONCE"}, // F3.5
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
211
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
212 { 0x23, 104, 28+16, false, "MEM"}, // F3.3
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
213
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
214
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
215 // col 5
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
216 { 0x14, 244, 22, false, "4W"}, // F2.4
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
217 { 0x15, 244, 30, false, "OC"}, // F2.5
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
218 { 0x22, 129, 28+16, false, "LAST"}, // F3.2
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
219 { 0x21, 129, 28+16, false, "MIN"}, // F3.1
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
220 { 0x20, 129, 28+16, false, "MAX"}, // F3.0
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
221 { 0x17, 129, 28+16, false, "AVG"}, // F2.7
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
222
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
223 { 0x05, 154+0, 17+10, false, "Alarm"}, // F1.5
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
224 { 0x06, 154+0, 17+20, false, "H"}, // F1.6
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
225 { 0x13, 154+6, 17+20, false, "1"}, // F2.3
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
226 { 0x10, 154+12, 17+20, false, "2"}, // F2.0
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
227 { 0x12, 154+18, 17+20, false, "3"}, // F2.2
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
228 { 0x11, 154+24, 17+20, false, "4"}, // F2.1
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
229 { 0x04, 154+30, 17+20, false, "L"}, // F1.4
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
230
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
231 };
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
232
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
233 static const FRAME zones[] =
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
234 { // flag, x0, y0, x1, y1
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
235 { 0x001, 0, 0, 245, 27}, // main display area
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
236 { 0x002, 246, 0, 255, 27}, // right notif area
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
237 { 0x004, 208, 35, 254, 62}, // channels display area
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
238 { 0x008, 160, 28, 202, 54}, // alarms area
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
239 { 0x010, 0, 28, 32, 54}, // flags col1
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
240 { 0x020, 33, 28, 70, 54}, // flags col2
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
241 { 0x040, 71, 28, 103, 54}, // flags col3
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
242 { 0x080, 104, 28, 128, 54}, // flags col4
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
243 { 0x100, 129, 28, 159, 54}, // flags col5
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
244
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
245 // { 0x8000, 0, 55, 255, 63}, // flags bits display area
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
246 };
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
247
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
248 static const FRAME frames[] =
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
249 {
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
250 { 0x02, 194, 30, 243, 53}, // F1.2 - channel frame
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
251 { 0x07, 151, 30, 192, 46}, // F1.7 - alarm frame
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
252 };
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
253
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
254
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
255 #ifdef DEBUG
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
256
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
257 DigitalOut dbgpin(DBGPIN);
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
258 inline void pulse(uint8_t count=1, bool stayup=false)
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
259 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
260 dbgpin = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
261 wait_us(2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
262 while (count--)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
263 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
264 dbgpin = 1;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
265 wait_us(2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
266 dbgpin = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
267 wait_us(2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
268 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
269 if (stayup)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
270 dbgpin = 1;
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
271 }
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
272 #else
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
273 inline void pulse(uint8_t count=1, bool stayup=false)
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
274 {}
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
275 #endif
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
276
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
277 // callbacks & thread functions
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
278 void loop();
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
279 void copy_to_lcd(void);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
280 void test_dsp();
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
281 void reset(void);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
282 void reset_irq(void);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
283 void qei_cb(int dir);
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
284 void end_splashscreen(void);
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
285 void show(uint8_t, const char*, uint8_t);
4
219766126afb another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents: 3
diff changeset
286
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
287 /*
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
288 #if defined(HAVE_PC)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
289 FileHandle *mbed::mbed_override_console(int fd)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
290 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
291 return static_cast<FileHandle*> (&pc);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
292 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
293 #endif
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
294 */
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
295
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
296 void setup() {
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
297 #if defined(HAVE_PC)
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
298 #if defined(TARGET_NUCLEO_F446RE)
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
299 pc.set_baud(115200);
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
300 #endif
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
301
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
302 /*
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
303 #if defined(TARGET_HP34970_FP_F303RD)
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
304 pc.init();
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
305 pc.connect();
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
306 #endif
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
307 */
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
308 #endif
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
309
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
310 printf("\n\nSETUP\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
311 printf(" System Core Clock = %.3f MHZ\r\n",
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
312 (float)SystemCoreClock/1000000);
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
313
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
314 /*
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
315 #if defined(HAS_LED)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
316 printf("Attaching Led 1: %d\n", LED1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
317 blinker.attach(callback(timeout_h), 0.5f);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
318 #endif
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
319 */
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
320
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
321 hp = NULL;
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
322 #if defined(TARGET_NUCLEO_F446RE)
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
323 printf("Serial communication pins\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
324 printf(" USBRX=%d\r\n", USBRX);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
325 printf(" USBTX=%d\r\n", USBTX);
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
326 #endif
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
327 #if defined(TARGET_HP34970_FP_F303RD)
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
328 printf("Serial communication via USB\r\n");
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
329 #endif
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
330
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
331 printf("Setup HP communication pins\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
332 printf(" HP_RX=%d\r\n", HP_RX);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
333 DigitalIn(HP_RX).mode(PullDown);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
334 printf(" HP_TX=%d\r\n", HP_TX);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
335 DigitalOut(HP_TX).write(1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
336 printf(" HP_RST=%d\r\n", HP_RST);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
337 DigitalIn(HP_RST).mode(PullDown);
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
338
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
339 printf(" setup QEI pins\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
340 printf(" ENC1=%d\r\n", KP_ENC1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
341 DigitalIn(KP_ENC1).mode(PullDown);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
342 printf(" ENC2=%d\r\n", KP_ENC2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
343 DigitalIn(KP_ENC2).mode(PullDown);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
344 qenc.attach(&qei_cb);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
345
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
346 printf(" setup Keypad\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
347 //cur_keycode.keyevent = KEY_NONE;
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
348
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
349 shift = false;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
350 kpad = new Keypad(KP_NROWS, kp_rows, KP_NCOLS, kp_columns);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
351 printf(" attach Keypad callbacks\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
352 kpad->attach(&kp_cb, &kr_cb);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
353 printf(" start Keypad\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
354 kpad->start();
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
355
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
356 printf("Setup OLED display\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
357 // init the LCD
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
358 printf(" DSP_MOSI=%d\r\n", DSP_MOSI);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
359 printf(" DSP_MISO=%d\r\n", DSP_MISO);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
360 printf(" DSP_SCLK=%d\r\n", DSP_SCLK);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
361 printf(" DSP_CS=%d\r\n", DSP_CS);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
362 printf(" DSP_RST=%d\r\n", DSP_RST);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
363 printf(" DSP_DC=%d\r\n", DSP_DC);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
364 dsp = new SSD1322(20000000, DSP_MOSI, DSP_MISO, DSP_SCLK, DSP_CS,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
365 DSP_RST, DSP_DC, "SSD1322");
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
366
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
367 printf(" configure DSP\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
368 dsp->background(Black); // set background to black
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
369 dsp->foreground(0xF);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
370 dsp->cls();
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
371
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
372 //curcmd = 0xFF;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
373 curchar = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
374 nchars = 0;
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
375
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
376 for (uint8_t i=0; i<sizeof(table)/sizeof(table[0]); ++i)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
377 memset(table[i].buffer, 0, MAX_BUFF+1);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
378
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
379 printf(" display splash screen\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
380 dsp->locate(30, 10);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
381 dsp->set_font((unsigned char*)Mono19x27);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
382 dsp->printf("HP34970A");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
383 dsp->set_font((unsigned char*)Terminal6x8);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
384 dsp->locate(90, 40);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
385 dsp->printf("David Douard");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
386 dsp->locate(0, 52);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
387 dsp->printf("Clock = %d ", SystemCoreClock);
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
388
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
389 RCC_OscInitTypeDef cfg;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
390 HAL_RCC_GetOscConfig(&cfg);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
391 if (cfg.HSEState == RCC_HSE_BYPASS)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
392 dsp->printf("HSE:EXT ");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
393 else if (cfg.HSEState == RCC_HSE_ON)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
394 dsp->printf("HSE:XTAL ");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
395 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
396 dsp->printf("HSE:OFF ");
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
397
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
398 if (cfg.HSIState == RCC_HSI_ON)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
399 dsp->printf("HSI:ON ");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
400 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
401 dsp->printf("HSI:OFF ");
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
402
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
403 dsp->copy_to_lcd();
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
404
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
405 printf("Starting LCD thread\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
406 tdsp.start(&copy_to_lcd);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
407
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
408 printf("Starting Event thread\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
409 tloop.start(&loop);
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
410
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
411 /*
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
412 dsp->clrbuff();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
413 show(0x00, "HH:MM:\tSS\t:mmmm", 15); // main dsp
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
414 show(0x0C, "888", 3); // channel dsp
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
415 show(0x0A, "\xFF\xFF\xFF\xFF", 4); // all flags
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
416 */
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
417
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
418 printf("Attaching timers\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
419 splashscreen = true;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
420 splashscreen_timer.attach(callback(&end_splashscreen), 2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
421 rst.fall(&reset_irq);
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
422
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
423 printf("SETUP DONE\r\n");
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
424 }
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
425
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
426 void end_splashscreen(void)
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
427 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
428 // print is forbidden here because we are in an ISR context here
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
429 //printf("End of splash screen CB\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
430 splashscreen = false;
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
431 }
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
432
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
433 void reset_irq(void)
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
434 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
435 rst_delay.attach(callback(&reset), 0.1);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
436 }
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
437
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
438 void reset(void)
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
439 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
440 if (DigitalIn(HP_RST).read() == 0) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
441 if (hp == NULL) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
442 printf("setup HP communication handler\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
443 hp = new HPSerial(HP_TX, HP_RX);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
444 }
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
445
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
446 printf("!! RST !! (gstate=%d, state=%d)\r\n",
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
447 hp->gstate(), hp->state());
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
448 //printf("Value is ... %X\n", hp->search());
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
449 hp->startup();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
450 }
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
451 }
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
452
4
219766126afb another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents: 3
diff changeset
453 void copy_to_lcd(void) {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
454 //uint8_t mask=1;
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
455
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
456 while(1) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
457 pulse(0, true);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
458 if ((splashscreen == false) && (must_refresh)) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
459 must_refresh = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
460 //Thread::wait(20); // give a bit of time for some more cmds
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
461 dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
462 }
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
463
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
464 /*
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
465 if (must_refresh & mask) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
466 for(uint8_t i=0; i<sizeof(zones)/sizeof(zones[0]); i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
467 if (zones[i].flag == mask) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
468 dsp->copy_to_lcd(zones[i].x0/4, (zones[i].x1+3)/4,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
469 zones[i].y0, zones[i].y1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
470 must_refresh &= ~mask;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
471 break;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
472 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
473 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
474 mask = mask << 1;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
475 if (mask == 0) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
476 mask = 1;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
477 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
478 */
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
479 pulse(0, false);
26
86f099bda525 Several stuff
David Douard <david.douard@sdfa3.org>
parents: 23
diff changeset
480
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
481 ThisThread::sleep_for(30);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
482 }
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
483 }
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
484
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
485 void show(uint8_t cmd, const char *intxt, uint8_t nchar=0)
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
486 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
487 uint8_t i;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
488 // uint8_t len;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
489 uint16_t bgcolor, fgcolor;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
490 char *oldv;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
491 // char *txt;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
492 char *txtp;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
493 static char txt[256];
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
494
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
495
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
496 if (cmd == 0xFF) // cls
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
497 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
498 dsp->clrbuff();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
499 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
500 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
501 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
502 //txt = (char *)malloc(strlen(intxt)+1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
503 strcpy(txt, intxt);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
504 txtp = txt;
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
505
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
506 pulse(1, true);
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
507
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
508 // len = MAX_BUFF;
22
2f51221af82d more stuff
David Douard <david.douard@logilab.fr>
parents: 21
diff changeset
509
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
510 for (i=0; i<sizeof(table)/sizeof(table[0]); ++i) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
511 if (table[i].cmd == cmd) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
512 bgcolor = table[i].bgcolor;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
513 fgcolor = table[i].color;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
514 dsp->background(bgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
515 dsp->foreground(fgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
516 dsp->set_font((unsigned char*) table[i].font);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
517 oldv = table[i].buffer;
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
518
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
519 dsp->locate(table[i].x0, table[i].y0);
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
520
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
521 if (table[i].fmt & 0x01) // ASCII text
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
522 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
523 if (strncmp(oldv, txt, table[i].maxsize) != 0)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
524 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
525 if (table[i].width > 0)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
526 dsp->fillrect(table[i].x0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
527 table[i].y0,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
528 table[i].x0 + table[i].width,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
529 table[i].y0 + table[i].font[2],
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
530 bgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
531 for (uint8_t k=0; ;k++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
532 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
533 if (txtp[k] == 0x00)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
534 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
535 dsp->printf(txtp);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
536 break;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
537 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
538 if (txtp[k] == 0x09)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
539 { // \t is a special char for 'unselected' display value
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
540 txtp[k] = 0x00;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
541 dsp->printf(txtp);
5
f1c85c2500f2 several improvements
David Douard <david.douard@logilab.fr>
parents: 4
diff changeset
542
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
543 if (fgcolor == table[i].color)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
544 fgcolor /= 2;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
545 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
546 fgcolor = table[i].color;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
547 dsp->foreground(fgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
548 txtp = &(txtp[k+1]);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
549 k = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
550 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
551 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
552 if (cmd == 0x00) // main area
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
553 must_refresh |= 0x01;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
554 if (cmd == 0x0C) // channels area
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
555 must_refresh |= 0x04;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
556 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
557 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
558 /*
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
559 if (table[i].fmt & 0x02 ) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
560 // hex
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
561 for (uint8_t j=0;; j++) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
562 if (txt[j] == 0x00)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
563 break;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
564 dsp->printf("%02X ", txt[j]);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
565 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
566 for (uint8_t j=3*strlen(txt); j<table[i].maxsize; j++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
567 dsp->printf(" ");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
568 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
569 */
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
570 if (table[i].fmt & 0x08 ) // flag indicators
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
571 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
572 // flags
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
573 for (uint8_t j=0; j<max(nchar, table[i].maxsize) ; j++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
574 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
575 for (uint8_t k=0; k<8; k++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
576 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
577 if (1)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
578 { //(txt[j] & (1 << k) ) != (oldv[j] & (1 << k))) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
579 for (uint8_t l=0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
580 l<(sizeof(flags)/sizeof(flags[0])); ++l)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
581 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
582 if (flags[l].flag == ((j<<4) + k)) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
583 if (txtp[j] & (1 << k))
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
584 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
585 dsp->foreground(flags[l].reverse ? bgcolor : fgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
586 dsp->background(flags[l].reverse ? fgcolor : bgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
587 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
588 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
589 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
590 dsp->foreground(bgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
591 dsp->background(bgcolor);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
592 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
593 if (flags[l].msg != NULL)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
594 { // a string
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
595 dsp->locate(flags[l].x, flags[l].y);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
596 dsp->printf(flags[l].msg);}
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
597 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
598 { // an icon
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
599 Bitmap_s pic = {9, 10, 2, (char*) flags[l].icon};
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
600 dsp->Bitmap_BW(pic, flags[l].x, flags[l].y);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
601 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
602 must_refresh = 1; //|= zones[m].flag;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
603 break;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
604 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
605 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
606 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
607 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
608 }
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
609
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
610 // draw frames (Alarm and Channel)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
611 for (uint8_t l=0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
612 l<(sizeof(frames)/sizeof(frames[0])); ++l)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
613 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
614 uint16_t color;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
615 if (frames[l].flag & txt[0]) // frame flags are on the 1st byte only
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
616 color = fgcolor/6;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
617 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
618 color = bgcolor;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
619 dsp->hline(frames[l].x0+1, frames[l].x0+3, frames[l].y0, color);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
620 dsp->hline(frames[l].x1-3, frames[l].x1-1, frames[l].y0, color);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
621 dsp->hline(frames[l].x0+1, frames[l].x1-1, frames[l].y1, color);
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
622
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
623 dsp->vline(frames[l].x0, frames[l].y0+1, frames[l].y1-1, color);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
624 dsp->vline(frames[l].x1, frames[l].y0+1, frames[l].y1-1, color);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
625 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
626 }
23
daf26b083899 Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents: 22
diff changeset
627
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
628 for(uint8_t j=0; j<table[i].maxsize; j++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
629 oldv[j] = txt[j];
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
630 break;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
631 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
632 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
633 //free(txt);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
634 //dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
635 pulse(1, false);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
636 }
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
637 }
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
638
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
639 void test_dsp()
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
640 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
641 const FRAME *z;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
642 printf("TEST DSP\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
643 dsp->cls();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
644 printf("TEST DSP #2\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
645 show(0x00, "8g8g8g8g8g8g8", 13); // main dsp
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
646 show(0x0C, "888", 3); // channel dsp
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
647 show(0x0A, "\xFF\xFF\xFF\xFF", 4); // all flags
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
648 dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
649 ThisThread::sleep_for(3);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
650 dsp->cls();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
651 printf("TEST DSP #3\r\n");
7
5cf4034ba4e0 attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents: 5
diff changeset
652
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
653 for (uint8_t i=0; i<(sizeof(zones)/sizeof(zones[0])); i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
654 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
655 z = &zones[i];
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
656 dsp->fillrect(z->x0, z->y0, z->x1, z->y1, 4+i);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
657 dsp->locate(z->x0+1, z->y0+1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
658 dsp->printf("%d", i);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
659 }
8
55021f3f1929 pff so many stuff
David Douard <david.douard@logilab.fr>
parents: 7
diff changeset
660
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
661 /*
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
662 for (uint8_t i=0; i<(sizeof(zones)/sizeof(zones[0])); i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
663 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
664 z = &zones[i];
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
665 printf("Zone %d [%x]: %d, %d, %d, %d\n", i, z->flag,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
666 z->x0, z->y0, z->x1, z->y1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
667 must_refresh = z->flag;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
668 wait(1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
669 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
670 printf("Done\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
671 wait(2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
672 printf("Copy ALL\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
673 dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
674 */
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
675 ThisThread::sleep_for(2);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
676 dsp->cls();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
677 printf("TEST DSP DONE\r\n");
3
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
678 }
a3233abe730e beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents: 2
diff changeset
679
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
680
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
681 void loop()
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
682 { // run over and over
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
683 keycode_t key;
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
684
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
685 unsigned int err[8];
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
686 for (uint8_t i=0; i<8; i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
687 err[i] = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
688 int p, pp; // rot encoder pulse counters
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
689 p = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
690 pp = 0;
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
691
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
692 while(1) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
693 p = qenc.getPulses();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
694 if (p != pp)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
695 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
696 dsp->locate(0, 0);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
697 dsp->printf("Pulses = %d ", p);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
698 dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
699 pp = p;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
700 }
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
701
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
702 if (knob != 0)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
703 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
704 if (hp != NULL)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
705 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
706 printf("Sending keycode %X\r\n", knob);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
707 hp->sendkey(knob);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
708 printf(" DONE\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
709 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
710 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
711 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
712 dsp->locate(70, 0);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
713 dsp->printf("Knob = %X ", knob);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
714 dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
715 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
716 knob = 0;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
717 }
34
94ab7ff42a1b Add a key mapping table (protocol value vs. raw keycode) and send it
David Douard <david.douard@sdf3.org>
parents: 32
diff changeset
718
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
719 if (!key_buf.empty()) //cur_keycode.keyevent != KEY_NONE)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
720 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
721 key_buf.pop(key);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
722 printf("Keycode %dx%d: %s\r\n",
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
723 key.row, key.col, key.keyevent==KEY_PRESSED?"pressed":"released");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
724 if (hp != NULL) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
725 uint8_t keycode = kp_mapping[key.row][key.col];
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
726 if (key.keyevent == KEY_RELEASED)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
727 keycode |= 0x40; // bit 6: key relased
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
728 if (shift)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
729 keycode |= 0x20; // bit 5: key shifted
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
730
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
731 hp->sendkey(kp_mapping[key.row][key.col]);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
732 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
733 else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
734 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
735 dsp->locate(140, 0);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
736 dsp->printf("KC: %dx%d[0x%s%X] %s",
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
737 key.row, key.col,
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
738 kp_mapping[key.row][key.col] <= 0x0F ? "0" : "",
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
739 kp_mapping[key.row][key.col],
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
740 key.keyevent==KEY_PRESSED ? "PRE" : "REL");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
741 dsp->copy_to_lcd();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
742 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
743 // cur_keycode.keyevent = KEY_NONE;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
744 }
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
745
21
David Douard <david.douard@logilab.fr>
parents: 19
diff changeset
746
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
747 if ((hp != NULL) && (hp->cmd_available()))
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
748 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
749 HPSerial::CMD cmd;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
750 if (hp->pop(cmd))
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
751 {
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
752 #if defined(HAS_LED)
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
753 led = 1;
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
754 #endif
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
755 for (uint8_t i=0; i<7; i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
756 if (hp->nerrors(i) > err[i]) {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
757 printf("ERR: %d/%d/%d/%d/%d/%d/%d\r\n",
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
758 hp->nerrors(0),
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
759 hp->nerrors(1),
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
760 hp->nerrors(2),
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
761 hp->nerrors(3),
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
762 hp->nerrors(4),
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
763 hp->nerrors(5),
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
764 hp->nerrors(6)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
765 );
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
766 break;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
767 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
768 for (uint8_t i=0; i<7; i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
769 err[i] = hp->nerrors(i);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
770
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
771 printf("CMD[%d] %02X", (int)cmd.id, cmd.cmd);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
772
36
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
773 // 0x00: main display
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
774 // 0x0C: channel display
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
775 if ((cmd.cmd == 0x00) || (cmd.cmd == 0x0C))
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
776 printf(": '%s'\r\n", cmd.value);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
777 else {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
778 printf(":");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
779 for (uint8_t i=0; i<cmd.size; i++)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
780 printf("%02x ", cmd.value[i]);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
781 printf("\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
782 }
36
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
783
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
784 if (cmd.cmd == 0x01) {
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
785 // clear a flag
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
786 if (cmd.value[0] == 0x0E) {
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
787 // clear the Shift flag
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
788 shift = false;
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
789 }
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
790 } else if (cmd.cmd == 0x86) {
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
791 // shutdown
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
792 // TODO
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
793 } else {
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
794 // display related commands
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
795 show(cmd.cmd, cmd.value, cmd.size);
a6c7292742a0 Add support for the shift flag
David Douard <david.douard@sdf3.org>
parents: 35
diff changeset
796 }
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
797 #if defined(HAS_LED)
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
798 led = 0;
32
bc1d6ecbb0cc Update the main code: extract headers and use a CircularBuffer for key events
David Douard <david.douard@sdf3.org>
parents: 28
diff changeset
799 #endif
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
800 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
801 }
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
802 //else
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
803 ThisThread::sleep_for(1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
804 }
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
805 }
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
806
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
807 void qei_cb(int dir)
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
808 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
809 if(dir == 1) // turn right
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
810 knob = 0x80;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
811 else // turn left
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
812 knob = 0x81; // 83?
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
813 }
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
814
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
815 void kp_cb(uint8_t row, uint8_t col)
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
816 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
817 keycode_t key;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
818 key.row = row;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
819 key.col = col;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
820 key.keyevent = KEY_PRESSED;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
821 if(!key_buf.full())
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
822 key_buf.push(key);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
823 }
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
824
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
825 void kr_cb(uint8_t row, uint8_t col)
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
826 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
827 keycode_t key;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
828 key.row = row;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
829 key.col = col;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
830 key.keyevent = KEY_RELEASED;
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
831 if(!key_buf.full())
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
832 key_buf.push(key);
19
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
833 }
a52d60613cf7 Stuff...
David Douard <david.douard@logilab.fr>
parents: 18
diff changeset
834
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
835 int main()
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
836 {
35
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
837 setup();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
838 printf("Main loop (noop)\r\n");
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
839 while(1)
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
840 {
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
841 timeout_h();
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
842 ThisThread::sleep_for(1);
b2dca6b935bb Indent src/main.cpp with 2-ws
David Douard <david.douard@sdf3.org>
parents: 34
diff changeset
843 }
1
3021fc79cc3b kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff changeset
844 }

mercurial