eis/eqpm/eqp_status.h

73 lines
2.2 KiB
C
Raw Normal View History

#pragma once
/**
* @file eqp_status.h
* @brief
* @author your name (you@domain.com)
* @version 0.1
* @date 2025-09-09
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <Ice/BuiltinSequences.h>
#include <chrono>
#include <eqpm/table_struct/t_eqp_data.h>
#include <glob/BinaryTele.h>
#include <log4cplus/LOG.h>
#include <map>
#include <memory>
#include <mix_cc/json.h>
using namespace baosight;
class EqpStatus {
public:
EqpStatus();
~EqpStatus();
string get_eqp_status();
/**
* @brief ice消息
* @param event_no My Param doc
* @param seq My Param doc
* @param length My Param doc
*/
void dispose(int event_no, const ::Ice::ByteSeq &seq, ::Ice::Int length);
/**
* @brief
*/
void update_alarm_info();
/**
* @brief
*/
void update_coil_info();
private:
std::map<std::string, double> status_data_; ///<首页 数据项-数据值
std::map<std::string, int>
eqp_status_; ///<首页 设备状态 六位码-状态[0-正常;1-报警]
std::unique_ptr<LOG> logger_;
mix_cc::json eqp_status_json_; ///<给画面的数据
mix_cc::json eqp_status_config_json_; ///<数据项配置
void init();
bool is_init_ = false;
BinaryTele *p_btel;
private:
/**
* @brief
* @param eqpid id
* @param dealresult :0-1--1
* @return int
*/
int select_alarm_count(string eqpid, int dealresult);
/**
* @brief
* @param eqpid id
* @param statuscode abc,a:1-2-
* b:0-1-2-3-;
* c:0-1-2-3-
* 100/200
* @return int
*/
int select_alarm_count(string eqpid, short statuscode = 100);
};