Hi everybody. I,m using Arduino IDE 2.0.4 software version (but i have tried with 1.8 with same results) and the ModbusIP ENC28J60 library, from Github. As soon as i complile any of the examples included in it, i get several errors. I have no idea what the problem is, i tried with different software version, to reinstall it, but nothing help. Has anybody faced this trouble? Could anybody give me a peace of advice?
Thanks in advance.
Compile errors:
error: 'class ModbusIP' has no member named 'addIreg'
error: 'class ModbusIP' has no member named 'Hreg'
error: 'class ModbusIP' has no member named 'addIsts'
Hi, here you have the complete output. I hope it will help. Thanks!
Using board 'uno' from platform in folder: C:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Detectando las librerías usadas...
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp" -o nul
Alternativas para EtherCard.h: [EtherCard@1.1.0]
ResolveLibrary(EtherCard.h)
-> Candidatos: [EtherCard@1.1.0]
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp" -o nul
Alternativas para Modbus.h: [Modbus@1.0.0]
ResolveLibrary(Modbus.h)
-> Candidatos: [Modbus@1.0.0]
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "-IC:\Users\danie\Documents\Arduino\libraries\Modbus\src" "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp" -o nul
Alternativas para ModbusIP_ENC28J60.h: [ModbusIP_ENC28J60-master]
ResolveLibrary(ModbusIP_ENC28J60.h)
-> Candidatos: [ModbusIP_ENC28J60-master]
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "-IC:\Users\danie\Documents\Arduino\libraries\Modbus\src" "-IC:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master" "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp" -o nul
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\EtherCard.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\bufferfiller.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\dhcp.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\dns.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\enc28j60.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\stash.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\tcpip.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\udpserver.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\EtherCard\src\webutil.cpp
Using cached library dependencies for file: C:\Users\danie\Documents\Arduino\libraries\Modbus\src\Modbus.cpp
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "-IC:\Users\danie\Documents\Arduino\libraries\Modbus\src" "-IC:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master" "C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp" -o nul
Generating function prototypes...
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "-IC:\Users\danie\Documents\Arduino\libraries\Modbus\src" "-IC:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master" "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp" -o "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Users\danie\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\preproc\ctags_target_for_gcc_minus_e.cpp"
Compilando el sketch...
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "-IC:\Users\danie\Documents\Arduino\libraries\Modbus\src" "-IC:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master" "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp" -o "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\sketch\Lamp.ino.cpp.o"
Compilando librerías...
Compilando librería "EtherCard"
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\EtherCard.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\enc28j60.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\tcpip.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\bufferfiller.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\webutil.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\dns.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\udpserver.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\stash.cpp.o
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\EtherCard\dhcp.cpp.o
Compilando librería "Modbus"
Utilizando archivo previamente compilado: C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\Modbus\Modbus.cpp.o
Compilando librería "ModbusIP_ENC28J60-master"
"C:\Users\danie\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\danie\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard" "-IC:\Users\danie\Documents\Arduino\libraries\EtherCard\src" "-IC:\Users\danie\Documents\Arduino\libraries\Modbus\src" "-IC:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master" "C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp" -o "C:\Users\danie\AppData\Local\Temp\arduino\sketches\15E75BCF042EF54084BC251F7287A62B\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp.o"
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp: In member function 'void ModbusIP::task()':
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:49:9: error: '_len' was not declared in this scope
_len = _MBAP[4] << 8 | _MBAP[5];
^~~~
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:49:9: note: suggested alternative: 'len'
_len = _MBAP[4] << 8 | _MBAP[5];
^~~~
len
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:54:9: error: '_frame' was not declared in this scope
_frame = (byte*) malloc(_len);
^~~~~~
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:54:9: note: suggested alternative: 'rename'
_frame = (byte*) malloc(_len);
^~~~~~
rename
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:61:15: error: 'class ModbusIP' has no member named 'receivePDU'
this->receivePDU(_frame);
^~~~~~~~~~
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:63:13: error: '_reply' was not declared in this scope
if (_reply != MB_REPLY_OFF) {
^~~~~~
C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master\ModbusIP_ENC28J60.cpp:63:23: error: 'MB_REPLY_OFF' was not declared in this scope
if (_reply != MB_REPLY_OFF) {
^~~~~~~~~~~~
Usando librería EtherCard con versión 1.1.0 en la carpeta: C:\Users\danie\Documents\Arduino\libraries\EtherCard
Usando librería Modbus con versión 1.0.0 en la carpeta: C:\Users\danie\Documents\Arduino\libraries\Modbus
Utilizando biblioteca ModbusIP_ENC28J60-master en carpeta: C:\Users\danie\Documents\Arduino\libraries\ModbusIP_ENC28J60-master (legado)
exit status 1
The library ModbusIP_ENC28J60 expects the Modbus library from the same Github repository as itself to be installed. You have some other library of that name installed (the IDE includes from this directory "C:\Users\danie\Documents\Arduino\libraries\Modbus\src" but the mentioned library in the repository doesn't have a src subdirectory). Install the correct library to make it compile.
After reading your answer, I've checked the librarys. Modbus is a contributed library installed from IDE library manager. ModbusIP_ENC28J60 was downloaded after from GitHub and installed as a ZIP library file. I have no idea of the structure of a library folder's should be, but following your advice i created a new folder called src inside ModbusIP_ENC28J60, and copied H and CPP files. It doesn't work. Moreover, then i also moved those files inside Modbus/src. Same result. Apart of that, having a look on Modbus.h, there are all the members of the class i can use in the project, but there is any member of the example's in ModbusIP_ENC28J60.h. In conclusion, and just in my eyes, this library isn't complete or something is missing.
You were right. I didn't realize there was some librarys used that has the same name than the others available from Arduino IDE. After download all librarys from GitHub, the code is ruuning well.