0

我正在开发一个需要使用 ONVIF 协议从摄像机接收事件(例如运动检测)的应用程序。

我已经从链接下载了最新的 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);
    }
);
4

1 回答 1

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);
        } 
});
于 2014-09-04T10:29:04.897 回答