diff options
author | 2019-05-11 17:22:11 +0300 | |
---|---|---|
committer | 2019-05-11 17:22:11 +0300 | |
commit | d51604d94e66d400376091aa2a735a238bb74f20 (patch) | |
tree | 5dd27fc0e6b764fedb316d2a47f3e2a19c44b529 /src/device | |
parent | 98a8d1c8dea0f43fb1f3fe3079c1bfb8b50d2f81 (diff) | |
download | usurpation-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/device')
-rw-r--r-- | src/device/main.ino | 19 | ||||
-rw-r--r-- | src/device/meson.build | 13 |
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() |