Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Plus has errors compiling
#11

(12-01-2017, 05:52)markkkk42 Wrote:  For the Nano V3  I used the nano in the selection list for the TX and it has compiling errors  the WD using the nano selection compiles fine though so the TX board has errors
...

Looks like this is problems caused by the Weatherduino modified Onewire library clashing with what I think is the 'official' one. https://github.com/PaulStoffregen/OneWire

Can the 'official' onewire library now be used rather than the modified one? You'd need to modify the object constructor to this, I think.

Code:
OneWire oneWire(18);
Reply
#12

Thats a bit beyond my scope...I can edit stuff etc...here is the code errors on V1.8.0 I have here at home. Earlier today I was using it at work on V1.8.1

Arduino: 1.8.0 (Mac OS X), Board: "Arduino Nano, ATmega328"

WeatherDuino_Pro2_TX_v2.0_b013:193: error: no matching function for call to 'OneWire::OneWire()'
OneWire oneWire; // When instantiated with no parameters, uses I2C address 18
^
/Users/Mark/Downloads/WeatherDuino_Pro2_PLUS/v1.0/software/TX software/WeatherDuino_Pro2_TX_v2.0_b013/WeatherDuino_Pro2_TX_v2.0_b013.ino:193:9: note: candidates are:
In file included from /Users/Mark/Downloads/WeatherDuino_Pro2_PLUS/v1.0/software/TX software/WeatherDuino_Pro2_TX_v2.0_b013/WeatherDuino_Pro2_TX_v2.0_b013.ino:18:0:
/Users/Mark/Documents/Arduino/libraries/OneWire/OneWire.h:127:5: note: OneWire::OneWire(uint8_t)
OneWire( uint8_t pin);
^
/Users/Mark/Documents/Arduino/libraries/OneWire/OneWire.h:127:5: note: candidate expects 1 argument, 0 provided
/Users/Mark/Documents/Arduino/libraries/OneWire/OneWire.h:112:7: note: constexpr OneWire::OneWire(const OneWire&)
class OneWire
^
/Users/Mark/Documents/Arduino/libraries/OneWire/OneWire.h:112:7: note: candidate expects 1 argument, 0 provided
/Users/Mark/Documents/Arduino/libraries/OneWire/OneWire.h:112:7: note: constexpr OneWire::OneWire(OneWire&&)
/Users/Mark/Documents/Arduino/libraries/OneWire/OneWire.h:112:7: note: candidate expects 1 argument, 0 provided
Multiple libraries were found for "OneWire.h"
Used: /Users/Mark/Documents/Arduino/libraries/OneWire
Not used: /Users/Mark/Documents/Arduino/libraries/DS2482OneWire
Multiple libraries were found for "DallasTemperature.h"
Used: /Users/Mark/Documents/Arduino/libraries/DallasTemperature
Not used: /Users/Mark/Documents/Arduino/libraries/Arduino-Temperature-Control-Library-master
Multiple libraries were found for "EEPROM.h"
Used: /Applications/Arduino 2.app/Contents/Java/hardware/arduino/avr/libraries/EEPROM
Not used: /Users/Mark/Documents/Arduino/libraries/EEPROM
exit status 1
no matching function for call to 'OneWire::OneWire()'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Reply
#13

Ok I added the (18) address to the onewire command and now it compiles ok
Reply
#14

(12-01-2017, 11:08)markkkk42 Wrote:  Ok I added the (18) address to the onewire command and now it compiles ok

Ah. I've looked at it closer, and this isn't going to do at all what you expect.

The two libraries are very different, so I think you'll need to uninstall the 'official' OneWire lib and just use the Weatherduino-specific one. And revert the change with '18'!

You'll need to remove the folder ' /Users/Mark/Documents/Arduino/libraries/OneWire' - But this will mean that any sketches that need the regular one-wire library won't work. 

I'm not sure of the implications of the other clashes. 


Quote:Multiple libraries were found for "OneWire.h"
Used: /Users/Mark/Documents/Arduino/libraries/OneWire
Not used: /Users/Mark/Documents/Arduino/libraries/DS2482OneWire
Multiple libraries were found for "DallasTemperature.h"
Used: /Users/Mark/Documents/Arduino/libraries/DallasTemperature
Not used: /Users/Mark/Documents/Arduino/libraries/Arduino-Temperature-Control-Library-master
Multiple libraries were found for "EEPROM.h"
Used: /Applications/Arduino 2.app/Contents/Java/hardware/arduino/avr/libraries/EEPROM
Not used: /Users/Mark/Documents/Arduino/libraries/EEPROM
Reply
#15

Hi roddyp,

I really appreciate your intention to help, but I have to kindly ask you to please, stop with this thing of "quick fixes", for some important reasons, that I start to explain:

- The worst thing we can do to the majority of the WeatherDuino Pro2 users is proposing them to do changes on the code. They expect, and I do my best to correspond to their expectances, that the system works without the need of programming knowledge, by just editing some simple user configuration option. I never published a "quick fix" for anything, even to correct an eventual bug, instead I always asked to users to wait for an updated version.

- Suddenly, it seems that nothing works, and everything is wrong. This is introducing a negative noise, that doesn't correspond to truth. This all started because of Arduino 1.8.0. I did my best to as quick as possible release a version compatible with it, but even if I haven't did it, what's is the problem in using Arduino IDE 1.7.7? Or by other side, what is the benefit of using IDE 1.8.x so quickly?

Now lets talk about the OneWire library.

Quote:Looks like this is problems caused by the Weatherduino modified Onewire library clashing with what I think is the 'official' one. https://github.com/PaulStoffregen/OneWire
Can the 'official' onewire library now be used rather than the modified one? You'd need to modify the object constructor to this, I think.

I wrote countless times, to only try to compile the code with the supplied libraries. Surely I have some reasons to say it.

Quote:The two libraries are very different, so I think you'll need to uninstall the 'official' OneWire lib and just use the Weatherduino-specific one. And revert the change with '18'!

There aren't a Weatherduino-specific OneWire library, as also there aren't "official" libraries. There are just libraries, some better (or more efficient) than others.

Quote:You'll need to remove the folder ' /Users/Mark/Documents/Arduino/libraries/OneWire' - But this will mean that any sketches that need the regular one-wire library won't work.

But this will mean that any sketches that need the regular one-wire library won't work.
Are you really sure about this affirmation?

One or two days ago, I wrote on this post:

Quote:...the few changes I did in some of the libraries, never have changed the general functionality of the library

Despite I'm not a professional programmer, there are some rules that I do my best to follow. The OneWire library used with the WeatherDuino Pro2 is from cybergibbons. It don't have any credits because the original also don't have. The original name of this library is also OneWire, and for a good reason!
In this library, I just have added the CRC16 code, because some sensors used with the WeatherDuino Pro2 need it.

Now the important part:

A OneWire library using the DS2482 I2C->1-Wire bridge. Released under GPL.

This is designed to use Dallas DS18B20 temperature sensors connected to a DS2482 I2C->1-Wire bridge as part of a temperature monitoring system.

The code heavily borrows from two sources:
•Paeaetech's DS2482 library (https://github.com/paeaetech/paeae/tree/...ies/ds2482) - the bulk of the functionality if from here, slighty changed.
•OneWire library (http://www.pjrc.com/teensy/td_libs_OneWire.html) - the CRC code is from here, along with all method names so we can use new library in place of this.


Please don't misunderstand my words, and please understand that I had to give these explanations publicly, because the questions were also put publicly, otherwise I would have preferred to respond privately.
Believe me, I work really hard on this, trying to give users the easier experience possible.

Kind regards
Werk_AG

Reply
#16

(12-01-2017, 05:52)markkkk42 Wrote:  For the Nano V3  I used the nano in the selection list for the TX and it has compiling errors  the WD using the nano selection compiles fine though so the TX board has errors


Arduino: 1.8.1 (Mac OS X), Board: "Arduino Nano, ATmega328"


WeatherDuino_Pro2_TX_v2.0_b013:193: error: no matching function for call to 'OneWire::OneWire()'
OneWire oneWire;                       // When instantiated with no parameters, uses I2C address 18
        ^

Hi Mark
A simple search on the forum by OneWire, could have given you the answer:

http://www.meteocercal.info/forum/Thread...93#pid3593

Quote:You haven't done anything wrong. The cause of the problem is:
- Multiple libraries were found for "OneWire.h"
The OneWire library required is the one in the DS2482OneWire folder, which is an modified and enhanced version to allow communication to 1-wire devices, through I²C protocol using a DS2482 chip - Single-Channel 1-Wire Master*
The DS2482 chip is used in the soil / leaf interface.

Please do a backup of your original OneWire folder, and delete it.

I'm absolutely sure that this problem will gonna happen to others. First post updated with a note about this matter.
Thank you.

Kind Regards
Werk_AG

Reply
#17

(12-01-2017, 18:08)Werk_AG Wrote:  I really appreciate your intention to help, but I have to kindly ask you to please, stop with this thing of "quick fixes", for some important reasons...

Hi Werk_AG,

I understand, and apologize.  I'm very aware - and appreciative - of all the effort and commitment you've put into the Weatherduino project and don't wish to disrupt things in any way.

I have some comments/suggestions re. the OneWire and 1.8.x issues - I'll send them via PM.

Roddy
Reply
#18

Hello again Roddy,

Your comments and suggestions to the project are very much appreciated and I will be grateful to you for them. And please feel free to publicly talk about them, you and anyone else have that right.
Please bear in mind that I just asked you to avoid publish possible "quick fixes" for any reported problem. I think you know that most of the times this brings more problems than solutions, specially in a community where the majority aren't coders (including me).

Thank you for you understanding.

Reply
#19

Werk

I got rid of the original onewire file and used yours and took the (18) out of the code and it then compiled fine on V1.8.0
Reply
#20

Is good to know, thank you.
However the concerns expressed by Roddy about replacing the standard OneWire library by the one that reads 1-Wire sensors but just when they are connected through the DS2482 chip, as is our case, are very pertinent.

Since yesterday I has working in a solution that does not imply removing the standard OneWire library. It is working, and as shortly as possible, all software packages will be updated. Two libraries have been adapted just for the WeatherDuino Pro2 system.

Reply




Users browsing this thread: 1 Guest(s)