From b3a5e9fa8973666f6d2281f2f7bdb481aa5709f5 Mon Sep 17 00:00:00 2001 From: wanggang <76527413@qq.com> Date: Mon, 30 Sep 2019 11:29:02 +0800 Subject: [PATCH] 1.0 rc.12 Former-commit-id: 8f85f63d5c67f19eae99e6fdb162d9b85d6f3b76 --- .../DeviceServices/FBee/FBeeService.cs | 35 +++++----- .../DeviceServices/Onvif/OnvifService.cs | 67 +++++++------------ projects/IoT/IoTNode/appsettings.json | 2 +- projects/IoTCenter/appsettings.json | 2 +- projects/IoTCenter/wwwroot/node.html | 6 +- 5 files changed, 50 insertions(+), 62 deletions(-) diff --git a/projects/IoT/IoT.Shared/DeviceServices/FBee/FBeeService.cs b/projects/IoT/IoT.Shared/DeviceServices/FBee/FBeeService.cs index 17da1621..af8f7296 100644 --- a/projects/IoT/IoT.Shared/DeviceServices/FBee/FBeeService.cs +++ b/projects/IoT/IoT.Shared/DeviceServices/FBee/FBeeService.cs @@ -76,7 +76,6 @@ namespace IoT.Shared.DeviceServices.FBee catch (Exception ex) { ex.PrintStack(); - this.Connect(item.Value); } } await Task.Delay(1000 * 60); @@ -187,28 +186,35 @@ namespace IoT.Shared.DeviceServices.FBee var gateways = deviceRepo.ReadOnlyTable().Where(o => o.Product.Name == "FBee网关").ToList(); foreach (var gateway in gateways) { - if (Clients.Any(o => o.Key == gateway.Number)) + try { - Clients.TryGetValue(gateway.Number, out TcpClientWrapper client); - if (client.Ip != gateway.Ip) + if (Clients.Any(o => o.Key == gateway.Number)) { - this.Connect(client); - } - else - { - if (!client.Client.Connected) + Clients.TryGetValue(gateway.Number, out TcpClientWrapper client); + if (client.Ip != gateway.Ip) { this.Connect(client); } + else + { + if (!client.Client.Connected) + { + this.Connect(client); + } + } } + else + { + var client = new TcpClientWrapper { Sn = gateway.Number, Ip = gateway.Ip, Client = new TcpClient() }; + Clients.TryAdd(gateway.Number, client); + this.Connect(client); + } + this.X81(gateway.Number); } - else + catch (Exception ex) { - var client = new TcpClientWrapper { Sn = gateway.Number, Ip = gateway.Ip, Client = new TcpClient() }; - Clients.TryAdd(gateway.Number, client); - this.Connect(client); + ex.PrintStack(); } - this.X81(gateway.Number); } } } @@ -386,7 +392,6 @@ namespace IoT.Shared.DeviceServices.FBee if (!client.Client.Connected) { this.Connect(client); - client.Client.GetStream().Write(bytes); } } } diff --git a/projects/IoT/IoT.Shared/DeviceServices/Onvif/OnvifService.cs b/projects/IoT/IoT.Shared/DeviceServices/Onvif/OnvifService.cs index 0f38a68f..16632412 100644 --- a/projects/IoT/IoT.Shared/DeviceServices/Onvif/OnvifService.cs +++ b/projects/IoT/IoT.Shared/DeviceServices/Onvif/OnvifService.cs @@ -171,52 +171,35 @@ namespace IoT.Shared.DeviceServices.Onvif } ipCamera.ParseProfiles(); - if (needAuth) - { - ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token); - ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token); - ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token); - ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token); - } - else - { - ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token); - ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token); - ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token); - ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token); - } - ipCamera.ParseStreamUri(); - ipCamera.ParseSnapshotUri(); - device.AddorUpdateData(device.CreateData("NeedAuth", needAuth ? "是" : "否", DeviceDataType.String, "需认证")); - device.AddorUpdateData(device.CreateData("HasAuth", hasAuth ? "是" : "否", DeviceDataType.String, "已认证")); - device.AddorUpdateData(device.CreateData("DeviceUrl", ipCamera.DeviceUrl, DeviceDataType.String, "设备地址")); - device.AddorUpdateData(device.CreateData("PtzAddress", ipCamera.PTZAddress, DeviceDataType.String, "云台地址")); - device.AddorUpdateData(device.CreateData("Ptz3DZoomSupport", ipCamera.Ptz3DZoomSupport ? "是" : "否", DeviceDataType.String, "缩放支持")); - device.AddorUpdateData(device.CreateData("MainToken", ipCamera.Profiles.First().Token, DeviceDataType.String, "主码流Token")); - device.AddorUpdateData(device.CreateData("SubToken", ipCamera.Profiles.Last().Token, DeviceDataType.String, "子码流Token")); - device.AddorUpdateData(device.CreateData("MainStreamUri", ipCamera.MainStreamUri, DeviceDataType.String, "主码流地址")); - device.AddorUpdateData(device.CreateData("MainSnapshotUri", ipCamera.MainSnapshotUri, DeviceDataType.String, "主码流截图地址")); - device.AddorUpdateData(device.CreateData("SubStreamUri", ipCamera.SubStreamUri, DeviceDataType.String, "子码流地址")); - device.AddorUpdateData(device.CreateData("SubSnapshotUri", ipCamera.SubSnapshotUri, DeviceDataType.String, "子码流截图地址")); try { - var jpgBytes = ScreenShot(device); - using (var stream = new MemoryStream(jpgBytes)) + if (needAuth) + { + ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token); + ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token); + ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token); + ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token); + } + else { - using (var bigImage = Image.FromStream(stream)) - { - var width = 640; - var height = 480; - using (var bitmap = new Bitmap(width, height)) - { - using (Graphics g = Graphics.FromImage((Image)bitmap)) - { - g.DrawImage(bigImage, 0, 0, width, height); - device.AddorUpdateData(device.CreateData("Snapshot", Convert.ToBase64String(bitmap.ToJpeg(80)), DeviceDataType.String, "截图")); - } - } - } + ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token); + ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token); + ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token); + ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token); } + ipCamera.ParseStreamUri(); + ipCamera.ParseSnapshotUri(); + device.AddorUpdateData(device.CreateData("NeedAuth", needAuth ? "是" : "否", DeviceDataType.String, "需认证")); + device.AddorUpdateData(device.CreateData("HasAuth", hasAuth ? "是" : "否", DeviceDataType.String, "已认证")); + device.AddorUpdateData(device.CreateData("DeviceUrl", ipCamera.DeviceUrl, DeviceDataType.String, "设备地址")); + device.AddorUpdateData(device.CreateData("PtzAddress", ipCamera.PTZAddress, DeviceDataType.String, "云台地址")); + device.AddorUpdateData(device.CreateData("Ptz3DZoomSupport", ipCamera.Ptz3DZoomSupport ? "是" : "否", DeviceDataType.String, "缩放支持")); + device.AddorUpdateData(device.CreateData("MainToken", ipCamera.Profiles.First().Token, DeviceDataType.String, "主码流Token")); + device.AddorUpdateData(device.CreateData("SubToken", ipCamera.Profiles.Last().Token, DeviceDataType.String, "子码流Token")); + device.AddorUpdateData(device.CreateData("MainStreamUri", ipCamera.MainStreamUri, DeviceDataType.String, "主码流地址")); + device.AddorUpdateData(device.CreateData("MainSnapshotUri", ipCamera.MainSnapshotUri, DeviceDataType.String, "主码流截图地址")); + device.AddorUpdateData(device.CreateData("SubStreamUri", ipCamera.SubStreamUri, DeviceDataType.String, "子码流地址")); + device.AddorUpdateData(device.CreateData("SubSnapshotUri", ipCamera.SubSnapshotUri, DeviceDataType.String, "子码流截图地址")); } catch (Exception ex) { diff --git a/projects/IoT/IoTNode/appsettings.json b/projects/IoT/IoTNode/appsettings.json index 857e388c..a32927a6 100644 --- a/projects/IoT/IoTNode/appsettings.json +++ b/projects/IoT/IoTNode/appsettings.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-rc.11", + "version": "1.0.0-rc.12", "Logging": { "LogLevel": { "Default": "Warning", diff --git a/projects/IoTCenter/appsettings.json b/projects/IoTCenter/appsettings.json index 8919826a..af2519d4 100644 --- a/projects/IoTCenter/appsettings.json +++ b/projects/IoTCenter/appsettings.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-rc.11", + "version": "1.0.0-rc.12", "Logging": { "LogLevel": { "Default": "Warning", diff --git a/projects/IoTCenter/wwwroot/node.html b/projects/IoTCenter/wwwroot/node.html index 1fa94994..38083839 100644 --- a/projects/IoTCenter/wwwroot/node.html +++ b/projects/IoTCenter/wwwroot/node.html @@ -473,9 +473,9 @@