蓝牙通信、画折线统计图的android应用

来源:互联网 发布:vb简单程序编写 编辑:程序博客网 时间:2024/06/14 20:35

android功能:蓝牙通信,将数据以折线统计图的形式显示。

原用途:水表读数统计,将水流量上传到手机实时观测。稍加改动应该适用于任何统计量传输的应用。

GITHUB项目地址:https://github.com/wjbianjason/bluetooth

文件里面有一个蓝牙聊天app,你可以用它来模拟蓝牙模块传数据。但不确定还能用不,中途我改了里面的代码做了

专向的调整。

闲话不多讲,进入正题

先简单通过图片介绍功能,看是不是各位想要的


                          

哎,CSDN写个博客真麻烦,希望操作界面能再人性化一点。

    该工程包含两个程序包,其中com.ds.bluetooth是主要功能程序包,另一个程序包com.ds.bluetoothUtil是蓝牙实现

的辅助程序包。另外还有4个xml显示文件,主要的有client.xml实现操作界面,device.xml显示搜索到的蓝牙列表。其

实一言概之就是,打开蓝牙,启动蓝牙发现,监听蓝牙发现的广播然后连接,之后就是buffer通信,而画图呢就是一

桢一桢的换,最后出现折线图滚动的效果.

代码讲解我全附图片,方便些,要复制把工程拷下来就是了

1、Com.ds.bluetooth包下有5个java文件。最主要的4个的实现功能如下。

(1)MainActivity.java是应用打开后的第一个activity,主要功能是点击相应按键打开客户端界面,存在的意义是客户

端的重启。转到客户端界面的代码如下:



(2)ClientAvtivity.java是客户端界面的activity,主要功能是实现搜索、画图、命令发送的和数据接收的显示。

1、点击“开始搜索”键执行以下代码。



转到DeviceListActivity.java进行蓝牙设备的搜索和显示。

 

2、 点击“断开”键,执行以下代码,关闭蓝牙套接字连接。



3、点击“画图”键,执行以下代码,清理掉坐标轴上的折线图,x轴时间清0。



4、 广播接收的各类响应代码如下,实现对其他java文件广播事件的处理,其中包括对数据的接收。



5、数据的发送,通过EditView显示自己的发送数据,通过进行发送隐式intent让相应广播器接收处理



6、对选择设备的响应接收,创建蓝牙设备列表的activity时是用startActivityForResult()方法,所以可通过onAcitvityResult方法来接收返回的数据,即选择的蓝牙设备名和地址。



折线图的实现,通过重写的View文件,在已画好的坐标轴上描点连线。



通过保存前一帧图的后7个点的纵坐标数据,实现折线图的左移,且横坐标的时间显示也逐渐增加。



(3)DeviceListActivity.java,实现的功能是显示搜索到的蓝牙设备。

注册广播接收,并建立ListView来显示蓝牙设备



广播接收处理,处理找到设备和蓝牙搜索结束的广播



处理蓝牙设备选择的触屏选择



(4)MychartView.java主要实现画图界面的每一帧的构造,包括的坐标图和折线图。实现的主要方法是利用canvas画布类。

画线函数,利用它画出坐标图,画出折线连接数据点。



坐标图相应的画笔设置


画出数据点,并实现数据点的向右移动。



2、com.ds.bluetoothUtil包下有5个java文件,下面介绍主要的3个java文件。

(1)BluetoothClientService.java主要实现客户端界面后台的各项功能,包括数据发送和接收,蓝牙设备的查找,并

注册相应的广播接收来响应相应的信息,又通过发送广播将信息传输出去。

打开蓝牙适配器,开始搜索



发现蓝牙设备后,发送广播告知DeviceListActivity.java。


广播接收器的注册,从中可以看到这个service具体处理的广播信号


接收数据的处理,直接将byte型数据无符号十进制显示。


调用通信进程发送数据


(2)BluetoothClientConnThread.java建立一个蓝牙设备连接进程,主要实现蓝牙设备的连接,建立通信信道。


(3)BluetoothCommunThread.java是通信进程,用于具体数据的接收和发送

实现数据的接收


实现数据的发送


好了,基本就是这么多了,大家如果在工程里看不明白就到这里来吧,都怪我不好,不是很喜欢写注释。。。我以后会改正的。。这段时间可能更新的都是android,因为马上java要考试了,借整理以前写的android来复习一下java,有什么请留言吧,哥哥姐姐给点鼓励嘛。。。




0 0
原创粉丝点击