sticilface / Melvanimate

Melvanimate
60 stars 7 forks source link

No luck with compilation #20

Closed wutu closed 7 years ago

wutu commented 8 years ago

Hi, I tried to compile Async version, but without success. IDE 1.6.8. Thank you in advance. log:

In file included from C:\Users\wutu\AppData\Local\Temp\arduino_modified_sketch_825775\Melvanimate-withESPManager.ino:22:0:

C:\Users\wutu\Documents\Arduino\libraries\ESPmanager/ESPmanager.h:104:9: error: 'AsyncEventSource' does not name a type

         AsyncEventSource & getEvent();

         ^

C:\Users\wutu\Documents\Arduino\libraries\ESPmanager/ESPmanager.h:142:9: error: 'AsyncEventSource' does not name a type

         AsyncEventSource _events;

         ^

In file included from C:\Users\wutu\AppData\Local\Temp\arduino_modified_sketch_825775\Melvanimate-withESPManager.ino:23:0:

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src/Melvanimate.h:102:23: error: 'AsyncEventSource' has not been declared

  void setEventsServer(AsyncEventSource * events) {

                       ^

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src/Melvanimate.h:144:2: error: 'AsyncEventSource' does not name a type

  AsyncEventSource * _events{nullptr};

  ^

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src/Melvanimate.h: In member function 'void Melvanimate::setEventsServer(int*)':

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src/Melvanimate.h:103:3: error: '_events' was not declared in this scope

   _events = events;

   ^

C:\Users\wutu\AppData\Local\Temp\arduino_modified_sketch_825775\Melvanimate-withESPManager.ino: In function 'void setup()':

Melvanimate-withESPManager:77: error: 'class ESPmanager' has no member named 'deviceName'

   lights.begin( manager.deviceName() );

                         ^

Using library ESP8266WiFi at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi 
Using library ESPAsyncTCP at version 1.0.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\ESPAsyncTCP 
Using library ESPAsyncWebServer at version 1.0.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\ESPAsyncWebServer 
Using library ArduinoOTA at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ArduinoOTA 
Using library NeoPixelBus_by_Makuna at version 2.1.4 in folder: C:\Users\wutu\Documents\Arduino\libraries\NeoPixelBus_by_Makuna 
Using library ArduinoJson at version 5.6.4 in folder: C:\Users\wutu\Documents\Arduino\libraries\ArduinoJson 
Using library async-mqtt-client at version 0.2.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\async-mqtt-client 
Using library Adafruit_GFX_Library at version 1.1.5 in folder: C:\Users\wutu\Documents\Arduino\libraries\Adafruit_GFX_Library 
Using library ESPmanager at version 1.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\ESPmanager 
Using library ESP8266HTTPClient at version 1.1 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266HTTPClient 
Using library ESP8266httpUpdate at version 1.1 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266httpUpdate 
Using library Melvanimate at version 1.1 in folder: C:\Users\wutu\Documents\Arduino\libraries\Melvanimate 
Using library Hash at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Hash 
Using library ESP8266mDNS in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266mDNS (legacy)
exit status 1
'class ESPmanager' has no member named 'deviceName'
probonopd commented 8 years ago

@sticilface merged async into the master branch, I can successfully compile. Here is what I did:

sudo apt-get install -y git
cd $HOME
# rm -rf Arduino/ # Uncomment this if you are sure what you are doing
mkdir -p Arduino/libraries/
cd Arduino/libraries/
git clone https://github.com/sticilface/Melvanimate.git
git clone https://github.com/Makuna/NeoPixelBus.git
git clone https://github.com/me-no-dev/ESPAsyncWebServer.git
git clone https://github.com/me-no-dev/ESPAsyncTCP.git
git clone https://github.com/marvinroger/async-mqtt-client.git
git clone https://github.com/sticilface/ESPmanager.git
git clone https://github.com/bblanchon/ArduinoJson.git
git clone https://github.com/adafruit/Adafruit-GFX-Library.git

It compiles successfully using Arduino-1.6.11.hourly201608161225.esp497d19x86_64.AppImage now.

I then need to upload the SPIFFS image using Tools -> ESP8266 Sketch Data Upload (even via OTA), otherwise the HTTP web interface will be blank.

If this menu is not available in your IDE, it can be installed with

mkdir -p $HOME/Arduino/tools
cd $HOME/Arduino/tools
wget -c "https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.2.0/ESP8266FS-0.2.0.zip"
unzip ESP8266FS-0.2.0.zip
rm ESP*.zip
cd -

This is the precise combination of versions used:

DIRS=$(ls)
for DIR in $DIRS ; do
  cd $DIR
  echo $DIR
  git log --pretty=format:'%h' -n 1
  cd - >/dev/null
  echo ""
done

Adafruit-GFX-Library
334e815

ArduinoJson
409ca7e

async-mqtt-client
d00420b

ESPAsyncTCP
0f2292b

ESPAsyncWebServer
bfde9bc

ESPmanager
6c902fb

Melvanimate
c01d36a

NeoPixelBus
174087f
wutu commented 8 years ago

thx probonopd but now I have:

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src\MelvanimateMQTT.cpp: In constructor 'MelvanimateMQTT::MelvanimateMQTT(Melvanimate*, IPAddress, uint16_t)':

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src\MelvanimateMQTT.cpp:29:10: error: no matching function for call to 'AsyncMqttClient::onConnect(MelvanimateMQTT::MelvanimateMQTT(Melvanimate*, IPAddress, uint16_t)::__lambda0)'

         });

          ^

C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src\MelvanimateMQTT.cpp:29:10: note: candidate is:

In file included from C:\Users\wutu\Documents\Arduino\libraries\async-mqtt-client\src/AsyncMqttClient.h:4:0,

                 from C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src\MelvanimateMQTT.h:4,

                 from C:\Users\wutu\Documents\Arduino\libraries\Melvanimate\src\MelvanimateMQTT.cpp:4:

C:\Users\wutu\Documents\Arduino\libraries\async-mqtt-client\src/AsyncMqttClient.hpp:43:20: note: AsyncMqttClient& AsyncMqttClient::onConnect(AsyncMqttClientInternals::OnConnectUserCallback)

   AsyncMqttClient& onConnect(AsyncMqttClientInternals::OnConnectUserCallback callback);

                    ^

C:\Users\wutu\Documents\Arduino\libraries\async-mqtt-client\src/AsyncMqttClient.hpp:43:20: note:   no known conversion for argument 1 from 'MelvanimateMQTT::MelvanimateMQTT(Melvanimate*, IPAddress, uint16_t)::__lambda0' to 'AsyncMqttClientInternals::OnConnectUserCallback {aka std::function<void(bool)>}'

Using library ESP8266WiFi at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi 
Using library ESPAsyncTCP at version 1.0.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\ESPAsyncTCP 
Using library ESPAsyncWebServer at version 1.0.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\ESPAsyncWebServer 
Using library ArduinoOTA at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ArduinoOTA 
Using library NeoPixelBus at version 2.2.3 in folder: C:\Users\wutu\Documents\Arduino\libraries\NeoPixelBus 
Using library SPI at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\SPI 
Using library ArduinoJson at version 5.6.7 in folder: C:\Users\wutu\Documents\Arduino\libraries\ArduinoJson 
Using library async-mqtt-client at version 0.5.0 in folder: C:\Users\wutu\Documents\Arduino\libraries\async-mqtt-client 
Using library Adafruit_GFX_Library at version 1.1.5 in folder: C:\Users\wutu\Documents\Arduino\libraries\Adafruit_GFX_Library 
Using library Melvanimate at version 1.1 in folder: C:\Users\wutu\Documents\Arduino\libraries\Melvanimate 
Using library Hash at version 1.0 in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Hash 
Using library ESP8266mDNS in folder: C:\Users\wutu\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266mDNS (legacy)
exit status 1
Error compiling for board WeMos D1 R2 & mini.
wutu commented 7 years ago

Compiled with the latest version.

probonopd commented 7 years ago

I can confirm that it works with Arduino-1.6.11.esp2.3.0-x86_64.AppImage and today's combination of the latest libraries from git.

For future reference, this known working set is:

which git || sudo apt-get install -y git
# rm -rf $HOME/Arduino/ # Uncomment this only if you are sure what you are doing
mkdir -p $HOME/Arduino/libraries/
cd $HOME/Arduino/libraries/
git clone -o dc40877 https://github.com/adafruit/Adafruit-GFX-Library.git
git clone -o 6cfe2a5 https://github.com/bblanchon/ArduinoJson.git
git clone -o b4e453c https://github.com/sticilface/ESPmanager.git
git clone -o f1b4576 https://github.com/marvinroger/async-mqtt-client.git
git clone -o 2cc9846 https://github.com/me-no-dev/ESPAsyncTCP.git
git clone -o 5159d8b https://github.com/me-no-dev/ESPAsyncWebServer.git
git clone -o 94f5ad3 https://github.com/Makuna/NeoPixelBus.git
git clone -o 58138fe https://github.com/sticilface/Melvanimate.git
cd -

By the way, this list was made with

DIRS=$(find ~/Arduino/libraries -mindepth 1 -maxdepth 1 -type d )
echo "cd ~/Arduino/libraries"
for DIR in $DIRS ; do
  cd $DIR
  unset URL
  unset REV
  URL=$(git config --get remote.origin.url 2>/dev/null)
  REV=$(git log --pretty=format:'%h' -n 1 2>/dev/null)
  if [ ! -z $REV ] ; then echo git clone -o $REV $URL ; fi
  cd - >/dev/null
done
echo "cd -"