动态配置修改

This commit is contained in:
tanglong 2026-01-14 10:19:08 +08:00
parent 74785ea130
commit e58284fb01
6 changed files with 101 additions and 68 deletions

View File

@ -1,4 +1,7 @@
using HandyControl.Controls; using AiSportsMicrospaceDB.DBContext;
using Common;
using HandyControl.Controls;
using Microsoft.Extensions.DependencyInjection;
using SportExpand; using SportExpand;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -48,11 +51,21 @@ namespace Wpf_AiSportsMicrospace.Common
{ {
try try
{ {
_webcamClient = WebcamClient.CreateRTSP("172.17.30.64", "admin", "yd708090", 554u); using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
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) catch (Exception)
{ {
HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
return null;
} }
return _webcamClient; return _webcamClient;
@ -92,7 +105,7 @@ namespace Wpf_AiSportsMicrospace.Common
// ===== 右挥手判定 ===== // ===== 右挥手判定 =====
if (rightValue == 1 || rightValue == 2) if (rightValue == 1 || rightValue == 2)
_rightWaveCount++; _rightWaveCount++;
//else //else
// _rightWaveCount = 0; // _rightWaveCount = 0;

View File

@ -1,6 +1,8 @@
using AiSportsMicrospaceDB.DBContext; using AiSportsMicrospaceDB.DBContext;
using Common;
using Emgu.CV.Reg; using Emgu.CV.Reg;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using SharpDX.Direct3D9; using SharpDX.Direct3D9;
using SkiaSharp; using SkiaSharp;
using System.Diagnostics; using System.Diagnostics;
@ -24,6 +26,7 @@ using Yztob.AiSports.Postures.Sports;
using Yztob.AiSports.Postures.Things; using Yztob.AiSports.Postures.Things;
using Yztob.AiSports.Sensors.Abstractions; using Yztob.AiSports.Sensors.Abstractions;
using Yztob.AiSports.Sensors.Things; using Yztob.AiSports.Sensors.Things;
using static System.Formats.Asn1.AsnWriter;
namespace Wpf_AiSportsMicrospace; namespace Wpf_AiSportsMicrospace;
@ -75,6 +78,16 @@ public partial class MainWindow : Window
{ {
DrawCirclesWithText(); DrawCirclesWithText();
}; };
using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
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) private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)

View File

@ -97,9 +97,9 @@ namespace Wpf_AiSportsMicrospace
{ {
_mainWin.HumanFrameUpdated += OnHumanFrameUpdated; _mainWin.HumanFrameUpdated += OnHumanFrameUpdated;
if (_mainWin.WebcamClient==null) if (_mainWin.WebcamClient == null)
{ {
HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); //HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
return; return;
} }
@ -288,11 +288,12 @@ namespace Wpf_AiSportsMicrospace
var app = (App)Application.Current; var app = (App)Application.Current;
using var scope = App.AppHost.Services.CreateScope(); using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>(); var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
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) 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.BasicConfig.Add(baseData);
db.SaveChanges();
} }
else else
{ {
@ -308,15 +309,24 @@ namespace Wpf_AiSportsMicrospace
var app = (App)Application.Current; var app = (App)Application.Current;
using var scope = App.AppHost.Services.CreateScope(); using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>(); var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
var baseData = await db.BasicConfig.FirstOrDefaultAsync(); var baseData = await db.BasicConfig.FirstOrDefaultAsync(x => x.Code == AppSettings.Code);
if (baseData == null) if (baseData == null)
{ {
baseData = new BasicConfig { Id = 1 }; db.BasicConfig.Add(new BasicConfig
db.BasicConfig.Add(baseData); {
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(); db.SaveChanges();
HandyControl.Controls.MessageBox.Show("保存成功!", "提示"); HandyControl.Controls.MessageBox.Show("保存成功!", "提示");

View File

@ -378,7 +378,7 @@ namespace Views.JumpLong
var app = (App)Application.Current; var app = (App)Application.Current;
using var scope = App.AppHost.Services.CreateScope(); using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>(); var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
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; var app = (App)Application.Current;
using var scope = App.AppHost.Services.CreateScope(); using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>(); var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
var points = db.JumpLongPoints.FirstOrDefault(); var points = db.JumpLongPoints.FirstOrDefault(x => x.Code == AppSettings.Code);
// 检测起跳区域的人 // 检测起跳区域的人

View File

@ -69,7 +69,7 @@ namespace Wpf_AiSportsMicrospace.Views
{ {
if (WebcamClient == null) if (WebcamClient == null)
{ {
HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!"); //HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
return; return;
} }

View File

@ -156,7 +156,7 @@ namespace Wpf_AiSportsMicrospace.Views
var app = (App)Application.Current; var app = (App)Application.Current;
using var scope = App.AppHost.Services.CreateScope(); using var scope = App.AppHost.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>(); var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
var pointsData = await db.JumpLongPoints.FirstOrDefaultAsync(); var pointsData = await db.JumpLongPoints.FirstOrDefaultAsync(x => x.Code == AppSettings.Code);
if (pointsData != null) if (pointsData != null)
{ {
// 加载 TopPoint1 // 加载 TopPoint1
@ -210,47 +210,46 @@ namespace Wpf_AiSportsMicrospace.Views
if (pointsData == null) 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); 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(); db.SaveChanges();
UpdateStatus("点数据保存成功"); UpdateStatus("点数据保存成功");
} }
@ -381,19 +380,17 @@ namespace Wpf_AiSportsMicrospace.Views
var pointsData = db.JumpLongPoints.FirstOrDefault(x => x.Code == AppSettings.Code); var pointsData = db.JumpLongPoints.FirstOrDefault(x => x.Code == AppSettings.Code);
if (pointsData == null) if (pointsData == null)
{ {
pointsData = new JumpLongPoints { Id = 1 }; db.JumpLongPoints.Add(new JumpLongPoints
db.JumpLongPoints.Add(pointsData); {
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(); await db.SaveChangesAsync();
} }