136 lines
3.6 KiB
C++
136 lines
3.6 KiB
C++
// 1-channel LoRa Gateway for ESP8266 and ESP32
|
|
// Copyright (c) 2016-2020 Maarten Westenberg version for ESP8266
|
|
//
|
|
// based on work done by Thomas Telkamp for Raspberry PI 1ch gateway
|
|
// and many others.
|
|
//
|
|
// All rights reserved. This program and the accompanying materials
|
|
// are made available under the terms of the MIT License
|
|
// which accompanies this distribution, and is available at
|
|
// https://opensource.org/licenses/mit-license.php
|
|
//
|
|
// NO WARRANTY OF ANY KIND IS PROVIDED
|
|
//
|
|
// Author: Maarten Westenberg (mw12554@hotmail.com)
|
|
//
|
|
// This file contains the state machine code enabling to receive
|
|
// and transmit packages/messages.
|
|
// ========================================================================================
|
|
//
|
|
|
|
|
|
|
|
|
|
// --------------------------------------------------------------------
|
|
// Initilize the Oled functions.
|
|
// This function will init the Oled screen. Depending on the
|
|
// availability of the reset button it will reset the display first.
|
|
// --------------------------------------------------------------------
|
|
void init_oLED()
|
|
{
|
|
#if _OLED>=1
|
|
#if defined OLED_RST
|
|
pinMode(OLED_RST,OUTPUT);
|
|
digitalWrite(OLED_RST, LOW); // low to reset Oled
|
|
delay(100);
|
|
digitalWrite(OLED_RST, HIGH); // must be high to turn on Oled
|
|
delay(50);
|
|
#else
|
|
//
|
|
#endif
|
|
// Initialising the UI will init the display too.
|
|
display.init();
|
|
delay(100);
|
|
|
|
display.flipScreenVertically();
|
|
display.setFont(ArialMT_Plain_24);
|
|
display.setTextAlignment(TEXT_ALIGN_LEFT);
|
|
display.drawString(0, 24, "STARTING");
|
|
display.display();
|
|
#endif
|
|
}
|
|
|
|
// --------------------------------------------------------------------
|
|
// Activate the Oled. Always print the same info.
|
|
// These are 4 fields:
|
|
// SSID, IP, ID,
|
|
//
|
|
// --------------------------------------------------------------------
|
|
void acti_oLED()
|
|
{
|
|
#if _OLED>=1
|
|
// Initialising the UI will init the display too.
|
|
display.clear();
|
|
|
|
# if _OLED==1
|
|
display.setFont(ArialMT_Plain_16);
|
|
display.drawString(0, 0, "READY, SSID=");
|
|
display.drawString(0, 16, WiFi.SSID());
|
|
display.drawString(0, 32, "IP=");
|
|
display.drawString(0, 48, WiFi.localIP().toString().c_str() );
|
|
# elif _OLED==2
|
|
display.setFont(ArialMT_Plain_16);
|
|
display.drawString(0, 0, "READY, SSID=");
|
|
display.drawString(0, 16, WiFi.SSID());
|
|
display.drawString(0, 32, "IP=");
|
|
display.drawString(0, 48, WiFi.localIP().toString().c_str() );
|
|
# endif
|
|
|
|
display.display();
|
|
|
|
#endif // _OLED
|
|
delay(4000);
|
|
}
|
|
|
|
// --------------------------------------------------------------------
|
|
// Print a message on the Oled.
|
|
// Note: The whole message must fit in the buffer
|
|
//
|
|
// --------------------------------------------------------------------
|
|
void msg_oLED(String mesg)
|
|
{
|
|
#if _OLED>=1
|
|
display.clear();
|
|
|
|
display.flipScreenVertically();
|
|
display.setFont(ArialMT_Plain_24);
|
|
display.setTextAlignment(TEXT_ALIGN_LEFT);
|
|
display.drawString(0, 24, String(mesg));
|
|
|
|
display.display();
|
|
yield();
|
|
#endif // _OLED
|
|
}
|
|
|
|
// Print a larger Oled message consisting of two strings
|
|
|
|
void msg_lLED(String mesg, String mesg2)
|
|
{
|
|
#if _OLED>=1
|
|
display.clear();
|
|
|
|
display.flipScreenVertically();
|
|
display.setFont(ArialMT_Plain_16);
|
|
display.setTextAlignment(TEXT_ALIGN_LEFT);
|
|
display.drawString(0, 8, String(mesg));
|
|
display.drawString(0, 36, String(mesg2));
|
|
|
|
display.display();
|
|
yield();
|
|
#endif // _OLED
|
|
}
|
|
|
|
// --------------------------------------------------------------------
|
|
// Print the Oled address in use
|
|
//
|
|
// --------------------------------------------------------------------
|
|
void addr_oLED()
|
|
{
|
|
#if _OLED>=1
|
|
#if _DUSB>=1
|
|
Serial.print(F("OLED_ADDR=0x"));
|
|
Serial.println(OLED_ADDR, HEX);
|
|
#endif //_DUSB
|
|
#endif
|
|
}
|