#pragma once

#include "myBase.h"
#include "xxhash.h"
#include "mySystem.h"

#include <string>
#include <vector>
#include <unordered_map>


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;
    // stru_signal_ctrl ctrl;    // 信号扩展信息
    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();

