通过串口接收.JPEG流,存储和重新发送

时间:2017-09-30 07:00:25

标签: c# stream serial-port jpeg event-receiver

我正在开发的项目将连接Netduino 3 WIFI(C#.NET微框架)和PC应用程序(C#.NET Framework)。串行TTL摄像机将连接到其中一个Netduino的COM端口,PC应用程序将连接到另一个COM端口。所有都将通过8位UART进行通信。我成功地在PC,Netduino和Camera之间发送和接收byte [],用于发送和确认命令。主要目标是能够将'拍摄图像'命令发送到相机并捕捉回来的.JEPG字节[]。我想在数据收到事件发生后开始接收数据。我没有在网上找到太多信息,但从我读过的内容中我可能不得不使用serialport.basestream属性或Bitmap Constructor(Stream)。我对流的概念并不是很熟悉,希望有人可以给我一些信息,或者举例说明如何设置它。

1 个答案:

答案 0 :(得分:0)

我建议您将端口ReadTimeout设置为零,并在DataReceived事件上安装处理程序。然后,如果在发送数据之前发送适当的标头,则可以将数据直接捕获并缓冲到正确维度的字节数组中(简单的校验和可能也不会出错)。处理程序需要处理以块为单位处理的数据,但是一旦收到所有数据,就可以处理字节数组以重建jpg并将其丢弃。不会为每个字节引发DataReceived事件,因此一旦你在那里,你将需要继续在端口上发出Reads,直到它在退出处理程序之前返回零字节。