cmcgerty / Sofar2mqtt

A smart home interface for Sofar solar and battery inverters.
GNU General Public License v3.0
79 stars 45 forks source link

Compiling Errors with latest Arduino IDE 2.0.4 #59

Open championc opened 1 year ago

championc commented 1 year ago

Hi there

When I take the code from the project, I get the following errors when compiling it - although it does compile, but can this reported errors be fixed ?

C:\Users\corma\Downloads\Sofar2mqtt\Sofar2mqtt.ino: In function 'int listen(modbusResponse)': C:\Users\corma\Downloads\Sofar2mqtt\Sofar2mqtt.ino:644:24: warning: ISO C++ forbids converting a string constant to 'char' [-Wwrite-strings] 644 | resp->errorMessage = "Response too short"; | ^~~~~~~~ C:\Users\corma\Downloads\Sofar2mqtt\Sofar2mqtt.ino:649:24: warning: ISO C++ forbids converting a string constant to 'char' [-Wwrite-strings] 649 | resp->errorMessage = "Valid data frame"; | ^~~~~~ C:\Users\corma\Downloads\Sofar2mqtt\Sofar2mqtt.ino:654:24: warning: ISO C++ forbids converting a string constant to 'char' [-Wwrite-strings] 654 | resp->errorMessage = "Error: invalid data frame"; | ^~~~~~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp: In member function 'void Adafruit_SSD1306::drawFastHLineInternal(int16_t, int16_t, int16_t, uint16_t)': c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:612:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 612 | register uint8_t pBuf = buffer; | ^~~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:618:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 618 | register uint8_t mask = 1 << (y&7); | ^~~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp: In member function 'void Adafruit_SSD1306::drawFastVLineInternal(int16_t, int16_t, int16_t, uint16_t)': c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:686:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 686 | register uint8_t y = y; | ^ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:687:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 687 | register uint8_t h = h; | ^ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:691:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 691 | register uint8_t pBuf = buffer; | ^~~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:698:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 698 | register uint8_t mod = (y&7); | ^~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:706:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 706 | register uint8_t mask = premask[mod]; | ^~~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:744:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 744 | register uint8_t val = (color == WHITE) ? 255 : 0; | ^~~ c:\Users\corma\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED\Adafruit_SSD1306.cpp:766:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 766 | register uint8_t mask = postmask[mod]; | ^~~~

joostvdveen commented 1 year ago

I have the same issue

OGB1952 commented 1 year ago

Same here, too. The previous version of Sofar2mqtt was fine, seemed to compile without warnings or errors. I'm only getting the compile warnings in the CRC section, though, but that may be because I'm using a different display.

The earlier version works fine, whereas this version seems to fall over and not connect, perhaps because of the compile warnings?

This screenshot highlights the lines that are causing the issue:

image

JonathanJ71 commented 1 year ago

Is somebody have a compilable version for ide 2?

davergu commented 4 months ago

Has this been resolved? I have tried various versions of Arduino IDE and Sofar2mqtt and none have worked. I've not attempted older libraries as the permutations are legion. Does anyone know the required permutation of everything?!