我正在编写一个C#程序,它从USB GPS记录器读取数据,当我将其插入时,它就像一个新的COM端口。我设法编写了一些侦听COM端口的代码并在收到数据时触发事件,但我对这种方法有一些问题:
事件监听器的速度很慢:如果记录器上有数千个磁道,我每秒只能得到1个结果。
由于我不知道记录器包含多少数据,我怎么知道何时应该停止事件监听器而不丢失数据?我还想将所有数据写入csv文件,但由于我不知道何时停止收听,我也不知道何时调用我的编写器功能。
我实际上不明白为什么会在COM端口上发生这种情况,因为记录器已经包含了我需要的所有数据?我只想一次提取所有内容。有没有办法实现这个目标?提前谢谢!
答案 0 :(得分:1)
我相信你无能为力。 您无法更改USB设备的行为,因为这是驱动程序问题。 它被认为是COM端口的原因可能是因为制造设备的制造商不想处理为设备编写驱动程序的狡猾任务。
因此,他使用的芯片将数据从微芯片转换为“串行通信”,以模拟RS-232通信。哪个更容易处理。也适合您,因为如果没有适当的文档,您可能无法读取数据或与自定义USB设备进行交互..
RS-232的正常波特率通常是9600.这将是每秒9600比特的最小值。 因此认为它可能是8位或16位设备,这将导致每分钟1200或600个整数。 因此,根据您为每个结果读取的数据,我认为1个结果/秒相当慢。
希望这有任何帮助。