之前用过一个类似软件,只能用串口接收,而且速度有限,并且还很耗CPU。前不久调USB摄像头的时候自己用C++写了一个,支持串口接收和网络接收JPEG图像序列。现在发出来给需要的同学,方便各位的程序调试。
串口接收功能:
串口端口无限制,自动检测电脑可用端口,波特率从9600到921600可选,默认不支持流控制和奇偶校验,8位数据位一位停止位。不需要通信协议,自动从接收的数据中判断JPG数据的起始(FFD8)结束(FFD9)标志,不包含在起始结束标志之间的数据默认为非jpg数据并显示在数据接收窗口(目前只支持文本显示,16进制暂未实现),支持接收数据量显示,帧速率显示(可能计算的不太准确),一帧JPG图像数据大小显示,图像分辨率显示。串口发送功能暂未实现。
网络接收功能:
上位机也支持通过网络接收JPG图片序列。数据接收功能和图像显示功能同串口。上位机默认作为服务器端,且暂时只支持TCP服务器,UDP未实现。目前只支持一个客户端的连接,可显示客户端的连接状态和IP。
注意:
串口接收功能和网络接收功能可同时开启,但如果同时接收数据会造成数据混乱从而导致图像显示不正常。
串口和网络的发送功能均暂未实现(暂时用不到发送功能)。
本人实测通过TCP本地回环接收TCP客户端发来的MJPG编码的1080P avi视频文件,网络速度3~5MB/s(360加速球显示),图像显示速率20~30fps,CPU(i5 750)占用25%左右,串口传输效果可以看这里链接里的视频
http://pan.baidu.com/s/1jGDA9s6
软件目前还算稳定,之前测试传输了几个小时的图像也没什么问题,可能还有些小bug,欢迎反馈。
测试截图
添加不了附件了,二楼传
希望可以改进下.
感谢原子哥测试,有些问题其实我也发现了,既然有了需求也就有了改的动力,哈哈。
1.波特率我记得之前添加了921600的啊,难道是发的版本不对?
2.残影的问题可以点清除图像来清除之前的图像,就不会叠加到后面的图像上了,因为没有考虑传输过程中分辨率的改变,因此没有清除之前的图像,下一版显示图像前清除之前的试试,不知道会对显示效果和效率有多大影响。
3.最大化显示区域这个建议不错,可以考虑,看实现的难易度吧,咱也不是专业搞C++。
4.楼上之前说过了图片大小2M限制,超过的话会有问题,下一版加到5M或手动设定?
5.图像文件保存下一版可以添加。其实之前已经准备实现保存avi功能,不过还没太弄清楚avi头数据的格式,然后有其它任务就没弄了,后续看时间和需求考虑是否添加。
恩,最近在调试OV5640,所以需要一个这样的软件。之前2640配套的那个,波特率高了会有问题,所以,比较郁闷。你这个刚好符合我的要求,所以就用了起来。
可以的话,到时候会配套我们的STM32开发板,放光盘给广大网友使用。
感谢楼主分享。
更新一下进度,发布2.0 beta版:
解决BUG:
1. 添加921600波特率
2. 接收图片分辨率改变时清空先前图片再显示,防止叠加
3. 图片接收缓冲区调整到5MB
新增功能包括:
1. 新增TCP客户端接收模式
2. 新增图片保存功能
3. UI的修改
4. 新增图片大窗口预览功能(目前还有问题,在关闭预览窗口后可能造成程序崩溃或部分无响应)
其实上面这些内容昨天就已经完成了,只是大窗口预览的BUG一直找不到原因,现在仍未解决。如果不使用这个功能,其他基本正常(如果还有其他BUG欢迎指出)。本来是打算解决这个问题后再发布,不过为了刷一下存在感,还是先发布一个尝鲜版吧
一周热门 更多>