110,537
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Timers;
using System.Threading;
namespace tttttest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort sp = new SerialPort();
public static string byteToHexStr(byte[] bytes)
{
string returnStr = "";
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
returnStr += bytes[i].ToString("X2");
}
}
return returnStr;
}
int Flag = 0;
public static byte[] baotou()
{
byte[] a = new byte[6];
a[0] = 0xEF;
a[1] = 0x01;
a[2] = 0xFF;
a[3] = 0xFF;
a[4] = 0xFF;
a[5] = 0xFF;
return a;
}
public static byte[] luru()
{
byte[] a = new byte[6];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x03;
a[3] = 0x01;
a[4] = 0x00;
a[5] = 0x05;
return a;
}
public static byte[] bf1()
{
byte[] a = new byte[7];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x04;
a[3] = 0x02;
a[4] = 0x01;
a[5] = 0x00;
a[6] = 0x08;
return a;
}
public static byte[] bf2()
{
byte[] a = new byte[7];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x04;
a[3] = 0x02;
a[4] = 0x02;
a[5] = 0x00;
a[6] = 0x09;
return a;
}
public static byte[] tezheng()
{
byte[] a = new byte[6];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x03;
a[3] = 0x05;
a[4] = 0x00;
a[5] = 0x09;
return a;
}
public static byte[] save()
{
byte[] a = new byte[9];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x06;
a[3] = 0x06;
a[4] = 0x01;
a[5] = 0x00;
a[6] = 0x0B;
a[7] = 0x00;
a[8] = 0x19;
return a;
}
public static byte[] search()
{
byte[] a = new byte[11];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x08;
a[3] = 0x04;
a[4] = 0x01;
a[5] = 0x00;
a[6] = 0x00;
a[7] = 0x03;
a[8] = 0xA1;
a[9] = 0x00;
a[10] = 0xB2;
return a;
}
public static byte[] search0_9()
{
byte[] a = new byte[11];
a[0] = 0x01;
a[1] = 0x00;
a[2] = 0x08;
a[3] = 0x04;
a[4] = 0x01;
a[5] = 0x00;
a[6] = 0x00;
a[7] = 0x00;
a[8] = 0x13;
a[9] = 0x00;
a[10] = 0x21;
return a;
}
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";
if (sp.IsOpen)
{
sp.Close();
}
sp = new SerialPort();
sp.PortName = "COM11";
sp.BaudRate = 57600;
sp.Open();
byte[] buffer = new byte[12];
do
{
sp.Write(baotou(), 0, 6);
sp.Write(luru(), 0, 6);
sp.Read(buffer, 0, 12);
string ss;
ss = byteToHexStr(buffer);
textBox2.Text = ss;
Thread.Sleep(1000);
} while (Flag != 1);
sp.Write(baotou(), 0, 6);
sp.Write(bf1(), 0, 7);
Thread.Sleep(1000);
sp.Read(buffer, 0, 12);
string sss;
sss = byteToHexStr(buffer);
textBox2.Text = sss;
do
{
sp.Write(baotou(), 0, 6);
sp.Write(luru(), 0, 6);
sp.Read(buffer, 0, 12);
string ss;
ss = byteToHexStr(buffer);
textBox2.Text = ss;
Thread.Sleep(1000);
} while (Flag != 2);
sp.Write(baotou(), 0, 6);
sp.Write(bf2(), 0, 7);
Thread.Sleep(1000);
sp.Read(buffer, 0, 12);
string ssss;
ssss = byteToHexStr(buffer);
textBox2.Text = ssss;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
if (textBox2.Text == "EF01FFFFFFFF07000300000A" && Flag == 0)
{
MessageBox.Show("首次录入成功", "提示");
textBox2.Text = "";
Flag = 1;
}
if (textBox2.Text == "EF01FFFFFFFF07000300000A" && Flag == 1)
{
MessageBox.Show("二次录入成功", "提示");
textBox2.Text = "";
Flag = 2;
}
}
}
}
do
{
sp.Write(baotou(), 0, 6);
sp.Write(luru(), 0, 6);
Thread.Sleep(1000);
//sp.DiscardInBuffer();
sp.Read(buffer, 0, 12);
while (buffer.Length != 12) ;
str = byteToHexStr(buffer);
textBox2.Text = str;
Thread.Sleep(1000);
}while (!str.Equals("EF01FFFFFFFF07000300000A")) ;
MessageBox.Show("首次录入成功", "提示");
do
{
sp.Write(baotou(), 0, 6);
sp.Write(luru(), 0, 6);
Thread.Sleep(1000);
sp.DiscardInBuffer();
sp.Read(buffer, 0, 12);
str = byteToHexStr(buffer);
textBox2.Text = str;
Thread.Sleep(1000);
}while (!str.Equals("EF01FFFFFFFF07000300000A")) ;
MessageBox.Show("首次录入成功", "提示");
textBox2.Text = str;