serialport控件放在了主窗体,但是我想在其它子窗体中也能接受到下位机传过来的数据,不知道怎么做,我试了很多方法但是都不行,这是我第一次接触serialport控件,各位高人指点下,给点提示我?
接受数据
public void RData()
{
serialPort1.DiscardOutBuffer();
Thread.Sleep(40);
int by = serialPort1.BytesToRead;
byte[] bytes = new byte[by];
serialPort1.Read(bytes, 0, bytes.Length);
}Serialport实时接受串口放送数据事件中调用
private delegate void delegatesp();//定义委托
delegatesp Rd;
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
Rd = new delegatesp(RData);
Invoke(Rd, null);
}
catch { };
}但不知在其它子窗体中如何调用这个事件?
各位大侠给点提示吧,谢了!
接受数据
public void RData()
{
serialPort1.DiscardOutBuffer();
Thread.Sleep(40);
int by = serialPort1.BytesToRead;
byte[] bytes = new byte[by];
serialPort1.Read(bytes, 0, bytes.Length);
}Serialport实时接受串口放送数据事件中调用
private delegate void delegatesp();//定义委托
delegatesp Rd;
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
Rd = new delegatesp(RData);
Invoke(Rd, null);
}
catch { };
}但不知在其它子窗体中如何调用这个事件?
各位大侠给点提示吧,谢了!
http://blog.csdn.net/wuyazhe/category/695097.aspx
int by = serialPort1.BytesToRead;
byte[] bytes = new byte[by];
serialPort1.Read(bytes, 0, bytes.Length);
#region
for (int i = 0; i < by; i++)
{
if (bytes[i] == 0xA8)
{
switch (bytes[i + 3])
{
case 0x11: { MessageBox.Show("时间设置成功!"); break; }
case 0x12: { MessageBox.Show("日期设置成功!"); break; }
case 0x32: { MessageBox.Show("没有记录!"); break; }
case 0x38: { MessageBox.Show("删除完毕!"); break; }
case 0x40: { MessageBox.Show("设置禁行时段成功!"); break; }
case 0x41: { MessageBox.Show("取消禁行时段成功!"); break; }
case 0x50: { MessageBox.Show("修改成功!"); break; }
case 0x51: { MessageBox.Show("设置成功!"); break; }
case 0x5A: { MessageBox.Show("操作成功!"); break; }
case 0x5E: { MessageBox.Show("已恢复设置!"); break; }
case 0x5F: { MessageBox.Show("密码错误!"); break; }
}
}
}
我所有的子窗体中发送命令后,都是在主窗体中判断
感觉这样不好,如果没有很多下位机,如果命令没发送成功,也无法立即知道From2子窗体
Button事件
byte[] bytes = new byte[6];
bytes[0] = 0xdd;
bytes[1] = 0xdc;
bytes[2] = 0x22;
bytes[3] = 0x74;
bytes[4] = 0xAA
bytes[5] = 0x22;
m.SendData(bytes);我想在这个命令一发送出去后就知道,下位机有没有收到。
你的 Email