Bastelschlumpf / M5PaperWeather

M5Paper project with weather information from openweathermap
120 stars 36 forks source link

Has this been compiled successfully using recent library versions? #8

Closed helo-head closed 2 years ago

helo-head commented 2 years ago

I included all the relevant libraries referenced and have been unsuccessful in compiling using M5EDP version 0.1.4 & M5Stack version 2.0.4. Not sure what I am missing here especially the first error about MyData not declared in scope as this makes no sense as "Time.h" is the only header complaining about this. Ive probably missed something obvious but would appreciate any pointers as to what I am missing.

Here are a few of the issues Im running into


First issue

In file included from /home/pi/Arduino/weather/Utils.h:23,
                 from /home/pi/Arduino/weather/Weather.h:26,
                 from /home/pi/Arduino/weather/Data.h:24,
                 from /home/pi/Arduino/weather/weather.ino:25:
Time.h:26:21: error: 'MyData' was not declared in this scope
 bool SetRTCDateTime(MyData &myData)
                     ^~~~~~
/home/pi/Arduino/weather/Time.h:26:21: note: suggested alternative: 'FT_Data'
 bool SetRTCDateTime(MyData &myData)
                     ^~~~~~
                     FT_Data

Second issue

In file included from /home/pi/Arduino/weather/Data.h:24,
                 from /home/pi/Arduino/weather/weather.ino:25:
/home/pi/Arduino/weather/Weather.h: In member function 'bool Weather::Fill(const JsonObject&)':
/home/pi/Arduino/weather/Weather.h:117:75: warning: 'typename ArduinoJson6194_F1::enable_if<ArduinoJson6194_F1::is_same<T, char*>::value, const char*>::type ArduinoJson6194_F1::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6194_F1::ElementProxy<ArduinoJson6194_F1::MemberProxy<ArduinoJson6194_F1::MemberProxy<ArduinoJson6194_F1::ObjectRef, const char*>, const char*> >; TStringRef = const char*; typename ArduinoJson6194_F1::enable_if<ArduinoJson6194_F1::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations]
       hourlyMain[0]    = root["current"]["weather"][0]["main"].as<char *>();
                                                                           ^
In file included from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:9,
                 from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp:7,
                 from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7,
                 from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson.hpp:28,
                 from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson.h:9,
                 from /home/pi/Arduino/weather/Weather.h:25,
                 from /home/pi/Arduino/weather/Data.h:24,
                 from /home/pi/Arduino/weather/weather.ino:25:
/home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here
       as() const {
       ^~

Third issue

/home/pi/Arduino/weather/weather.ino: In function 'void setup()':
weather:52:31: error: 'SetRTCDateTime' cannot be used as a function
          SetRTCDateTime(myData);
                               ^
helo-head commented 2 years ago

Resolved -

Item 1 was resolved by moving the time.h helper funtion to the top of weather.ino. Items 2&3 were resolved by upgrading from M5Stack boards version 2.0.3/2.0.4 to version 2.0.5.