khoih-prog / AsyncMQTT_Generic

Arduino Arduino Library for ESP8266, ESP32, Portenta_H7, STM32 and RP2040W asynchronous MQTT client implementation. This library, ported to support ESP32, WT32_ETH01 (ESP32 + LAN8720), ESP8266, Portenta_H7 (Ethernet or WiFi) and STM32 (LAN8742A or LAN8720 Ethernet), Teensy 4.1 using QNEthernet, RASPBERRY_PI_PICO_W with CYW43439 WiFi. Currently supporting TLS/SSL for ESP32 only
MIT License
62 stars 10 forks source link

Dependencies fail to load in PlatformIO #5

Closed MrHyrex closed 2 years ago

MrHyrex commented 2 years ago

Describe the bug

When building a project for Portenta in PlatformIO depending on AsyncMQTT_Generic, multiple errors are thrown, all seems to be related to missing stm32_def.h file. Possibly because the khoih-prog/Portenta_H7_AsyncTCP dependency fails to install.

Steps to Reproduce

Expected behavior

The blank program should build without issues

Actual behavior

Fails to build. Dependcy khoih-prog/Portenta_H7_AsyncTCP fails to install Multiple errors related to missing stm32_def.h file

When using the included platformio.ini file, the build crashes with the following info/error: Library Manager: Installing stm32duino/STM32duino STM32Ethernet @ >=1.2.0 Error: Could not find the package with 'stm32duino/STM32duino STM32Ethernet @ >=1.2.0' requirements for your system 'windows_amd64'

Also, possibly unrelated, Vscode displays the following error during installation of the libraray: Error: Multiple requests to rebuild the project "<name>" index have been received! Automatic index rebuilding process has been terminated for 10 minutes.

Information

Additional context

It looks like the repository path for the Portenta_H7_AsyncTCP libraray is messed up on the platform.io site: (https://registry.platformio.org/libraries/khoih-prog/Portenta_H7_AsyncTCP)

image

khoih-prog commented 2 years ago

Hi,

Thanks for your interest in the library.

The issue is similar to Compile error with ESP8266 and Platformio #25 and many more issues. The general answer is as follows :

As you know, using PIO requires a little more experiences and knowledge than Arduino IDE to understand and manually modify the settings. Moreover, the current PIO version is not smart enough to select the correct library, according the board, necessary to use with this library, which is written mainly for multi-platforms and Arduino IDE.

Just try using Arduino IDE and understand why it can selects correctly the libraries to use, no matter boards / platforms you're using.

This library's platformio.ini is also written to include all possible dependent libraries for all the boards with the expectation that PIO users will know and modify to ignore the incorrect ones. It's better than include nothing and users has to do research to know which libraries are needed and include them.

Just understand which libraries to be used for your board, you'll know that you can ignore some unused libraries, such as adding to your platformio.ini

lib_ignore = 
   STM32AsyncTCP
   STM32duino LwIP
   STM32Ethernet
   WebServer_WT32_ETH01

Good Luck,


Additional context

It looks like the repository path for the Portenta_H7_AsyncTCP libraray is messed up on the platform.io site: (https://registry.platformio.org/libraries/khoih-prog/Portenta_H7_AsyncTCP)

image

Thanks, will fix.


Update

Already fixed with Portenta_H7_AsyncTCP v1.3.1

MrHyrex commented 2 years ago

@khoih-prog So if I understand this correctly, the library and platformio.ini file in it's current state does in fact not support building for the Portenta on PlatformIO? Also, since the AsyncMQTT_Generic library still tries to install v1.3.0 of the ...AsyncTCP library, the installation still fails when done from PlatformIO library manager

khoih-prog commented 2 years ago

Try again to see if OK now. If still having PIO issue, post for help in PIO Forum.

MrHyrex commented 2 years ago

Ok, thanks will check out that forum.

Tried the install again with same result. Maybe I'm misunderstaning something, but the latest version of AsyncMqtt_Generic library available in the Platform IO library manager is still v1.5.0 which tries (and fails) to install v1.3.0 of the Portenta_H7_AsyncTCP libraray.

khoih-prog commented 2 years ago

It there is something wrong with the installation, you can install any library manually, by using command, such as

$ pio pkg install --global -l "khoih-prog/Portenta_H7_AsyncTCP"