From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Plugin.CurrentSensorControl/BurnInOven.xaml.cs |  260 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 260 insertions(+), 0 deletions(-)

diff --git a/Plugin.CurrentSensorControl/BurnInOven.xaml.cs b/Plugin.CurrentSensorControl/BurnInOven.xaml.cs
new file mode 100644
index 0000000..10b2b6c
--- /dev/null
+++ b/Plugin.CurrentSensorControl/BurnInOven.xaml.cs
@@ -0,0 +1,260 @@
+锘縰sing CommunityToolkit.Mvvm.ComponentModel;
+using HslCommunication.Profinet.Siemens;
+using PLCHelper;
+using Plugin.CurrentSensorControl.Entity;
+using System.Windows.Controls;
+
+namespace Plugin.CurrentSensorControl
+{
+    /// <summary>
+    /// BurnInOven.xaml 鐨勪氦浜掗�昏緫
+    /// </summary>
+    [ObservableObject]
+    public partial class BurnInOven : UserControl
+    {
+        private BaseConfig config;
+
+        private static readonly string[] datas = new string[] { "_LEDLight", "_Req", "_SetTemp", "_SaveTemp", "_TempDown", "_TempUp", "_AvgTemp" };
+
+        [ObservableProperty]
+        private string header;
+
+        [ObservableProperty]
+        private string req;
+        [ObservableProperty]
+        private string reqStatus;
+
+        [ObservableProperty]
+        private string coolerStatus;
+
+        [ObservableProperty]
+        private string setTemp;
+        [ObservableProperty]
+        private string saveTemp;
+        [ObservableProperty]
+        private string tempDown;
+        [ObservableProperty]
+        private string tempUp;
+        [ObservableProperty]
+        private string avgTemp;
+
+        private bool lightStatus;
+
+        public bool LightStatus
+        {
+            get => lightStatus;
+            set
+            {
+                try
+                {
+                    string name = $"Oven{ovenIndex + 1}_LEDLight";
+                    if (S7Context.WriteData(api, name, value))
+                    {
+                        lightStatus = value;
+                        OnPropertyChanged(nameof(lightStatus));
+                    }
+                }
+                catch (Exception ex)
+                {
+
+                }
+            }
+        }
+
+        private int ovenIndex;
+
+        private SiemensS7Net api;
+
+        private int cellCount;
+
+        private BurnInCell[] cells;
+
+        public BurnInOven(int ovenIndex)
+        {
+            this.ovenIndex = ovenIndex;
+            config = BaseConfig.Instance;
+            this.cellCount = config.PositionCount;
+            this.cells = new BurnInCell[cellCount];
+            DataContext = this;
+            api = S7Context.Get($"1");
+            InitializeComponent();
+            InitGrid();
+        }
+
+        private void InitGrid()
+        {
+            mainGrid.Columns = config.PositionColumn;
+            for (int i = 0; i < cellCount; i++)
+            {
+                var cell = new BurnInCell(ovenIndex, i);
+                cells[i] = cell;
+                mainGrid.Children.Add(cell);
+            }
+        }
+
+        public void Refresh()
+        {
+            try
+            {
+                //Task[] allTask = new Task[cells.Length];
+                //for (int i = 0; i < cells.Length; i++)
+                //{
+                //    var cell = cells[i];
+                //    var task = Task.Factory.StartNew(() =>
+                //    {
+                //        cell.Refresh();
+                //    });
+                //    allTask[i] = task;
+                //}
+                //Task.WaitAll(allTask);
+
+                foreach (var cell in cells)
+                {
+                    cell.Refresh();
+                }
+
+                string name;
+                object v;
+                foreach (var data in datas)
+                {
+                    name = $"Oven{ovenIndex + 1}{data}";
+                    if (S7Context.GetData(api, name, out v))
+                    {
+                        var val = v?.ToString();
+                        if (data == "_LEDLight")
+                        {
+                            lightStatus = bool.Parse(val);
+                            OnPropertyChanged("LightStatus");
+                        }
+                        else if (data == "_Req")
+                        {
+                            Req = val;
+                            if (val == "0")
+                            {
+                                ReqStatus = "鍋滄绛夊緟";
+                            }
+                            else if (val == "1")
+                            {
+                                ReqStatus = "鍔犵儹鍚姩";
+                            }
+                            else if (val == "2")
+                            {
+                                ReqStatus = "鍐峰嵈鍚姩";
+                            }
+                        }
+                        else if (data == "_SetTemp")
+                        {
+                            SetTemp = val;
+                        }
+                        else if (data == "_SaveTemp")
+                        {
+                            SaveTemp = val;
+                        }
+                        else if (data == "_TempDown")
+                        {
+                            TempDown = val;
+                        }
+                        else if (data == "_TempUp")
+                        {
+                            TempUp = val;
+                        }
+                        else if (data == "_AvgTemp")
+                        {
+                            AvgTemp = val;
+                        }
+                        else if (data == "_CoolerStatus")
+                        {
+                            if (val == "1")
+                            {
+                                CoolerStatus = "杩愭按";
+                            }
+                            else if (val == "2")
+                            {
+                                CoolerStatus = "鍚规按";
+                            }
+                            else if (val == "3")
+                            {
+                                CoolerStatus = "娴嬪帇";
+                            }
+                            else if (val == "0")
+                            {
+                                CoolerStatus = "鍋滄";
+                            }
+                        }
+                    }
+
+                    //;
+                    //if (api.DoFctReadSingle(name, out string val, out _))
+                    //{
+                    //    if (data == "_Req")
+                    //    {
+                    //        Req = val;
+                    //        if (val == "0")
+                    //        {
+                    //            ReqStatus = "鍋滄绛夊緟";
+                    //        }
+                    //        else if (val == "1")
+                    //        {
+                    //            ReqStatus = "鍔犵儹鍚姩";
+                    //        }
+                    //        else if (val == "2")
+                    //        {
+                    //            ReqStatus = "鍐峰嵈鍚姩";
+                    //        }
+                    //    }
+                    //    else if (data == "_SetTemp")
+                    //    {
+                    //        SetTemp = val;
+                    //    }
+                    //    else if (data == "_SaveTemp")
+                    //    {
+                    //        SaveTemp = val;
+                    //    }
+                    //    else if (data == "_TempDown")
+                    //    {
+                    //        TempDown = val;
+                    //    }
+                    //    else if (data == "_TempUp")
+                    //    {
+                    //        TempUp = val;
+                    //    }
+                    //    else if (data == "_AvgTemp")
+                    //    {
+                    //        AvgTemp = val;
+                    //    }
+                    //}
+                }
+
+                //if (api.Connec   (out string errMsg))
+                //{
+
+                //}
+                //else
+                //{
+                //    OPCContext.Connect($"Oven{ovenIndex}");
+                //    Thread.Sleep(1000);
+                //}
+            }
+            catch (Exception ex)
+            {
+
+            }
+        }
+
+        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
+        {
+            var btn = sender as Button;
+            string name = $"Oven{ovenIndex + 1}_Cmd";
+            S7Context.WriteData(api, name, short.Parse(btn.Tag.ToString()));
+            //api.DoFctWriteSingle(name, btn.Tag.ToString(), out string errMsg);
+        }
+
+        private void Button_Click2(object sender, System.Windows.RoutedEventArgs e)
+        {
+            var btn = sender as Button;
+            string name = $"Oven{ovenIndex + 1}_CoolerStatus";
+            S7Context.WriteData(api, name, ushort.Parse(btn.Tag.ToString()));
+            //api.DoFctWriteSingle(name, btn.Tag.ToString(), out string errMsg);
+        }
+    }
+}

--
Gitblit v1.9.1