Example #1
0
        private void but_onvif_Click(object sender, EventArgs e)
        {
            if (onvifthreadrun)
            {
                onvifthreadrun = false;
                return;
            }

            var ip       = "127.0.0.1";
            var port     = 80;
            var ipport   = txt_onvifip.Text;
            var user     = txt_onvifuser.Text;
            var password = txt_onvifpassword.Text;

            Settings.Instance["Dowding_onvifipport"]   = ipport;
            Settings.Instance["Dowding_onvifusername"] = user;
            Settings.Instance["Dowding_onvifpassword"] = password;
            Settings.Instance.Save();

            if (ipport.Contains(":"))
            {
                ip   = ipport.Split(':')[0];
                port = int.Parse(ipport.Split(':')[1]);
            }
            else
            {
                ip = ipport;
            }

            Task.Run(async() =>
            {
                try
                {
                    device         = await new OnvifDevice(ip, port, user, password).Setup().ConfigureAwait(false);
                    onvifthreadrun = true;

                    DowdingPlugin.UpdateOutput += OnvifUpdate;

                    while (onvifthreadrun)
                    {
                        Thread.Sleep(1000);
                    }
                }
                catch (Exception ex)
                {
                    CustomMessageBox.Show("Failed to connect/send to tracker " + ex.Message, Strings.ERROR);
                    return;
                }
                finally
                {
                    DowdingPlugin.UpdateOutput -= OnvifUpdate;
                }
            });
        }
        public async Task SendRequests()
        {
            try
            {
                //create a pipeline topology and live pipeline
                var pipelineTopology = BuildPipelineTopology();
                var livePipeline     = BuildLivePipeline(pipelineTopology.Name);

                //set topology without using helper function
                #region Snippet:Azure_VideoAnalyzerSamples_InvokeDirectMethod
                var setPipelineTopRequest = new PipelineTopologySetRequest(pipelineTopology);

                var directMethod = new CloudToDeviceMethod(setPipelineTopRequest.MethodName);
                directMethod.SetPayloadJson(setPipelineTopRequest.GetPayloadAsJson());

                var setPipelineTopResponse = await _serviceClient.InvokeDeviceMethodAsync(_deviceId, _moduleId, directMethod);

                #endregion Snippet:Azure_VideoAnalyzerSamples_InvokeDirectMethod

                // get a topology using helper function
                var getPipelineTopRequest = await InvokeDirectMethodHelper(new PipelineTopologyGetRequest(pipelineTopology.Name));

                var getPipelineTopResponse = PipelineTopology.Deserialize(getPipelineTopRequest.GetPayloadAsJson());

                // list all  topologies
                var listPipelineTopRequest = await InvokeDirectMethodHelper(new PipelineTopologyListRequest());

                var listPipelineTopResponse = PipelineTopologyCollection.Deserialize(listPipelineTopRequest.GetPayloadAsJson());

                //set live pipeline
                var setLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineSetRequest(livePipeline));

                //activate live pipeline
                var activateLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineActivateRequest(livePipeline.Name));

                //get live pipeline
                var getLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineGetRequest(livePipeline.Name));

                var getLivePipelineResponse = LivePipeline.Deserialize(getLivePipelineRequest.GetPayloadAsJson());

                // list all live pipeline
                var listLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineListRequest());

                var listLivePipelineResponse = LivePipelineCollection.Deserialize(listLivePipelineRequest.GetPayloadAsJson());

                //getlive pipeline
                var deactiveLivePipeline = await InvokeDirectMethodHelper(new LivePipelineDeactivateRequest(livePipeline.Name));

                var deleteLivePipeline = await InvokeDirectMethodHelper(new LivePipelineDeleteRequest(livePipeline.Name));

                //delete live pipeline
                var deletePipelineTopology = await InvokeDirectMethodHelper(new PipelineTopologyDeleteRequest(pipelineTopology.Name));

                //get an onvif device
                var onvifDeviceGetRequest = await InvokeDirectMethodHelper(new OnvifDeviceGetRequest(new UnsecuredEndpoint("rtsp://camerasimulator:8554")));

                var onvifDeviceGetResponse = OnvifDevice.Deserialize(onvifDeviceGetRequest.GetPayloadAsJson());

                //get all onvif devices on the network
                var onvifDiscoverRequest = await InvokeDirectMethodHelper(new OnvifDeviceDiscoverRequest());

                var onvifDiscoverResponse = DiscoveredOnvifDeviceCollection.Deserialize(onvifDiscoverRequest.GetPayloadAsJson());

                // create a remote device adapter and send a set request for it
                var iotDeviceName    = "iotDeviceSample";
                var remoteDeviceName = "remoteDeviceSample";
                var iotDevice        = await GetOrAddIoTDeviceAsync(iotDeviceName);

                var remoteDeviceAdapter           = CreateRemoteDeviceAdapter(remoteDeviceName, iotDeviceName, iotDevice.Authentication.SymmetricKey.PrimaryKey);
                var remoteDeviceAdapterSetRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterSetRequest(remoteDeviceAdapter));

                var remoteDeviceAdapterSetResponse = RemoteDeviceAdapter.Deserialize(remoteDeviceAdapterSetRequest.GetPayloadAsJson());

                //get a remote device adapter
                var remoteDeviceAdapterGetRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterGetRequest(remoteDeviceName));

                var remoteDeviceAdapterGetResponse = RemoteDeviceAdapter.Deserialize(remoteDeviceAdapterGetRequest.GetPayloadAsJson());

                //list all remote device adapters
                var remoteDeviceAdapterListRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterListRequest());

                var remoteDeviceAdapterListResponse = RemoteDeviceAdapterCollection.Deserialize(remoteDeviceAdapterListRequest.GetPayloadAsJson());

                //delete a remote device adapater
                var remoteDeviceAdapterDeleteRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterDeleteRequest(remoteDeviceName));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Assert.Fail();
            }
        }