DavyLandman / p1-esp8266

P1 serial forwarder for use in HomeAssistent
18 stars 5 forks source link

Error while compiling #5

Closed mbtronics closed 2 years ago

mbtronics commented 2 years ago

I get the following errors during compiling, those function don't seem to exist?

src/main.cpp: In function 'void loop()': src/main.cpp:38:29: error: 'class HardwareSerial' has no member named 'peekAvailable' auto available = Serial.peekAvailable(); ^ src/main.cpp:40:30: error: 'class HardwareSerial' has no member named 'peekBuffer' auto buffer = Serial.peekBuffer(); ^ src/main.cpp:43:20: error: 'class HardwareSerial' has no member named 'peekConsume' Serial.peekConsume(written); ^ src/main.cpp:47:20: error: 'class HardwareSerial' has no member named 'peekConsume' Serial.peekConsume(0);

DavyLandman commented 2 years ago

Are you using platformio to compile as indicated in the readme? If so, which version?

mbtronics commented 2 years ago

PlatformIO Core, version 5.2.5

This is the full output:

[maarten@beast p1-esp8266]$ ls
include  platformio.ini  README.md  src
[maarten@beast p1-esp8266]$ source /home/maarten/.platformio/penv/bin/activate
(penv) [maarten@beast p1-esp8266]$ pio --version
PlatformIO Core, version 5.2.5
(penv) [maarten@beast p1-esp8266]$ pio run -t upload
Processing p1mon (platform: espressif8266; board: esp12e; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 (2.7.4+9) > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 2.7.4+9 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.30201.220126 (3.2.1) 
 - tool-mklittlefs 1.203.210628 (2.3) 
 - tool-mkspiffs 1.200.0 (2.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ESP8266WiFi> 1.0
Building in debug mode
Compiling .pio/build/p1mon/src/main.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_si2c.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_sigma_delta.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_spi_utils.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_timer.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_waveform_phase.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_waveform_pwm.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_wiring.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_wiring_analog.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_wiring_digital.cpp.o
src/main.cpp: In function 'void loop()':
src/main.cpp:38:29: error: 'class HardwareSerial' has no member named 'peekAvailable'
     auto available = Serial.peekAvailable();
                             ^
src/main.cpp:40:30: error: 'class HardwareSerial' has no member named 'peekBuffer'
         auto buffer = Serial.peekBuffer();
                              ^
src/main.cpp:43:20: error: 'class HardwareSerial' has no member named 'peekConsume'
             Serial.peekConsume(written);
                    ^
src/main.cpp:47:20: error: 'class HardwareSerial' has no member named 'peekConsume'
             Serial.peekConsume(0);
                    ^
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_wiring_pulse.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_wiring_pwm.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/core_esp8266_wiring_shift.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/crc32.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/debug.cpp.o
Compiling .pio/build/p1mon/FrameworkArduino/flash_hal.cpp.o
*** [.pio/build/p1mon/src/main.cpp.o] Error 1
============================================================== [FAILED] Took 0.76 seconds ==============================================================
(penv) [maarten@beast p1-esp8266]$ 
DavyLandman commented 2 years ago

I do not know why, but your pio is getting a quite old version of the arduino framework, I just took a fresh container and ran pio on this repo:

/p1-esp8266 # pio run
**************************************************************************************************************************************************************************************************
If you like PlatformIO, please:
- follow us on Twitter to stay up-to-date on the latest project news > https://twitter.com/PlatformIO_Org
- star it on GitHub > https://github.com/platformio/platformio
- try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide
**************************************************************************************************************************************************************************************************

Processing p1mon (platform: espressif8266; board: d1_mini; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Platform Manager: Installing espressif8266
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Platform Manager: espressif8266 @ 3.2.0 has been installed!
The platform 'espressif8266' has been successfully installed!
The rest of the packages will be installed later depending on your build environment.
Tool Manager: Installing platformio/toolchain-xtensa @ ~2.100300.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: toolchain-xtensa @ 2.100300.210717 has been installed!
Tool Manager: Installing platformio/framework-arduinoespressif8266 @ ~3.30002.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: framework-arduinoespressif8266 @ 3.30002.0 has been installed!
Tool Manager: Installing platformio/tool-esptool @ <2
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: tool-esptool @ 1.413.0 has been installed!
Tool Manager: Installing platformio/tool-esptoolpy @ ~1.30000.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: tool-esptoolpy @ 1.30000.201119 has been installed!
Tool Manager: Installing platformio/tool-scons @ ~4.40300.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: tool-scons @ 4.40300.1 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 (3.2.0) > WeMos D1 R2 and mini
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif8266 3.30002.0 (3.0.2)
 - tool-esptool 1.413.0 (4.13)
 - tool-esptoolpy 1.30000.201119 (3.0.0)
 - toolchain-xtensa 2.100300.210717 (10.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
mbtronics commented 2 years ago

Interesting. This is actually the first time I use platform.io, I always used the raw C/C++ toolchains. I installed it following the instructions on https://docs.platformio.org/en/latest//core/installation.html for "Installer Script". That seems to install an older version?

After installing platformio with pip everything works as it should.

thanks!

DavyLandman commented 2 years ago

I should see if I can put a version requirement in the ini file.