请问 用C# serialPort 怎么接收 地磅传上来的 数据呀,有没大神给个例子,谢谢
答案:3 悬赏:40 手机版
解决时间 2021-04-04 23:17
- 提问者网友:别再叽里呱啦
- 2021-04-04 08:46
请问 用C# serialPort 怎么接收 地磅传上来的 数据呀,有没大神给个例子,谢谢
最佳答案
- 五星知识达人网友:动情书生
- 2021-04-04 09:53
这个控件的事件里面有个数据接收,每次有数据流入都会触发,你可以在那里面写上写一些接收数据的代码。然后在处理数据,要注意的是,这个接收动作是在别的线程上完成的,所以不能直接在主线程显示。那样是不安全的。需要调用委托才可以。我会的也不多,你参考下我的代码吧。
private void serialPortB_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] data = new byte[200];
int length = serialPortB.Read(data, 0, 200);
string Read = Encoding.Default.GetString(data, 0, length);
W_Reveive(Read);
}
private void W_Reveive(string text)//这里调用了一个委托,这样就可以在主线程刷新数据了
{
if (this.textBox1.InvokeRequired)
{ D_power d = new D_power(W_Reveive);
this.Invoke(d, new object[] { text });
}
else
{
Scane(text);//这个函数是最后实际处理数据的,此次可以设置为显示数据。
}
}
private void serialPortB_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] data = new byte[200];
int length = serialPortB.Read(data, 0, 200);
string Read = Encoding.Default.GetString(data, 0, length);
W_Reveive(Read);
}
private void W_Reveive(string text)//这里调用了一个委托,这样就可以在主线程刷新数据了
{
if (this.textBox1.InvokeRequired)
{ D_power d = new D_power(W_Reveive);
this.Invoke(d, new object[] { text });
}
else
{
Scane(text);//这个函数是最后实际处理数据的,此次可以设置为显示数据。
}
}
全部回答
- 1楼网友:行路难
- 2021-04-04 10:16
没有例子!!
- 2楼网友:逐風
- 2021-04-04 10:03
地磅厂商会提供API的,你按照他们的示例自己改写下就行了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯