修改搜索IP后的显示逻辑

This commit is contained in:
zhouyunhao
2024-09-23 08:48:13 +08:00
parent 5e2261e74e
commit dcd9b20fb0
63 changed files with 328161 additions and 235 deletions

View File

@@ -13,7 +13,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
//using Excel = Microsoft.Office.Interop.Excel;
using ZXing;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
@@ -464,7 +464,7 @@ namespace C_Windows_1
case (int)yiqi.finish:
Modbusread(1034, 26, ReadData);
progressBar2.Value = progressBar2.Maximum;
timerbar.Stop();
//timerbar.Stop();
DataGridView1.Invoke(new System.Action(Display));
CreateFile();
//Passzong.Text = ChanPass.ToString();
@@ -1198,13 +1198,16 @@ namespace C_Windows_1
}
return localIP;
}
System.Net.IPAddress ip;
private static Socket sock;
Thread UDPlisten;
string UDPRecvData;
//点击“连接串口”按钮,连接串口
private void BtnCon1_Click(object sender, EventArgs e)
{
UDPResults.Items.Clear();
byte[] data = Encoding.ASCII.GetBytes("hello,udp server");
System.Net.IPAddress ip;
string localip=GetLocalIPAddress();
// 查找第三个 '.' 符号的位置
@@ -1223,19 +1226,53 @@ namespace C_Windows_1
// 获本机IP频段广播到 .255
IPEndPoint endPoint = new IPEndPoint(ip, Port);
try
{
// 发送广播
udpClient.Send(data, data.Length, endPoint);
//try
//{
// // 发送广播
// udpClient.Send(data, data.Length, endPoint);
isListening = true;
// 开始监听返回消息
udpClient.BeginReceive(ReceiveCallback, null);
timeoutTimer.Start();
}
catch (Exception ex)
// isListening = true;
// // 开始监听返回消息
// udpClient.BeginReceive(ReceiveCallback, null);
// timeoutTimer.Start();
//}
//catch (Exception ex)
//{
// MessageBox.Show(ex.Message);
//}
sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sock.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.Broadcast, 1);
UDPOverTime.Interval = 3000;
UDPOverTime.Start();
isListening = true;
UDPlisten = new Thread(UDP_Listening);
UDPlisten.Start();
sock.SendTo(data, endPoint);
//UDPRead.Interval = 3000;
//UDPRead.Start();
}
private void UDP_Listening()
{
while (isListening)
{
MessageBox.Show(ex.Message);
Invoke(new System.Action(() =>
{
UDPOverTime.Stop();
}
));
byte[] data = new byte[1024];
int recv = sock.Receive(data);
string RecvData = Encoding.ASCII.GetString(data, 0, recv);
Invoke(new Action(() =>
{
UDPResults.Items.Add(RecvData); // 将接收到的消息添加到 ComboBox
UDPResults.SelectedIndex = UDPResults.Items.Count - 1;
}));
//UDPRecvData += RecvData;
//UDPRecvData += "\n";
}
}
private void ReceiveCallback(IAsyncResult ar)
@@ -1244,7 +1281,7 @@ namespace C_Windows_1
{
if (!isListening) return;
IPEndPoint remoteEndPoint = new IPEndPoint(System.Net.IPAddress.Any, Port);
IPEndPoint remoteEndPoint = new IPEndPoint(ip, Port);
byte[] receivedData = udpClient.EndReceive(ar, ref remoteEndPoint);
string receivedMessage = Encoding.ASCII.GetString(receivedData);
@@ -2168,197 +2205,7 @@ namespace C_Windows_1
private void AddExcel3()
{
if (path.Text.Length == 0)
{
path.Text = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
}
string FileDialog = path.Text;
//创建文件夹
if(!Directory.Exists(FileDialog))//如果不存在就创建file文件夹
{
Directory.CreateDirectory(FileDialog);
}
string file = DateTime.Now.ToString("yyyyMMdd");
string FileName = FileDialog + "\\" + file+"测试记录" + ".xlsx";
string filepath;
filepath = FileName;
Excel.Application xapp = new Excel.Application();
if (!File.Exists(filepath))//判断所选路径是否有文件
{
//若不存在该文件,则创建新文件
var str1 = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbooks xbook1 = str1.Workbooks;
Excel.Workbook xbook2 = str1.Workbooks.Add(true);
xbook2.SaveAs(filepath);//按照指定路径存储新文件
xbook2.Close();
}
//若存在该文件,则打开文件并写入数据
Excel.Workbook xbook = xapp.Workbooks._Open(filepath, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Excel.Worksheet xsheet = (Excel.Worksheet)xbook.Sheets[1];
string nowdate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
//string[] fieldArr = { "时间", "条形码", "充气时间", "平衡时间", "检测时间", "排气时间", "充气压力上限", "充气压力下限", "大漏压差上限", "大漏压差下限", "泄漏量上限", "泄漏量下限", "测试结果", "测试压力", "压力单位", "泄漏量", "泄漏量单位" };//列名
//string[] dataArr = { DateTime.Now.ToString(), Code.Text, FullTime.Text + "s", BalanTime.Text + "s", TestTime1.Text + "s", ExhaustTime.Text + "s", FPtoplimit.Text + PressureUnit.Text, FPlowlimit.Text + PressureUnit.Text, BLeakTPre.Text + "Pa", BLeakLPre.Text + "Pa", Leaktoplimit.Text + LeakUnit.Text, Leaklowlimit.Text + LeakUnit.Text, Tlight.Text, DLeakPressure, PressureUnit.Text, DLeak, LeakUnit.Text }; //行名
string[] fieldArr = { "时间", "条形码", "充气时间", "平衡时间", "检测时间", "排气时间", "充气压力上限", "充气压力下限", "大漏压差上限", "大漏压差下限", "泄漏量上限", "泄漏量下限", "测试结果", "测试压力", "压力单位", "泄漏量", "泄漏量单位" };//列名
//string[] fieldArr = { I18N.GetLangText(dicLang, "时间"), I18N.GetLangText(dicLang, "条形码"), I18N.GetLangText(dicLang, "充气时间"), I18N.GetLangText(dicLang, "平衡时间"), I18N.GetLangText(dicLang, "检测时间"), I18N.GetLangText(dicLang, "排气时间"),
// I18N.GetLangText(dicLang, "充气压力上限"), I18N.GetLangText(dicLang, "充气压力下限"), I18N.GetLangText(dicLang, "大漏压差上限"), I18N.GetLangText(dicLang, "大漏压差下限"),
// I18N.GetLangText(dicLang, "泄漏量上限") , I18N.GetLangText(dicLang, "泄漏量下限"),I18N.GetLangText(dicLang, "测试结果"), I18N.GetLangText(dicLang, "测试压力"), I18N.GetLangText(dicLang, "压力单位"), I18N.GetLangText(dicLang, "泄漏量"),
// I18N.GetLangText(dicLang, "泄漏量单位") };//列名
string[] dataArr = {DateTime.Now.ToString(),Code.Text, ReadData[25] / 10.0 + "s", ReadData[26] / 10.0 + "s", ReadData[27] / 10.0 + "s", ReadData[28] / 10.0 + "s",
TwoUInt16ToFloat(ReadData[33], ReadData[32]).ToString(), TwoUInt16ToFloat(ReadData[47], ReadData[46]).ToString(),
ReadData[36].ToString() , ( Digitalconversion( ReadData[37])).ToString() , TwoUInt16ToFloat(ReadData[39], ReadData[38]).ToString() , TwoUInt16ToFloat(ReadData[45], ReadData[44]).ToString() ,Tlight.Text ,
TwoUInt16ToFloat(ReadData[17], ReadData[16]).ToString() , PressureUnit.Text , TwoUInt16ToFloat(ReadData[19], ReadData[18]).ToString() , LeakUnit.Text};
int c = xsheet.UsedRange.Rows.Count;
// label1.Text = c.ToString();
int a;
for (a = 0; a < fieldArr.Length; a++)
{
xsheet.Cells[a + 1][1] = fieldArr[a];
}
int b;
// int j;
for (b = 0; b < dataArr.Length; b++)
{
Excel.Range cell = (Excel.Range)xsheet.Cells[b + 1][c + 1];
cell.NumberFormat = "@";
xsheet.Cells[b + 1][c + 1] = dataArr[b];//将数据插入
}
// string result="40";
// xsheet.Cells[1][1] = result;
xbook.Save();
xsheet = null;
xbook.Close();
xapp.DisplayAlerts = false;
xapp.Quit();
xapp = null;
}
//将数据写入Excel表格
private void AddExcel2()
{
string fileName;
string file = DateTime.Now.ToString("yyyyMMdd");
if (path.Text == "")//若路径处不输入则获取桌面路径
{
fileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\leaktest.xls";
}
else
{
fileName = path.Text + "\\" + "leaktest" + file + ".xls";
}
// label1.Text = "点击了哦";
Excel.Application xapp = new Excel.Application();
// string filepath = @"D:\567.xlsx";
if (File.Exists(fileName))//判断所选路径是否有文件
{
//若存在该文件,则打开文件并写入数据
Excel.Workbook xbook = xapp.Workbooks._Open(fileName, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Excel.Worksheet xsheet = (Excel.Worksheet)xbook.Sheets[1];
string nowdate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
string[] fieldArr = { "时间", "条形码", "充气时间", "平衡时间", "检测时间", "排气时间", "充气压力上限", "充气压力下限", "大漏压差上限", "大漏压差下限", "泄漏量上限", "泄漏量下限", "测试结果", "测试压力", "压力单位", "泄漏量", "泄漏量单位" };//列名
string[] dataArr = { DateTime.Now.ToString(), Code.Text, FullTime.Text + "s", BalanTime.Text + "s", TestTime1.Text + "s", ExhaustTime.Text + "s", FPtoplimit.Text + PressureUnit.Text, FPlowlimit.Text + PressureUnit.Text, BLeakTPre.Text + "Pa", BLeakLPre.Text + "Pa", Leaktoplimit.Text + LeakUnit.Text, Leaklowlimit.Text + LeakUnit.Text, Tlight.Text, DLeakPressure, PressureUnit.Text, DLeak, LeakUnit.Text }; //行名
int c = xsheet.UsedRange.Rows.Count;
// label1.Text = c.ToString();
int a;
for (a = 0; a < fieldArr.Length; a++)
{
xsheet.Cells[a + 1][1] = fieldArr[a];
}
int b;
// int j;
for (b = 0; b < dataArr.Length; b++)
{
// for( j = 0;j< dataArr.Length ;j++)
xsheet.Cells[b + 1][c + 1] = dataArr[b];
}
// string result="40";
// xsheet.Cells[1][1] = result;
xbook.Save();
xsheet = null;
xbook.Close();
xapp.DisplayAlerts = false;
xapp.Quit();
xapp = null;
}
else
{
// textBox2.Text = Directory.Exists(filepath).ToString();
//若不存在该文件,则创建新文件
var str1 = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbooks xbook1 = str1.Workbooks;
Excel.Workbook xbook2 = str1.Workbooks.Add(true);
xbook2.SaveAs(fileName);//按照指定路径存储新文件
xbook2.Close();
Excel.Workbook xbook = xapp.Workbooks._Open(fileName, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Excel.Worksheet xsheet = (Excel.Worksheet)xbook.Sheets[1];
string nowdate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
string[] fieldArr = { "时间", "条形码", "充气时间", "平衡时间", "检测时间", "排气时间", "充气压力上限", "充气压力下限", "大漏压差上限", "大漏压差下限", "泄漏量上限", "泄漏量下限", "测试结果", "测试压力", "压力单位", "泄漏量", "泄漏量单位" };//列名
string[] dataArr = { DateTime.Now.ToString(), Code.Text, FullTime.Text + "s", BalanTime.Text + "s", TestTime1.Text + "s", ExhaustTime.Text + "s", FPtoplimit.Text + PressureUnit.Text, FPlowlimit.Text + PressureUnit.Text, BLeakTPre.Text + "Pa", BLeakLPre.Text + "Pa", Leaktoplimit.Text + LeakUnit.Text, Leaklowlimit.Text + LeakUnit.Text, Tlight.Text, DLeakPressure, PressureUnit.Text, DLeak, LeakUnit.Text }; //行名
int c = xsheet.UsedRange.Rows.Count;
// label1.Text = c.ToString();
int a;
for (a = 0; a < fieldArr.Length; a++)
{
xsheet.Cells[a + 1][1] = fieldArr[a];
}
int b;
// int j;
for (b = 0; b < dataArr.Length; b++)
{
// for( j = 0;j< dataArr.Length ;j++)
xsheet.Cells[b + 1][c + 1] = dataArr[b];
}
// string result="40";
// xsheet.Cells[1][1] = result;
xbook.Save();
xsheet = null;
xbook.Close();
xapp.DisplayAlerts = false;
xapp.Quit();
xapp = null;
}
}
//将数据写入TXT
private void AddTXT()
@@ -2749,17 +2596,17 @@ namespace C_Windows_1
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Timer1.Stop();
Timer2.Stop();
Timer3.Stop();
Timer4.Stop();
//Timer1.Stop();
//Timer2.Stop();
//Timer3.Stop();
//Timer4.Stop();
Timer8.Stop();
Timer9.Stop();
Timer10.Stop();
//Timer8.Stop();
//Timer9.Stop();
//Timer10.Stop();
Timer16.Stop();
this.Hide();
//Timer16.Stop();
//this.Hide();
SerialPort1.Dispose();
SerialPort1.Close();
@@ -2767,7 +2614,9 @@ namespace C_Windows_1
{
modbusClient.ConnectClose();
}
this.Dispose();
System.Environment.Exit(0);
}
private void Timer11_Tick(object sender, EventArgs e)
@@ -3220,6 +3069,26 @@ namespace C_Windows_1
}
}
private void UDPRead_Tick(object sender, EventArgs e)
{
UDPRead.Stop();
UDP_Parse();
}
public void UDP_Parse()
{
if (!String.IsNullOrEmpty(UDPRecvData))
{
}
}
private void UDPOverTime_Tick(object sender, EventArgs e)
{
isListening = false;
}
private void CodePort1_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
{