Sensirion / embedded-sps

Embedded i2c Driver for Sensirion Particulate Matter Sensors - Download the Zip Package from the Release Page
https://github.com/Sensirion/embedded-sps/releases
BSD 3-Clause "New" or "Revised" License
45 stars 15 forks source link

reset Data-Ready Flag #16

Closed michapr closed 5 years ago

michapr commented 5 years ago

Hello, I think after 0x0104 Stop Measurement Set Pointer the Data Ready Flag should be resetted. (for 0x0202 Read Data-Ready Flag Set Pointer & Read Data)

In this time the flag show a "ready" and wrong results (not clear for my why worng) will be received. In my case these values were much higher as the values before the "stop" command.

Maybe it is "cosmetic" - but it could help to get right values in case of program error ;)

abrauchli commented 5 years ago

Hi @michapr

The data ready flag has no meaning when the sensor is not in measuring state i.e. it's only relevant between start measurement and stop measurement. I'm also not sure what you're measuring after the stop command but since the sensor doesn't actually measure after stop measurement, I guess it'll report meaningless values.

I'm not quite sure if this answers your question, could you clarify otherwise?

michapr commented 5 years ago

it's only relevant between start measurement and stop measurement

yes, right. That's why I think that the data ready flag should be resetted to "not ready" after "stop measurement" command.

I'm also not sure what you're measuring after the stop command but since the sensor doesn't actually measure after stop measurement, I guess it'll report meaningless values.

-> that's why reset the data ready flag :)

abrauchli commented 5 years ago

I see and I appreciate the feedback. From a user perspective I can somewhat relate but while I'm not involved in the firmware development for the SPS, code size is typically a big concern. As such I doubt we can consider a rather cosmetic fix like that. What you can of course do, is change the driver to report 0 in get_data_ready after you issued a stop_measurement, but it's likely not something we'd change in our drivers.

I'll close the issue as "won't fix".