summaryrefslogtreecommitdiffstats
path: root/src/device/main.ino
diff options
context:
space:
mode:
authorGravatar Gediminas Jakutis <gediminas@varciai.lt> 2019-05-22 14:44:00 +0300
committerGravatar Gediminas Jakutis <gediminas@varciai.lt> 2019-05-22 14:44:00 +0300
commit3703a6f28d48ac3f2c28d07405fab17a2a402df4 (patch)
treea0e9308a834f75ef17e25c2a64f705ee824d2ffe /src/device/main.ino
parentd9aeb50a22f1a49663151a48c23c32797f983696 (diff)
downloadusurpation-3703a6f28d48ac3f2c28d07405fab17a2a402df4.tar.gz
usurpation-3703a6f28d48ac3f2c28d07405fab17a2a402df4.tar.bz2
usurpation-3703a6f28d48ac3f2c28d07405fab17a2a402df4.zip
device: actually make it all build and such.
Signed-off-by: Gediminas Jakutis <gediminas@varciai.lt>
Diffstat (limited to 'src/device/main.ino')
-rw-r--r--src/device/main.ino48
1 files changed, 10 insertions, 38 deletions
diff --git a/src/device/main.ino b/src/device/main.ino
index d4e092d..66e52e8 100644
--- a/src/device/main.ino
+++ b/src/device/main.ino
@@ -26,16 +26,14 @@
#include <stddef.h>
#include "SSD1306Wire.h"
#include "DejaVu_Sans_Mono_13.h"
-#include "udp.h"
+#include "device_network.h"
static const unsigned int internal_led = 2;
static unsigned int led_state = 0;
-static const char servermagic[] = "I love coffee!";
-static const char clientmagic[] = "I love tea!";
SSD1306Wire display(0x3c, 4, 5, GEOMETRY_128_32);
static void init_OLED(void);
-unsigned int toggle_led(const int ip);
+unsigned int toggle_led(const int pin);
static int wifi_connect(const char * const ssid, const char * const password, const char doblink, const int ledpin);
static void blink_led(const int pin, const int ontime, const int offtime);
@@ -50,7 +48,7 @@ void setup(void)
display.fillCircle(32, 16, 12);
display.display();
wifi_connect(ssid, password, 1, internal_led);
- Udp.begin(com_port);
+ udp_init(com_port);
display.fillCircle(64, 16, 12);
display.display();
discover_client(com_port);
@@ -65,25 +63,23 @@ void loop(void)
static const String daemonstr = "Daemon IP:";
static String prefix;
static IPAddress ip_to_print;
+ static IPAddress *daemon_ip = NULL;
static int print_dev_ip = 0;
static unsigned int delta = 2000; /* sleep length to use (ms) */
/* static int dot_idx = 0; */
delay(delta);
- udp_init_packet(ip, com_port);
+ udp_init_packet(com_port);
udp_push(clientmagic, sizeof(clientmagic));
udp_flush();
-#if 0
- if (dot_idx >= 2) {
- display.clear();
- dot_idx = 0;
+
+ if (!daemon_ip) {
+ daemon_ip = get_daemon_address();
}
- display.fillCircle(32 * (dot_idx + 1), 16, 12);
- dot_idx++;
-#endif
+
prefix = (print_dev_ip) ? devstr : daemonstr;
- ip_to_print = (print_dev_ip) ? WiFi.localIP() : ip;
+ ip_to_print = (print_dev_ip) ? WiFi.localIP() : *daemon_ip;
display.clear();
display.drawString(0, 0, prefix);
display.drawString(0, 16, ip_to_print.toString());
@@ -134,30 +130,6 @@ static int wifi_connect(const char * const ssid, const char * const password, co
return 0;
}
-static void discover_client(const int port)
-{
- IPAddress bcastip(255, 255, 255, 255);
- char buffer[32] = {0};
- size_t done = 0;
-
- do {
- udp_init_packet(bcastip, port);
- udp_push(servermagic, sizeof(servermagic));
- udp_flush();
- delay(5);
- while (Udp.parsePacket()) {
- if (Udp.available() >= sizeof(clientmagic)) {
- Udp.read(buffer, sizeof(clientmagic));
- if (!(strcmp(clientmagic, buffer))) {
- ip = Udp.remoteIP();
- ++done;
- }
- }
- }
- delay(95);
- } while (!done);
-}
-
static void blink_led(const int pin, const int ontime, const int offtime)
{
toggle_led(pin);