一、做android开发的,想必开发前的准备工作都不必多说。下载AS,配置好,新建一个项目。
二、下面开始一些项目的介绍:我们的项目是通过3种模式,达到与设备配对,联网或者蓝牙控制其运行。
1、wlan : 设备和手机连接在同一无线网下,配对。
2、蓝牙 : 设备和手机通过蓝牙配对,达到控制设备的目的。
3、手机直连 : 就是开启设备热点,手机连接到设备的热点上,达到设备的配对。
三、首先要明白一点,咱们的手机是不能直接和设备通信的,原因是设备不能理解手机发送的命令。那怎么样设备才能理解我们发送的指令呢?这就不得不说到通讯协议了。
我们的设备有着一套自己的”密码本”,只要我将指令以符合”密码本”的格式发送给设备,设备就会按照给出的指令行动。这里的”密码本”就是上面提到的通讯协议。不过不同设备的具体指令信息或多或少有所不同,大家参考一下就好了。下面给出这一套设备的通讯协议格式,请注意指令使用16进制描述。
表1 通信协议基本格式
具体指令信息(共10位) 0xaa 0xbb mark1 mark2 mark3 mark4 mark5 mark6 mark7 0xcc | |||||
位置 | 说明 | ||||
0xaa 0xbb | 帧头,作为起始位识别 | ||||
0xcc | 帧尾 | ||||
Mark1—mark7 | 具体的指令,如开始、暂停等 |
16进制表示的指令,不要觉的这个很难懂。结合实际的例子来看看:
Mark1—mark7 为十六进制码,当某一条协议只有部分mark值时,其他mark值可以输入任意十六进制码。
当 Mark1为 0x00 时,此时设定值不保存在flash中,掉电设定值消失。
Mark2 值设置及对应功能
Marek2 | 功能 |
0x01 | 开始 |
0x02 | 正转 |
0x03 | 反转 |
0x04 | 加速 |
0x05 | 减速 |
0x06 | 停止 |
这样,表示一条让泵开始工作的指令码就是:
0xaa 0xbb 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0xcc
解释:0xaa 0xbb 帧头,作为起始位识别,固定的,每条指令都有。
0xcc 帧尾,作为结束位识别,固定的,每条指令都有。
我们需要注意的是Mark1—mark7。
0x00 Mark1为此值表示 该条指令不存入继电器。
0x01 Mark1为此值表示 该条指令为开始。
其它位可以填写任意数,我们补0。
所以,只要我们发送一条这样的指令,连接的设备就会明白我们的命令了。