-
-
Save fracz/39cb3bfd427b83e750b9c79c54a91b69 to your computer and use it in GitHub Desktop.
SUPLA Ethernet boilerplate for Arduino IDE (place it next to your .ino project)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define wifiname "SSID" | |
#define wifipassword "password" | |
#include <srpc.h> | |
#include <log.h> | |
#include <eh.h> | |
#include <proto.h> | |
#include <IEEE754tools.h> | |
// We define our own ethernet layer | |
#define SUPLADEVICE_CPP | |
#include <SuplaDevice.h> | |
#include <lck.h> | |
#include <WiFiClient.h> | |
#include <ESP8266WiFiType.h> | |
#include <ESP8266WiFi.h> | |
#include <ESP8266WiFiScan.h> | |
#include <ESP8266WiFiMulti.h> | |
#include <WiFiServer.h> | |
#include <ESP8266WiFiGeneric.h> | |
#include <WiFiClientSecure.h> | |
#include <ESP8266WiFiAP.h> | |
#include <ESP8266WiFiSTA.h> | |
#include <WiFiUdp.h> | |
WiFiClient client; | |
int supla_arduino_tcp_read(void *buf, int count) { | |
_supla_int_t size = client.available(); | |
if ( size > 0 ) { | |
if ( size > count ) size = count; | |
return client.read((uint8_t *)buf, size); | |
}; | |
return -1; | |
}; | |
int supla_arduino_tcp_write(void *buf, int count) { | |
return client.write((const uint8_t *)buf, count); | |
}; | |
bool supla_arduino_svr_connect(const char *server, int port) { | |
return client.connect(server, 2015); | |
} | |
bool supla_arduino_svr_connected(void) { | |
return client.connected(); | |
} | |
void supla_arduino_svr_disconnect(void) { | |
client.stop(); | |
} | |
void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) { | |
Serial.println("WiFi init"); | |
WiFi.begin(wifiname, wifipassword); | |
while (WiFi.status() != WL_CONNECTED) { | |
delay(500); | |
// Serial.print("."); | |
} | |
Serial.print("\nlocalIP: "); | |
Serial.println(WiFi.localIP()); | |
Serial.print("subnetMask: "); | |
Serial.println(WiFi.subnetMask()); | |
Serial.print("gatewayIP: "); | |
Serial.println(WiFi.gatewayIP()); | |
} | |
SuplaDeviceCallbacks supla_arduino_get_callbacks(void) { | |
SuplaDeviceCallbacks cb; | |
cb.tcp_read = &supla_arduino_tcp_read; | |
cb.tcp_write = &supla_arduino_tcp_write; | |
cb.eth_setup = &supla_arduino_eth_setup; | |
cb.svr_connected = &supla_arduino_svr_connected; | |
cb.svr_connect = &supla_arduino_svr_connect; | |
cb.svr_disconnect = &supla_arduino_svr_disconnect; | |
cb.get_temperature = NULL; | |
cb.get_temperature_and_humidity = NULL; | |
cb.get_rgbw_value = NULL; | |
cb.set_rgbw_value = NULL; | |
return cb; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment