From 6caff8e3b06535a9652a791454135cf0e6ac110e Mon Sep 17 00:00:00 2001
From: kingno <30263@KINGNO>
Date: 星期一, 23 六月 2025 09:59:46 +0800
Subject: [PATCH] 新增篮具码,界面

---
 src/Bro.M141.Process/M141Config.cs |  139 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 133 insertions(+), 6 deletions(-)

diff --git a/src/Bro.M141.Process/M141Config.cs b/src/Bro.M141.Process/M141Config.cs
index d403b81..ad9ed79 100644
--- a/src/Bro.M141.Process/M141Config.cs
+++ b/src/Bro.M141.Process/M141Config.cs
@@ -13,11 +13,18 @@
 using System.Drawing.Printing;
 using System.Reflection;
 using System.Windows.Forms.Design;
+using static Bro.Common.Helper.EnumHelper;
 
 namespace Bro.M141.Process
 {
     public class M141Config : ProcessConfigBase
     {
+      
+
+
+
+
+
         [Category("鎵撳嵃鏈洪厤缃�")]
         [Description("鎵撳嵃鏈洪厤缃泦鍚�")]
         [DisplayName("鎵撳嵃鏈洪厤缃泦鍚�")]
@@ -31,6 +38,7 @@
         [Description("瀛椾綋澶у皬")]
         [DisplayName("瀛椾綋澶у皬")]
         public int FontSize_p { get; set; } = 15;
+
 
         [Category("浜у搧鏄剧ず鐣岄潰閰嶇疆")]
         [Description("姣忚鍒楁暟")]
@@ -65,8 +73,39 @@
         [Category("妫�娴嬪紓甯告寚绀�")]
         [Description("閫夋嫨鏌愪釜Spec锛屽叾琛ㄧず妫�娴嬭繃绋嬩腑寮傚父")]
         [DisplayName("寮傚父鎸囩ず鏍囧噯")]
-        [TypeConverter(typeof(SpecCodeSelectorConverter))]
+        [TypeConverter(typeof(SpecCodeSelectorConverter))] 
         public string CheckErrorSpecCode { get; set; } = "";
+
+
+        [Category("鐗瑰畾缂洪櫡閰嶇疆")]
+        [Description("S3鍜孲5鍏卞悓鍒ゆ柇缂洪櫡")]
+        [DisplayName("缂洪櫡鍚嶇О")]
+        [TypeConverter(typeof(GlobalDefectNameConverter))]
+        public string defectname { get; set; } = "";
+
+        private class GlobalDefectNameConverter : StringConverter
+        {
+            public override bool GetStandardValuesExclusive(ITypeDescriptorContext? context)
+            {
+                return false;
+            }
+
+            public override bool GetStandardValuesSupported(ITypeDescriptorContext? context)
+            {
+                return true;
+            }
+
+            public override StandardValuesCollection? GetStandardValues(ITypeDescriptorContext? context)
+            {
+                using (var scope = GlobalVar.Container.BeginLifetimeScope())
+                {
+                    var config = scope.Resolve<IProcessConfig>();
+
+                    return new StandardValuesCollection((config as IDefectSwitcher).DefectSwitchCollection.Select(u => u.DefectName).ToList());
+                }
+            }
+        }
+
 
 
         [Category("浣嶇疆搴﹁缃�")]
@@ -237,16 +276,13 @@
         [Editor(typeof(ComplexCollectionEditor<PLCAlarmDetails>), typeof(UITypeEditor))]
         public List<PLCAlarmDetails> AlarmDetails { get; set; } = new List<PLCAlarmDetails>();
 
-
-
-
         public string GetDisplayText()
         {
             return plcname + (isused ? "鍚敤" : "绂佺敤");
         }
     }
 
-    public class PLCAlarmDetails : IComplexDisplay
+    public class PLCAlarmDetails : IComplexDisplay, IImportFromFileInEditor
     {
         [Category("閰嶇疆")]
         [DisplayName("棣栧湴鍧�")]
@@ -271,6 +307,74 @@
         {
             return alarmname;
         }
+
+
+
+        public IImportFromFileInEditor GetImportObject(string data, out string msg)
+        {
+            msg = "";
+            PLCAlarmDetails ret = new PLCAlarmDetails();
+            try
+            {
+                var temchar = data.Split(',');
+                ret.alarmname = temchar[0];
+                ret.address =Convert.ToInt32(temchar[1]);
+                ret.address2 = Convert.ToInt32(temchar[2]);
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+
+            return ret;
+
+        }
+
+        public bool ICSVOutput(object o)
+        {
+            try
+            {
+                if (o is List<PLCAlarmDetails> Pl)
+                {
+                    SaveFileDialog saveFileDialog = new SaveFileDialog();
+                    saveFileDialog.Filter = "CSV files (*.csv)|*.csv"; // 璁剧疆鏂囦欢杩囨护鍣紝鍙樉绀篊SV鏂囦欢
+                    saveFileDialog.Title = "Save CSV File"; // 璁剧疆瀵硅瘽妗嗘爣棰�
+                    saveFileDialog.FileName = "PLCAlarms"; // 榛樿鏂囦欢鍚�
+                    saveFileDialog.DefaultExt = "csv"; // 榛樿鏂囦欢鎵╁睍鍚�
+                    string filePath = "";
+                    if (saveFileDialog.ShowDialog() == DialogResult.OK)
+                    {
+                        filePath = saveFileDialog.FileName; // 鑾峰彇鐢ㄦ埛閫夋嫨鐨勬枃浠惰矾寰�
+                    }
+                    else
+                    {
+                        return false;
+                    }
+
+                    using (StreamWriter writer = new StreamWriter(filePath))
+                    {
+                        // 鍐欏叆鏍囬琛�
+                        writer.WriteLine("鎶ヨ鍚嶇О,棣栧湴鍧�,瀛愬湴鍧�");
+                        // 鍐欏叆鏁版嵁琛�
+                        foreach (var row in Pl)
+                        {
+                            writer.WriteLine($"{row.alarmname},{row.address},{row.address2}");
+                        }
+                    }
+                }
+            }
+            catch
+            {
+
+            }
+            return true;
+        }
+
+
+
+
+
+
     }
 
 
@@ -298,6 +402,11 @@
         [DisplayName("鍥惧儚绱㈠紩")]
         [Description("搴斿鍗曟妫�娴嬮」闇�瑕佸娆℃媿鐓ф椂锛岃褰曞浘鐗囩殑绱㈠紩鍙凤紝浠�0寮�濮�")]
         public int ImageIndex { get; set; } = 0;
+
+        [Category("鍚敤閰嶇疆")]
+        [DisplayName("鍥哄畾妫�娴嬮」")]
+        [Description("true锛氳妫�娴嬮」鏄浐瀹氭娴嬮」鐩紝蹇呴』鎵ц false锛氳妫�娴嬫槸鍙彉妫�娴嬮」鐩紝娴佺▼涓喅瀹氭槸鍚︽娴嬶紝榛樿涓嶆娴�")]
+        public bool IsFixed { get; set; } = true;
 
         [Category("鍙栧儚璁剧疆")]
         [DisplayName("鐩告満閫夋嫨")]
@@ -357,7 +466,10 @@
         [DisplayName("OK鍥剧墖淇濆瓨寮�鍏�")]
         public bool OKImageSwitch { get; set; } = false;
 
-
+        [Category("鍥剧墖淇濆瓨璁剧疆")]
+        [Description("璇ョ珯妫�娴嬪浘鐗囦繚瀛樻椂锛屼繚瀛樼殑鍥剧墖椤哄簭鍚庣紑")]
+        [DisplayName("鍥剧墖淇濆瓨椤哄簭鍚庣紑")]
+        public string ImageSaveSeq { get; set; } = "1";
 
         public string GetDisplayText()
         {
@@ -842,6 +954,21 @@
     }
 
 
+    [Device("OfflineDemo", "绂荤嚎娴嬭瘯", DeviceAttributeType.OperationConfig)]
+    public class OfflineDemoOperationConfig : OperationConfigBase
+    {
+        [Category("鍥剧墖鐩綍")]
+        [Description("鍥剧墖鐩綍")]
+        [DisplayName("鍥剧墖鐩綍")]
+        [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
+        public string ImageFolder { get; set; }
+
+        [Category("鍚姩閰嶇疆")]
+        [Description("true锛氬惎鍔ㄧ绾挎祴璇� false锛氬仠姝㈢绾挎祴璇�")]
+        [DisplayName("娴嬭瘯寮�鍏�")]
+        public bool IsStart { get; set; } = true;
+    }
+
     public class RealTimeAdjustDataDetail : IComplexDisplay
     {
         [Category("鐐逛綅璁剧疆")]

--
Gitblit v1.8.0