new display mask
This commit is contained in:
parent
4a686bc267
commit
c30ee996be
137
src/display.cpp
137
src/display.cpp
@ -4,23 +4,31 @@
|
|||||||
|
|
||||||
Display-Mask (128 x 64 pixel):
|
Display-Mask (128 x 64 pixel):
|
||||||
|
|
||||||
| 111111
|
| | |
|
||||||
|0123456789012345
|
| 11111111112
|
||||||
------------------
|
|012345678901234567890 Font
|
||||||
0|PAX:aabbccddee
|
----------------------- ---------
|
||||||
1|PAX:aabbccddee
|
0|PAX:aabbccdd STRETCHED
|
||||||
2|B:a.bcV Sats:ab
|
1|PAX:aabbccdd STRETCHED
|
||||||
3|BLTH:abcde SFab
|
2|
|
||||||
4|WIFI:abcde ch:ab
|
3|B:a.bcV Sats:ab ch:ab SMALL
|
||||||
5|RLIM:abcd abcdKB
|
4|WIFI:abcde BLTH:abcde SMALL
|
||||||
6|20:27:00* 27.Feb
|
5|RLIM:abcd Mem:abcdKB SMALL
|
||||||
7|yyyyyyyyyyyyyyab
|
6|27.Feb 2019 20:27:00* SMALL
|
||||||
|
7|yyyyyyyyyyyyyyyy SFab SMALL
|
||||||
|
|
||||||
line 6: * = char {L|G|R|?} indicates time source,
|
* = char {L|G|R|?} indicates time source,
|
||||||
inverse = clock controller is active,
|
inverse = clock controller is active,
|
||||||
pulsed = pps input signal is active
|
pulsed = pps input signal is active
|
||||||
|
|
||||||
line 7: y = LMIC event message; ab = payload queue length
|
y = LMIC event message; ab = payload queue length
|
||||||
|
|
||||||
|
FONTS in ss_oled.cpp:
|
||||||
|
|
||||||
|
FONT_SMALL: 6px = 21 chars / line
|
||||||
|
FONT_NORMAL: 8px = 16 chars / line
|
||||||
|
FONT_STRETCHED: 8 chars / line
|
||||||
|
FONT_LARGE: 8 chars / line
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -134,7 +142,7 @@ void draw_page(time_t t, uint8_t page) {
|
|||||||
static bool wasnofix = true;
|
static bool wasnofix = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// update counter (lines 0-1)
|
// line 1/2: pax counter
|
||||||
dp_printf(0, 0, FONT_STRETCHED, 0, "PAX:%-4d",
|
dp_printf(0, 0, FONT_STRETCHED, 0, "PAX:%-4d",
|
||||||
(int)macs.size()); // display number of unique macs total Wifi + BLE
|
(int)macs.size()); // display number of unique macs total Wifi + BLE
|
||||||
|
|
||||||
@ -147,82 +155,75 @@ void draw_page(time_t t, uint8_t page) {
|
|||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
|
|
||||||
// update Battery status (line 2)
|
// line 3: wifi + bluetooth counters
|
||||||
#if (defined BAT_MEASURE_ADC || defined HAS_PMU)
|
dp_printf(0, 3, FONT_SMALL, 0, "WIFI:%-5d", macs_wifi);
|
||||||
if (batt_voltage == 0xffff)
|
|
||||||
dp_printf(0, 2, 0, 0, "%s", "B:USB ");
|
|
||||||
else
|
|
||||||
dp_printf(0, 2, 0, 0, "B:%.2fV", batt_voltage / 1000.0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// update GPS status (line 2)
|
|
||||||
#if (HAS_GPS)
|
|
||||||
if (gps.location.age() < 1500) // if no fix then display Sats value inverse
|
|
||||||
dp_printf(72, 2, 0, 0, "Sats:%.2d", gps.satellites.value());
|
|
||||||
else
|
|
||||||
dp_printf(72, 2, 0, 1, "Sats:%.2d", gps.satellites.value());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// update bluetooth counter + LoRa SF (line 3)
|
|
||||||
#if (BLECOUNTER)
|
#if (BLECOUNTER)
|
||||||
if (cfg.blescan)
|
if (cfg.blescan)
|
||||||
dp_printf(0, 3, 0, 0, "BLTH:%-5d", macs_ble);
|
dp_printf(66, 3, FONT_SMALL, 0, "BLTH:%-5d", macs_ble);
|
||||||
else
|
else
|
||||||
dp_printf(0, 3, 0, 0, "%s", "BLTH:off");
|
dp_printf(66, 3, FONT_SMALL, 0, "%s", "BLTH:off");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (HAS_LORA)
|
// line 4: Battery + GPS status + Wifi channel
|
||||||
if (cfg.adrmode)
|
#if (defined BAT_MEASURE_ADC || defined HAS_PMU)
|
||||||
dp_printf(96, 3, 0, 0, "%-4s", getSfName(updr2rps(LMIC.datarate)));
|
if (batt_voltage == 0xffff)
|
||||||
else // if ADR=off then display SF value inverse
|
dp_printf(0, 4, FONT_SMALL, 0, "%s", "B:USB ");
|
||||||
dp_printf(96, 3, 0, 1, "%-4s", getSfName(updr2rps(LMIC.datarate)));
|
else
|
||||||
#endif // HAS_LORA
|
dp_printf(0, 4, FONT_SMALL, 0, "B:%.2fV", batt_voltage / 1000.0);
|
||||||
|
#endif
|
||||||
|
#if (HAS_GPS)
|
||||||
|
if (gps.location.age() < 1500) // if no fix then display Sats value inverse
|
||||||
|
dp_printf(48, 4, FONT_SMALL, 0, "Sats:%.2d", gps.satellites.value());
|
||||||
|
else
|
||||||
|
dp_printf(48, 4, FONT_SMALL, 1, "Sats:%.2d", gps.satellites.value());
|
||||||
|
#endif
|
||||||
|
dp_printf(96, 4, FONT_SMALL, 0, "ch:%02d", channel);
|
||||||
|
|
||||||
// line 4: update wifi counter + channel display
|
// line 5: RSSI limiter + free memory
|
||||||
dp_printf(0, 4, 0, 0, "WIFI:%-5d", macs_wifi);
|
dp_printf(0, 5, FONT_SMALL, 0, !cfg.rssilimit ? "RLIM:off " : "RLIM:%-4d",
|
||||||
dp_printf(88, 4, 0, 0, "ch:%02d", channel);
|
|
||||||
|
|
||||||
// line 5: update RSSI limiter status & free memory display
|
|
||||||
dp_printf(0, 5, 0, 0, !cfg.rssilimit ? "RLIM:off " : "RLIM:%-4d",
|
|
||||||
cfg.rssilimit);
|
cfg.rssilimit);
|
||||||
dp_printf(80, 5, 0, 0, "%4dKB", getFreeRAM() / 1024);
|
dp_printf(66, 5, FONT_SMALL, 0, "Mem:%4dKB", getFreeRAM() / 1024);
|
||||||
|
|
||||||
// line 6: update time-of-day or LoRa status display
|
// line 6: time + date
|
||||||
#if (TIME_SYNC_INTERVAL)
|
#if (TIME_SYNC_INTERVAL)
|
||||||
// we want a systime display instead LoRa status
|
|
||||||
timeState = TimePulseTick ? ' ' : timeSetSymbols[timeSource];
|
timeState = TimePulseTick ? ' ' : timeSetSymbols[timeSource];
|
||||||
TimePulseTick = false;
|
TimePulseTick = false;
|
||||||
|
|
||||||
|
dp_printf(0, 6, FONT_SMALL, 0, "%02d.%3s %4d", day(t), printmonth[month(t)],
|
||||||
|
year(t));
|
||||||
|
dp_printf(72, 6, FONT_SMALL, 0, "%02d:%02d:%02d", hour(t), minute(t),
|
||||||
|
second(t));
|
||||||
|
|
||||||
// display inverse timeState if clock controller is enabled
|
// display inverse timeState if clock controller is enabled
|
||||||
#if (defined HAS_DCF77) || (defined HAS_IF482)
|
#if (defined HAS_DCF77) || (defined HAS_IF482)
|
||||||
dp_printf(0, 6, 0, 0, "%02d:%02d:%02d", hour(t), minute(t), second(t));
|
dp_printf(120, 6, FONT_SMALL, 1, "%c", timeState);
|
||||||
dp_printf(56, 6, 0, 1, "%c", timeState);
|
|
||||||
#else
|
#else
|
||||||
dp_printf(0, 6, 0, 0, "%02d:%02d:%02d%c", hour(t), minute(t), second(t),
|
dp_printf(120, 6, FONT_SMALL, 0, "%c", timeState);
|
||||||
timeState);
|
#endif
|
||||||
#endif // HAS_DCF77 || HAS_IF482
|
|
||||||
if (timeSource != _unsynced)
|
|
||||||
dp_printf(72, 6, 0, 0, " %2d.%3s", day(t), printmonth[month(t)]);
|
|
||||||
|
|
||||||
#endif // TIME_SYNC_INTERVAL
|
#endif // TIME_SYNC_INTERVAL
|
||||||
|
|
||||||
|
// line 7: LORA network status
|
||||||
#if (HAS_LORA)
|
#if (HAS_LORA)
|
||||||
// line 7: update LMiC event display
|
// LMiC event display, display inverse if sendqueue not empty
|
||||||
dp_printf(0, 7, FONT_SMALL, 0, "%-14s", lmic_event_msg);
|
|
||||||
|
|
||||||
// update LoRa send queue display
|
|
||||||
msgWaiting = uxQueueMessagesWaiting(LoraSendQueue);
|
msgWaiting = uxQueueMessagesWaiting(LoraSendQueue);
|
||||||
if (msgWaiting) {
|
if (msgWaiting)
|
||||||
sprintf(buff, "%2d", msgWaiting);
|
dp_printf(0, 7, FONT_SMALL, 1, "%-17s", lmic_event_msg);
|
||||||
dp_printf(112, 7, FONT_SMALL, 0, "%-2s",
|
else
|
||||||
msgWaiting == SEND_QUEUE_SIZE ? "<>" : buff);
|
dp_printf(0, 7, FONT_SMALL, 0, "%-17s", lmic_event_msg);
|
||||||
} else
|
// LORA datarate, display inverse if ADR disabled
|
||||||
dp_printf(112, 7, FONT_SMALL, 0, " ");
|
if (cfg.adrmode)
|
||||||
|
dp_printf(108, 7, FONT_SMALL, 0, "%-4s",
|
||||||
|
getSfName(updr2rps(LMIC.datarate)));
|
||||||
|
else
|
||||||
|
dp_printf(108, 7, FONT_SMALL, 1, "%-4s",
|
||||||
|
getSfName(updr2rps(LMIC.datarate)));
|
||||||
#endif // HAS_LORA
|
#endif // HAS_LORA
|
||||||
|
|
||||||
break; // page0
|
break; // page0
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
dp_printf(0, 4, FONT_STRETCHED, 0, "%02d:%02d:%02d", hour(t), minute(t),
|
dp_printf(0, 4, FONT_LARGE, 0, "%02d:%02d:%02d", hour(t), minute(t),
|
||||||
second(t));
|
second(t));
|
||||||
break; // page1
|
break; // page1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user