#ifndef WAVE_FEATURE_SET_HPP_ #define WAVE_FEATURE_SET_HPP_ #include #include #include #include #include #include #include #define FEATURE_FILTER_CFG "/opt/configenv/feature_filter.json" #define WAVE_FILTER_CFG "/opt/configenv/wave_filter.json" typedef struct { uint16_t short_addr; // 全局配置的短地址写0 uint8_t x, y, z; } FeatureEntryUploadCfg; typedef struct { uint8_t x, y, z; } FeatureEntryPrivateCfg; class WaveFeatureSetting { public: WaveFeatureSetting(); // Feature set int GetFeatureCfg(uint16_t short_addr, uint8_t &x, uint8_t &y, uint8_t &z); // 获取单个 void SetFeatureCfg(uint16_t short_addr, uint8_t x, uint8_t y, uint8_t z); // 设置单个传感器 void SetAllFeatureCfg(std::vector cfg); // 设置所有的 int GetAllFeatureCfg(std::vector &cfg); // 获取所有的 void RemoveFeatureCfg(uint16_t short_addr); void RemoveAllFeatureCfg(); // Wave set int GetWaveCfg(uint16_t short_addr, uint8_t &x, uint8_t &y, uint8_t &z); // 获取单个 void SetWaveCfg(uint16_t short_addr, uint8_t x, uint8_t y, uint8_t z); // 设置单个传感器 void SetAllWaveCfg(std::vector cfg); // 设置所有的 int GetAllWaveCfg(std::vector &cfg); // 获取所有的 void RemoveWaveCfg(uint16_t short_addr); void RemoveAllWaveCfg(); private: void WriteFeatureCfgFile(); FeatureEntryUploadCfg global_feature_; std::map eigen_map_; void WriteWaveCfgFile(); FeatureEntryUploadCfg global_wave_; std::map wave_map_; }; typedef boost::container::dtl::singleton_default wave_feature_set_inst; #endif // WAVE_FEATURE_SET_HPP_