diff options
author | Chris Xiong <chirs241097@gmail.com> | 2018-07-14 15:27:44 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2018-07-14 15:27:44 +0800 |
commit | ebcace663a8c3b6a05c59c59a7d1154036bc0032 (patch) | |
tree | c9c1e3f30c5d408c34bc6f6ab66a729410080e27 | |
parent | ea652045bb38651d99bcc53972a524f602c3b306 (diff) | |
download | lightsd-ebcace663a8c3b6a05c59c59a7d1154036bc0032.tar.xz |
Reset sensor after pausing the sensor worker.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sensors.cpp | 14 |
2 files changed, 10 insertions, 9 deletions
@@ -1,4 +1,7 @@ -2018-07-11 0.0.5-r2 +2018-07-14 0.0.5-r3 +Reset sensor after pausing the sensor worker. + +2018-07-14 0.0.5-r2 Added a simple tool to create a fake sysfs backlight interface that invokes external commands. Some changes in the utility module to accomodate the new tool. diff --git a/sensors.cpp b/sensors.cpp index e1a0694..d403a92 100644 --- a/sensors.cpp +++ b/sensors.cpp @@ -152,6 +152,7 @@ void SensorBase::reset() for(auto& ent:filesystem::directory_iterator(sysfspath/"scan_elements")) if(ent.path().string().substr(ent.path().string().length()-3)=="_en") writeint(ent.path().c_str(),0); + readsize=0; } void SensorBase::worker() { @@ -181,18 +182,15 @@ void SensorBase::pause_worker() ignore_result(write(qpipe[1],"p",1)); std::this_thread::yield(); } - close(devfd); - devfd=-1; + reset(); } } void SensorBase::resume_worker() { - for(auto&i:enabled_scan_elem)//update readings - { - std::string& elem_base=std::get<1>(i); - filesystem::path raw_val_path=sysfspath/(elem_base+"_raw"); - dict[elem_base+"_value"]=readint(raw_val_path.c_str()); - } + enabled_scan_elem.clear(); + enable_scan_elements(); + update_values(); + enable_buffer(); devfd=open(devbufpath.c_str(),O_RDONLY); if(!~devfd) return (void)LOG('E',"failed to open the iio buffer device: %s",devbufpath.c_str()); |