elemy-sensortree 1.0.0
|
header with defines and structs for sensor More...
Go to the source code of this file.
Data Structures | |
struct | _node_fw_version_t |
версия прошивки узла More... | |
union | _node_addr_t |
адрес узла a0 - top level More... | |
struct | _node_serial_num_t |
struct | node_info_t |
struct | _node_status_t |
struct | _sensor_value_t |
struct | _sensors_node_t |
struct | _sensors_data_t |
Macros | |
#define | ST_A0_MASK (0x000f) |
#define | ST_A1_MASK (0x00ff) |
#define | ST_A2_MASK (0x0fff) |
#define | ST_A3_MASK (0xffff) |
#define | SERIAL_NUM_SZ (12) |
#define | MAX_SENSOR_VALUES_COUNT (3) |
#define | SENSOR_DATA_CRC_PTR(SENSOR_DATA) (uint16_t*)&(SENSOR_DATA->data.nodes[SENSOR_DATA->data.nodesСount]) |
#define | SENSOR_DATA_TOT_SIZE(SENSORS_NUMBER) (int)(SENSORS_NUMBER * sizeof(sensors_node_t) + sizeof(sensors_data_t)) |
#define | NODE_SERIAL_NUM_LENGTH (11) |
Typedefs | |
typedef union _node_addr_t | node_addr_t |
адрес узла a0 - top level More... | |
Enumerations | |
enum | __attribute__ { None = 0u , BusTester = 1u , TH23 , WaterLeak16 , Lum32 , Wind75 , FIRE4 , SN_VAL_UKNOWN = 0 , SN_VAL_INVALID , SN_VAL_VALID } |
enum | __attribute__ { None = 0u , BusTester = 1u , TH23 , WaterLeak16 , Lum32 , Wind75 , FIRE4 , SN_VAL_UKNOWN = 0 , SN_VAL_INVALID , SN_VAL_VALID } |
Functions | |
node_models_t | st_get_node_model (char *node_name) |
translate name to NODE_MODEL_T More... | |
char * | st_get_node_model_name (node_models_t nmt) |
get string with nbame of node type More... | |
struct _node_fw_version_t | __attribute__ ((packed)) node_fw_version_t |
версия прошивки узла More... | |
int | cmp_node_addr (node_addr_t a1, node_addr_t a2) |
compare node address More... | |
void | print_node_addr (node_addr_t *node_addr, char *msg) |
int | sn_addr_level (node_addr_t addr) |
cals address level 0.0.0.0 -> 0; 2.1.0.0 - ->1; 2.3.5.0 -> 2; 1.2.3.4 -> 3 More... | |
void | sn_print_serialnum (node_serial_num_t *nsn, char *msg) |
int | sn_test_serialnum_valid (const node_serial_num_t *node_serial_num) |
test is SysInfo serial num structure is valid More... | |
int | sn_build_serialnum (const node_serial_num_t *node_serial_num, char *sernum) |
build serial number string More... | |
int | sn_parse_serialnum (const char *sn, node_serial_num_t *nsn) |
node_info_t * | sn_init_node_info (node_info_t *p) |
sensor_value_t * | sn_init_sensor_value (sensor_value_t *p) |
node_status_t * | sn_init_node_status (node_status_t *p) |
sensors_node_t * | sn_init_sensors_node (sensors_node_t *p) |
sensors_data_t * | sn_init_sensors_data (sensors_data_t *p, int sz) |
Variables | |
typedef | __attribute__ |
uint8_t | sw_patch |
uint8_t | sw_minor |
uint8_t | sw_major |
uint8_t | boot |
uint8_t | hw_revision |
uint8_t | protocol |
uint16_t | a0 |
uint16_t | a1 |
uint16_t | a2 |
uint16_t | a3 |
uint8_t | code [4] |
uint8_t | year |
uint8_t | partNumber |
uint16_t | devNumber |
node_models_t | model |
node_serial_num_t | serialNumber |
node_fw_version_t | fw_version |
node_addr_t | addr |
uint16_t | configCrc |
uint8_t | available |
uint8_t | dataError |
sensor_value_state_t | state |
u_io_type_t | type |
union { | |
struct { | |
int32_t value | |
} analog | |
struct { | |
int16_t value | |
int8_t count | |
int8_t reserved | |
} discretes | |
}; | |
node_info_t | nodeInfo |
node_status_t | status |
uint8_t | valuesCount |
sensor_value_t | values [MAX_SENSOR_VALUES_COUNT] |
struct { | |
uint8_t updateCounter | |
uint8_t nodesСount | |
sensors_node_t nodes [0] | |
} | data |
uint16_t | crc |
header with defines and structs for sensor
Created on: 1 дек. 2023 г. Author: ps
#define MAX_SENSOR_VALUES_COUNT (3) |
#define NODE_SERIAL_NUM_LENGTH (11) |
#define SENSOR_DATA_CRC_PTR | ( | SENSOR_DATA | ) | (uint16_t*)&(SENSOR_DATA->data.nodes[SENSOR_DATA->data.nodesСount]) |
#define SENSOR_DATA_TOT_SIZE | ( | SENSORS_NUMBER | ) | (int)(SENSORS_NUMBER * sizeof(sensors_node_t) + sizeof(sensors_data_t)) |
#define SERIAL_NUM_SZ (12) |
#define ST_A0_MASK (0x000f) |
#define ST_A1_MASK (0x00ff) |
#define ST_A2_MASK (0x0fff) |
#define ST_A3_MASK (0xffff) |
typedef union _node_addr_t node_addr_t |
адрес узла a0 - top level
enum __attribute__ |
enum __attribute__ |
struct _node_fw_version_t __attribute__ | ( | (packed) | ) |
версия прошивки узла
Description of node in tree
PACKED because many in shared memory fields follow in optimized flow
int cmp_node_addr | ( | node_addr_t | a1, |
node_addr_t | a2 | ||
) |
compare node address
a1 | first address |
a2 | first address |
void print_node_addr | ( | node_addr_t * | node_addr, |
char * | msg | ||
) |
int sn_addr_level | ( | node_addr_t | addr | ) |
cals address level 0.0.0.0 -> 0; 2.1.0.0 - ->1; 2.3.5.0 -> 2; 1.2.3.4 -> 3
addr | node address |
int sn_build_serialnum | ( | const node_serial_num_t * | node_serial_num, |
char * | sernum | ||
) |
build serial number string
node_serial_num | ptr to node info struct |
sernum | ptr to target place at least 12 bytes. |
SerialNum rules: Code bytes must be alnum printable -> 4 bytes year: 0 - 99 -> 2 bytes partnum: 0 - 99 -> 2 bytes devnum: 0 - 999 -> 3 bytes ------—> 11 bytes,+0x0 -> 12bytes
node_info_t * sn_init_node_info | ( | node_info_t * | p | ) |
node_status_t * sn_init_node_status | ( | node_status_t * | p | ) |
sensor_value_t * sn_init_sensor_value | ( | sensor_value_t * | p | ) |
sensors_data_t * sn_init_sensors_data | ( | sensors_data_t * | p, |
int | sz | ||
) |
sensors_node_t * sn_init_sensors_node | ( | sensors_node_t * | p | ) |
int sn_parse_serialnum | ( | const char * | sn, |
node_serial_num_t * | nsn | ||
) |
parse serial number from string into node_serial_num_t
sn | ptr to serial num string |
nsn | ptr to structure to fill \retun 0 success |
void sn_print_serialnum | ( | node_serial_num_t * | nsn, |
char * | msg | ||
) |
int sn_test_serialnum_valid | ( | const node_serial_num_t * | node_serial_num | ) |
test is SysInfo serial num structure is valid
node_serial_num | pter to decvice serial num |
node_models_t st_get_node_model | ( | char * | node_name | ) |
translate name to NODE_MODEL_T
node_name | string with name of node |
char * st_get_node_model_name | ( | node_models_t | nmt | ) |
get string with nbame of node type
union { ... } |
struct _sensors_data_t __attribute__ |
Description of node in tree
PACKED because many in shared memory fields follow in optimized flow
uint16_t a0 |
uint16_t a1 |
uint16_t a2 |
uint16_t a3 |
node_addr_t addr |
struct { ... } analog |
uint8_t available |
uint8_t boot |
uint8_t code[4] |
uint16_t configCrc |
int8_t count |
uint16_t crc |
struct { ... } data |
uint8_t dataError |
uint16_t devNumber |
struct { ... } discretes |
node_fw_version_t fw_version |
uint8_t hw_revision |
node_models_t model |
node_info_t nodeInfo |
sensors_node_t nodes[0] |
uint8_t nodesСount |
uint8_t partNumber |
uint8_t protocol |
int8_t reserved |
node_serial_num_t serialNumber |
sensor_value_state_t state |
node_status_t status |
uint8_t sw_major |
uint8_t sw_minor |
uint8_t sw_patch |
u_io_type_t type |
uint8_t updateCounter |
int16_t value |
sensor_value_t values[MAX_SENSOR_VALUES_COUNT] |
uint8_t valuesCount |
uint8_t year |