Loading...
Searching...
No Matches
phydat_t Struct Reference

Generic data structure for expressing physical values. More...

Detailed Description

Generic data structure for expressing physical values.

Physical data is expressed in a 3-dimensional tuple of values. In addition to the data fields, this struct contains further the (physical) unit and the scale factor of the data. The unit is expressed as constant. The scale factor is expressed as power of 10 (10^factor).

The combination of signed 16-bit numbers with and the scale factor gives us a very high dynamic range (from -32*10^-131 to 32*10^130). In a wider sense we are saving the values as fixed floating points...

The scale factor is identical for all 3 values.

In a traditional (scientific) computational system the obvious choice for the used data type would be to use floats. We are however on heavily resource constrained (even 8-bit) embedded systems, so we use int16_t here. As most sensor are in some way ADC based, they normally do not use a higher accuracy than 12-14bit, so using 16-bit integers to represent this data is good enough in most cases.

Definition at line 155 of file phydat.h.

#include <phydat.h>

Data Fields

int16_t val [PHYDAT_DIM]
 the 3 generic dimensions of data
 
uint8_t unit
 the (physical) unit of the data
 
int8_t scale
 the scale factor, 10^*scale*
 

Field Documentation

◆ scale

int8_t phydat_t::scale

the scale factor, 10^*scale*

Definition at line 158 of file phydat.h.

◆ unit

uint8_t phydat_t::unit

the (physical) unit of the data

Definition at line 157 of file phydat.h.

◆ val

int16_t phydat_t::val[PHYDAT_DIM]

the 3 generic dimensions of data

Definition at line 156 of file phydat.h.


The documentation for this struct was generated from the following file: