Browse Source

测试仪器数据读取

callm 4 months ago
parent
commit
96f5f43041
2 changed files with 83 additions and 43 deletions
  1. 1 1
      FileWatcher/AutoMakeQTYRZ.Designer.cs
  2. 82 42
      FileWatcher/AutoMakeQTYRZ.cs

+ 1 - 1
FileWatcher/AutoMakeQTYRZ.Designer.cs

@@ -120,7 +120,7 @@
             // 
             // Timer
             // 
-            this.Timer.Interval = 2000;
+            this.Timer.Interval = 1000;
             this.Timer.Tick += new System.EventHandler(this.Timer_Tick);
             // 
             // ATEFile

+ 82 - 42
FileWatcher/AutoMakeQTYRZ.cs

@@ -59,6 +59,7 @@ namespace FileWatcher
         DataTable Dbfind;
 
         string IPAddress = "";
+        bool writedata = true;
         private void nr_rule_DBChange(object sender, EventArgs e)
         {
             Dbfind = li_code.ReturnData;
@@ -68,15 +69,57 @@ namespace FileWatcher
         private void Form1_Load(object sender, EventArgs e)
         {
             CheckForIllegalCrossThreadCalls = false;
+            InitDB = new Thread(ConnectDB);
+            SetLoadingWindow stw = new SetLoadingWindow(InitDB, "正在启动程序");
+            stw.StartPosition = FormStartPosition.CenterScreen;
+            stw.ShowDialog();
+            //string[] str = new string[] { "AA001097796643D67FE43D4185C74185EB47429A63783F64",
+            //    "AA001097796643D67FE43D4185C74185EB47429A63783F64",
+            //    "AA001097796643D67FE43D4185C74185EB47429A63783F64",
+            //    "AA001097796643D67FE43D4185C74185EB47429A63783F64",
+            //    "AA0010685B664300000000BE2BC74185EB47423655783F1E",
+            //    "AA001097796643D67FE43D4185C74185EB47429A63783F64",
+            //    "AA001097796643D67FE43D4185C74185EB47429A63783F64"};
+            //for (int i = 0; i < str.Length; i++)
+            //{
+            //    float 电压数据 = getdata(str[i].Substring(6, 8));
+            //    float 电流数据 = getdata(str[i].Substring(14, 8));
+            //    float 功率数据 = getdata(str[i].Substring(22, 8));
+            //    float 频率数据 = getdata(str[i].Substring(30, 8));
+            //    float 功率因素 = getdata(str[i].Substring(38, 8));
+            //    OperateResult.AppendText(str[i]);
+            //    OperateResult.AppendText(电压数据.ToString() + "\n");
+            //    OperateResult.AppendText(电流数据.ToString() + "\n");
+            //    OperateResult.AppendText(功率数据.ToString() + "\n");
+            //    OperateResult.AppendText(频率数据.ToString() + "\n");
+            //    OperateResult.AppendText(功率因素.ToString() + "\n");
+            //    //如果电流是0,则下次重新获取数据
+
+            //    if (电流数据 == 0)
+            //    {
+            //        writedata = false;
+            //        if (电流数据 == 0 && !writedata) {
+            //            writedata = true;
+            //        }
+            //    }
+             
+            //    if (writedata)
+            //    {
+            //        if (电流数据 != 0) {
+            //            dh.ExecuteSql("insert into currenttest(CT_ID, CT_MAKECODE, CT_VOLTAGE, CT_CURRENT, CT_POWER, CT_FREQUENCY, CT_POWER1)" +
+            //             "VALUES(currenttest_SEQ.NEXTVAL,'" + ma_code.Text + "','" + 电压数据 + "','" + 电流数据 + "','" + 功率数据 + "','" + 频率数据 + "','" + 功率因素 + "')", "insert");
+            //            writedata = false;
+            //        }
+            //    }
+            //}
+
             FormBorderStyle = FormBorderStyle.FixedSingle;
             serialPort1.DataReceived += SerialPort1_DataReceived;
-            InitDB = new Thread(ConnectDB);
+
             //添加监控事件
             XmlWatcher.Changed += new FileSystemEventHandler(XmlWatcher_Created);
             //ATEFile.Changed += new FileSystemEventHandler(XmlWatcher_Created);
-            SetLoadingWindow stw = new SetLoadingWindow(InitDB, "正在启动程序");
-            stw.StartPosition = FormStartPosition.CenterScreen;
-            stw.ShowDialog();
+
             List<string> CacheInf = new List<string>();
             IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName());
             for (int i = 0; i < IpEntry.AddressList.Length; i++)
@@ -93,8 +136,6 @@ namespace FileWatcher
                 li_code.Text = BaseUtil.GetCacheData("Line").ToString();
             }
             catch (Exception ex) { MessageBox.Show(ex.Message); }
-
-
         }
 
         private float getdata(string tmp_b2)
@@ -127,47 +168,46 @@ namespace FileWatcher
         }
 
         double lastqty = 0;
+        string data = "";
         private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
         {
-            int len = serialPort1.BytesToRead;
-            Byte[] readBuffer = new Byte[len];
-            serialPort1.Read(readBuffer, 0, len); //将数据读入缓存
-            string data = BitConverter.ToString(readBuffer, 0, readBuffer.Length).Replace("-", "");
-
-            float 电压数据 = getdata(data.Substring(6, 8));
-            float 电流数据 = getdata(data.Substring(14, 8));
-            float 功率数据 = getdata(data.Substring(22, 8));
-            float 频率数据 = getdata(data.Substring(30, 8));
-            float 功率因素 = getdata(data.Substring(38, 8));
-            OperateResult.AppendText(data);
-            OperateResult.AppendText(电压数据.ToString() + "\n");
-            OperateResult.AppendText(电流数据.ToString() + "\n");
-            OperateResult.AppendText(功率数据.ToString() + "\n");
-            OperateResult.AppendText(频率数据.ToString() + "\n");
-            OperateResult.AppendText(功率因素.ToString() + "\n");
-            //如果电流是0,则下次重新获取数据
-            dh.ExecuteSql("insert into currenttest(CT_ID, CT_MAKECODE, CT_VOLTAGE, CT_CURRENT, CT_POWER, CT_FREQUENCY, CT_POWER1)" +
-                  "VALUES(currenttest_SEQ.NEXTVAL,'" + ma_code.Text + "','" + 电压数据 + "','" + 电流数据 + "','" + 功率数据 + "','"+ 频率数据 + "','"+ 功率因素 + "')", "insert");
-            if (电流数据 == 0)
-            {
-                lastqty = 1;
-            }
-            else
+            try
             {
-                lastqty = 0;
+                int len = serialPort1.BytesToRead;
+                Byte[] readBuffer = new Byte[len];
+                serialPort1.Read(readBuffer, 0, len); //将数据读入缓存
+                 data = BitConverter.ToString(readBuffer, 0, readBuffer.Length).Replace("-", "");
+                if (data.Length == 48) {
+                    float 电压数据 = getdata(data.Substring(6, 8));
+                    float 电流数据 = getdata(data.Substring(14, 8));
+                    float 功率数据 = getdata(data.Substring(22, 8));
+                    float 频率数据 = getdata(data.Substring(30, 8));
+                    float 功率因素 = getdata(data.Substring(38, 8));
+                    //如果电流是0,则下次重新获取数据
+                    if (电流数据 == 0)
+                    {
+                        writedata = false;
+                        if (电流数据 == 0 && !writedata)
+                        {
+                            writedata = true;
+                        }
+                    }
+                    if (writedata)
+                    {
+                        if (电流数据 != 0)
+                        {
+                            OperateResult.AppendText("数据上传成功\n");
+                            dh.ExecuteSql("insert into currenttest(CT_ID, CT_MAKECODE, CT_VOLTAGE, CT_CURRENT, CT_POWER, CT_FREQUENCY, CT_POWER1)" +
+                             "VALUES(currenttest_SEQ.NEXTVAL,'" + ma_code.Text + "','" + 电压数据 + "','" + 电流数据 + "','" + 功率数据 + "','" + 频率数据 + "','" + 功率因素 + "')", "insert");
+                            writedata = false;
+                            NowQTY.Text = dh.getRowCount("currenttest","ct_makecode='"+ma_code.Text+"'").ToString();
+                        }
+                    }
+                }
             }
-            if (lastqty != 0)
+            catch (Exception ex)
             {
-                if (电流数据 == 0)
-                {
-                    lastqty = 0;
-                }
-                else
-                {
-                    lastqty = 1;
-                }
-
-              
+                OperateResult.AppendText(ex.Message+ data+"\n");
             }
         }