一,窗体界面展示
二,完成这个系统所需要的控件
1、label文本 需要修改它的text
2、button 同样需要修改它的text
3、comboBox
4、textBox
5、groupBox
6、serialPort
7、timer
本次系统所要用到的控件就这些,具体还要进行一些属性修改
三,代码展示和内容讲解
本人自己弄的,只能说大概有那么一个雏形不是很完善,大家有需要可以看看
本系统要用的自定义变量
byte sys;
byte timerState;
string str;
string num;
int balance;
int a;
1、系统运行界面程序代码
private void Form1_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
String[] port = SerialPort.GetPortNames();//通过应用系统方法,获取当前用户客户端口数
for (int i = 0; i < port.Length; i++)
{
comboBox1.Items.Add(port[i]);
}
}
2、打开串口按键的代码
private void btOpenserialport_Click(object sender, EventArgs e)
{
if (!com1.IsOpen) //如果串口已经关闭,则打开
{
com1.PortName = comboBox1.Text;//先获取串口号,串口号的选中,有组合框1提供赋值
com1.Open(); //打开串口
btOpenserialport.Text = "关闭串口";
btOpenserialport.BackColor = Color.Green;//按钮的背景颜色
timer1.Enabled = true;
com1.DataReceived += new SerialDataReceivedEventHandler(ReceiveData); //添加数据接收事件处理函数
}
else if (com1.IsOpen) //如果串口已经打开,则关闭
{
com1.Close();
btOpenserialport.Text = "打开串口";
btOpenserialport.BackColor = Color.Red;
timer1.Enabled = false;
}
}
3、查询卡号按键的代码
private void button4_Click(object sender, EventArgs e)
{
if (com1.IsOpen) //如果串口已经打开,则可以发送数据
{
try
{
byte[] buffer = new byte[] { 0xff, 0x55, 0x00, 0x00, 0x01, 0x03, 0x00, 0x30, 0x75 };
com1.Write(buffer, 0, buffer.Length); //将字节数组发送到串口
}
catch (Exception ex) //如果发生异常,则显示错误信息并关闭串口
{
MessageBox.Show("错误:" + ex.Message);
com1.Close();
}
}
else
{
MessageBox.Show("串口未打开!");
}
}
4、打开天线按键的代码
private void button5_Click(object sender, EventArgs e)
{
if (com1.IsOpen) //如果串口已经打开,则可以发送数据
{
try
{
byte[] buffer = new byte[] { 0xff, 0x55, 0x00, 0x00, 0x02, 0x03, 0x00, 0x30, 0x85 };//发送代码高频打开高频天线
com1.Write(buffer, 0, buffer.Length); //将字节数组发送到串口
}
catch (Exception ex) //如果发生异常,则显示错误信息并关闭串口
{
MessageBox.Show("错误:" + ex.Message);
com1.Close();
}
}
else
{
MessageBox.Show("串口未