emelianov / modbus-esp8266

Most complete Modbus library for Arduino. A library that allows your Arduino board to communicate via Modbus protocol, acting as a master, slave or both. Supports network transport (Modbus TCP) and Serial line/RS-485 (Modbus RTU). Supports Modbus TCP Security for ESP8266/ESP32.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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