First stable compilation with ModbusRTU and ModbusTCP
This commit is contained in:
40
lib/modbus-esp8266/ModbusTCP.h
Normal file
40
lib/modbus-esp8266/ModbusTCP.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Modbus Library for Arduino
|
||||
ModbusTCP for ESP8266/ESP32
|
||||
Copyright (C) 2020 Alexander Emelianov (a.m.emelianov@gmail.com)
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#if defined(ESP8266)
|
||||
#include <ESP8266WiFi.h>
|
||||
#elif defined(ESP32)
|
||||
#include <WiFi.h>
|
||||
#endif
|
||||
|
||||
#include "ModbusAPI.h"
|
||||
#include "ModbusTCPTemplate.h"
|
||||
|
||||
class WiFiServerESPWrapper : public WiFiServer {
|
||||
public:
|
||||
WiFiServerESPWrapper(uint16_t port) : WiFiServer(port) {}
|
||||
inline WiFiClient accept() {
|
||||
return available();
|
||||
}
|
||||
};
|
||||
|
||||
class ModbusTCP : public ModbusAPI<ModbusTCPTemplate<WiFiServerESPWrapper, WiFiClient>> {
|
||||
#if defined(MODBUSIP_USE_DNS)
|
||||
private:
|
||||
static IPAddress resolver(const char *host) {
|
||||
IPAddress remote_addr;
|
||||
if (WiFi.hostByName(host, remote_addr))
|
||||
return remote_addr;
|
||||
return IPADDR_NONE;
|
||||
}
|
||||
|
||||
public:
|
||||
ModbusTCP() : ModbusAPI() {
|
||||
resolve = resolver;
|
||||
}
|
||||
#endif
|
||||
};
|
||||
Reference in New Issue
Block a user