update
[mTask.git] / client / nodemcu / interface.cpp
1 #include <Arduino.h>
2 #include <ESP8266WiFi.h>
3 #include <stdbool.h>
4 #include <stdint.h>
5
6 #define SSID "ASUS_NDL"
7 #define WPA2KEY "RT-AC66U"
8 #define PORT 8123
9
10 extern "C" unsigned long getmillis(void);
11 extern "C" void pdie(char *, ...);
12 extern "C" void die(char *, ...);
13 extern "C" void debug(char *, ...);
14 extern "C" void real_setup(void);
15 extern "C" void write_byte(uint8_t);
16 extern "C" uint8_t read_byte(void);
17 extern "C" bool input_available(void);
18 extern "C" void msdelay(unsigned long);
19 extern "C" void reset(void);
20
21 WiFiServer server(PORT);
22 WiFiClient client;
23
24 unsigned long getmillis(void)
25 {
26 return millis();
27 }
28
29 void msdelay(unsigned long ms)
30 {
31 delay(ms);
32 }
33
34 bool input_available(void)
35 {
36 return client.available();
37 }
38
39 uint8_t read_byte(void)
40 {
41 return client.read();
42 }
43
44 void write_byte(uint8_t b)
45 {
46 client.write(b);
47 }
48
49 void real_setup(void)
50 {
51 Serial.begin(115200);
52 Serial.print("Connecting to ");
53 Serial.println(SSID);
54 WiFi.begin(SSID, WPA2KEY);
55 while (WiFi.status() != WL_CONNECTED) {
56 delay(500);
57 Serial.print(".");
58 }
59 Serial.println("");
60 Serial.println("WiFi connected");
61 Serial.println("IP address: ");
62 Serial.println(WiFi.localIP());
63 server.begin();
64 Serial.print("Server started on port: ");
65 Serial.println(PORT);
66
67 Serial.print("Waiting for a client to connect.");
68 while(true){
69 client = server.available();
70 if(client){
71 break;
72 }
73 }
74 Serial.print("Client connected: ");
75 Serial.println(client.connected());
76 Serial.println("");
77 }
78
79 void debug(char *fmt, ...)
80 {
81 Serial.print(fmt);
82 }
83
84 void die(char *fmt, ...)
85 {
86 Serial.print(fmt);
87 while(1){
88 msdelay(1000);
89 Serial.print("die");
90 }
91 }
92
93 void pdie(char *s)
94 {
95 die(s);
96 }
97
98 void reset(void)
99 {
100 Serial.end();
101 real_setup();
102 }