new display mask

This commit is contained in:
Verkehrsrot 2019-09-27 17:37:16 +02:00
parent 4a686bc267
commit c30ee996be

View File

@ -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