summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Gediminas Jakutis <gediminas@varciai.lt> 2019-05-11 17:22:11 +0300
committerGravatar Gediminas Jakutis <gediminas@varciai.lt> 2019-05-11 17:22:11 +0300
commitd51604d94e66d400376091aa2a735a238bb74f20 (patch)
tree5dd27fc0e6b764fedb316d2a47f3e2a19c44b529 /src
parent98a8d1c8dea0f43fb1f3fe3079c1bfb8b50d2f81 (diff)
downloadusurpation-d51604d94e66d400376091aa2a735a238bb74f20.tar.gz
usurpation-d51604d94e66d400376091aa2a735a238bb74f20.tar.bz2
usurpation-d51604d94e66d400376091aa2a735a238bb74f20.zip
device: fix screen code.
Make the screen code actually work... AND build, to begin with. Signed-off-by: Gediminas Jakutis <gediminas@varciai.lt>
Diffstat (limited to 'src')
-rw-r--r--src/device/main.ino19
-rw-r--r--src/device/meson.build13
2 files changed, 24 insertions, 8 deletions
diff --git a/src/device/main.ino b/src/device/main.ino
index b4a852c..7e1cd54 100644
--- a/src/device/main.ino
+++ b/src/device/main.ino
@@ -21,9 +21,10 @@
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
+#include <Wire.h>
#include <stdlib.h>
#include <stddef.h>
-#include "SSD1306Spi.h"
+#include "SSD1306Wire.h"
static char udppacketbuffer[32] = {0};
static char *udppacketcursor = NULL;
@@ -34,17 +35,16 @@ static const char clientmagic[] = "I love tea!";
static const int com_port = 6996;
IPAddress ip;
WiFiUDP Udp;
-SSD1306Brzo diplay(0x3c, 4, 5);
+SSD1306Wire display(0x3c, 4, 5, GEOMETRY_128_32);
+static void init_OLED(void);
unsigned int toggle_led(const int ip);
-static void discover_client(void);
static int wifi_connect(const char * const ssid, const char * const password, const char doblink, const int ledpin);
static void discover_client(const int port);
static void udp_init_packet(IPAddress ip, const int port);
static void udp_push(const void * const data, const size_t size);
static int udp_flush(void);
static void blink_led(const int pin, const int ontime, const int offtime);
-static void init_OLED(void);
void setup(void)
{
@@ -52,14 +52,16 @@ void setup(void)
extern const char * const password;
pinMode(internal_led, OUTPUT);
toggle_led(internal_led);
+ init_OLED();
+ display.fillCircle(32, 16, 12);
+ display.display();
wifi_connect(ssid, password, 1, internal_led);
Udp.begin(com_port);
- discover_client(com_port);
- display.fillCircle(32, 16, 12);
- wifi_connect("ssid", "password", 1, internal_led);
display.fillCircle(64, 16, 12);
- discover_client();
+ display.display();
+ discover_client(com_port);
display.fillCircle(92, 16, 12);
+ display.display();
}
/* the logic is a placeholder right now */
@@ -84,6 +86,7 @@ void loop(void)
static void init_OLED(void)
{
display.init();
+ display.flipScreenVertically();
/* Won't be useful until later on. */
/*
diff --git a/src/device/meson.build b/src/device/meson.build
index b3df933..9435895 100644
--- a/src/device/meson.build
+++ b/src/device/meson.build
@@ -1,6 +1,17 @@
fw_image = 'fw.bin'
decl = 'const char * const %s = "%s";\n'
+oledlibnames = ['SSD1306Wire.h', 'OLEDDisplay.h', 'OLEDDisplay.cpp', 'OLEDDisplayFonts.h']
if get_option('fwbuild')
+ libpath = get_option('oledlib')
+ assert((libpath != ''), 'path to oled lib is empty')
+
+ oledlib = []
+ foreach i : oledlibnames
+ oledlib += files(libpath + '/' + i)
+ endforeach
+
+ assert((oledlib != []), 'oled lib not found in the supplied lib directory')
+
espmake = find_program('espmake')
printf = find_program('printf')
cat = find_program('cat')
@@ -8,6 +19,8 @@ if get_option('fwbuild')
fw_filenames = ['main.ino']
fw_true_sources = files(fw_filenames)
+ fw_filenames += oledlibnames
+ fw_true_sources += oledlib
sourcedir = meson.current_source_dir()
builddir = meson.current_build_dir()