Error unknown typ name 'DS18B20'
-
@AlexKrammer
Hi
I just tried putting DS18B20.h and DS18B20.cpp directly in the project folder.
(where .pro file is )
and then add them to the project using the Right-click menu as shown and
it seems to like it just fine.@mrjj
Oh yes. Now it works. But if i tried the Library in github it didnt work.
i created a new .h and .cpp file and copied the .h und .cpp file from the post 3 years ago into that. now the bugs are fixed. Thanks for that.
Now the next problem ^^.
i just added "tempReader_ = new DS18B20(address);" to my MainWindow::MainWindow.
Now, what's adress?
The second thing:
If i try to create a new class called check temperature and i try to create a new object with "DS18B20 sensor;" i receive the following error massage: "No matching constructor for initialization of'DS18B20'.My background. Im trying to create an app with RaspberryPi in QT with using C++ und wiringpi.
In order to control the temperature of 5 sections of an area im going to use the sensor DS18B20.
At the first problem. is the adress the pin that i chose to use for the sensor. e.g. digitalRead(22); but this cant be i think.thanks for help!
-
@mrjj
Oh yes. Now it works. But if i tried the Library in github it didnt work.
i created a new .h and .cpp file and copied the .h und .cpp file from the post 3 years ago into that. now the bugs are fixed. Thanks for that.
Now the next problem ^^.
i just added "tempReader_ = new DS18B20(address);" to my MainWindow::MainWindow.
Now, what's adress?
The second thing:
If i try to create a new class called check temperature and i try to create a new object with "DS18B20 sensor;" i receive the following error massage: "No matching constructor for initialization of'DS18B20'.My background. Im trying to create an app with RaspberryPi in QT with using C++ und wiringpi.
In order to control the temperature of 5 sections of an area im going to use the sensor DS18B20.
At the first problem. is the adress the pin that i chose to use for the sensor. e.g. digitalRead(22); but this cant be i think.thanks for help!
@AlexKrammer
well the constructor is
DS18B20::DS18B20(uint8_t pin)
so it does seem like the pin.- DS18B20 sensor;" i receive the following error message: "No matching constructor for initialization of'DS18B20'.
if we have the same .h , the compiler is correct. There is no default constructor
and you must create it with and uint8_t as a parameter.also looking at this
https://www.tweaking4all.com/hardware/arduino/arduino-ds18b20-temperature-sensor/its seems correct :)
-
@AlexKrammer
well the constructor is
DS18B20::DS18B20(uint8_t pin)
so it does seem like the pin.- DS18B20 sensor;" i receive the following error message: "No matching constructor for initialization of'DS18B20'.
if we have the same .h , the compiler is correct. There is no default constructor
and you must create it with and uint8_t as a parameter.also looking at this
https://www.tweaking4all.com/hardware/arduino/arduino-ds18b20-temperature-sensor/its seems correct :)
@mrjj
no mine is a other one.
when i use the arduino library i got this.
there are a lot of errors. then i delete it and created a .h and .cpp file with that code.ds18b20.h
#define DS18B20_H_ #include <inttypes.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define CELCIUS 0 #define FAHRENHEIT 1 #define BUS "/sys/bus/w1/devices/" #define TEMPFILE "/w1_slave" class DS18B20 { public: DS18B20(const char* address); virtual ~DS18B20(); uint8_t getUnits(); void setUnits(uint8_t); float getTemp(); float CtoF(float); private: uint8_t unit_; char* address_; char path[47]; // path should be 46 chars };
ds18b20.cpp
#include "ds18b20.h" DS18B20::DS18B20(const char* address) { address_ = strdup(address); unit_ = CELCIUS; snprintf(path, 46, "%s%s%s", BUS, address_, TEMPFILE); } DS18B20::~DS18B20() { } float DS18B20::getTemp() { FILE *devFile = fopen(path, "r"); if (devFile == NULL) { printf("Count not open %s\n", path); perror("\n"); } float temp = -1; if (devFile != NULL) { if (!ferror(devFile)) { unsigned int tempInt; char crcConf[5]; fscanf(devFile, "%*x %*x %*x %*x %*x %*x %*x %*x %*x : crc=%*x %s", crcConf); if (strncmp(crcConf, "YES", 3) == 0) { fscanf(devFile, "%*x %*x %*x %*x %*x %*x %*x %*x %*x t=%5d", &tempInt); temp = (float) tempInt / 1000.0; } } } fclose(devFile); if (unit_ == CELCIUS) { return temp; } else return CtoF(temp); } uint8_t DS18B20::getUnits() { return unit_; } void DS18B20::setUnits(uint8_t u) { unit_ = u; } float DS18B20::CtoF(float temp) { return temp * 1.8 + 32; }
now im on this problem:
what kind of .h file do u use and where did u download that, that there are no errors.
-
Hi
I downloaded from your link
https://www.arduinolibraries.info/libraries/ds18-b20
But i don't have a board so don't know if it actually works.
It does complain about me not having
#include "Arduino.h"
#include <OneWire.h>but that is expected. The actual .h and .cpp seems happy enough.
I goggled the use of
DS18B20::DS18B20(const char* address)
to see what they would put as adresss but could not find a single example of that.
But plenty of DS18B20 examples otherwise -
Hi
I downloaded from your link
https://www.arduinolibraries.info/libraries/ds18-b20
But i don't have a board so don't know if it actually works.
It does complain about me not having
#include "Arduino.h"
#include <OneWire.h>but that is expected. The actual .h and .cpp seems happy enough.
I goggled the use of
DS18B20::DS18B20(const char* address)
to see what they would put as adresss but could not find a single example of that.
But plenty of DS18B20 examples otherwise@mrjj
now i removed the .h and .cpp filei just downloaded the libraries again and i got the same problem like in the first picture. why dont you have
#include "Arduino.h"
#include <OneWire.h>
and what did you do that you dont get the error unkown type name "uint8_t"
the error is still hundreds time here. -
@mrjj
now i removed the .h and .cpp filei just downloaded the libraries again and i got the same problem like in the first picture. why dont you have
#include "Arduino.h"
#include <OneWire.h>
and what did you do that you dont get the error unkown type name "uint8_t"
the error is still hundreds time here.hi
I dont have a board so i dont have the Arduino software / libs installed so no #include "Arduino.h" etc.the uint8_t comes from
#include <stdint.h> -
hi
I dont have a board so i dont have the Arduino software / libs installed so no #include "Arduino.h" etc.the uint8_t comes from
#include <stdint.h>@mrjj i dont use arduino too. Raspberry Pi is what i use.
The stdint.h is just a standart library or where can i get it?If this change remove the error do u thing when i type in a raspberry pin into the constructor e.g. 22 it will work?
-
@mrjj i dont use arduino too. Raspberry Pi is what i use.
The stdint.h is just a standart library or where can i get it?If this change remove the error do u thing when i type in a raspberry pin into the constructor e.g. 22 it will work?
@AlexKrammer
Oh
I just assume since it had Arduino included and most google searches talked about Arduino :)Well i just added
#include <stdint.h>
and it knew it.
So its included on newer compilers.-
If this change remove the error do u thing when i type in a raspberry pin into the constructor e.g. 22 it will work?
Yes if it has that chip then yes.
https://www.circuitbasics.com/raspberry-pi-ds18b20-temperature-sensor-tutorial/
-
-
@AlexKrammer
Oh
I just assume since it had Arduino included and most google searches talked about Arduino :)Well i just added
#include <stdint.h>
and it knew it.
So its included on newer compilers.-
If this change remove the error do u thing when i type in a raspberry pin into the constructor e.g. 22 it will work?
Yes if it has that chip then yes.
https://www.circuitbasics.com/raspberry-pi-ds18b20-temperature-sensor-tutorial/
@mrjj
And if i create a new class called "CheckTemlerature" how could i use the DS18B20 sensor.
The first thing to open the constructor with input the Raspberry Pin.
Second step Funktion getTemp?
Third step close with destructor?
Thanks for halp -
-
@mrjj
And if i create a new class called "CheckTemlerature" how could i use the DS18B20 sensor.
The first thing to open the constructor with input the Raspberry Pin.
Second step Funktion getTemp?
Third step close with destructor?
Thanks for halp@AlexKrammer
Yes, it seems that way looking over the examples.are you using the
DS18B20::DS18B20(const char* address) version or the other version using uint pin ? -
@AlexKrammer
Yes, it seems that way looking over the examples.are you using the
DS18B20::DS18B20(const char* address) version or the other version using uint pin ?@mrjj
I deleted the DS18B20::DS18B20(const char* address) version and try it with your idea. I hope it will work but ill see it tomorrow. Its enough for today.
Thanks a lot. -
@AlexKrammer
Yes, it seems that way looking over the examples.are you using the
DS18B20::DS18B20(const char* address) version or the other version using uint pin ?@mrjj
Now i removed the
#include "Arduino.h"
#include <OneWire.h>and added #include <stdint.h>
But now i receive the error massage with OneWire again.
How did you solve that problem?The second fault is that the .cpp produced a lot of errors too.
I think it depends on the OneWire file.
How did you solve that problem? -
Hi
That include file comes from
https://www.pjrc.com/teensy/td_libs_OneWire.html
But im not sure that works with a RaspberryPi directly. -
Hi
That include file comes from
https://www.pjrc.com/teensy/td_libs_OneWire.html
But im not sure that works with a RaspberryPi directly.@mrjj
that to files OneWire.h and OneWire.cpp include also like DS18B20 as existing File? -
@mrjj
that to files OneWire.h and OneWire.cpp include also like DS18B20 as existing File?@AlexKrammer
Yes but im not sure it will just work with a pi board. -
@AlexKrammer
Yes but im not sure it will just work with a pi board.@mrjj
its even dont work on my windows pc ^^ -
@AlexKrammer
Yes but im not sure it will just work with a pi board.@mrjj
There are still error. i dont know, why you dont receive that errors respectively when you try to compile the code, why its work. if i try to run it, there are hundreds of error messages.
-
@mrjj
There are still error. i dont know, why you dont receive that errors respectively when you try to compile the code, why its work. if i try to run it, there are hundreds of error messages.
@AlexKrammer
Well i didnt download and added OneWire to see. Maybe why.
Just checkout DS18B20 as question started with.
I dont have a board to test on so i would never be able to run it anyway.Thats just #include <stdio.h> it complains about.
Very odd the .h does not include that.Also, you do understand that these libs are meant to be used ON the board.?
They can never read a sensor on a pi board where apps run on win pc and have the pi board connected via USB
or similar.
But you do seem to have a raspberry Debian running so you are compiling directly on the board, right ? -
@AlexKrammer
Well i didnt download and added OneWire to see. Maybe why.
Just checkout DS18B20 as question started with.
I dont have a board to test on so i would never be able to run it anyway.Thats just #include <stdio.h> it complains about.
Very odd the .h does not include that.Also, you do understand that these libs are meant to be used ON the board.?
They can never read a sensor on a pi board where apps run on win pc and have the pi board connected via USB
or similar.
But you do seem to have a raspberry Debian running so you are compiling directly on the board, right ?@mrjj
Now I includes #include <stdio.h> in ds18b20.cpp but nothing changed.
the error C1083 does not depend on stdio.h, does it?yes i have both systems running.
-
@mrjj
Now I includes #include <stdio.h> in ds18b20.cpp but nothing changed.
the error C1083 does not depend on stdio.h, does it?yes i have both systems running.
@AlexKrammer
Ok. Good. Just checking
No that error comes from some missing .h file. As it shows.
From the utils folder
https://github.com/PaulStoffregen/OneWire/tree/master/util
so you should add those too it seems.