bbqkees / Nefit-Buderus-EMS-bus-Arduino-Domoticz

Readout of EMS protocol datagrams and transfer of data to Domoticz via Arduino
MIT License
88 stars 25 forks source link

conflict_with_netifserial_and_sd #6

Closed jmmprodukts closed 6 years ago

jmmprodukts commented 6 years ago

Ik wil de nefitserial SD library samen in een sketch toepassen. echter ontstaat tijdens compilatie een 'conflict'met HardwareSerial0.cpp. Daar een beginnende Arduino en C hobbyist ben, heb ik geen idee hoe ik dit oplossen kan.

conflict_with_netifserial_and_sd.zip

**Archiving built core (caching) in: C:\Users\Jacoba01\AppData\Local\Temp\arduino_cache_130884\core\core_arduino_avr_megaADK_5638c217b04eda8279099c4937887265.a HardwareSerial0.cpp.o (symbol from plugin): In function `Serial':

(.text+0x0): multiple definition of `__vector_25'

libraries\Nefitserial\NefitSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here

c:/program files/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

collect2.exe: error: ld returned 1 exit status

exit status 1 Fout bij het compileren voor board Arduino Mega ADK**

bbqkees commented 6 years ago

Kan zijn dat je de NefitSerial library niet in de juiste library directory hebt geplaatst.

Probeer eerst eens of je een sketch kunt compilen met alleen NefitSerial.

(Verder moet je voor het lezenn van de SD kaart ook SPI.h includen.)

jmmprodukts commented 6 years ago

Kijk even naar ingesloten screenshots, dan kan je zien dat alleen de includes al voldoende zijn om een conflict te realiseren. compiler result sdi spi compiler result nefitserial compiler result sdi spi and nefitserial

bbqkees commented 6 years ago

Ik zie het. Lijkt erop dat beide libraries dezelfde hardware resource proberen te defineren. Ik zal kijken of ik een aanpassing kan verzinnen.

jmmprodukts commented 6 years ago

Na enig onderzoek gevonden dat SdFile.cpp gebruik maakt van bv 'Serial.print', hier lijken Serial en nefitserial te conflicteren. als ik nefitserial.h include en serial.print gebruik gaat het fout. Dit is normaal geen probleem daar hiervoor nefit.print in de plaats gebruikt kan worden. echter blijkt in 'SdFile.cpp' serial.print te worden gebruikt wat dus het conflict veroorzaak met nefitserial.h

botsing nefitserial met serialprint nefitserialprint ipv serialprint

bbqkees commented 6 years ago

Je kunt proberen om de serial.print in SDFile enz te veranderen naar nefitserial.print.

bbqkees commented 6 years ago

En al iets verder gekomen?

jmmprodukts commented 6 years ago

Als ik alle "serial." in SD.h gerelateerde bestanden vervang door "//serial." (opmerking van gemaakt), dan klaagt de compiler niet meer. Als ik alle "serial." in SD.h gerelateerde bestanden vervang door "nefitSerial.", dan klaagt de compiler op enkele plaatsen dat nefitSerial niet bestaat. dus in enkele .h en .cpp bestanden nefitSerial.h toegevoegd. nu werkt SD_nefit_SD.h reeds samen met mijn netwerk app plus sd reader. nu nog samen intergreren met de EMS monitor app. SD_nefit.zip