using guoke; using SqlSugar; using System.Windows; using System.Windows.Controls; using WpfApp.Services; using WpfApp.src.components; using WpfApp.src.controllers; using WpfApp.Utils; namespace WpfApp; /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private readonly LogService log; private readonly DatabaseService db; private readonly EventService even; private readonly MenuController menu; private readonly ChartManager chartManager; private readonly CancellationTokenSource chartCts = new CancellationTokenSource(); private readonly SensorChartManager sensorManager; private bool isDetecting = false; // 传感器检测状态 public MainWindow(LogService logService, DatabaseService databaseService, EventService eventService) { InitializeComponent(); log = logService; db = databaseService; even = eventService; menu = new MenuController(this);// 初始化菜单控制器 sensorManager = new SensorChartManager(this, log, db, even) { Sensor1 = Sensor1, Sensor2 = Sensor2, Sensor3 = Sensor3 }; sensorManager.Stop(); // 记录窗口初始化日志 log.Info("MainWindow", "主窗口已通过依赖注入初始化"); log.Info("窗体启动"); even.AddEventHandler("GeneralEvent", (m, d) => { log.Info($"接收到事件:{d.Data}"); }); WindowHelper.SetWindowTitle(this, "FMSDGAUGE"); // 设置标题 chartManager = new ChartManager(Dispatcher, log, db, even); chartManager.InitChart(myChart1); chartManager.InitChart(myChart2); chartManager.InitChart(myChart3); } private void Button_Click(object sender, RoutedEventArgs e) { SqlSugarScope scope = db.GetScope("LocalData"); scope.guokeCheckToCreate();//检查并创建表 even.TriggerEvent("GeneralEvent", this, new GeneralEventArgs("测试", 1)); } public class aaa : BaseTableModel{} #region 菜单点击按钮绑定 private void OnFilePageButtonClick(object sender, RoutedEventArgs e) => menu.OpenFilePage(); private void OnConfigPageButtonClick(object sender, RoutedEventArgs e) => menu.OpenConfigPage(); private void OnStandardPageButtonClick(object sender, RoutedEventArgs e) => menu.OpenStandardPage(); private void OnGaugePageButtonClick(object sender, RoutedEventArgs e) => menu.OpenGaugePage(); private void OnCgCgkPageButtonClick(object sender, RoutedEventArgs e) => menu.OpenCgCgkPage(); private void OnSysSetPageButtonClick(object sender, RoutedEventArgs e) => menu.OpenSysSetPage(); #endregion #region 关闭和测试按钮 private void OnCloseMainWindowButtonClick(object sender, RoutedEventArgs e) => WindowHelper.CloseWindow(this); /// 按钮点击触发关闭页面 private void OnDemoButtonClick(object sender, RoutedEventArgs e){} /// 测试按钮 #endregion /// /// 控制传感器的采集开始和结束 /// /// /// private void BtnSensorControl_Click(object sender, RoutedEventArgs e) { if (!isDetecting) { // 开始检测 // 清空之前图表数据 chartManager.ClearAllCharts(); sensorManager.Start(); //chartManager.Start(); // 启动图表刷新 BtnSensorControl.Content = "检测确定"; isDetecting = true; } else { // 停止检测 sensorManager.Stop(); //chartManager.Stop(); // 停止图表刷新 BtnSensorControl.Content = "检测开始"; isDetecting = false; } } /// /// 等级选择下拉框变化事件处理 /// /// /// private void LevelComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (sender is ComboBox comboBox && comboBox.SelectedItem is ComboBoxItem selectedItem) { // 根据选择的Tag确定等级 SensorLevel selectedLevel = SensorLevel.Medium; // 默认值 switch (selectedItem.Tag?.ToString()) { case "Low": selectedLevel = SensorLevel.Low; break; case "Medium": selectedLevel = SensorLevel.Medium; break; case "High": selectedLevel = SensorLevel.High; break; } // 更新所有传感器图表的等级 Sensor1.Level = selectedLevel; Sensor2.Level = selectedLevel; Sensor3.Level = selectedLevel; } } }