Dallas Temp failure to compile
-
error: 'int16_t DallasTemperature::millisToWaitForConversion(uint8_t)' is privateYou are using an old version of the library, if you get the library from MySensors GitHub then the method is not private (like in the current version of the library you use) and it will compile.
-
Thanks, that works fine.
How come that i have an old library? i use the 2.0.0 version
Is this perhaps a known issue which will be fixed soon? -
I removed everything and started from scratch and after that i copied the mysensors-master library.
@tlpeter said:
I removed everything and started from scratch and after that i copied the mysensors-master library.
"removed everything" in MySensors directory ? That's not enough, as the third party libraries are in the libraries directory of Arduino
-
why not put the function millisToWaitForConversion into the example.
I like to have the latest libary available for sensors. It can be loaded with the arduino studio.
Read the min wait time is pretty easy. it is just a switch case based on the datasheet.// returns number of milliseconds to wait till conversion is complete (based on IC datasheet) int16_t DallasTemperature::millisToWaitForConversion(uint8_t bitResolution) { switch (bitResolution) { case 9: return 94; case 10: return 188; case 11: return 375; default: return 750; } } -
Ok, so you are using a newer version of the DallasTemperature library, than the one that we have supplied in our MySensorsArduinoExamples. And yes, it seems that they have made millisToWaitForConversion() a private function there. Or someone has changed the library we included in our repository at some point in time, so it is made public.
There are 2 options, as I see it :)
- Use the library that we have supplied in MySensorsArduinoExamples
- Make a PR against the original library, found here, and make the millisToWaitForConversion() public, and get them to release a new version of the library.
:)
-
Ok, so you are using a newer version of the DallasTemperature library, than the one that we have supplied in our MySensorsArduinoExamples. And yes, it seems that they have made millisToWaitForConversion() a private function there. Or someone has changed the library we included in our repository at some point in time, so it is made public.
There are 2 options, as I see it :)
- Use the library that we have supplied in MySensorsArduinoExamples
- Make a PR against the original library, found here, and make the millisToWaitForConversion() public, and get them to release a new version of the library.
:)
The millisToWaitForConversion has always been private in milesburton's library, so the answer is the latter: someone has changed the library we included in our repository at some point in time.
I found the answer in git:
commit e47e596075282b122ac5d266ec6ad5c60ca8c978 Author: Robo Print <roboprint@users.noreply.github.com> Date: Sat Jun 27 23:00:37 2015 +0200 Make DallasTemperature::millisToWaitForConversion() publicly availableI agree with tbowmo's options.
-
It's my code :scream:
I changed this method from private to public, this function is used to determine wait time needed for right non-blocking wait call. Seems like I should make PR to original library instead of modifying MYS copy.