实时数据推送
前提条件:监控点已经开启,盒子每次掉线后,重新上线后均需要重新开点
当监控点数据发生变化或者开启监控条目时,服务器推送消息。
字段名 | 类型 | 参数描述 |
---|---|---|
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}");
}