diff --git a/Wpf_AiSportsMicrospace/Common/SportOperate.cs b/Wpf_AiSportsMicrospace/Common/SportOperate.cs index e7cd12a..7cb99ce 100644 --- a/Wpf_AiSportsMicrospace/Common/SportOperate.cs +++ b/Wpf_AiSportsMicrospace/Common/SportOperate.cs @@ -1,4 +1,7 @@ -using HandyControl.Controls; +using AiSportsMicrospaceDB.DBContext; +using Common; +using HandyControl.Controls; +using Microsoft.Extensions.DependencyInjection; using SportExpand; using System; using System.Collections.Generic; @@ -48,11 +51,21 @@ namespace Wpf_AiSportsMicrospace.Common { try { - _webcamClient = WebcamClient.CreateRTSP("172.17.30.64", "admin", "yd708090", 554u); + using var scope = App.AppHost.Services.CreateScope(); + var db = scope.ServiceProvider.GetRequiredService(); + var baseData = db.BasicConfig.FirstOrDefault(x => x.Code == AppSettings.Code); + if (baseData == null) + { + HandyControl.Controls.MessageBox.Show("请先配置摄像头网络!"); + return null; + } + + _webcamClient = WebcamClient.CreateRTSP(baseData.Host, baseData.UserName, baseData.Password, 554u); } catch (Exception) { HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); + return null; } return _webcamClient; @@ -92,7 +105,7 @@ namespace Wpf_AiSportsMicrospace.Common // ===== 右挥手判定 ===== if (rightValue == 1 || rightValue == 2) - _rightWaveCount++; + _rightWaveCount++; //else // _rightWaveCount = 0; diff --git a/Wpf_AiSportsMicrospace/MainWindow.xaml.cs b/Wpf_AiSportsMicrospace/MainWindow.xaml.cs index 9d03234..e3738a0 100644 --- a/Wpf_AiSportsMicrospace/MainWindow.xaml.cs +++ b/Wpf_AiSportsMicrospace/MainWindow.xaml.cs @@ -1,6 +1,8 @@ using AiSportsMicrospaceDB.DBContext; +using Common; using Emgu.CV.Reg; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; using SharpDX.Direct3D9; using SkiaSharp; using System.Diagnostics; @@ -24,6 +26,7 @@ using Yztob.AiSports.Postures.Sports; using Yztob.AiSports.Postures.Things; using Yztob.AiSports.Sensors.Abstractions; using Yztob.AiSports.Sensors.Things; +using static System.Formats.Asn1.AsnWriter; namespace Wpf_AiSportsMicrospace; @@ -75,6 +78,16 @@ public partial class MainWindow : Window { DrawCirclesWithText(); }; + + using var scope = App.AppHost.Services.CreateScope(); + var db = scope.ServiceProvider.GetRequiredService(); + var baseData = db.BasicConfig.FirstOrDefault(x => x.Code == AppSettings.Code); + if (baseData != null) + { + host.Text = baseData.Host; + userName.Text = baseData.UserName; + password.Text = baseData.Password; + } } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) diff --git a/Wpf_AiSportsMicrospace/Views/Home.xaml.cs b/Wpf_AiSportsMicrospace/Views/Home.xaml.cs index 8d91ae5..ba62a70 100644 --- a/Wpf_AiSportsMicrospace/Views/Home.xaml.cs +++ b/Wpf_AiSportsMicrospace/Views/Home.xaml.cs @@ -97,9 +97,9 @@ namespace Wpf_AiSportsMicrospace { _mainWin.HumanFrameUpdated += OnHumanFrameUpdated; - if (_mainWin.WebcamClient==null) + if (_mainWin.WebcamClient == null) { - HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); + //HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); return; } @@ -288,11 +288,12 @@ namespace Wpf_AiSportsMicrospace var app = (App)Application.Current; using var scope = App.AppHost.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); - var baseData = await db.BasicConfig.FirstOrDefaultAsync(x=>x.Code==AppSettings.Code); + var baseData = await db.BasicConfig.FirstOrDefaultAsync(x => x.Code == AppSettings.Code); if (baseData == null) { - baseData = new BasicConfig { Id = 1 , Host = host.Text , UserName = name.Text , Password = password.Text}; + baseData = new BasicConfig { Code = AppSettings.Code, Host = host.Text, UserName = name.Text, Password = password.Text }; db.BasicConfig.Add(baseData); + db.SaveChanges(); } else { @@ -308,15 +309,24 @@ namespace Wpf_AiSportsMicrospace var app = (App)Application.Current; using var scope = App.AppHost.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); - var baseData = await db.BasicConfig.FirstOrDefaultAsync(); + var baseData = await db.BasicConfig.FirstOrDefaultAsync(x => x.Code == AppSettings.Code); if (baseData == null) { - baseData = new BasicConfig { Id = 1 }; - db.BasicConfig.Add(baseData); + db.BasicConfig.Add(new BasicConfig + { + Code = AppSettings.Code, + Host = host.Text, + UserName = name.Text, + Password = password.Text + }); + } + else + { + baseData.Host = host.Text; + baseData.UserName = name.Text; + baseData.Password = password.Text; + db.BasicConfig.Update(baseData); } - baseData.Host = host.Text; - baseData.UserName = name.Text; - baseData.Password = password.Text; db.SaveChanges(); HandyControl.Controls.MessageBox.Show("保存成功!", "提示"); diff --git a/Wpf_AiSportsMicrospace/Views/JumpLong/StandingLeap.xaml.cs b/Wpf_AiSportsMicrospace/Views/JumpLong/StandingLeap.xaml.cs index db719ca..02f2167 100644 --- a/Wpf_AiSportsMicrospace/Views/JumpLong/StandingLeap.xaml.cs +++ b/Wpf_AiSportsMicrospace/Views/JumpLong/StandingLeap.xaml.cs @@ -378,7 +378,7 @@ namespace Views.JumpLong var app = (App)Application.Current; using var scope = App.AppHost.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); - var points = db.JumpLongPoints.FirstOrDefault(); + var points = db.JumpLongPoints.FirstOrDefault(x => x.Code == AppSettings.Code); // 检测起跳区域的人 @@ -436,7 +436,7 @@ namespace Views.JumpLong var app = (App)Application.Current; using var scope = App.AppHost.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); - var points = db.JumpLongPoints.FirstOrDefault(); + var points = db.JumpLongPoints.FirstOrDefault(x => x.Code == AppSettings.Code); // 检测起跳区域的人 diff --git a/Wpf_AiSportsMicrospace/Views/Main.xaml.cs b/Wpf_AiSportsMicrospace/Views/Main.xaml.cs index 1c2b7c8..1fc9f20 100644 --- a/Wpf_AiSportsMicrospace/Views/Main.xaml.cs +++ b/Wpf_AiSportsMicrospace/Views/Main.xaml.cs @@ -69,7 +69,7 @@ namespace Wpf_AiSportsMicrospace.Views { if (WebcamClient == null) { - HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); + //HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); return; } diff --git a/Wpf_AiSportsMicrospace/Views/Setting/LongSetting.xaml.cs b/Wpf_AiSportsMicrospace/Views/Setting/LongSetting.xaml.cs index 108707c..80c3ca3 100644 --- a/Wpf_AiSportsMicrospace/Views/Setting/LongSetting.xaml.cs +++ b/Wpf_AiSportsMicrospace/Views/Setting/LongSetting.xaml.cs @@ -156,7 +156,7 @@ namespace Wpf_AiSportsMicrospace.Views var app = (App)Application.Current; using var scope = App.AppHost.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); - var pointsData = await db.JumpLongPoints.FirstOrDefaultAsync(); + var pointsData = await db.JumpLongPoints.FirstOrDefaultAsync(x => x.Code == AppSettings.Code); if (pointsData != null) { // 加载 TopPoint1 @@ -210,47 +210,46 @@ namespace Wpf_AiSportsMicrospace.Views if (pointsData == null) { - pointsData = new JumpLongPoints { Id = 1 }; + pointsData = new JumpLongPoints(); + // 保存所有点的位置 + pointsData.TopPoint1 = new AiSportsMicrospaceDB.Entities.Point + { + X = Canvas.GetLeft(TopPoint1) + 10, + Y = Canvas.GetTop(TopPoint1) + 10 + }; + + pointsData.TopPoint2 = new AiSportsMicrospaceDB.Entities.Point + { + X = Canvas.GetLeft(TopPoint2) + 10, + Y = Canvas.GetTop(TopPoint2) + 10 + }; + + pointsData.TopPoint3 = new AiSportsMicrospaceDB.Entities.Point + { + X = Canvas.GetLeft(TopPoint3) + 10, + Y = Canvas.GetTop(TopPoint3) + 10 + }; + + pointsData.BottomPoint1 = new AiSportsMicrospaceDB.Entities.Point + { + X = Canvas.GetLeft(BottomPoint1) + 10, + Y = Canvas.GetTop(BottomPoint1) + 10 + }; + + pointsData.BottomPoint2 = new AiSportsMicrospaceDB.Entities.Point + { + X = Canvas.GetLeft(BottomPoint2) + 10, + Y = Canvas.GetTop(BottomPoint2) + 10 + }; + + pointsData.BottomPoint3 = new AiSportsMicrospaceDB.Entities.Point + { + X = Canvas.GetLeft(BottomPoint3) + 10, + Y = Canvas.GetTop(BottomPoint3) + 10 + }; + db.JumpLongPoints.Add(pointsData); } - - // 保存所有点的位置 - pointsData.TopPoint1 = new AiSportsMicrospaceDB.Entities.Point - { - X = Canvas.GetLeft(TopPoint1) + 10, - Y = Canvas.GetTop(TopPoint1) + 10 - }; - - pointsData.TopPoint2 = new AiSportsMicrospaceDB.Entities.Point - { - X = Canvas.GetLeft(TopPoint2) + 10, - Y = Canvas.GetTop(TopPoint2) + 10 - }; - - pointsData.TopPoint3 = new AiSportsMicrospaceDB.Entities.Point - { - X = Canvas.GetLeft(TopPoint3) + 10, - Y = Canvas.GetTop(TopPoint3) + 10 - }; - - pointsData.BottomPoint1 = new AiSportsMicrospaceDB.Entities.Point - { - X = Canvas.GetLeft(BottomPoint1) + 10, - Y = Canvas.GetTop(BottomPoint1) + 10 - }; - - pointsData.BottomPoint2 = new AiSportsMicrospaceDB.Entities.Point - { - X = Canvas.GetLeft(BottomPoint2) + 10, - Y = Canvas.GetTop(BottomPoint2) + 10 - }; - - pointsData.BottomPoint3 = new AiSportsMicrospaceDB.Entities.Point - { - X = Canvas.GetLeft(BottomPoint3) + 10, - Y = Canvas.GetTop(BottomPoint3) + 10 - }; - db.SaveChanges(); UpdateStatus("点数据保存成功"); } @@ -381,19 +380,17 @@ namespace Wpf_AiSportsMicrospace.Views var pointsData = db.JumpLongPoints.FirstOrDefault(x => x.Code == AppSettings.Code); if (pointsData == null) { - pointsData = new JumpLongPoints { Id = 1 }; - db.JumpLongPoints.Add(pointsData); + db.JumpLongPoints.Add(new JumpLongPoints + { + TopPoint1 = new AiSportsMicrospaceDB.Entities.Point { X = 245, Y = 741 }, + TopPoint2 = new AiSportsMicrospaceDB.Entities.Point { X = 1498, Y = 730 }, + TopPoint3 = new AiSportsMicrospaceDB.Entities.Point { X = 1689, Y = 724 }, + BottomPoint1 = new AiSportsMicrospaceDB.Entities.Point { X = 191, Y = 918 }, + BottomPoint2 = new AiSportsMicrospaceDB.Entities.Point { X = 1516, Y = 918 }, + BottomPoint3 = new AiSportsMicrospaceDB.Entities.Point { X = 1722, Y = 909 }, + }); } - var defaultPoints = new JumpLongPoints - { - TopPoint1 = new AiSportsMicrospaceDB.Entities.Point { X = 245, Y = 741 }, - TopPoint2 = new AiSportsMicrospaceDB.Entities.Point { X = 1498, Y = 730 }, - TopPoint3 = new AiSportsMicrospaceDB.Entities.Point { X = 1689, Y = 724 }, - BottomPoint1 = new AiSportsMicrospaceDB.Entities.Point { X = 191, Y = 918 }, - BottomPoint2 = new AiSportsMicrospaceDB.Entities.Point { X = 1516, Y = 918 }, - BottomPoint3 = new AiSportsMicrospaceDB.Entities.Point { X = 1722, Y = 909 }, - }; - pointsData = defaultPoints; + await db.SaveChangesAsync(); }