写完了打开事件和关闭事件,现在终于可以开始描述write函数了,我个人觉得向NPORT写入数据要远比从NPORT中读出数据简单的多,我到现在还是没有很好的解决读的问题。而write函数使用起来还是比较方便的。Write需要传入三个参数,原先得到的portID,string型数据和string长度。具体代码如下:
private void buttonWrite_Click(object sender, EventArgs e)
{
if (textBoxWrite.Text.Length > 0)
{
//调用nsio_write函数
NPORT.nsio_write(portID, textBoxWrite.Text, textBoxWrite.Text.Length);
}
else
{
MessageBox.Show("写入文本框数据位空", "NPOR操作提示"
, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
在我的台机上有一个双串口卡,我把NPORT的一头接网线,接在我交换机上,NPORT的串口接在了双串口卡上,所以我就可以自收自发了,调试非常方便。需要说明的是,NPORT默认的波特率为38400,无校验位和1位停止位,当然这个是可以设定的,以后再说吧。
下面就来说一下NPORT的接收问题,由于没有像串口控件那样的接收事件,所以先使用最简单的手动读写方式来使用nsio_read(),然后再通过多线程来自动的显示接受数据。接受部分的代码如下:
//构造一个readBuf字符串
StringBuilder readBuf = new StringBuilder();
//调用nsio_read方法
NPORT.nsio_read(portID, readBuf, 1024);
//接受数据个数不为0
if (readBuf.Length !=0 )
{
//show数据
MessageBox.Show("接受到如下数据:" + Environment.NewLine
+ readBuf.ToString()
,"NPORT操作提示");
}
else
{
//错误提示
MessageBox.Show("未收到任何数据", "NPORT操作提示"
, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
文章评论(0条评论)
登录后参与讨论