我正在开发一个需要使用ONVIF协议从相机接收事件(例如运动检测)的应用程序。
我已经从link下载了最新的ONVIF设备管理版本,并且能够编译并运行它。
我想使用提供的库在我自己的源代码中创建类似于Onvif设备管理器的DeviceEventsView.xaml的东西,但是我很难确定代码的哪一部分来自库本身。
有人可以如此善意地向我解释如何做到这一点吗?
这是我到目前为止所做的工作(此代码可能完全错误):
OdmSession session = new OdmSession(this.session);
IObservable<OnvifEvent> x = session.GetBaseEvents(554);
x.Subscribe(
onvifEvent =>
{
try
{
// don't know exactly what to do here
}
catch (Exception err)
{
dbg.Error(err);
}
}, err =>
{
dbg.Error(err);
}
);
答案 0 :(得分:0)
我要回答我自己的问题。这是解决我问题的代码:
onvif.utils.OdmSession odmSession = new onvif.utils.OdmSession(session);
odmSession.GetPullPointEvents().Subscribe(
onvifEvent =>
{
try
{
foreach (var s in onvifEvent.message.Data.simpleItem)
{
if (s.name == "LogicalState")
{
// code here
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
});