动态配置修改

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 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<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)
{
HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
return null;
}
return _webcamClient;

View File

@ -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<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)

View File

@ -99,7 +99,7 @@ namespace Wpf_AiSportsMicrospace
if (_mainWin.WebcamClient == null)
{
HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
//HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
return;
}
@ -291,8 +291,9 @@ namespace Wpf_AiSportsMicrospace
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<AppDbContext>();
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);
}
db.SaveChanges();
HandyControl.Controls.MessageBox.Show("保存成功!", "提示");

View File

@ -378,7 +378,7 @@ namespace Views.JumpLong
var app = (App)Application.Current;
using var scope = App.AppHost.Services.CreateScope();
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;
using var scope = App.AppHost.Services.CreateScope();
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)
{
HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
//HandyControl.Controls.MessageBox.Show("摄像头网络异常,请重新连接!");
return;
}

View File

@ -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<AppDbContext>();
var pointsData = await db.JumpLongPoints.FirstOrDefaultAsync();
var pointsData = await db.JumpLongPoints.FirstOrDefaultAsync(x => x.Code == AppSettings.Code);
if (pointsData != null)
{
// 加载 TopPoint1
@ -210,10 +210,7 @@ namespace Wpf_AiSportsMicrospace.Views
if (pointsData == null)
{
pointsData = new JumpLongPoints { Id = 1 };
db.JumpLongPoints.Add(pointsData);
}
pointsData = new JumpLongPoints();
// 保存所有点的位置
pointsData.TopPoint1 = new AiSportsMicrospaceDB.Entities.Point
{
@ -251,6 +248,8 @@ namespace Wpf_AiSportsMicrospace.Views
Y = Canvas.GetTop(BottomPoint3) + 10
};
db.JumpLongPoints.Add(pointsData);
}
db.SaveChanges();
UpdateStatus("点数据保存成功");
}
@ -381,10 +380,7 @@ 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);
}
var defaultPoints = new JumpLongPoints
db.JumpLongPoints.Add(new JumpLongPoints
{
TopPoint1 = new AiSportsMicrospaceDB.Entities.Point { X = 245, Y = 741 },
TopPoint2 = new AiSportsMicrospaceDB.Entities.Point { X = 1498, Y = 730 },
@ -392,8 +388,9 @@ namespace Wpf_AiSportsMicrospace.Views
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();
}