#ifndef __HUMIREADER_H__ #define __HUMIREADER_H__ #include #include #include #include #include #include #include #include #include struct HumiResult { int sensorITemp; int sensorATemp; int sensorIRelHumi; int sensorARelHumi; bool winCouldBeOpened; }; class HumiReader { public: explicit HumiReader(const std::string devPath); ~HumiReader(); //void setCallback(void (*cb)(const HumiResult&)); void setCallback(std::function cb); void run(); private: int fd=-1; bool cancelLoop; std::string devPath; //void (*cb)(const HumiResult&); std::function cb; void closeDevice(); int setupDevice(); int parseLine(const char *buf); bool hasIResult; bool hasAResult; HumiResult currentResult; }; #endif