Generic data container for physical data interface. More...
Generic data container for physical data interface.
Definition in file phydat.h.
Go to the source code of this file.
Data Structures | |
struct | phydat_t |
Generic data structure for expressing physical values. More... | |
Macros | |
#define | PHYDAT_DIM (3U) |
The fixed number of dimensions we work with. | |
#define | PHYDAT_SCALE_STR_MAXLEN (sizeof("*E-128\0")) |
The maximum length of a scaling string. | |
#define | PHYDAT_MIN (INT16_MIN) |
Minimum value for phydat_t::val. | |
#define | PHYDAT_MAX (INT16_MAX) |
Maximum value for phydat_t::val. | |
Enumerations | |
enum | { UNIT_UNDEF , UNIT_NONE , UNIT_TEMP_C , UNIT_TEMP_F , UNIT_TEMP_K , UNIT_LUX , UNIT_M , UNIT_M2 , UNIT_M3 , UNIT_G_FORCE , UNIT_G = UNIT_G_FORCE , UNIT_DPS , UNIT_GRAM , UNIT_GR = UNIT_GRAM , UNIT_A , UNIT_V , UNIT_W , UNIT_GAUSS , UNIT_GS = UNIT_GAUSS , UNIT_T , UNIT_DBM , UNIT_COULOMB , UNIT_F , UNIT_OHM , UNIT_PH , UNIT_BAR , UNIT_PA , UNIT_CD , UNIT_BOOL , UNIT_CTS , UNIT_PERCENT , UNIT_PERMILL , UNIT_PPM , UNIT_PPB , UNIT_TIME , UNIT_DATE , UNIT_GPM3 , UNIT_CPM3 } |
Definition of physical units and comparable data types. More... | |
Functions | |
void | phydat_dump (phydat_t *data, uint8_t dim) |
Dump the given data container to STDIO. | |
void | phydat_unit_print (uint8_t unit) |
Print a unit. | |
ssize_t | phydat_unit_write (char *dest, size_t max_size, uint8_t unit) |
Write the string representation of the given unit into the given buffer. | |
char | phydat_prefix_from_scale (int8_t scale) |
Convert the given scale factor to an SI prefix. | |
void | phydat_fit (phydat_t *dat, const int32_t *values, unsigned int dim) |
Scale integer value(s) to fit into a phydat_t. | |
size_t | phydat_to_json (const phydat_t *data, size_t dim, char *buf) |
Convert the given phydat_t structure into a JSON string. | |
int64_t | phydat_date_time_to_unix (phydat_t *date, phydat_t *time, int32_t offset_seconds) |
Convert a date and time contained in phydat structs to a Unix timestamp. | |
int64_t | phydat_unix (int16_t year, int16_t month, int16_t day, int16_t hour, int16_t minute, int16_t second, int32_t offset) |
Convert a date and time (per ISO8601) to a Unix timestamp (seconds since 1970). | |