原创 C#环境下 串口转以太网NPORT使用笔记 3

2011-3-1 17:05 3053 6 6 分类: 通信

写完了打开事件和关闭事件,现在终于可以开始描述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);


}


e428db7b-ce83-49e6-968d-896ec6449619.jpg753deca0-5b2e-4e99-a111-50c7f72582bf.jpg

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条