auto page flip mode
This commit is contained in:
parent
5cb51b2ff0
commit
f960627910
@ -6,10 +6,10 @@
|
||||
|
||||
extern uint8_t DisplayIsOn, displaybuf[];
|
||||
|
||||
void refreshTheDisplay(bool nextPage = false, bool toggle_screencycle = false);
|
||||
void refreshTheDisplay(bool nextPage = false);
|
||||
void init_display(bool verbose = false);
|
||||
void shutdown_display(void);
|
||||
void draw_page(time_t t, bool nextpage, bool cyclescreen);
|
||||
void draw_page(time_t t, bool nextpage);
|
||||
void dp_printf(uint16_t x, uint16_t y, uint8_t font, uint8_t inv,
|
||||
const char *format, ...);
|
||||
void dp_printqr(uint16_t offset_x, uint16_t offset_y, const char *Message);
|
||||
|
@ -149,12 +149,9 @@ void init_display(bool verbose) {
|
||||
} // mutex
|
||||
} // init_display
|
||||
|
||||
void refreshTheDisplay(bool nextPage, bool toggle_screencycle) {
|
||||
void refreshTheDisplay(bool nextPage) {
|
||||
|
||||
static bool screencycle = false;
|
||||
|
||||
if (toggle_screencycle)
|
||||
screencycle = !screencycle;
|
||||
static uint32_t framecounter = 0;
|
||||
|
||||
// update histogram
|
||||
oledPlotCurve(macs.size(), false);
|
||||
@ -176,7 +173,15 @@ void refreshTheDisplay(bool nextPage, bool toggle_screencycle) {
|
||||
oledPower(cfg.screenon);
|
||||
}
|
||||
|
||||
draw_page(t, nextPage, screencycle);
|
||||
#ifndef HAS_BUTTON
|
||||
// auto flip page if we are in unattended mode
|
||||
if ((++framecounter) > (DISPLAYCYCLE * 1000 / DISPLAYREFRESH_MS)) {
|
||||
framecounter = 0;
|
||||
nextPage = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
draw_page(t, nextPage);
|
||||
oledDumpBuffer(displaybuf);
|
||||
|
||||
I2C_MUTEX_UNLOCK(); // release i2c bus access
|
||||
@ -196,11 +201,10 @@ void shutdown_display(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void draw_page(time_t t, bool nextpage, bool cyclescreen) {
|
||||
void draw_page(time_t t, bool nextpage) {
|
||||
|
||||
// write display content to display buffer
|
||||
// nextpage = true -> flip 1 page
|
||||
// cyclescreen = true -> page cycling mode
|
||||
|
||||
static uint8_t DisplayPage = 0;
|
||||
char timeState;
|
||||
@ -366,13 +370,12 @@ start:
|
||||
|
||||
// page 5: blank screen
|
||||
case 5:
|
||||
if (cyclescreen)
|
||||
DisplayPage++; // next page
|
||||
else // show blank page only if we are not in screencycle mode
|
||||
{
|
||||
oledFill(0, 1);
|
||||
break;
|
||||
}
|
||||
#ifdef HAS_BUTTON
|
||||
oledFill(0, 1);
|
||||
break;
|
||||
#else // don't show blank page if we are unattended
|
||||
DisplayPage++; // next page
|
||||
#endif
|
||||
|
||||
default:
|
||||
goto start; // start over
|
||||
|
@ -57,6 +57,7 @@
|
||||
#define RGBLUMINOSITY 30 // RGB LED luminosity [default = 30%]
|
||||
#define DISPLAYREFRESH_MS 40 // OLED refresh cycle in ms [default = 40] -> 1000/40 = 25 frames per second
|
||||
#define DISPLAYCONTRAST 80 // 0 .. 255, OLED display contrast [default = 80]
|
||||
#define DISPLAYCYCLE 3 // Auto page flip delay in sec [default = 2] for devices without button
|
||||
#define HOMECYCLE 30 // house keeping cycle in seconds [default = 30 secs]
|
||||
|
||||
// Settings for BME680 environmental sensor
|
||||
@ -76,7 +77,7 @@
|
||||
#define TIME_SYNC_INTERVAL_RETRY 10 // retry time sync after lost sync each .. minutes [default = 10], 0 means off
|
||||
#define TIME_SYNC_COMPILEDATE 0 // set to 1 to use compile date to initialize RTC after power outage [default = 0]
|
||||
#define TIME_SYNC_LORAWAN 0 // set to 1 to use LORA network as time source, 0 means off [default = 0]
|
||||
#define TIME_SYNC_LORASERVER 0 // set to 1 to use LORA timeserver as time source, 0 means off [default = 0]
|
||||
#define TIME_SYNC_LORASERVER 1 // set to 1 to use LORA timeserver as time source, 0 means off [default = 0]
|
||||
|
||||
// settings for syncing time with timeserver applications
|
||||
#define TIME_SYNC_SAMPLES 1 // number of time requests for averaging
|
||||
@ -93,7 +94,7 @@
|
||||
#define RCMDPORT 2 // remote commands
|
||||
#define STATUSPORT 2 // remote command results
|
||||
#define CONFIGPORT 3 // config query results
|
||||
#define GPSPORT 4 // gps - set to 1 to send combined GPS+COUNTERPORT payload
|
||||
#define GPSPORT 1 // gps - set to 1 to send combined GPS+COUNTERPORT payload
|
||||
#define BUTTONPORT 5 // button pressed signal
|
||||
#define BEACONPORT 6 // beacon alarms
|
||||
#define BMEPORT 7 // BME680 sensor
|
||||
|
Loading…
Reference in New Issue
Block a user