class ModbusEthernet' has no member named 'server'; did you mean '_server'
proasnet opened this issue · comments
Dear @emelianov
I am testing example examples/TCP-Ethernet with ESP32 and W5500. I get this errors on compile.
/*
ModbusTCP for W5x00 Ethernet library
Basic Server code example
(c)2020 Alexander Emelianov (a.m.emelianov@gmail.com)
https://github.com/emelianov/modbus-esp8266
This code is licensed under the BSD New License. See LICENSE.txt for more info.
*/
#include <SPI.h>
#include <Ethernet.h> // Ethernet library v2 is required
#include <ModbusEthernet.h>
#define W5500_RST_PIN 13
#define VSPI_SCK 26
#define VSPI_MISO 25
#define VSPI_MOSI 33
#define W5500_CS 27
#define W5500_INT_PIN 4
// Enter a MAC address and IP address for your controller below.
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 0, 122); // The IP address will be dependent on your local network:
ModbusEthernet mb; // Declare ModbusTCP instance
void setup() {
Serial.begin(115200); // Open serial communications and wait for port to open
Ethernet.init(5); // SS pin
Ethernet.begin(mac, ip); // start the Ethernet connection
delay(1000); // give the Ethernet shield a second to initialize
mb.server(); // Act as Modbus TCP server
mb.addReg(HREG(100)); // Add Holding register #100
}
void loop() {
mb.task(); // Server Modbus TCP queries
delay(50);
}
Arduino: 1.8.19 (Windows 10), Vývojová deska: "uPesy ESP32 Wroom DevKit, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz, 921600, QIO, 80MHz, None, Disabled"
In file included from Z:\EKOKROK\11_TPV\01 ELEKTRO\05 Výrobné podklady Arduino Nextion a RPI\Riadiace jednotky\Arduino Basic Profi (Nové)\02_VÝVOJOVÁ_VERZE\testovací programy\modbustcp_server\modbustcp_server.ino:13:
C:\Users\j.jirutka\Documents\Arduino\libraries\Modbus-Ethernet\src/ModbusEthernet.h:23:20: error: cannot declare field 'ModbusEthernet::_server' to be of abstract type 'EthernetServer'
EthernetServer _server;
^~~~~~~
In file included from Z:\EKOKROK\11_TPV\01 ELEKTRO\05 Výrobné podklady Arduino Nextion a RPI\Riadiace jednotky\Arduino Basic Profi (Nové)\02_VÝVOJOVÁ_VERZE\testovací programy\modbustcp_server\modbustcp_server.ino:12:
C:\Users\j.jirutka\Documents\Arduino\libraries\Ethernet\src/Ethernet.h:254:7: note: because the following virtual functions are pure within 'EthernetServer':
class EthernetServer : public Server {
^~~~~~~~~~~~~~
In file included from C:\Users\j.jirutka\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.9\cores\esp32/Arduino.h:182,
from sketch\modbustcp_server.ino.cpp:1:
C:\Users\j.jirutka\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.9\cores\esp32/Server.h:28:18: note: 'virtual void Server::begin(uint16_t)'
virtual void begin(uint16_t port=0) =0;
^~~~~
Z:\EKOKROK\11_TPV\01 ELEKTRO\05 Výrobné podklady Arduino Nextion a RPI\Riadiace jednotky\Arduino Basic Profi (Nové)\02_VÝVOJOVÁ_VERZE\testovací programy\modbustcp_server\modbustcp_server.ino: In function 'void setup()':
modbustcp_server:35:6: error: 'class ModbusEthernet' has no member named 'server'; did you mean '_server'?
modbustcp_server:36:22: error: 'bool Modbus::addReg(TAddress, uint16_t, uint16_t)' is protected within this context
In file included from C:\Users\j.jirutka\Documents\Arduino\libraries\Modbus-Ethernet\src/ModbusEthernet.h:6,
from Z:\EKOKROK\11_TPV\01 ELEKTRO\05 Výrobné podklady Arduino Nextion a RPI\Riadiace jednotky\Arduino Basic Profi (Nové)\02_VÝVOJOVÁ_VERZE\testovací programy\modbustcp_server\modbustcp_server.ino:13:
C:\Users\j.jirutka\Documents\Arduino\libraries\modbus-esp8266\src/Modbus.h:227:14: note: declared protected here
bool addReg(TAddress address, uint16_t value = 0, uint16_t numregs = 1);
^~~~~~
Byly nalezené násobné knihovny "Modbus.h"
Použitý: C:\Users\j.jirutka\Documents\Arduino\libraries\modbus-esp8266
Nepoužitý: C:\Users\j.jirutka\Documents\Arduino\libraries\Modbus-Arduino
Byly nalezené násobné knihovny "WiFi.h"
Použitý: C:\Users\j.jirutka\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.9\libraries\WiFi
Nepoužitý: C:\Program Files (x86)\Arduino\libraries\WiFi
Nepoužitý: C:\Users\j.jirutka\Documents\Arduino\libraries\WiFiEspAT
Byly nalezené násobné knihovny "Ethernet.h"
Použitý: C:\Users\j.jirutka\Documents\Arduino\libraries\Ethernet
Nepoužitý: C:\Program Files (x86)\Arduino\libraries\Ethernet
exit status 1
'class ModbusEthernet' has no member named 'server'; did you mean '_server'?
Problem solved. Used another modbus libraries
Byly nalezené násobné knihovny "Modbus.h"
Použitý: C:\Users\j.jirutka\Documents\Arduino\libraries\modbus-esp8266
Nepoužitý: C:\Users\j.jirutka\Documents\Arduino\libraries\Modbus-Arduino
Closed