Browse Source

X86读取SN和KEY,PLC数据读取新增参数

callm 3 years ago
parent
commit
3616abb374

+ 36 - 3
MaterialPrint/ReadTestInfo.Designer.cs

@@ -33,6 +33,9 @@
             this.ResultView = new System.Windows.Forms.DataGridView();
             this.itemname = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.testresult = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.BIOS = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.SerialNumber = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.PK = new System.Windows.Forms.DataGridViewTextBoxColumn();
             ((System.ComponentModel.ISupportInitialize)(this.ResultView)).BeginInit();
             this.SuspendLayout();
             // 
@@ -61,11 +64,14 @@
             this.ResultView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
             this.ResultView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
             this.itemname,
-            this.testresult});
+            this.testresult,
+            this.BIOS,
+            this.SerialNumber,
+            this.PK});
             this.ResultView.Location = new System.Drawing.Point(12, 127);
             this.ResultView.Name = "ResultView";
             this.ResultView.RowTemplate.Height = 37;
-            this.ResultView.Size = new System.Drawing.Size(1320, 716);
+            this.ResultView.Size = new System.Drawing.Size(1743, 716);
             this.ResultView.TabIndex = 3;
             this.ResultView.CellPainting += new System.Windows.Forms.DataGridViewCellPaintingEventHandler(this.ResultView_CellPainting);
             // 
@@ -85,11 +91,35 @@
             this.testresult.Name = "testresult";
             this.testresult.Width = 151;
             // 
+            // BIOS
+            // 
+            this.BIOS.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.BIOS.DataPropertyName = "BIOS";
+            this.BIOS.HeaderText = "BIOS";
+            this.BIOS.Name = "BIOS";
+            this.BIOS.Width = 103;
+            // 
+            // SerialNumber
+            // 
+            this.SerialNumber.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.SerialNumber.DataPropertyName = "SN";
+            this.SerialNumber.HeaderText = "SN";
+            this.SerialNumber.Name = "SerialNumber";
+            this.SerialNumber.Width = 79;
+            // 
+            // PK
+            // 
+            this.PK.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.PK.DataPropertyName = "PK";
+            this.PK.HeaderText = "密匙";
+            this.PK.Name = "PK";
+            this.PK.Width = 103;
+            // 
             // ReadTestInfo
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(1344, 855);
+            this.ClientSize = new System.Drawing.Size(1776, 880);
             this.Controls.Add(this.ResultView);
             this.Controls.Add(this.label1);
             this.Controls.Add(this.SN);
@@ -110,5 +140,8 @@
         private System.Windows.Forms.DataGridView ResultView;
         private System.Windows.Forms.DataGridViewTextBoxColumn itemname;
         private System.Windows.Forms.DataGridViewTextBoxColumn testresult;
+        private System.Windows.Forms.DataGridViewTextBoxColumn BIOS;
+        private System.Windows.Forms.DataGridViewTextBoxColumn SerialNumber;
+        private System.Windows.Forms.DataGridViewTextBoxColumn PK;
     }
 }

+ 46 - 2
MaterialPrint/ReadTestInfo.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
+using System.Diagnostics;
 using System.Drawing;
 using System.IO;
 using System.Linq;
@@ -16,6 +17,8 @@ namespace MaterialPrint
 
         DataHelper dh = new DataHelper();
 
+        string ms_id = "";
+
         public ReadTestInfo()
         {
             InitializeComponent();
@@ -54,6 +57,25 @@ namespace MaterialPrint
 
         }
 
+        public string exec(string exePath, string parameters)
+        {
+            Process process = new Process();
+            process.StartInfo.FileName = exePath;
+            process.StartInfo.UseShellExecute = false;
+            process.StartInfo.RedirectStandardInput = true;
+            process.StartInfo.RedirectStandardOutput = true;
+            process.StartInfo.CreateNoWindow = true;
+            process.StartInfo.RedirectStandardError = true;//重定向标准错误输出
+            process.Start();
+            process.StandardInput.WriteLine(parameters);
+
+            process.StandardInput.Close();   //运行完毕关闭控制台输入
+            string add = process.StandardOutput.ReadToEnd(); //读取输出的信息
+            Console.WriteLine(add);
+            process.Close();
+            return add;
+        }
+
 
         public void GetWriteInfo(string FilePath)
         {
@@ -62,6 +84,9 @@ namespace MaterialPrint
             DataTable dt = new DataTable();
             dt.Columns.Add("itemname");
             dt.Columns.Add("testresult");
+            dt.Columns.Add("SN");
+            dt.Columns.Add("BIOS");
+            dt.Columns.Add("PK");
             while (!sr.EndOfStream)
             {
                 string str = sr.ReadLine();
@@ -73,8 +98,22 @@ namespace MaterialPrint
                     Dic.Add(Value.Split('\t')[2], Value);
                 }
             }
+            string SerialNumber = Regex.Match(exec("cmd.exe", " wmic os get SerialNumber /value"), @"SerialNumber=\S+").Value.Replace("SerialNumber=", "");
+            string BIOS = Regex.Match(exec("cmd.exe", " wmic bios get SMBIOSBIOSVersion / value"), @"SMBIOSBIOSVersion=\S+").Value.Replace("SMBIOSBIOSVersion=", "");
+            string PK = Regex.Match(exec("CheckupKey.exe", ""), @"The PKID is: \S+").Value.Replace("The PKID is: ", "");
+            //判断KEY是否被使用过
+            string keysn = dh.getFieldDataByCondition("makeserial", "ms_sncode", "ms_id<>" + ms_id + " and ms_key='" + PK + "'").ToString();
+            if (SerialNumber != SN.Text)
+            {
+                MessageBox.Show("扫描序列号:" + SN.Text + "和本机读取序列号:" + SerialNumber + "不一致");
+                return;
+            }
+            if (keysn != "")
+            {
+                MessageBox.Show("KEY:" + PK + "已被序列号:" + keysn + "使用");
+                return;
+            }
             ResultView.DataSource = dt;
-
             foreach (var item in Dic)
             {
                 string time = item.Value.Split('\t')[0];
@@ -83,12 +122,16 @@ namespace MaterialPrint
                 DataRow dr = dt.NewRow();
                 dr["itemname"] = itemname;
                 dr["testresult"] = item.Value;
+                dr["SN"] = SerialNumber;
+                dr["BIOS"] = BIOS;
+                dr["PK"] = PK;
                 dt.Rows.Add(dr);
                 string sql = "insert into steptestdetail (std_id,std_sn,std_date,std_class,std_testresult,std_itemname)values";
                 sql += "(steptestdetail_seq.nextval,'" + SN.Text + "',to_timestamp('" + item.Value.Split('\t')[0] + "',";
                 sql += "'yyyy-mm-dd hh24:mi:ss.ff6'),'" + item.Key + "','" + result + "','" + itemname + "')";
                 dh.ExecuteSql(sql, "insert");
             }
+            dh.ExecuteSql("update makeserial set ms_key='" + PK + "' where ms_id=" + ms_id, "update");
             MessageBox.Show("测试记录保存成功");
         }
 
@@ -96,7 +139,8 @@ namespace MaterialPrint
         {
             if (e.KeyData == Keys.Enter)
             {
-                if (dh.CheckExist("makeserial", "ms_sncode='" + SN.Text + "' or ms_firstsn='" + SN.Text + "'"))
+                ms_id = dh.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode='" + SN.Text + "' or ms_firstsn='" + SN.Text + "'").ToString();
+                if (ms_id != "")
                 {
                     GetWriteInfo(@"C:\TEST_TOOL\SFTClassicLog.txt");
                 }

+ 5 - 2
MaterialPrint/ReadTestInfo.resx

@@ -123,10 +123,13 @@
   <metadata name="testresult.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="itemname.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+  <metadata name="BIOS.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="testresult.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+  <metadata name="SerialNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="PK.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
 </root>

+ 48 - 8
PLCDataReader/Main.cs

@@ -113,10 +113,29 @@ namespace UAS_PLCDataReader
             ComboBoxData cbd17 = new ComboBoxData();
             cbd17.Text = "忽略";
             cbd17.Value = "INGORE";
+            ComboBoxData cbd18 = new ComboBoxData();
+            cbd18.Text = "待料时间";
+            cbd18.Value = "WAITTIME";
+            ComboBoxData cbd19 = new ComboBoxData();
+            cbd19.Text = "故障时长";
+            cbd19.Value = "BREAKTIME";
+            ComboBoxData cbd20 = new ComboBoxData();
+            cbd20.Text = "人工停机时长";
+            cbd20.Value = "MANSTOPTIME";
+            ComboBoxData cbd21 = new ComboBoxData();
+            cbd21.Text = "正常工作时长";
+            cbd21.Value = "WORKTIME";
+            ComboBoxData cbd22 = new ComboBoxData();
+            cbd22.Text = "开机时长";
+            cbd22.Value = "STARTTIME";
+            ComboBoxData cbd23 = new ComboBoxData();
+            cbd22.Text = "设备运行时长";
+            cbd22.Value = "RUNTIME";
+            ComboBoxData cbd24 = new ComboBoxData();
+            cbd22.Text = "不良明细";
+            cbd22.Value = "BADDETAIL";
             DataItemRepositoryItemComboBox1.Items.Add(cbd3);
             DataItemRepositoryItemComboBox1.Items.Add(cbd4);
-            DataItemRepositoryItemComboBox1.Items.Add(cbd16);
-            DataItemRepositoryItemComboBox1.Items.Add(cbd17);
             DataItemRepositoryItemComboBox1.Items.Add(cbd5);
             DataItemRepositoryItemComboBox1.Items.Add(cbd6);
             DataItemRepositoryItemComboBox1.Items.Add(cbd7);
@@ -128,6 +147,15 @@ namespace UAS_PLCDataReader
             DataItemRepositoryItemComboBox1.Items.Add(cbd13);
             DataItemRepositoryItemComboBox1.Items.Add(cbd14);
             DataItemRepositoryItemComboBox1.Items.Add(cbd15);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd16);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd17);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd18);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd19);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd20);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd21);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd22);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd23);
+            DataItemRepositoryItemComboBox1.Items.Add(cbd24);
             #endregion
         }
 
@@ -197,7 +225,7 @@ namespace UAS_PLCDataReader
             ButtonDeleteCommandSet.Grid = GridPollingSetting;
 
             //指令设置界面
-            GridCommandSetting.GetDataSQL = "select 0 CHECKEDCOLUMN,dc_id,dc_code,dc_ifng,dc_name,dc_type,case when dc_type='INQTY' then '投入' when dc_type='INGORE' then '忽略' when dc_type='NGQTY' then '不良' when dc_type='OUTQTY' then '产出' when dc_type='TEMPERATURE' then '温度' when dc_type='PARAM1' then '参数1' when dc_type='PARAM2' then '参数2' when dc_type='PARAM3' then '参数3' when dc_type='PARAM4' then '参数4' when dc_type='PARAM5' then '参数5' when dc_type='PARAM6' then '参数6' when dc_type='PARAM7' then '参数7' when dc_type='PARAM8' then '参数8' when dc_type='PARAM9' then '参数9' when dc_type='PARAM10' then '参数10' when dc_type='PARAM3' then '参数3' when dc_type='WAITTIME' then '待料时间' when dc_type='BREAKTIME' then '故障时长' when dc_type='MANSTOPTIME' then '人工停机时长' when dc_type='WORKTIME' then '正常工作时长' when dc_type='STARTTIME' then '开机时长'   end dc_typename,dc_value,dc_dataindex,dc_sendcoding,dc_receivecoding,db_name,dc_man,dc_date,dc_address from devicecommand left join devicebrand on db_code=dc_debrand ".ToUpper();
+            GridCommandSetting.GetDataSQL = "select 0 CHECKEDCOLUMN,dc_id,dc_code,dc_ifng,dc_name,dc_type,case when dc_type='INQTY' then '投入' when dc_type='INGORE' then '忽略' when dc_type='NGQTY' then '不良' when dc_type='OUTQTY' then '产出' when dc_type='TEMPERATURE' then '温度' when dc_type='PARAM1' then '参数1' when dc_type='PARAM2' then '参数2' when dc_type='PARAM3' then '参数3' when dc_type='PARAM4' then '参数4' when dc_type='PARAM5' then '参数5' when dc_type='PARAM6' then '参数6' when dc_type='PARAM7' then '参数7' when dc_type='PARAM8' then '参数8' when dc_type='PARAM9' then '参数9' when dc_type='PARAM10' then '参数10' when dc_type='PARAM3' then '参数3' when dc_type='WAITTIME' then '待料时间' when dc_type='BREAKTIME' then '故障时长' when dc_type='MANSTOPTIME' then '人工停机时长' when dc_type='WORKTIME' then '正常工作时长' when dc_type='STARTTIME' then '开机时长' when dc_type='RUNTIME' then '设备运行时长'   end dc_typename,dc_value,dc_dataindex,dc_sendcoding,dc_receivecoding,db_name,dc_man,dc_date,dc_address from devicecommand left join devicebrand on db_code=dc_debrand ".ToUpper();
             GridCommandSetting.TableName = "devicecommand";
             GridCommandSetting.ID = "dc_id";
             GridCommandSetting.InsertSQL = "insert into devicecommand(dc_id,dc_code,dc_name,dc_value,dc_debrand,dc_sendcoding,dc_receivecoding,dc_man,dc_date,dc_dataindex,dc_type,dc_address) values(devicecommand_seq.nextval,:dc_code,:dc_name,:dc_value,'" + BaseUtil.GetComboxEditValue(Brand) + "',:dc_sendcoding,:dc_receivecoding,'" + User.UserName + "',sysdate,:dc_dataindex,:dc_type,:)";
@@ -649,19 +677,31 @@ namespace UAS_PLCDataReader
                             Dictionary<string, string> ItemData = new Dictionary<string, string>();
                             int[] Arr = BaseUtil.GetDecimalData(BaseUtil.ASCIIToString(client[IP].Returnvalue[IP]), 8);
                             Console.WriteLine(IP + " " + Arr.Length + " " + dc_dr.Length);
-                            //返回的参数个数和定义的参数个数相等或者小于的时候
-                            if (Arr.Length == dc_dr.Length || dc_dr.Length > Arr.Length)
+                            //如果返回的是不良代码的集合,则表示连续的不良
+                            if (dc_dr[0]["dc_type"].ToString() == "BADDETAIL")
                             {
+                                //命令行只需要设置一条指令,通过参数长度来设置Key
                                 for (int j = 0; j < Arr.Length; j++)
                                 {
-                                    ItemData.Add(dc_dr[j]["dc_type"].ToString(), Arr[j].ToString());
+                                    ItemData.Add(dc_dr[j]["dc_type"].ToString() + j, Arr[j].ToString());
                                 }
                             }
                             else
                             {
-                                for (int j = 0; j < dc_dr.Length; j++)
+                                //返回的参数个数和定义的参数个数相等或者小于的时候
+                                if (Arr.Length == dc_dr.Length || dc_dr.Length > Arr.Length)
+                                {
+                                    for (int j = 0; j < Arr.Length; j++)
+                                    {
+                                        ItemData.Add(dc_dr[j]["dc_type"].ToString(), Arr[j].ToString());
+                                    }
+                                }
+                                else
                                 {
-                                    ItemData.Add(dc_dr[j]["dc_type"].ToString(), Arr[j].ToString());
+                                    for (int j = 0; j < dc_dr.Length; j++)
+                                    {
+                                        ItemData.Add(dc_dr[j]["dc_type"].ToString(), Arr[j].ToString());
+                                    }
                                 }
                             }
                             if (!ReturnData.ContainsKey(Decode + Dccode[i]))

+ 9 - 4
UAS-出货标签管理(吉利通)/UAS-出货标签管理(吉利通).csproj

@@ -98,10 +98,6 @@
     </ApplicationIcon>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Interop.LabelManager2">
-      <HintPath>..\..\..\UAS_WinForm\UAS-出货标签管理\bin\Debug\Interop.LabelManager2.dll</HintPath>
-      <EmbedInteropTypes>False</EmbedInteropTypes>
-    </Reference>
     <Reference Include="Microsoft.Office.Interop.Access.Dao, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
       <EmbedInteropTypes>False</EmbedInteropTypes>
       <HintPath>..\packages\Microsoft.Office.Interop.Access.Dao.15.0.4420.1017\lib\net20\Microsoft.Office.Interop.Access.Dao.dll</HintPath>
@@ -690,6 +686,15 @@
     </PublishFile>
   </ItemGroup>
   <ItemGroup>
+    <COMReference Include="LabelManager2">
+      <Guid>{3624B9C2-9E5D-11D3-A896-00C04F324E22}</Guid>
+      <VersionMajor>6</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>tlbimp</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>False</EmbedInteropTypes>
+    </COMReference>
     <COMReference Include="stdole">
       <Guid>{00020430-0000-0000-C000-000000000046}</Guid>
       <VersionMajor>2</VersionMajor>