串行端口和用户控制



我有一些UserControl程序,它需要从1个串行端口读取数据。我有一些程序包括:

  • 空速,声纳,纬度,经度&等文本框中显示的值
  • 物体规避显示
  • GPS地图

我在主窗体中有一个按钮,当它被点击时,它将打开串行端口,用户控件应该读取数据并显示它们,但我不知道如何做到这一点。

有人知道我如何让我的不同用户控件从1个串行端口读取数据吗?或者可能是一些我可以阅读的网站链接。非常感谢。

如果您有一个源(串行端口)和多个使用者(用户控件)。然后您必须添加另一层间接层。编写一个类,它是串行端口类的所有者,并将其中的所有数据读取到某种缓冲区中(对DataReceived事件作出反应,将新数据放入List、Queue等)。该缓冲区将从该类公开,此外,它自己也有一些事件(DataReceived?)。现在,您的所有消费者都可以收听此事件,并查看缓冲区以查找所需的数据。

主要问题是从共享缓冲区中删除数据,因为这取决于消费者是需要整个缓冲区还是只需要其中的一部分。只要想想一个概念,每个消费者如何通知生产者它只在缓冲区中工作,如果每个人都移动到缓冲区的开头,就让生产者减少缓冲区。但要注意,你也必须重新通知你的消费者,指数现在已经改变了。

如果每个使用者每次接收一些数据都创建自己的本地缓冲区,并且在这种情况下,每个使用者都可以根据需要减少自己的缓冲区,那么也可以避免共享缓冲区增长的问题。

如果需要第一种方法的复杂性来减少整个应用程序的内存占用,那么哪种策略更有意义取决于具体情况。

最新更新