chart 响应串口消息,绘图时丢数据
如果在串口响应消息里面写:this.Dispatcher.Invoke(new System.Action(() =>
{
PaintData(Data, curDataCnt);
}));
数据是不会丢,但整个ui界面就卡死了,点别的按钮没反应。
用定时器DispatcherTimer 设定时间间隔为 Interval = TimeSpan.FromMilliseconds(0.1) ; refreshTimer.Tick += (s, e) => PaintData();
chart绘图就会出现丢数据的情况。
串口出来的数据是每秒100点。 请问如何解决? 回复 1楼子曰的帖子
谢谢对该问题的反馈。
仅从您的描述来看,不能重现您的问题,为了帮助您解决问题,请提供重现问题的demo. 回复 2楼Alice的帖子
这个涉及到硬件串口数据,不好做demo。
简而言之,就是怎么在串口响应消息里面操作chart? 回复 3楼子曰的帖子
很抱歉不太理解您是怎么实现模拟硬件发送数据至本机串口,并且可以第三方软件打开该串口接收该模拟数据?
通过您的描述来看,您需要去查阅.net文档,看.net是否有封装,才可以操作使用。 回复 4楼Alice的帖子
我做了个demo,可以虚拟串口工具模拟。
我保存了绘图时数据的索引,可以看出索引值并不是连续的。
且数据多点就感觉有卡顿 回复 5楼子曰的帖子
谢谢您提供的demo。
您的demo已经收到了,需要测试后给你反馈。很抱歉给您带来的不便。 回复 6楼Alice的帖子
不好意思,之前demo发错了。
请问chart绘图除了绑定方式还有别的方式吗? 回复 6楼Alice的帖子
这个是虚拟串口和串口发送工具的配置,demo中的串口号设置为5,数据可以为任意10位16进制字符。按照这个配置,目前demo的chart中不会绘图,因为坐标尺度不对 回复 7楼子曰的帖子
谢谢您的反馈。
重新接收您的问题。
您的demo正在测试,由于比较复杂,需要耗费一定时间,很抱歉给您带来的不便。 回复 8楼tian__xiaa的帖子
您好。
我们在运行您的demo的时候出现了错误,但是我们看了您的代码,并进行了分析。
您的代码主要是从硬件去数据,然后在C1chart展示出来。
我们也使用随机安装示例做了测试,测试示例路径如下:
\Documents\ComponentOne Samples\WPF\C1.WPF.Chart\CS\ChartSamples\Performance\Dynamic
通过将Dynamic.xaml.cs文件中的Interval属性改成:
Interval = TimeSpan.FromSeconds(0.01) };
来模拟您的1秒100个数据的频率。
C1Chart通过ItemsSource绑定数据源,但是实际上经过测试,在1秒内根本无法从数据源获取到100个数据,在规定的时间1秒数据源里的数据就没有100个,C1chart只是展示数据源里的数据,因为根本就没有100个数据,自然也无法在1秒展示100个数据。
调查发现,这不是产品问题,推测是计算机硬件或是平台本身的上限导致的。
页:
[1]
2