#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 #include #include #include #include #include #include #include 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 status_data_; ///<首页 数据项-数据值 std::map eqp_status_; ///<首页 设备状态 六位码-状态[0-正常;1-报警] std::unique_ptr 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); };