SFM Flow Meter Driver 1.0.0
API reference
Loading...
Searching...
No Matches
Classes | Namespaces
sfm_driver.hpp File Reference

Sensirion flow-meter I2C client: SF06 (SFM4300 data sheet §4) and SFx6000 (SFM6000D, SFC6xxx/SFM6xxx I2C interface reference v1.1). More...

#include "sfm_commands.hpp"
#include "sfm_i2c_interface.hpp"
#include "sfm_types.hpp"
#include <cstddef>
#include <cstdint>
Include dependency graph for sfm_driver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sfm::Driver< I2cT >
 SF06 flow-meter client. More...
 

Namespaces

namespace  sfm
 

Detailed Description

Sensirion flow-meter I2C client: SF06 (SFM4300 data sheet §4) and SFx6000 (SFM6000D, SFC6xxx/SFM6xxx I2C interface reference v1.1).

Start/stop continuous measurement per gas or binary mixture, single-frame read, concentration update, scale/offset/unit query, product identifier and general-call soft reset on both families; averaging and sleep on SF06; temperature through the output-buffer pointer on SFx6000. The family is learned from the product identifier (or given by the caller) and decides which start code means which gas. Every received 16-bit word is CRC-8 checked; every argument word is sent with its CRC-8.

Typical session:

auto id = dev.ReadProductIdentifier(); // idle mode only
dev.ConfigureAveraging(0); // idle only: average-until-read
dev.StartContinuous(sfm::Gas::CO2); // reads scaling first
auto m = dev.ReadMeasurement(); // every ≥0.5 ms
SF06 flow-meter client.
Definition sfm_driver.hpp:42
constexpr uint8_t kSfm4300Default
ADDR to GND or floating.
Definition sfm_commands.hpp:26
@ CO2
SF06 Gas 3 (SFM4300-20 only) · SFx6000 Gas 2.