E680I通过蓝牙串口传送图像

来源:互联网 发布:vb中证书导入导出向导 编辑:程序博客网 时间:2024/05/22 01:34
最近,空闲的时候做了一个 通过蓝牙串口传送图像 的小程序。

使用的是 BLUEZ 蓝牙库。手机本身提供了蓝牙串口,为何使用这个呢?就是可以方便控制启动、关闭蓝牙功能。但,这个也有缺点:/dev/不能创建 rfcomm0 的设备,非要 mount bind 不可。

BlueZ 的安装,就不用说了,在许多的论坛都已经讲过很多了,而且 BlueZ 本身也有说明。

开发的过程。手机端做为服务器端,启动串口之后,等待连接;电脑端作为客户端,去连接手机。
           手机                                电脑
等待      
                                          <-     连接
应答、等待数据包请求   ->      
                                          <-      请求第1个数据包
返回数据包,再等待      ->
                                          <-      请求第2个数据包
返回数据包,再等待      ->
……
返回 结束标志                  - >
                                                    终止


其中碰到最大的问题:串口的速度跟不上。一张 raw 的 bmp 的大小是150kb (240X320|24B),需要时间大约27~33秒之间,速度大概 5.6~5 k/s 。

期待:
1、将raw 转换成 jpg 降低颜色
2、转换成 160X120 的图片
3、如果最终能将图片大小降到 50K 以内,就会比较好了。

程序运行的效果:
手机端启动之后,等待连接
图1 手机启动后等待连接

电脑连接后,在传输的过程

图2 电脑连接后,在传输的过程

手机端传送完毕


图3 手机端传送完毕

电脑端接收完毕

图4 电脑端接收完毕

接收到的图片显示效果























图5 接收到的图片显示效果





原创粉丝点击