• 快速入门
  • HTTP文档
  • .NET开发指南
  • DEMO下载
  • 调用HTTP常见问题
    Show / Hide Table of Contents
    • 快速开始
      • 引入依赖包
      • 初始化
      • 开启FBox所有监控点
      • 盒子状态变更推送
      • 实时数据变更推送
      • 获取盒子信息与盒子分组
      • 获取监控点分组与监控点
      • 写值
    • 驱动操作
      • 获取盒子PLC
      • 下载盒子plc
    • 监控点操作
      • 新增监控点条目
      • 更新及删除监控点
    • 报警操作
      • 获取盒子下所有报警条目
      • 获取报警历史记录数据
      • 新增报警条目
      • 更新及删除报警条目
    • 历史操作
      • 获取历史记录数据
      • 获取历史记录条目
      • 新增历史记录条目
      • 更新及删除历史记录条目

    实时数据推送

    前提条件:监控点已经开启,盒子每次掉线后,重新上线后均需要重新开点
    当监控点数据发生变化或者开启监控条目时,服务器推送消息。

    字段名 类型 参数描述
    boxSessionId int 目前可忽略
    values json数组 监控点的值集合,单个属性详情见下表
    boxUid string FBox的id

    value对应属性

    字段名 类型 参数描述
    id string 监控点条目uid
    value string 值,若条目配置小数位则需程序自己转,服务器不做任何中转
    status int 如果条目正常,则无此属性1:无数据,2:超时,3:错误,4:Socket异常,5:FDS错误,16:未完成

    侦听事件

    /// <summary>
    /// 启动
    /// </summary>
    public void Start()
    {
        // 通过参数登录服务器
        _fbox.Restart().Wait();
        //侦听实时数据变更事件
        _fbox.DataMonitorValueChanged += _fbox_DataMonitorValueChanged;
    }
    //在Program,Main函数中调用
    class Program
        {
            static void Main(string[] args)
            {
                using (var fbox = new FBoxDemo())
                {
                    fbox.Start();  //启动
                    fbox.StartAllDMonData();//开启FBox所有监控点
                }
            }
        }
    
    /// <summary>
    /// 实时数据变更函数
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void _fbox_DataMonitorValueChanged(object sender, IList<DataMonitorValueChangedArgs> e)
    {
        foreach (var dmon in e)
            Console.WriteLine($"dmv:{dmon.Uid}:{dmon.Value},{dmon.Status}");
    }
    
    Back to top Generated by DocFX