eis/RICS/RICS_alg.h

67 lines
1.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
/**
* @file RICS_alg.h
* @brief 从 DsmMapConfig::TableNameZONE10)共享文件 读取 start end tags
* 查ihd获取数据保存文件
* @author your name (you@domain.com)
* @version 0.1
* @date 2025-10-10
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <RICS/item2chinese.hpp>
#include <RICS/public.h>
#include <common/Macro.h>
#include <glob/SingletonTemplate.h>
#include <log4cplus/LOG.h>
#include <memory>
#include <nlohmann/json.hpp>
#include <string>
#include <vector>
#include <zlib/MemCachedClient.h> ///MemCachedClient
#include <zlib/MemVar.h>
#include <zlib/zoneDef.h>
using json = nlohmann::json;
using namespace baosight;
class RICSAlg {
private:
std::unique_ptr<LOG> logger_;
std::map<int, CfgRuleInfo> alg_rule_info_; ///<规则信息 ruleid-RuleInfo
std::map<string, string> key2values;
std::map<int, int> alg_2_tagMax; ///<算法 对应 tagMax
MemCachedClient m_memclient; ///< MemCachedClient
const vector<int> AlgId = {1, 2, 3, 4, 5, 6, 7, 8,
12, 13, 14, 15, 16, 17, 18};
string unitNo_ = string(CMemVar::Const()->UnitNo); ///<机组号
public:
RICSAlg();
~RICSAlg();
/**
* @brief 根据算法好处理数据
* @param ruleid My Param doc
*/
void alg_handle(int algid);
/**
* @brief 定时保存数据
* 1. 获取所有的ruleid
* 2.遍历ruleid检测共享内存是否有ruleid的key
* 3.调用RICS_handle
*/
void timed_task();
void dispose(int event_no, const ::Ice::ByteSeq &);
/**
* @brief 分算法号 处理信息 表达式 参数
* @param param My Param doc
* @param ruleInfo My Param doc
*/
void exp_handle(json &funciton_param, RuleInfo &ruleInfo, int algid);
string get_json_by_algid(int algid);
bool write_memcaced(string jkey, string jvalue);
};