绘制来自串行端口的数据

发布于 2024-10-31 14:13:08 字数 174 浏览 0 评论 0原文

我在 .NET 中有一个波特率为 9600 的串行端口。传入的数据是 数字,它是电机编码器的 2 个脉冲之间的时间,它实际上是电机的 RPM

如何实时绘制数据?

I got a serial port in .NET at 9600 baudrate. The incoming data is
numeric, it's the time between 2 pulses of a motor encoder, it's the RPM of the motor actualy.

How do I plot the data in real time?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

德意的啸 2024-11-07 14:13:08

一个简单的绘图仪相当容易制作。您可以花费数小时寻找合适的库或程序,或者在同等时间内编写自己的库或程序。

这是我过去的做法

  • 分配一个循环缓冲区 - 大约 2-4K 数据点应该足够了
  • 将串行数据存储在串行缓冲区中
  • 获取可绘制区域将
  • 可绘制区域的高度映射到最大值 - 最小值您希望显示的值
  • 将可绘制区域的宽度映射到您希望显示的点数
  • 启动一个线程,该线程接收串行数据,解析它并将其放入循环缓冲区中,
  • 启动另一个线程检查新数据定期缓冲,将循环缓冲区中的数据绘制在后台缓冲区上,然后更新后台缓冲区显示的可绘制区域。

我前段时间也遇到过类似的问题。我寻找一个简单、轻便的程序,可以开箱即用。我最终屈服并使用 Win32 调用编写了自己的程序。 .NET 实现会更简单。

http://www.fast-product-development.com /real-time-serial-data-plot.html

A simple plotter is fairly easy to do. You can spend hours looking for a just right library or program or just write your own in equivalent time.

Here is how I have done it in the past

  • Allocate a circular buffer - about 2-4K data points should be sufficient
  • take your serial data store it in the serial buffer
  • get a drawable area
  • map the height of the drawable area to the maximum - minimum value you wish to display
  • map the width of the drawable area to the number of points you wish to display
  • start a thread which takes in the serial data, parses it and puts it in the circular buffer,
  • start another thread which checks for new data in buffer periodically, plots the data in the circular buffer on a back buffer and then updates the drawable area displayed with the backbuffer.

I had a similar issue some time back. I looked for a simple, light program that would do it do out of the box. I finally gave in and coded my own program using Win32 calls. A .NET implementation would be simpler.

http://www.fast-product-development.com/real-time-serial-data-plot.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文