Rev 16 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 16 | Rev 17 | ||
---|---|---|---|
Line 11... | Line 11... | ||
11 | #include "libOLED/displayDial.H" |
11 | #include "libOLED/displayDial.H" |
12 | #include <string.h> |
12 | #include <string.h> |
13 | 13 | ||
14 | static ap_math math; |
14 | static ap_math math; |
15 | 15 | ||
- | 16 | displayDial_t::displayDial_t(display_t &display, |
|
- | 17 | uint8_t x, uint8_t y, |
|
- | 18 | uint8_t siz, |
|
- | 19 | int16_t angle_low, |
|
16 | displayDial_t::displayDial_t(display_t &display, uint8_t x, uint8_t y, uint8_t siz, int16_t angle_low, int16_t angle_high) : m_display(display), |
20 | int16_t angle_high) : m_display(display), |
- | 21 | m_xo(x), m_yo(y), m_siz(siz), |
|
- | 22 | m_angleLow(angle_low), |
|
17 | m_xo(x), m_yo(y), m_siz(siz), m_angleLow(angle_low), m_angleRange(angle_high - angle_low), m_unitStr(nullptr) |
23 | m_angleRange(angle_high - angle_low), |
- | 24 | m_unitStr(nullptr), |
|
- | 25 | m_titleStr(nullptr) |
|
18 | { |
26 | { |
19 | } |
27 | } |
20 | 28 | ||
- | 29 | displayDial_t::displayDial_t(display_t &display, |
|
- | 30 | uint8_t x, uint8_t y, |
|
- | 31 | uint8_t siz, |
|
21 | displayDial_t::displayDial_t(display_t &display, uint8_t x, uint8_t y, uint8_t siz, uint16_t angle_) : m_display(display), m_xo(x), m_yo(y), m_siz(siz), m_angleLow(-angle_), m_angleRange(2 * angle_), m_unitStr(nullptr) |
32 | uint16_t angle_) : m_display(display), |
- | 33 | m_xo(x), m_yo(y), |
|
- | 34 | m_siz(siz), |
|
- | 35 | m_angleLow(-angle_), |
|
- | 36 | m_angleRange(2 * angle_), |
|
- | 37 | m_unitStr(nullptr), |
|
- | 38 | m_titleStr(nullptr) |
|
22 | { |
39 | { |
23 | } |
40 | } |
24 | 41 | ||
25 | /* position is integer from 0 to SINE_STEPS */ |
42 | /* position is integer from 0 to SINE_STEPS */ |
26 | void displayDial_t::draw_needle(int16_t position) |
43 | void displayDial_t::draw_needle(int16_t position) |
Line 101... | Line 118... | ||
101 | 118 | ||
102 | void displayDial_t::draw_value_items(int val, int dpCode, int width, int x, int y) |
119 | void displayDial_t::draw_value_items(int val, int dpCode, int width, int x, int y) |
103 | { |
120 | { |
104 | 121 | ||
105 | m_display.gotoxy(x, y); |
122 | m_display.gotoxy(x, y); |
106 | m_display.fontDigits(large_font, width, dpCode, val, WHITE); |
123 | m_display.fontDigits(medium_font, width, dpCode, val, WHITE); |
107 | m_display.gotoxy(x, y+16); |
124 | m_display.gotoxy(x, y + 16); |
108 | if (m_unitStr) |
125 | if (m_unitStr) |
109 | { |
126 | { |
110 | int l = strlen(m_unitStr); |
127 | int l = strlen(m_unitStr); |
111 | if (l > 4) |
128 | if (l > 4) |
112 | l = 4; |
129 | l = 4; |
Line 126... | Line 143... | ||
126 | 143 | ||
127 | void displayFullDial_t::draw_limits() |
144 | void displayFullDial_t::draw_limits() |
128 | { |
145 | { |
129 | m_display.fontSigDigits(small_font, 0, 56, 0, 10, m_low, WHITE); |
146 | m_display.fontSigDigits(small_font, 0, 56, 0, 10, m_low, WHITE); |
130 | m_display.fontSigDigits(small_font, 120, 56, 1, 10, m_high, WHITE); |
147 | m_display.fontSigDigits(small_font, 120, 56, 1, 10, m_high, WHITE); |
- | 148 | ||
- | 149 | if (m_titleStr) |
|
- | 150 | { |
|
- | 151 | int i = strlen(m_titleStr); |
|
- | 152 | m_display.gotoxy(64 - i * 5, 48); |
|
- | 153 | m_display.printString(large_font, m_titleStr, i, WHITE); |
|
- | 154 | } |
|
131 | } |
155 | } |
132 | 156 | ||
133 | void displayFullDial_t ::draw_value(int val, int dp) |
157 | void displayFullDial_t ::draw_value(int val, int dp, int digits) |
134 | { |
158 | { |
135 | draw_value_items(val, dp, 4, 30, 32); |
159 | draw_value_items(val, dp, digits, 30, 32); |
136 | } |
160 | } |
137 | 161 | ||
138 | //////////////////////////////////////////////////////////////////////////////// |
162 | //////////////////////////////////////////////////////////////////////////////// |
139 | displayLeftQuadrantDial_t::displayLeftQuadrantDial_t(display_t &display) : displayDial_t(display, 0, 60, 60, 90, 0){}; |
163 | displayLeftQuadrantDial_t::displayLeftQuadrantDial_t(display_t &display) : displayDial_t(display, 0, 60, 60, 90, 0){}; |
140 | 164 | ||
141 | void displayLeftQuadrantDial_t::draw_limits() |
165 | void displayLeftQuadrantDial_t::draw_limits() |
142 | { |
166 | { |
143 | m_display.fontSigDigits(small_font, 0, 10, false, display_t::NO_DECIMAL, m_high, WHITE); |
167 | m_display.fontSigDigits(small_font, 0, 10, false, display_t::NO_DECIMAL, m_high, WHITE); |
144 | m_display.fontSigDigits(small_font, 56, 56, true, display_t::NO_DECIMAL, m_low, WHITE); |
168 | m_display.fontSigDigits(small_font, 56, 56, true, display_t::NO_DECIMAL, m_low, WHITE); |
- | 169 | ||
- | 170 | if (m_titleStr) |
|
- | 171 | { |
|
- | 172 | int i = strlen(m_titleStr); |
|
- | 173 | m_display.gotoxy(64 - i * 5, 0); |
|
- | 174 | m_display.printString(large_font, m_titleStr, i, WHITE); |
|
- | 175 | } |
|
145 | } |
176 | } |
146 | 177 | ||
147 | void displayLeftQuadrantDial_t ::draw_value(int val, int dp) |
178 | void displayLeftQuadrantDial_t ::draw_value(int val, int dp, int digits) |
148 | { |
179 | { |
149 | draw_value_items(val, dp, 3, 0, 32); |
180 | draw_value_items(val, dp, digits, 0, 32); |
150 | } |
181 | } |
151 | 182 | ||
152 | //////////////////////////////////////////////////////////////////////////////// |
183 | //////////////////////////////////////////////////////////////////////////////// |
153 | displayRightQuadrantDial_t::displayRightQuadrantDial_t(display_t &display) : displayDial_t(display, 127, 60, 60, -90, 0){}; |
184 | displayRightQuadrantDial_t::displayRightQuadrantDial_t(display_t &display) : displayDial_t(display, 127, 60, 60, -90, 0){}; |
154 | 185 | ||
Line 156... | Line 187... | ||
156 | { |
187 | { |
157 | m_display.fontSigDigits(small_font, 128, 10, true, display_t::NO_DECIMAL, m_high, WHITE); |
188 | m_display.fontSigDigits(small_font, 128, 10, true, display_t::NO_DECIMAL, m_high, WHITE); |
158 | m_display.fontSigDigits(small_font, 128 - 56, 56, false, display_t::NO_DECIMAL, m_low, WHITE); |
189 | m_display.fontSigDigits(small_font, 128 - 56, 56, false, display_t::NO_DECIMAL, m_low, WHITE); |
159 | } |
190 | } |
160 | 191 | ||
161 | void displayRightQuadrantDial_t::draw_value(int val, int dp) |
192 | void displayRightQuadrantDial_t::draw_value(int val, int dp, int digits) |
162 | { |
193 | { |
163 | draw_value_items(val, dp, 3, 90, 32); |
194 | draw_value_items(val, dp, digits, 90, 32); |
164 | } |
195 | } |