RTU/src/system/libdatacenter/inc/dc_signal.h

44 lines
1.2 KiB
C++

#pragma once
#include "myBase.h"
#include "xxhash.h"
#include <string>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include "myDatacenter.h"
typedef struct stru_signal
{
uint32_t id;
XXH128_hash_t hash; // 128位哈希
std::string saddr; // 短地址
std::string desc; // 描述
uint8_t data_type; // 数据类型
// void *p_data; // 数据指针
std::vector<void *> vec_p_data; // 数据指针列表(支持多条目)
void *p_last_data; // 上一次数据指针
std::vector<void *> vec_p_default_data; // 默认值指针列表(支持多条目)
std::vector<std::string> link_saddrs;
std::unordered_set<std::string> link_set; // O(1) 查重
uint8_t ctrl_type; // 信号控制类型
stru_signal_param param; // 信号参数信息
std::vector<out_signal_change_cb> out_change_cb_list; // 输出类型信号变化回调函数列表
std::vector<signal_change_cb> change_cb_list; // 参数类型信号变化回调函数列表
}stru_signal;
bool dc_get_param_cfg_change();
void dc_set_param_cfg_change(bool change);
void dc_param_cfg_check();
void dc_signal_out_change_check();