initial
This commit is contained in:
115
main/Ethernet.cpp
Normal file
115
main/Ethernet.cpp
Normal file
@ -0,0 +1,115 @@
|
||||
#include "Ethernet.hpp"
|
||||
|
||||
#include "ETH.h"
|
||||
#include "SPI.h"
|
||||
|
||||
#define ETH_PHY_TYPE ETH_PHY_W5500
|
||||
#define ETH_PHY_ADDR 1
|
||||
#define ETH_PHY_CS 8
|
||||
#define ETH_PHY_IRQ 3
|
||||
#define ETH_PHY_RST 5
|
||||
#define ETH_SPI_SCK 11
|
||||
#define ETH_SPI_MISO 10
|
||||
#define ETH_SPI_MOSI 9
|
||||
|
||||
static bool eth_connected = false;
|
||||
|
||||
EthernetHandler eth;
|
||||
|
||||
void onEvent(arduino_event_id_t event, arduino_event_info_t info) {
|
||||
switch (event) {
|
||||
case ARDUINO_EVENT_ETH_START:
|
||||
Serial.println("ETH Started");
|
||||
// set eth hostname here
|
||||
ETH.setHostname("esp32-eth0");
|
||||
break;
|
||||
case ARDUINO_EVENT_ETH_CONNECTED:
|
||||
Serial.println("ETH Connected");
|
||||
break;
|
||||
case ARDUINO_EVENT_ETH_GOT_IP:
|
||||
Serial.printf("ETH Got IP: '%s'\n", esp_netif_get_desc(info.got_ip.esp_netif));
|
||||
Serial.println(ETH);
|
||||
#if USE_TWO_ETH_PORTS
|
||||
Serial.println(ETH1);
|
||||
#endif
|
||||
eth_connected = true;
|
||||
break;
|
||||
case ARDUINO_EVENT_ETH_LOST_IP:
|
||||
Serial.println("ETH Lost IP");
|
||||
eth_connected = false;
|
||||
break;
|
||||
case ARDUINO_EVENT_ETH_DISCONNECTED:
|
||||
Serial.println("ETH Disconnected");
|
||||
eth_connected = false;
|
||||
break;
|
||||
case ARDUINO_EVENT_ETH_STOP:
|
||||
Serial.println("ETH Stopped");
|
||||
eth_connected = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void EthernetHandler::init() {
|
||||
// Initialization code here
|
||||
Network.onEvent(onEvent);
|
||||
|
||||
SPI.begin(ETH_SPI_SCK, ETH_SPI_MISO, ETH_SPI_MOSI);
|
||||
ETH.begin(ETH_PHY_TYPE, ETH_PHY_ADDR, ETH_PHY_CS, ETH_PHY_IRQ, ETH_PHY_RST, SPI);
|
||||
}
|
||||
|
||||
void EthernetHandler::begin() {
|
||||
// Code to start Ethernet communication
|
||||
}
|
||||
|
||||
void EthernetHandler::end() {
|
||||
// Code to end Ethernet communication
|
||||
}
|
||||
|
||||
String EthernetHandler::post(const String& url, const String& payload) {
|
||||
if (!eth_connected) {
|
||||
Serial.println("Ethernet not connected. Cannot perform POST request.");
|
||||
return "";
|
||||
}
|
||||
|
||||
HTTPClient http;
|
||||
http.begin(url);
|
||||
http.addHeader("Content-Type", "application/json");
|
||||
|
||||
int httpResponseCode = http.POST(payload);
|
||||
String response;
|
||||
if (httpResponseCode > 0) {
|
||||
response = http.getString();
|
||||
Serial.printf("POST Response code: %d\n", httpResponseCode);
|
||||
Serial.println("Response: " + response);
|
||||
} else {
|
||||
Serial.printf("Error on sending POST: %s\n", http.errorToString(httpResponseCode).c_str());
|
||||
}
|
||||
|
||||
http.end();
|
||||
return response;
|
||||
}
|
||||
|
||||
String EthernetHandler::get(const String& url) {
|
||||
if (!eth_connected) {
|
||||
Serial.println("Ethernet not connected. Cannot perform GET request.");
|
||||
return "";
|
||||
}
|
||||
|
||||
HTTPClient http;
|
||||
http.begin(url);
|
||||
|
||||
int httpResponseCode = http.GET();
|
||||
String response;
|
||||
if (httpResponseCode > 0) {
|
||||
response = http.getString();
|
||||
Serial.printf("GET Response code: %d\n", httpResponseCode);
|
||||
Serial.println("Response: " + response);
|
||||
} else {
|
||||
Serial.printf("Error on sending GET: %s\n", http.errorToString(httpResponseCode).c_str());
|
||||
}
|
||||
|
||||
http.end();
|
||||
return response;
|
||||
}
|
||||
Reference in New Issue
Block a user