Re:关于使用SerialPort及ZedGraph快速实现串口数据实时显示。 40

我说下我的想法,高手们帮我看看能行得通否。我从端口获取的数据,15200波特率,1S发50个包,一个包取4个点来描图,就是说1S要描200个点,这样接收和显示会丢数据吗?... 我说下我的想法,高手们帮我看看能行得通否。 我从端口获取的数据,15200波特率,1S发50个包,一个包取4个点来描图,就是说1S要描200个点,这样接收和显示会丢数据吗?一个包长度40个字节,一个点8位就是一个字节,取连续的4个点。谁有这样的DEMO能给我一个否? 谢谢了。
C# 编程的,谁懂给钱也得,因为比较急,谢谢大侠们了!QQ:935934421
void processData(byte[] comingData)
{
foreach (byte b in comingData)
{
if (onePoint.Count == 2)
{
byte[] pointBytes = onePoint.ToArray();
if (checkBoxIsNeedReverse.Checked)
{
Array.Reverse(pointBytes);
}
ushort sample = BitConverter.ToUInt16(pointBytes, 0);
double current = ((sample * 2.5) / 4096 - 0.6) / (100 * 1000);
double sendData = current;
if (checkBoxIsShowSample.Checked)
{
sendData = sample;
}
pointComing(this, new DataReceivedEventArgs(sendData));
onePoint.Clear();
}
onePoint.Add(b);
}
}
展开
 我来答
21d801
推荐于2021-01-15 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:100%
帮助的人:914万
展开全部
串口是较为容易丢数据的地方,程序如果处理得当一般就你说的情况完全处理的来,zed那个显示我没用过,当时准备用web图表的时候看过它的一些介绍。代码肯定是没有的,不过可以给点建议:
1 采用异步处理
2 接收数据处理数据单独一个线程
3 显示放在主线程
因为一个界面显示的时间段是特定的,比如2个小时,4个小时等
4 程序设置一个显示缓存,主要放置这个时间段内的实时数据,2中提到的线程对其管理,移除旧的,放置新的
5 显示的主线程每隔特定时间查询缓存并显示
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式