initial try with U8x8

This commit is contained in:
Pawel Spychalski
2018-05-18 12:55:20 +02:00
parent a83b1fc45b
commit 68aafd179d
2 changed files with 84 additions and 76 deletions

View File

@@ -1,15 +1,14 @@
#include "tx_oled.h" #include "tx_oled.h"
TxOled::TxOled(void) { TxOled::TxOled(void) {
Adafruit_SSD1306 _display(-1); U8X8_SSD1306_128X64_NONAME_HW_I2C _display(U8X8_PIN_NONE);
} }
void TxOled::init() { void TxOled::init() {
_display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32) _display.begin();
_display.setTextSize(1); _display.clear();
_display.setTextColor(WHITE); _display.setFont(u8x8_font_chroma48medium8_r);
_display.clearDisplay(); _display.drawString(0,0,"Hello World!");
_display.display();
} }
void TxOled::loop() { void TxOled::loop() {
@@ -78,107 +77,116 @@ void TxOled::page(uint8_t page) {
} }
void TxOled::renderPagePwr() { void TxOled::renderPagePwr() {
_display.clearDisplay(); // _display.clearDisplay();
_display.setTextColor(WHITE, BLACK); // _display.setTextColor(WHITE, BLACK);
_display.setCursor(0, 0); // _display.setCursor(0, 0);
_display.setTextSize(2); // _display.setTextSize(2);
_display.print("PWR"); // _display.print("PWR");
//TODO content // //TODO content
_display.setCursor(0, 25); // _display.setCursor(0, 25);
_display.setTextSize(3); // _display.setTextSize(3);
_display.print(radioNode.loraTxPower); // _display.print(radioNode.loraTxPower);
_display.print("dBm"); // _display.print("dBm");
_display.display(); // _display.display();
} }
void TxOled::renderPageBind() { void TxOled::renderPageBind() {
_display.clearDisplay(); // _display.clearDisplay();
_display.setTextColor(WHITE, BLACK); // _display.setTextColor(WHITE, BLACK);
_display.setCursor(0, 0); // _display.setCursor(0, 0);
_display.setTextSize(2); // _display.setTextSize(2);
_display.print("Bind"); // _display.print("Bind");
//TODO content // //TODO content
_display.display(); // _display.display();
} }
void TxOled::renderPageMode() { void TxOled::renderPageMode() {
_display.clearDisplay(); // _display.clearDisplay();
_display.setTextColor(WHITE, BLACK); // _display.setTextColor(WHITE, BLACK);
_display.setCursor(0, 0); // _display.setCursor(0, 0);
_display.setTextSize(2); // _display.setTextSize(2);
_display.print("Mode"); // _display.print("Mode");
_display.setCursor(0, 25); // _display.setCursor(0, 25);
_display.setTextSize(3); // _display.setTextSize(3);
_display.print("Full"); // _display.print("Full");
_display.display(); // _display.display();
} }
void TxOled::renderPageStats() { void TxOled::renderPageStats() {
_display.clearDisplay(); // _display.clearDisplay();
_display.setTextColor(WHITE, BLACK); // _display.setTextColor(WHITE, BLACK);
_display.setCursor(0, 0); // _display.setCursor(0, 0);
_display.setTextSize(3); // _display.setTextSize(3);
_display.print(radioNode.rssi); // _display.print(radioNode.rssi);
_display.setCursor(18, 28); // _display.setCursor(18, 28);
_display.setTextSize(2); // _display.setTextSize(2);
_display.print(radioNode.snr); // _display.print(radioNode.snr);
_display.setCursor(74, 0); // _display.setCursor(74, 0);
_display.setTextSize(3); // _display.setTextSize(3);
_display.print(rxDeviceState.rssi); // _display.print(rxDeviceState.rssi);
_display.setCursor(92, 28); // _display.setCursor(92, 28);
_display.setTextSize(2); // _display.setTextSize(2);
_display.print(rxDeviceState.snr); // _display.print(rxDeviceState.snr);
_display.setCursor(54, 48); // _display.setCursor(54, 48);
_display.setTextSize(2); // _display.setTextSize(2);
_display.print(txDeviceState.roundtrip); // _display.print(txDeviceState.roundtrip);
_display.display(); // _display.display();
} }
void TxOled::renderPageInit() { void TxOled::renderPageInit() {
_display.clearDisplay();
_display.setTextColor(WHITE, BLACK);
_display.setTextSize(2);
_display.setCursor(0, 0); _display.clear();
_display.print("Rdy ");
_display.print(radioNode.loraTxPower);
_display.print("dBm");
_display.setTextSize(1); char buf[128];
_display.setCursor(0, 32); snprintf(buf, "%s %d %s", "Rdy", radioNode.loraTxPower, "dBm");
_display.print("Bandwitdh: ");
_display.print(radioNode.loraBandwidth / 1000);
_display.print("kHz");
_display.setCursor(0, 42); _display.drawString(0, 0, buf);
_display.print("SF: ");
_display.print(radioNode.loraSpreadingFactor);
_display.setCursor(64, 42);
_display.print("CR: ");
_display.print(radioNode.loraCodingRate);
_display.setCursor(0, 52); // _display.clearDisplay();
_display.print("Rate: "); // _display.setTextColor(WHITE, BLACK);
_display.print(1000 / TX_TRANSMIT_SLOT_RATE); // _display.setTextSize(2);
_display.print("Hz");
_display.display(); // _display.setCursor(0, 0);
// _display.print("Rdy ");
// _display.print(radioNode.loraTxPower);
// _display.print("dBm");
// _display.setTextSize(1);
// _display.setCursor(0, 32);
// _display.print("Bandwitdh: ");
// _display.print(radioNode.loraBandwidth / 1000);
// _display.print("kHz");
// _display.setCursor(0, 42);
// _display.print("SF: ");
// _display.print(radioNode.loraSpreadingFactor);
// _display.setCursor(64, 42);
// _display.print("CR: ");
// _display.print(radioNode.loraCodingRate);
// _display.setCursor(0, 52);
// _display.print("Rate: ");
// _display.print(1000 / TX_TRANSMIT_SLOT_RATE);
// _display.print("Hz");
// _display.display();
} }

View File

@@ -3,8 +3,8 @@
#ifndef TX_OLED_H #ifndef TX_OLED_H
#define TX_OLED_H #define TX_OLED_H
#include <Adafruit_SSD1306.h>
#include "Wire.h" #include "Wire.h"
#include <U8x8lib.h>
#include "variables.h" #include "variables.h"
#include "tactile.h" #include "tactile.h"
#include "radio_node.h" #include "radio_node.h"
@@ -41,7 +41,7 @@ class TxOled {
void loop(); void loop();
void page(uint8_t page); void page(uint8_t page);
private: private:
Adafruit_SSD1306 _display; U8X8_SSD1306_128X64_NONAME_HW_I2C _display;
void renderPageInit(); void renderPageInit();
void renderPageStats(); void renderPageStats();
void renderPagePwr(); void renderPagePwr();