Selaa lähdekoodia

辅耗材上料上传mes、记录日志

WIN-GH9CEESPLTB\Administrator 1 kuukausi sitten
vanhempi
commit
87a1f7e8c3

+ 15 - 3
MainForm/ClassFile/Inovance_EIP.cs

@@ -215,10 +215,10 @@ namespace EIP_Protocol
     {
         public BarcodeSet_t BarcodeSet;        //条码集合
         public CommandFromPLC mesCommFrmPLC;   //MES通讯
-        public OP30_DataSet_t mesData;
+        public OP30_DataSet_t mesData;         //生产参数
         public IoT_DataSet_t iotData;
-        public OP30_TestData_t testData;
-        public OP30_OtherData otherData;
+        public OP30_TestData_t testData;    //测试项
+        public OP30_OtherData otherData;    //其他指令
 
     }
 
@@ -357,6 +357,18 @@ namespace EIP_Protocol
         public OP70_DataSet_t mesData;
         public IoT_DataSet_t iotData;
         public OP70_ScrewDataSet_t screwDataToPLC;  //传到PLC的锁螺丝数据,用于HMI显示用
+        public OP70_OtherData otherData;     //其他指令
+
+    }
+
+    public struct OP70_OtherData
+    {
+        [MarshalAs(UnmanagedType.I4)]
+        public int ChangeA;                              //左工位 0:取消换螺丝 1:换胶弹窗  2:扫码完成
+
+        [MarshalAs(UnmanagedType.I4)]
+        public int ChangeB;                             //右工位 0:取消换螺丝 1:换胶弹窗  2:扫码完成
+
     }
 
     [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 8)]

+ 1 - 0
MainForm/ClassFile/ProjectClass/GlobalContext.cs

@@ -30,6 +30,7 @@ namespace MainForm
         public static string SQLLogDir = MainDir + @"SQLLog\";    // sql日志
         public static string DBDir = @"D:\LocalDataBase\";
         public static string MESConfig = MainDir + @"MESConfig.ini";    // MES接口的配置文件
+        public static string MaterialVerifyLog = PlcLogDir + @"辅耗材\";  // 辅耗材上料
 
         public static string MqttLogDir = MainDir + @"MqttLog\";  // mqtt日志
         public static string MqttCallbackDir = MqttLogDir + @"Callback\";     // mqtt日志 - Callback内容

+ 142 - 0
MainForm/ClassFile/XiaomiAPI_MES/XiaomiMESHttp_MaterialVerify.cs

@@ -0,0 +1,142 @@
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+
+namespace MainForm.ClassFile.XiaomiAPI_MES
+{
+    /// <summary>
+    /// 小米MES - 进站接⼝
+    /// 接口地址:
+    /// 接口方法:UnitConfirmDataSetIn
+    /// </summary>
+    public class XiaomiMESHttp_MaterialVerify : XiaomiMESHttp_X5
+    {
+        #region 变量
+        /// <summary>
+        /// 接口地址
+        /// </summary>
+        protected new static string MESUrl { set; get; } = GlobalContext.StationInMESUrl;
+
+        /// <summary>
+        /// 接口方法
+        /// </summary>
+        protected new static string Method { set; get; } = "ConsumableMaterialVerify";
+        #endregion 变量
+
+        /// <summary>
+        /// 小米MES - 进站
+        /// </summary>
+        /// <param name="requestBody"></param>
+        /// <returns></returns>
+        public static XmMES_MaterialVerifyResponse MaterialVerifyPostMES(XmMES_MaterialVerifyRequest_Body body)
+        {
+            XmMES_MaterialVerifyResponse MaterialVerifyResponse = new XmMES_MaterialVerifyResponse();
+
+            string bodyJson = JsonConvert.SerializeObject(body);
+            XiaomiMES_X5RequestHeader header = new XiaomiMES_X5RequestHeader();
+            header.appid = Appid;                               // 系统分配的应⽤ID
+            header.method = Method;                             // API接⼝名称
+            header.sign = GetSign_Up(Appid, bodyJson, Appkey);  // md5签名
+            header.url = MESUrl;                                // 接⼝地址
+
+            //转base64
+            dynamic requestData = new { header = header, body = bodyJson };
+            var serializedBody = JsonConvert.SerializeObject(requestData);
+            var base64EncodedBody = Convert.ToBase64String(Encoding.UTF8.GetBytes(serializedBody));
+            XiaomiMES_X5Response response = Post(MESUrl, base64EncodedBody);
+            // ZS保存日志
+            MaterialVerifyResponse.header = response.header;
+            string responseBody = response.body;
+            MaterialVerifyResponse.body = JsonConvert.DeserializeObject<XmMESMaterialVerify_Body>(responseBody);
+            return MaterialVerifyResponse;
+        }
+
+        #region 入参
+        /// <summary>
+        /// 进站接⼝ - 入参
+        /// </summary>
+        public class XmMES_MaterialVerifyRequest
+        {
+            /// <summary>
+            /// 进站接⼝ - 入参 - header
+            /// </summary>
+            public XiaomiMES_X5RequestHeader header { get; set; } = new XiaomiMES_X5RequestHeader();
+
+            /// <summary>
+            /// 进站接⼝ - 入参 - body
+            /// </summary>
+            public XmMES_MaterialVerifyRequest_Body body { get; set; } = new XmMES_MaterialVerifyRequest_Body();
+        }
+
+        /// <summary>
+        /// 进站接⼝ - 入参 - Body 实体
+        /// </summary>
+        public class XmMES_MaterialVerifyRequest_Body
+        {
+            /// <summary>
+            /// ⼯位ID(可配置)
+            /// </summary>
+            public string stationId { get; set; } = string.Empty;
+            /// <summary>
+            /// 客⼾端本机MAC地址(格式:4C-52-62-39-CC-F0)
+            /// </summary>
+            public string clientMac { get; set; } = string.Empty;
+
+            /// <summary>
+            /// 客⼾端请求时间(格式:yyyy-MM-dd HH:mm:ss)
+            /// </summary>
+            public string clientTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            /// <summary>
+            /// 物料sn
+            /// </summary>
+            public string sn { get; set; } = string.Empty;
+            /// <summary>
+            /// ⼯⼚id:1
+            /// </summary>
+            public long factoryId { get; set; } = 1;
+            /// <summary>
+            /// 操作⼈
+            /// </summary>
+            public string userId { get; set; } = string.Empty;
+        }
+        #endregion 入参
+
+        #region 出参
+        /// <summary>
+        /// 进站接⼝ - 出参
+        /// </summary>
+        public class XmMES_MaterialVerifyResponse
+        {
+            /// <summary>
+            /// header字段描述
+            /// </summary>
+            public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader();
+
+            /// <summary>
+            /// body字段描述
+            /// </summary>
+            public XmMESMaterialVerify_Body body { get; set; } = new XmMESMaterialVerify_Body();
+        }
+
+        /// <summary>
+        /// 进站接⼝ - 出参 - Body
+        /// </summary>
+        public class XmMESMaterialVerify_Body
+        {
+            /// <summary>
+            /// 响应时间戳
+            /// </summary>
+            public string serverTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+
+            /// <summary>
+            /// 剩余寿命(次/克)
+            /// </summary>
+            public string remainLife { get; set; } = "";
+        }
+        #endregion
+
+    }
+}

+ 2 - 2
MainForm/FaForm/Dialog_BandBarode_S3.Designer.cs

@@ -1,6 +1,6 @@
 namespace MainForm.FaForm
 {
-    partial class Dialog_BandBarode_S3
+    partial class Dialog_BandBarode_S6
     {
         /// <summary>
         /// Required designer variable.
@@ -154,7 +154,7 @@
             this.ClientSize = new System.Drawing.Size(725, 300);
             this.Controls.Add(this.groupBox1);
             this.Controls.Add(this.groupBox2);
-            this.Name = "Dialog_BandBarode_S3";
+            this.Name = "Dialog_BandBarode_S6";
             this.Text = "BandBarodeDialog";
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BandBarodeDialog_FormClosing);
             this.Load += new System.EventHandler(this.BandBarodeDialog_Load);

+ 2 - 2
MainForm/FaForm/Dialog_BandBarode_S3.cs

@@ -11,7 +11,7 @@ using static MainForm.SQLHelper;
 
 namespace MainForm.FaForm
 {
-    public partial class Dialog_BandBarode_S3 : Form
+    public partial class Dialog_BandBarode_S6 : Form
     {
         public string pcbCode { get; private set; }
         public string _CarrierBarcode {  get;  set; }
@@ -26,7 +26,7 @@ namespace MainForm.FaForm
 
         private Timer _inputTimer;
 
-        public Dialog_BandBarode_S3(string carrierBarcode, string strProductBarcode, string strPCBBarcode)
+        public Dialog_BandBarode_S6(string carrierBarcode, string strProductBarcode, string strPCBBarcode)
         {
             _CarrierBarcode = carrierBarcode;
             _strProductBarcode = strProductBarcode;

MainForm/FaForm/Dialog_BandBarode_S3.resx → MainForm/FaForm/Dialog_BandBarode_S6.resx


+ 83 - 79
MainForm/FaForm/Dialog_MaterialVerify_S1.Designer.cs

@@ -4,7 +4,7 @@ using System.Windows.Forms;
 
 namespace MainForm.FaForm
 {
-    partial class Dialog_MaterialVerify_S1
+    partial class Dialog_MaterialVerify
     {
         /// <summary>
         /// Required designer variable.
@@ -34,18 +34,18 @@ namespace MainForm.FaForm
         private void InitializeComponent()
         {
             this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.SN = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.Type = new System.Windows.Forms.TextBox();
+            this.Station = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
             this.groupBox2 = new System.Windows.Forms.GroupBox();
             this.ErrorLab = new System.Windows.Forms.Label();
             this.label3 = new System.Windows.Forms.Label();
             this.Barcode = new System.Windows.Forms.TextBox();
-            this.label1 = new System.Windows.Forms.Label();
-            this.Station = new System.Windows.Forms.TextBox();
-            this.Type = new System.Windows.Forms.TextBox();
-            this.label2 = new System.Windows.Forms.Label();
-            this.SN = new System.Windows.Forms.TextBox();
-            this.label4 = new System.Windows.Forms.Label();
-            this.button1 = new System.Windows.Forms.Button();
-            this.button2 = new System.Windows.Forms.Button();
+            this.Cancel_btn = new System.Windows.Forms.Button();
+            this.OK_btn = new System.Windows.Forms.Button();
             this.groupBox1.SuspendLayout();
             this.groupBox2.SuspendLayout();
             this.SuspendLayout();
@@ -65,6 +65,57 @@ namespace MainForm.FaForm
             this.groupBox1.TabStop = false;
             this.groupBox1.Text = "辅耗材信息";
             // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(63, 123);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(80, 18);
+            this.label4.TabIndex = 12;
+            this.label4.Text = "耗材SN码";
+            // 
+            // SN
+            // 
+            this.SN.Enabled = false;
+            this.SN.Location = new System.Drawing.Point(187, 120);
+            this.SN.Name = "SN";
+            this.SN.Size = new System.Drawing.Size(280, 28);
+            this.SN.TabIndex = 11;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(63, 80);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(80, 18);
+            this.label2.TabIndex = 10;
+            this.label2.Text = "耗材类型";
+            // 
+            // Type
+            // 
+            this.Type.Enabled = false;
+            this.Type.Location = new System.Drawing.Point(187, 77);
+            this.Type.Name = "Type";
+            this.Type.Size = new System.Drawing.Size(280, 28);
+            this.Type.TabIndex = 9;
+            // 
+            // Station
+            // 
+            this.Station.Enabled = false;
+            this.Station.Location = new System.Drawing.Point(187, 36);
+            this.Station.Name = "Station";
+            this.Station.Size = new System.Drawing.Size(280, 28);
+            this.Station.TabIndex = 8;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(99, 39);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(44, 18);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "工位";
+            // 
             // groupBox2
             // 
             this.groupBox2.Controls.Add(this.ErrorLab);
@@ -101,85 +152,38 @@ namespace MainForm.FaForm
             this.Barcode.Name = "Barcode";
             this.Barcode.Size = new System.Drawing.Size(280, 28);
             this.Barcode.TabIndex = 5;
+            this.Barcode.TextChanged += new System.EventHandler(this.Barcode_TextChanged);
             // 
-            // label1
-            // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(99, 39);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(44, 18);
-            this.label1.TabIndex = 0;
-            this.label1.Text = "工位";
-            // 
-            // Station
-            // 
-            this.Station.Location = new System.Drawing.Point(187, 36);
-            this.Station.Name = "Station";
-            this.Station.Size = new System.Drawing.Size(280, 28);
-            this.Station.TabIndex = 8;
-            // 
-            // Type
-            // 
-            this.Type.Location = new System.Drawing.Point(187, 77);
-            this.Type.Name = "Type";
-            this.Type.Size = new System.Drawing.Size(280, 28);
-            this.Type.TabIndex = 9;
-            // 
-            // label2
-            // 
-            this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(63, 80);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(80, 18);
-            this.label2.TabIndex = 10;
-            this.label2.Text = "耗材类型";
-            // 
-            // SN
-            // 
-            this.SN.Location = new System.Drawing.Point(187, 120);
-            this.SN.Name = "SN";
-            this.SN.Size = new System.Drawing.Size(280, 28);
-            this.SN.TabIndex = 11;
-            // 
-            // label4
-            // 
-            this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(63, 123);
-            this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(80, 18);
-            this.label4.TabIndex = 12;
-            this.label4.Text = "耗材SN码";
-            // 
-            // button1
+            // Cancel_btn
             // 
-            this.button1.Location = new System.Drawing.Point(390, 355);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(87, 36);
-            this.button1.TabIndex = 13;
-            this.button1.Text = "取消";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
+            this.Cancel_btn.Location = new System.Drawing.Point(390, 355);
+            this.Cancel_btn.Name = "Cancel_btn";
+            this.Cancel_btn.Size = new System.Drawing.Size(87, 36);
+            this.Cancel_btn.TabIndex = 13;
+            this.Cancel_btn.Text = "取消";
+            this.Cancel_btn.UseVisualStyleBackColor = true;
+            this.Cancel_btn.Click += new System.EventHandler(this.Cancel_btn_Click);
             // 
-            // button2
+            // OK_btn
             // 
-            this.button2.Location = new System.Drawing.Point(237, 355);
-            this.button2.Name = "button2";
-            this.button2.Size = new System.Drawing.Size(87, 36);
-            this.button2.TabIndex = 14;
-            this.button2.Text = "确认";
-            this.button2.UseVisualStyleBackColor = true;
-            this.button2.Click += new System.EventHandler(this.button2_Click);
+            this.OK_btn.Location = new System.Drawing.Point(237, 355);
+            this.OK_btn.Name = "OK_btn";
+            this.OK_btn.Size = new System.Drawing.Size(87, 36);
+            this.OK_btn.TabIndex = 14;
+            this.OK_btn.Text = "确认";
+            this.OK_btn.UseVisualStyleBackColor = true;
+            this.OK_btn.Click += new System.EventHandler(this.OK_btn_Click);
             // 
-            // Dialog_MaterialVerify_S1
+            // Dialog_MaterialVerify
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(718, 419);
-            this.Controls.Add(this.button2);
-            this.Controls.Add(this.button1);
+            this.Controls.Add(this.OK_btn);
+            this.Controls.Add(this.Cancel_btn);
             this.Controls.Add(this.groupBox2);
             this.Controls.Add(this.groupBox1);
-            this.Name = "Dialog_MaterialVerify_S1";
+            this.Name = "Dialog_MaterialVerify";
             this.Text = "辅耗材上料";
             this.Load += new System.EventHandler(this.Dialog_MaterialVerify_S1_Load);
             this.groupBox1.ResumeLayout(false);
@@ -203,7 +207,7 @@ namespace MainForm.FaForm
         private TextBox Type;
         private Label label4;
         private TextBox SN;
-        private Button button1;
-        private Button button2;
+        private Button Cancel_btn;
+        private Button OK_btn;
     }
 }

+ 149 - 0
MainForm/FaForm/Dialog_MaterialVerify.cs

@@ -0,0 +1,149 @@
+using BZFAStandardLib;
+using EIP_Protocol;
+using MainForm.ClassFile.ProjectClass;
+using Sunny.UI;
+using Sunny.UI.Win32;
+using System;
+using System.Collections.Generic;
+using System.Numerics;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace MainForm.FaForm
+{
+    public partial class Dialog_MaterialVerify : Form
+    {
+        Form_Home home =new Form_Home();
+
+        int plcNo = 1;
+        string stationid = "";
+        string stationCode = "";
+
+        //OP30_MesData_t OP30PLC_MesData; //PLC的MES数据
+        //OP70_MesData_t OP70PLC_MesData; //PLC的MES数据
+
+        private Timer _inputTimer;
+
+        public Dialog_MaterialVerify(string Code,string flag,string Material)
+        {
+            InitializeComponent();
+            //置顶
+            this.TopMost = true;
+            // 设置窗口相对于父窗口居中
+            this.StartPosition = FormStartPosition.CenterParent;
+            this.Shown += MainForm_Shown;
+
+            if (Code.Contains("OP30")) {
+                if (flag == "Left") {
+                    Station.Text = "[OP31]点散热胶装备1";
+                    stationid = GlobalContext.s3_1_station;
+                }
+                if (flag == "Right") {
+                    Station.Text = "[OP32]点散热胶装备2";
+                    stationid = GlobalContext.s3_2_station;
+                }
+            }
+            if (Code.Contains("OP80"))
+            {
+                if (flag == "Left")
+                {
+                    Station.Text = "[OP81]上盖板锁螺丝1";
+                }
+                if (flag == "Right")
+                {
+                    Station.Text = "[OP82]上盖板锁螺丝2";
+                }
+            }
+            stationCode = Code;
+            Type.Text = Material;
+        }
+
+        private void Dialog_MaterialVerify_S1_Load(object sender, System.EventArgs e)
+        {
+            // 初始化定时器
+            _inputTimer = new Timer();
+            _inputTimer.Interval = 500; // 500毫秒
+            _inputTimer.Tick += InputTimer_Tick;
+
+            // 绑定 TextChanged 事件
+            Barcode.TextChanged += Barcode_TextChanged;
+        }
+
+        private void OK_btn_Click(object sender, System.EventArgs e)
+        {
+            if (stationCode.Contains("OP30"))
+            {
+                //胶水上传MES
+                int res = home.MaterialVerifyPost(SN.Text.Trim(), stationid);
+                if (res == 1)
+                {
+                    string logPath = GlobalContext.MaterialVerifyLog + "MaterialVerify" + DateTime.Now.ToString("yyyyMM") + ".txt";
+                    FileOperate.NewTxtFile(logPath, DateTime.Now + $"===>【辅耗材上料】工位:{Station.Text};耗材类型:{Type.Text};SN:{SN.Text} ");
+                    OKcloseWin();
+                }
+                else
+                {
+                    //上传失败,取消窗口
+                    CancelcloseWin();
+                }
+            }
+            else {
+                string logPath = GlobalContext.MaterialVerifyLog + "MaterialVerify" + DateTime.Now.ToString("yyyyMM") + ".txt";
+                FileOperate.NewTxtFile(logPath, DateTime.Now + $"===>【辅耗材上料】工位:{Station.Text};耗材类型:{Type.Text};SN:{SN.Text} ");
+                OKcloseWin();
+            }
+
+        }
+
+        private void Cancel_btn_Click(object sender, System.EventArgs e)
+        {
+            CancelcloseWin();
+        }
+
+        private void OKcloseWin()
+        {
+            Station.Text = "";
+            Type.Text = "";
+            SN.Text = "";
+
+            this.DialogResult = DialogResult.OK;
+            Form_Home.OpenDailogFalg = true;
+            this.Close();
+        }
+
+        private void CancelcloseWin()
+        {
+            this.DialogResult = DialogResult.Cancel;
+            Form_Home.OpenDailogFalg = true;
+            this.Close();
+        }
+
+        private void MainForm_Shown(object sender, EventArgs e)
+        {
+            // 将焦点设置到 textBox1
+            Barcode.Focus();
+        }
+
+        private void InputTimer_Tick(object sender, EventArgs e)
+        {
+            // 定时器触发,表示输入已经完成
+            _inputTimer.Stop();
+            //模拟点击
+            Barcode.Focus();
+
+            string strBarcode = Barcode.Text.Trim();
+            if (!string.IsNullOrEmpty(strBarcode))
+            {
+                SN.Text = strBarcode.ToUpper();
+                Barcode.Text = "";
+            }
+        }
+
+        private void Barcode_TextChanged(object sender, EventArgs e)
+        {
+            // 每次文本变化时重置定时器
+            _inputTimer.Stop();
+            _inputTimer.Start();
+        }
+    }
+}

+ 120 - 0
MainForm/FaForm/Dialog_MaterialVerify.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 0 - 131
MainForm/FaForm/Dialog_MaterialVerify_S1.cs

@@ -1,131 +0,0 @@
-using EIP_Protocol;
-using Sunny.UI;
-using System;
-using System.Collections.Generic;
-using System.Numerics;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace MainForm.FaForm
-{
-    public partial class Dialog_MaterialVerify_S1 : Form
-    {
-        Form_Home home =new Form_Home();
-
-        int plcNo = 1;
-        string stationCode = "";
-        string stationName = "";
-        string tagBaseName = ""; //标签变量名称
-        string tagMesCommName = "mesCommToPC"; //标签变量名称
-        string tagBarsetName = "BarcodeSet";
-        (int, string) resultPLC;
-
-        OP30_MesData_t OP30PLC_MesData; //PLC的MES数据
-        OP70_MesData_t OP70PLC_MesData; //PLC的MES数据
-
-        private Timer _inputTimer;
-
-        public Dialog_MaterialVerify_S1(string Code,string Name,string tagName)
-        {
-            InitializeComponent();
-            //置顶
-            this.TopMost = true;
-            // 设置窗口相对于父窗口居中
-            this.StartPosition = FormStartPosition.CenterParent;
-            this.Shown += MainForm_Shown;
-
-            stationCode = Code;
-            stationName = Name;
-            tagBaseName = tagName;
-        }
-
-        private void Dialog_MaterialVerify_S1_Load(object sender, System.EventArgs e)
-        {
-
-            home.FunsEip.Add(GlobalContext.IsUsePLCNow,
-                        new Inovance_EIP(GlobalContext.PC1Address, GlobalContext.Machine1Address)); //OP10 壳体清洁上料装备
-
-            foreach (Inovance_EIP plcEIP in home.FunsEip.Values)
-            {
-                if (plcEIP != null)
-                {
-                    try
-                    {
-                        (int, string) result = plcEIP.Connect();
-                    }
-                    catch (Exception ex)
-                    {
-                        MessageBox.Show($"PLC[{plcEIP._pcIPStr}]连接失败!失败信息:" + ex.Message,
-                            "PLC连接提示", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
-                            MessageBoxOptions.ServiceNotification);
-                    }
-                }
-            }
-            List<Task> TaskReadProcess = new List<Task>(); // 线程-触发点位(PLC)的线程
-            TaskReadProcess.Add(new Task(() => { ReadStation(); })); // 开启PLC的业务处理线程-监听PLC点位+状态
-            foreach (Task task in TaskReadProcess)
-            {
-                if (task != null)
-                    task.Start();
-            }
-        }
-
-        private void button2_Click(object sender, System.EventArgs e)
-        {
-            // 初始化定时器
-            _inputTimer = new Timer();
-            _inputTimer.Interval = 500; // 500毫秒
-            _inputTimer.Tick += InputTimer_Tick;
-        }
-
-        private void button1_Click(object sender, System.EventArgs e)
-        {
-
-        }
-
-        private void ReadStation()
-        {
-            while (true)
-            {
-                if (stationCode.Contains("30"))
-                {
-                    resultPLC = home.FunsEip[plcNo]
-                            .Read_SingleTag<OP30_MesData_t>(tagBaseName, 1, out OP30PLC_MesData, this); //读取单个结构体数据
-                }
-                if (stationCode.Contains("70"))
-                {
-                    resultPLC = home.FunsEip[plcNo]
-                            .Read_SingleTag<OP30_MesData_t>(tagBaseName, 1, out OP30PLC_MesData, this); //读取单个结构体数据
-                }
-
-                if (resultPLC.Item1 == 0)
-                {
-                  
-                }
-
-            }
-        }
-
-        private void MainForm_Shown(object sender, EventArgs e)
-        {
-            // 将焦点设置到 textBox1
-            Barcode.Focus();
-        }
-
-        private void InputTimer_Tick(object sender, EventArgs e)
-        {
-            // 定时器触发,表示输入已经完成
-            _inputTimer.Stop();
-            //模拟点击
-            Barcode.Focus();
-
-            string strBarcode = Barcode.Text.Trim();
-            if (!string.IsNullOrEmpty(strBarcode))
-            {
-                SN.Text = strBarcode;
-                Barcode.Text = "";
-            }
-        }
-
-    }
-}

+ 184 - 3
MainForm/FaForm/Form_Home.cs

@@ -56,6 +56,7 @@ using ICSharpCode.SharpZipLib.Zip;
 using System.Text.RegularExpressions;
 using System.Text;
 using SixLabors.ImageSharp;
+using static MainForm.ClassFile.XiaomiAPI_MES.XiaomiMESHttp_MaterialVerify;
 
 /*
  * 注:本源码对外提供,所以有些地方使用中文命名方法及变量
@@ -1467,6 +1468,48 @@ namespace MainForm
             return res;
         }
 
+        public int MaterialVerifyPost(string sn,string stationId) {
+            int res = 0;
+            string json_Body = "";
+            try
+            {
+                XmMES_MaterialVerifyRequest_Body Request_Body = new XmMES_MaterialVerifyRequest_Body();
+                Request_Body.stationId = stationId; // ⼯位ID(可配置)
+                Request_Body.clientMac = GlobalContext.MacStr; // 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
+                Request_Body.clientTime =  DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
+                Request_Body.userId = GlobalContext.MESUserId; // 用户ID;
+                Request_Body.sn = sn;
+                //Request_Body.factoryId = GlobalContext.Factory_Code; // 工厂ID;
+
+                json_Body = JsonConvert.SerializeObject(Request_Body);
+                var response = XiaomiMESHttp_MaterialVerify.MaterialVerifyPostMES(Request_Body);
+
+                string resultJson = JsonConvert.SerializeObject(response);
+
+                if (response != null && response.header.code == "200")
+                {
+                    res = 1;
+                    AddMessage(LogType.Info,
+                        "上传辅材上料数据到MES服务器---成功!请求信息:" + json_Body + ",返回信息:" +
+                        JsonConvert.SerializeObject(response.body));
+                }
+                else
+                {
+                    res = 0;
+                    AddMessage(LogType.Error,
+                        "上传辅材上料数据到MES服务器---失败!错误信息:" + response.header.desc + ",请求信息:" + json_Body + ",返回信息:" +
+                        JsonConvert.SerializeObject(response.body));
+                }
+            }
+            catch (Exception e)
+            {
+                res = 0;
+                AddMessage(LogType.Info, "上传辅材上料数据到MES服务器---失败!请求信息:" + json_Body + ",返回信息:" + e.Message);
+            }
+
+            return res;
+        }
+
         /// <summary>
         /// 调用进站接口并保存进站数据
         /// </summary>
@@ -4290,6 +4333,7 @@ namespace MainForm
             string tagAgvCommName = "agvCommFrmPC";
             string tagiotComnName = "iotData";
             string tagBarsetName = "BarcodeSet";
+            string tagotherName = "otherData";
 
             string CarrierBarcode_Left = "";
             string CarrierBarcode_Right = "";
@@ -4398,10 +4442,75 @@ namespace MainForm
                         stopwatch2.Stop();
 
                         #region 辅材上料扫码
-                        if (stPLC_MesData.Left.otherData.ChangeA == 1 || stPLC_MesData.Left.otherData.ChangeB == 1)
+                        int changeA = 0;
+                        int changeB = 0;
+                        #region 左工位
+                        changeA = stPLC_MesData.Left.otherData.ChangeA;
+                        changeB = stPLC_MesData.Left.otherData.ChangeB;
+                        if (changeA == 1 || changeB == 1)
+                        {
+                            string MaterialStr = "";
+                            if (changeA == 1) MaterialStr = "A胶";
+                            if (changeB == 1) MaterialStr = "B胶";
+
+                            using (var dialog = new Dialog_MaterialVerify(stationCode, "Left", MaterialStr))
+                            {
+                                var rs = dialog.ShowDialog();
+                                if (rs == DialogResult.OK)
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_左工位_辅材上料数据上传成功!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = changeA == 1 ? 2 : 0;
+                                    otherData.ChangeB = changeB == 1 ? 2 : 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Left." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                                else
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_左工位_辅材上料数据上传失败!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = 0;
+                                    otherData.ChangeB = 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Left." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                            }
+                        }
+                        #endregion
+
+                        #region 右工位
+                        changeA = stPLC_MesData.Right.otherData.ChangeA;
+                        changeB = stPLC_MesData.Right.otherData.ChangeB;
+                        if (changeA == 1 || changeB == 1)
                         {
+                            string MaterialStr = "";
+                            if (changeA == 1) MaterialStr = "A胶";
+                            if (changeB == 1) MaterialStr = "B胶";
 
+                            using (var dialog = new Dialog_MaterialVerify(stationCode, "Right", MaterialStr))
+                            {
+                                var rs = dialog.ShowDialog();
+                                if (rs == DialogResult.OK)
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_右工位_辅材上料数据上传成功!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = changeA == 1 ? 2 : 0;
+                                    otherData.ChangeB = changeB == 1 ? 2 : 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Right." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                                else
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_右工位_辅材上料数据上传失败!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = 0;
+                                    otherData.ChangeB = 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Right." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                            }
                         }
+                        #endregion
 
                         #endregion
 
@@ -5110,7 +5219,6 @@ namespace MainForm
                         #endregion 进站
 
                         #region 出站
-
                         try
                         {
                             if (stPLC_MesData.mesCommFrmPLC.cmd == (byte)eMesCmd.OutStation)
@@ -6455,7 +6563,7 @@ namespace MainForm
 
                         if (OpenDailogFalg)
                         {
-                            using (var dialog = new Dialog_BandBarode_S3(strCarrierBarcode, ProductBarcode, PCBBarcode))
+                            using (var dialog = new Dialog_BandBarode_S6(strCarrierBarcode, ProductBarcode, PCBBarcode))
                             {
                                 var rs = dialog.ShowDialog();
                                 if (rs == DialogResult.OK)
@@ -6670,6 +6778,7 @@ namespace MainForm
             string tagBarsetName = "BarcodeSet";
             string tagiotComnName = "iotData";
             string tagScrewDataset = "screwDataset";
+            string tagotherName = "otherData";
 
             string CarrierBarcode_Left = "";
             string CarrierBarcode_Right = "";
@@ -6771,6 +6880,78 @@ namespace MainForm
 
                         stopwatch2.Stop();
 
+                        #region 辅材上料扫码
+                        int changeA = 0;
+                        int changeB = 0;
+                        #region 左工位
+                        changeA = stPLC_MesData.Left.otherData.ChangeA;
+                        changeB = stPLC_MesData.Left.otherData.ChangeB;
+                        if (changeA == 1 || changeB == 1)
+                        {
+                            string MaterialStr = "";
+                            if (changeA == 1) MaterialStr = "A螺丝";
+                            if (changeB == 1) MaterialStr = "B螺丝";
+
+                            using (var dialog = new Dialog_MaterialVerify(stationCode, "Left", MaterialStr))
+                            {
+                                var rs = dialog.ShowDialog();
+                                if (rs == DialogResult.OK)
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_左工位_辅材上料数据上传成功!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = changeA == 1 ? 2 : 0;
+                                    otherData.ChangeB = changeB == 1 ? 2 : 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Left." + tagotherName, 1, otherData);
+                                }
+                                else
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_左工位_辅材上料数据上传失败!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = 0;
+                                    otherData.ChangeB = 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Left." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                            }
+                        }
+                        #endregion
+
+                        #region 右工位
+                        changeA = stPLC_MesData.Right.otherData.ChangeA;
+                        changeB = stPLC_MesData.Right.otherData.ChangeB;
+                        if (changeA == 1 || changeB == 1)
+                        {
+                            string MaterialStr = "";
+                            if (changeA == 1) MaterialStr = "A胶";
+                            if (changeB == 1) MaterialStr = "B胶";
+
+                            using (var dialog = new Dialog_MaterialVerify(stationCode, "Right", MaterialStr))
+                            {
+                                var rs = dialog.ShowDialog();
+                                if (rs == DialogResult.OK)
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_右工位_辅材上料数据上传成功!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = changeA == 1 ? 2 : 0;
+                                    otherData.ChangeB = changeB == 1 ? 2 : 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Right." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                                else
+                                {
+                                    AddMessage(LogType.Error, stationNameStr + "_右工位_辅材上料数据上传失败!");
+                                    OP30_OtherData otherData = new OP30_OtherData();
+                                    otherData.ChangeA = 0;
+                                    otherData.ChangeB = 0;
+                                    WriteResultToPlc(plcNo, stationNameStr, tagBaseName + ".Right." + tagotherName, 1, otherData);
+                                    return;
+                                }
+                            }
+                        }
+                        #endregion
+
+                        #endregion
+
                         #region 左边进站
 
                         try

+ 1 - 0
MainForm/FaForm/Form_Main.cs

@@ -128,6 +128,7 @@ namespace MainForm
                 if (!Directory.Exists(GlobalContext.MqttFileUpLogDir)) Directory.CreateDirectory(GlobalContext.MqttFileUpLogDir);  // 判断路径是否存在,不存在则创建路径
                 if (!Directory.Exists(GlobalContext.MqttFileBackupLogDir)) Directory.CreateDirectory(GlobalContext.MqttFileBackupLogDir);  // 判断路径是否存在,不存在则创建路径
                 if (!Directory.Exists(GlobalContext.MqttDeviceConfigLogDir)) Directory.CreateDirectory(GlobalContext.MqttDeviceConfigLogDir);  // 判断路径是否存在,不存在则创建路径
+                if (!Directory.Exists(GlobalContext.MaterialVerifyLog)) Directory.CreateDirectory(GlobalContext.MaterialVerifyLog);  // 判断路径是否存在,不存在则创建路径
                 
                 GlobalContext.UpdateData();
 

+ 6 - 47
MainForm/FaForm/Form_Other.cs

@@ -166,57 +166,16 @@ namespace MainForm.FaForm
 
         private void button13_Click(object sender, EventArgs e)
         {
-            #region MAS测试项
-            XmMES_StationOutRequest_Body outRequest_Body = new XmMES_StationOutRequest_Body();
-            OP30_stnDataSet_t stPLC_MesData = new OP30_stnDataSet_t();
-            string passFlag = "";
-            string AllpassFlag = "PASS";
-            string SN = "A123456";
-
-            stPLC_MesData.testData.fAB_AirPressDiff = 2.5f;
-            stPLC_MesData.testData.fAB_AirPressDiffMax = 2.5f;
-            stPLC_MesData.testData.fAB_AirPressDiffMin = 0;
-            stPLC_MesData.testData.fAB_AirPress = 0.1f;
-            stPLC_MesData.testData.fAB_AirPressMax = 0.2f;
-            stPLC_MesData.testData.fAB_AirPressMin = 0;
-
-            float fAB_AirPressDiff = stPLC_MesData.testData.fAB_AirPressDiff;
-            float fAB_AirPressDiffMax = stPLC_MesData.testData.fAB_AirPressDiffMax;
-            float fAB_AirPressDiffMin = stPLC_MesData.testData.fAB_AirPressDiffMin;
-            float fAB_AirPress = stPLC_MesData.testData.fAB_AirPress;
-            float fAB_AirPressMax = stPLC_MesData.testData.fAB_AirPressMax;
-            float fAB_AirPressMin = stPLC_MesData.testData.fAB_AirPressMin;
-
-            XmStationOut_InspectionItemData inspectionItemData = new XmStationOut_InspectionItemData();
-            if (fAB_AirPressDiffMax > fAB_AirPressDiffMin && (fAB_AirPressDiffMax != 0 || fAB_AirPressDiffMin != 0))
+            Form_Home home = new Form_Home();
+            int res = home.MaterialVerifyPost("123456789", "C-PFA-CPAPHD-A-BZJG-0001");
+            if (res == 1)
             {
-                if (fAB_AirPressDiff > fAB_AirPressDiffMin && fAB_AirPressDiff <= fAB_AirPressDiffMax)
-                    passFlag = "PASS";
-                else
-                    passFlag = "FAIL";
-
-                if (passFlag == "FAIL") AllpassFlag = passFlag;
-                inspectionItemData.AddDataItem("N801A","AB管气压", fAB_AirPressDiff.ToString(), fAB_AirPressDiffMax.ToString(), fAB_AirPressDiffMin.ToString(), passFlag);
+                Console.WriteLine("上传成功");
             }
-
-            if (fAB_AirPressMax>fAB_AirPressMin && (fAB_AirPressMax != 0 || fAB_AirPressMin != 0))
+            else
             {
-                if (fAB_AirPress > fAB_AirPressMin && fAB_AirPress <= fAB_AirPressMax)
-                    passFlag = "PASS";
-                else
-                    passFlag = "FAIL";
-
-                if (passFlag == "FAIL") AllpassFlag = passFlag;
-                inspectionItemData.AddDataItem("N801A","AB管气压差", fAB_AirPress.ToString(), fAB_AirPressMax.ToString(), fAB_AirPressMin.ToString(), passFlag);
+                Console.WriteLine("上传失败");
             }
-            
-            inspectionItemData.childUnitSn = SN;
-            inspectionItemData.childUnitState = AllpassFlag;
-            inspectionItemData.toolVersion = "1.0";
-
-            string detailjson = JsonConvert.SerializeObject(inspectionItemData);//过站测试项
-
-            #endregion
         }
     }
 }

+ 12 - 8
MainForm/MainForm.csproj

@@ -295,6 +295,7 @@
     <Compile Include="ClassFile\XiaomiAPI_IOT\Extend\XiaomiMqttClient_PassStationResult.cs" />
     <Compile Include="ClassFile\XiaomiAPI_IOT\XiaomiMqttLoginParam.cs" />
     <Compile Include="ClassFile\XiaomiAPI_IOT\XiaomiMqttResponse_ErrCode.cs" />
+    <Compile Include="ClassFile\XiaomiAPI_MES\XiaomiMESHttp_MaterialVerify.cs" />
     <Compile Include="ClassFile\XiaomiAPI_MES\XiaomiMESHttp_StationOutbound.cs" />
     <Compile Include="ClassFile\XiaomiAPI_MES\XiaomiMESHttp_StationInbound.cs" />
     <Compile Include="ClassFile\XiaomiAPI_MES\XiaomiMESHttp_UpLoadFile.cs" />
@@ -306,11 +307,11 @@
     <Compile Include="ClassFile\XiaomiClass\IoTHelper.cs" />
     <Compile Include="ClassFile\XiaomiClass\MesHelper.cs" />
     <Compile Include="ClassFile\XiaomiClass\ProcessHelper.cs" />
-    <Compile Include="FaForm\Dialog_BandBarode_S3.cs">
+    <Compile Include="FaForm\Dialog_BandBarode_S6.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="FaForm\Dialog_BandBarode_S3.Designer.cs">
-      <DependentUpon>Dialog_BandBarode_S3.cs</DependentUpon>
+    <Compile Include="FaForm\Dialog_BandBarode_S6.Designer.cs">
+      <DependentUpon>Dialog_BandBarode_S6.cs</DependentUpon>
     </Compile>
     <Compile Include="FaForm\Dialog_BandBarode_S1.cs">
       <SubType>Form</SubType>
@@ -318,11 +319,11 @@
     <Compile Include="FaForm\Dialog_BandBarode_S1.Designer.cs">
       <DependentUpon>Dialog_BandBarode_S1.cs</DependentUpon>
     </Compile>
-    <Compile Include="FaForm\Dialog_MaterialVerify_S1.cs">
+    <Compile Include="FaForm\Dialog_MaterialVerify.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="FaForm\Dialog_MaterialVerify_S1.Designer.cs">
-      <DependentUpon>Dialog_MaterialVerify_S1.cs</DependentUpon>
+    <Compile Include="FaForm\Dialog_MaterialVerify.Designer.cs">
+      <DependentUpon>Dialog_MaterialVerify.cs</DependentUpon>
     </Compile>
     <Compile Include="FaForm\Form_DevAlarm.cs">
       <SubType>Form</SubType>
@@ -441,12 +442,15 @@
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="Settings.cs" />
-    <EmbeddedResource Include="FaForm\Dialog_BandBarode_S3.resx">
-      <DependentUpon>Dialog_BandBarode_S3.cs</DependentUpon>
+    <EmbeddedResource Include="FaForm\Dialog_BandBarode_S6.resx">
+      <DependentUpon>Dialog_BandBarode_S6.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="FaForm\Dialog_BandBarode_S1.resx">
       <DependentUpon>Dialog_BandBarode_S1.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="FaForm\Dialog_MaterialVerify.resx">
+      <DependentUpon>Dialog_MaterialVerify.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="FaForm\Form_DevAlarm.resx">
       <DependentUpon>Form_DevAlarm.cs</DependentUpon>
     </EmbeddedResource>