kopia lustrzana https://github.com/lora-aprs/LoRa_APRS_iGate
143 wiersze
3.2 KiB
C++
143 wiersze
3.2 KiB
C++
|
|
#include <Wire.h>
|
|
#include <Adafruit_GFX.h>
|
|
#include <Adafruit_SSD1306.h>
|
|
|
|
#include "BoardFinder.h"
|
|
#include "display.h"
|
|
#include "logger.h"
|
|
|
|
Adafruit_SSD1306 * display = 0;
|
|
TwoWire * wire = 0;
|
|
|
|
void setup_display(std::shared_ptr<BoardConfig> boardConfig)
|
|
{
|
|
if(display == 0)
|
|
{
|
|
wire = new TwoWire(0);
|
|
wire->begin(boardConfig->OledSda, boardConfig->OledScl);
|
|
if(boardConfig->OledReset > 0)
|
|
{
|
|
display = new Adafruit_SSD1306(128, 64, wire, boardConfig->OledReset);
|
|
logPrintlnI("with reset");
|
|
}
|
|
else
|
|
{
|
|
display = new Adafruit_SSD1306(128, 64, wire);
|
|
logPrintlnI("with NO reset");
|
|
}
|
|
}
|
|
if(!display->begin(SSD1306_SWITCHCAPVCC, boardConfig->OledAddr, false, false))
|
|
{
|
|
logPrintlnE("SSD1306 allocation failed");
|
|
while (1);
|
|
}
|
|
logPrintlnI("Display init done!");
|
|
}
|
|
|
|
void turn_off_display()
|
|
{
|
|
display->ssd1306_command(SSD1306_DISPLAYOFF);
|
|
}
|
|
|
|
void show_display(String header, int wait)
|
|
{
|
|
display->clearDisplay();
|
|
display->setTextColor(WHITE);
|
|
display->setTextSize(2);
|
|
display->setCursor(0,0);
|
|
display->println(header);
|
|
display->display();
|
|
delay(wait);
|
|
}
|
|
|
|
void show_display(String header, String line1, int wait)
|
|
{
|
|
display->clearDisplay();
|
|
display->setTextColor(WHITE);
|
|
display->setTextSize(2);
|
|
display->setCursor(0,0);
|
|
display->println(header);
|
|
display->setTextSize(1);
|
|
display->setCursor(0,16);
|
|
display->println(line1);
|
|
display->display();
|
|
delay(wait);
|
|
}
|
|
|
|
void show_display(String header, String line1, String line2, int wait)
|
|
{
|
|
display->clearDisplay();
|
|
display->setTextColor(WHITE);
|
|
display->setTextSize(2);
|
|
display->setCursor(0,0);
|
|
display->println(header);
|
|
display->setTextSize(1);
|
|
display->setCursor(0,16);
|
|
display->println(line1);
|
|
display->setCursor(0,26);
|
|
display->println(line2);
|
|
display->display();
|
|
delay(wait);
|
|
}
|
|
|
|
void show_display(String header, String line1, String line2, String line3, int wait)
|
|
{
|
|
display->clearDisplay();
|
|
display->setTextColor(WHITE);
|
|
display->setTextSize(2);
|
|
display->setCursor(0,0);
|
|
display->println(header);
|
|
display->setTextSize(1);
|
|
display->setCursor(0,16);
|
|
display->println(line1);
|
|
display->setCursor(0,26);
|
|
display->println(line2);
|
|
display->setCursor(0,36);
|
|
display->println(line3);
|
|
display->display();
|
|
delay(wait);
|
|
}
|
|
|
|
void show_display(String header, String line1, String line2, String line3, String line4, int wait)
|
|
{
|
|
display->clearDisplay();
|
|
display->setTextColor(WHITE);
|
|
display->setTextSize(2);
|
|
display->setCursor(0,0);
|
|
display->println(header);
|
|
display->setTextSize(1);
|
|
display->setCursor(0,16);
|
|
display->println(line1);
|
|
display->setCursor(0,26);
|
|
display->println(line2);
|
|
display->setCursor(0,36);
|
|
display->println(line3);
|
|
display->setCursor(0,46);
|
|
display->println(line4);
|
|
display->display();
|
|
delay(wait);
|
|
}
|
|
|
|
void show_display(String header, String line1, String line2, String line3, String line4, String line5, int wait)
|
|
{
|
|
display->clearDisplay();
|
|
display->setTextColor(WHITE);
|
|
display->setTextSize(2);
|
|
display->setCursor(0,0);
|
|
display->println(header);
|
|
display->setTextSize(1);
|
|
display->setCursor(0,16);
|
|
display->println(line1);
|
|
display->setCursor(0,26);
|
|
display->println(line2);
|
|
display->setCursor(0,36);
|
|
display->println(line3);
|
|
display->setCursor(0,46);
|
|
display->println(line4);
|
|
display->setCursor(0,56);
|
|
display->println(line5);
|
|
display->display();
|
|
delay(wait);
|
|
}
|