需要有关在C++/CLI中通过串行端口进行通信的建议

Need advice about communication via serial port in C++/CLI

本文关键字:串行端口 通信 C++ CLI      更新时间:2023-10-16

我正在进行一个项目,我必须通过串行端口进行通信。我将通过RS232从UART接收相当"大量"的数据(大约6KB/10ms),我必须收集并解码。解码后的数据将被存储到文件中,其中一些数据将被显示在GUI中。

我将使用C++/CLI(在Visual Studio 2010中使用.NET v4.0),因为托管数据工作和大量库。

我的主要问题是:你会向我推荐什么:

A)不使用线程,通过定时器每5ms查找数据

B)不使用线程并根据传入数据的事件查找数据

C)使用线程

你给我推荐什么?我没有太多的经验来判断什么是最好的解决方案。

感谢您今后的回复。。。

如果您需要一个gui,则需要一个单独的线程来获取数据。没有办法可靠地获得每x毫秒的数据,并在ui线程中进行处理。

除此之外,你似乎对线程的作用有些困惑:a和B可以与C组合。我建议使用单独的线程轮询端口以获取数据,或者使用事件来检查新数据何时到达。计时器可能不准确,毕竟它是端口决定数据进入的速率,所以最好听它,而不是使用单独的时基。将处理后的数据存储在一个队列(又名生产者)上,并让另一个线程(又名消费者。ui线程还可以从该队列中预览并显示数据片段。