From c4f47bbec99d71eba138745e7f16c03400d88ad1 Mon Sep 17 00:00:00 2001
From: pzy <2829717936@qq.com>
Date: 星期三, 18 九月 2024 10:15:53 +0800
Subject: [PATCH] 导入任务1

---
 WarM/条码打印/Gy_BarCodeBill_automaticallyByPLC_New.cs |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 114 insertions(+), 2 deletions(-)

diff --git "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs" "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs"
index cd8997c..eeab9df 100644
--- "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs"
+++ "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs"
@@ -13,6 +13,7 @@
 using System.Drawing.Printing;
 using System.IO;
 using System.Management;
+using System.Net.NetworkInformation;
 
 namespace WarM
 {
@@ -408,6 +409,19 @@
         {
             this.Sub_SaveBill();
             Display();
+
+            //璁剧疆鎵撳嵃妯℃澘锛屾墦鍗�
+            grdList.Rows[0].Cells[0].Value = "*";
+            Report = new GridppReport();
+            Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + textBox_PrintModelParams.Text + ".grf");  //here .
+            Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
+            Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
+            Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd);
+            if (comboBox_PrinterParams.Text != "")
+            {
+                Report.Printer.PrinterName = comboBox_PrinterParams.Text.Replace("(榛樿)", "");
+            }
+            Report.Print(false);
 
             Display4();
         }
@@ -1017,6 +1031,12 @@
         {
             try
             {
+                if (socket != null && socket.Connected)
+                {
+                    MessageBox.Show("宸插缓绔嬭繛鎺ワ紝涓嶅彲閲嶅寤虹珛杩炴帴锛�");
+                    return;
+                }
+
                 if (grdMain.Rows.Count == 0 || grdMain.Rows[0].Cells[HMaterIDCol].Value == null || grdMain.Rows[0].Cells[HMaterIDCol].Value.ToString() == "" || grdMain.Rows[0].Cells[HMaterIDCol].Value.ToString() == "0")
                 {
                     MessageBox.Show("璇烽�夋嫨婧愬崟锛�");
@@ -1060,6 +1080,8 @@
                 Thread thread = new Thread(ReceiveMess);
                 thread.Start();
                 MessageBox.Show("杩炴帴鎴愬姛锛�");
+
+                timer3.Enabled = true;
             }
             catch (Exception ex)
             {
@@ -1093,8 +1115,8 @@
             }
             catch (Exception ex)
             {
-                MessageBox.Show("鎺ュ彛寮傚父锛屽凡鍏抽棴杩炴帴锛�" + ex.Message);
-                socket.Close();
+                //MessageBox.Show("鎺ュ彛寮傚父锛屽凡鍏抽棴杩炴帴锛�" + ex.Message);
+                //socket.Close();
             }
         }
 
@@ -1236,6 +1258,7 @@
                 if (socket.Connected)
                 {
                     socket.Close();
+                    MessageBox.Show("杩炴帴鍏抽棴鎴愬姛锛�");
                 }
                 else
                 {
@@ -1246,6 +1269,10 @@
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
+            }
+            finally
+            {
+                timer3.Enabled = false;
             }
         }
         #endregion
@@ -2353,5 +2380,90 @@
 
             }
         }
+
+
+
+        #region 鏂嚎閲嶈繛
+        private int maxRepeatConnectTimes = 5;
+        private int currentRepeatConnectTimes = 0;
+
+        #region 瀹氭椂鍣ㄦ娴嬭繛鎺ョ姸鎬併�佹柇绾块噸杩�
+        private void timer3_Tick(object sender, EventArgs e)
+        {
+            if (currentRepeatConnectTimes < maxRepeatConnectTimes)
+            {
+                //鍒ゆ柇瀹㈡埛绔槸鍚﹀彲浠ヨ闂湇鍔″櫒锛岃嫢涓嶅彲浠ヨ闂紝鍏抽棴socket杩炴帴
+                if (!getTargetInternetStatus())
+                {
+                    if (socket != null && socket.Connected)
+                    {
+                        socket.Close();
+                    }
+
+                    currentRepeatConnectTimes += 1;
+                }
+                else if (getTargetInternetStatus() && !socket.Connected)
+                {
+                    //鑻ュ鎴风鍙互璁块棶鏈嶅姟鍣紝socket閲嶆柊杩炴帴鏈嶅姟鍣�
+                    try
+                    {
+                        socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+                        IPAddress iPAddress = IPAddress.Parse(textBox_IPParams.Text);
+                        IPEndPoint point = new IPEndPoint(iPAddress, Convert.ToInt32(textBox_PortParams.Text));
+                        socket.Connect(point);
+
+                        Thread thread = new Thread(ReceiveMess);
+                        thread.Start();
+
+                        currentRepeatConnectTimes = 0;
+                    }
+                    catch (Exception ex)
+                    {
+                        currentRepeatConnectTimes += 1;
+                    }
+                }
+            }
+            else
+            {
+                //timer3.Enabled = false;
+                currentRepeatConnectTimes = 0;
+                MessageBox.Show("杩炴帴宸叉柇寮�锛岃閲嶆柊杩炴帴锛�!");
+            }
+        }
+        #endregion
+
+        #region 鑾峰彇鐩爣璁惧缃戠粶杩炴帴鐘舵��
+        private bool getTargetInternetStatus()
+        {
+            try
+            {
+                string targetIp = textBox_IPParams.Text; // 鏇挎崲涓虹洰鏍囩數鑴戠殑IP鍦板潃
+                Ping pingSender = new Ping();
+                PingOptions options = new PingOptions();
+                // 浣跨敤64瀛楄妭鐨勬暟鎹寘锛屸�屼綘鍙互鏍规嵁闇�瑕佽皟鏁磋繖涓��
+                string data = "Hello from Ping!";
+                byte[] buffer = Encoding.ASCII.GetBytes(data);
+                int timeout = 1200; // 瓒呮椂鏃堕棿锛屸�屽崟浣嶄负姣
+                PingReply reply = pingSender.Send(targetIp, timeout, buffer, options);
+
+                if (reply.Status == IPStatus.Success)
+                {
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+            catch (Exception ex)
+            {
+                return false;
+            }
+
+        }
+        #endregion
+        #endregion
+
+        
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1