供与底层的接口,以读写串口。
第 4 章 前端A8模块设计
4.1 A8-Android Application层设计
4.1.1数据流分析
4.1.1.1NEWNODE,新节点加入
1.数据处理流程图
图4.1 NEWNODE数据流程图
2.数据格式
NEWNODE数据格式
数据 格式
NEWNODE S4FnI1
3.数据处理详细描述
Cortex-M0开启,通过Zigbee发送NEWNODE数据给Cortex-A8,程序通过MainReadThread线程读取到数据,交由MainHandlerThread线程处理。MainHandlerThread对NOEWNODE进行校验,判断是否合法,如果数据无误,通过发送Handler消息交由SmartHomeActivity主界面UI线程,SmartHomeActivity 判断链表是否已经存在该节点,不存在则加入链表并创建节点。…………………….?
4.1.1.2NODEINFO,节点信息更新。
1.数据处理流程图
图4.2 NODEINFO数据流程图
2.数据格式
NODEINFO数据
数据 格式
NODEINFO S23FiI1T24H30L6V220X1Y1Z60
3.数据处理详细描述
Cortex-M0开启,通过Zigbee发送NEWNODE数据给Cortex-A8,程序通过MainReadThread线程读取到数据,交由MainHandlerThread线程处理。MainHandlerThread对NODEINFO进行校验,判断是否合法,如果数据无误,通过发送Handler消息交由SmartHomeActivity主界面UI线程,SmartHomeActivity 判断链表是否已经存在该节点,存在则更新该链表信息,并判断是否进入该节点从界面,如果进入发送Broadcast通知从界面更新数据。
4.1.1.3RFID,用户登录或退出。
1.数据处理流程图
图4.3 RFID数据流程图
2.数据格式
RFID数据格式
数据 格式
RFID S11FrI1R103132
3.数据处理详细描述
Cortex-M0开启,通过Zigbee发送NEWNODE数据给Cortex-A8,程序通过MainReadThread线程读取到数据,交由MainHandlerThread线程处理。MainHandlerThread对RFID进行校验,判断是否合法,如果数据无误,通过发送Handler消息交由SmartHomeActivity主界面UI线程,SmartHomeActivity发送Broadcast通知从界面,从界面判断是否为自己设备,是则更新数据。
4.1.2Application层详细设计与实现
4.1.2.1类对象详细描述
1 .Data类,负责对接受来数据进行处理
表4.1 Data成员属性表
属性 类型 描述
serialVersionUID long 序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
data String 存储从串口的数据
表4.2 Data成员方法表
方法 参数 返回值 描述
getDataSize Void String 从传来的数据获取数据大小
isValidData Void boolean 数据有效性校验,包括数据是为为空,完整等
getDataType Void int 从传来的数据获取数据类型
getDataTarget Void String 从传来的数据获取数据的设备号
getRfid Void String 从传来的数据获取Rfid信息
getTemperature Void String 从传来的数据获取温度
getHumidity Void String 从传来的数据获取湿度
getLight Void String 从传来的数据获取光感
getAd Void String 传来的数据获取AD值
getX Void String 从传来的数据获取三轴加速度x值
getY Void String 从传来的数据获取三轴加速度y值
getZ Void String 从传来的数据获取三轴加速度z值
2 .NodeCmd类,负责与底层进行交互,实现对硬件设备读,写操作。
表4.3 NodeCmd成员属性表
属性 类型 描述
DevCmd enum 使用枚举将命令声明一组命名的常数,方便函数调用。
myUartService MyUartService 串口操作所使用框架
表4.4 NodeCmd成员方法表
方法 参数 返回值 描述
devControl int, DevCmd String 向串口发送数据
readNode Void String 从串口获取数据
3 .NodeInfo类,负责存储一个设备的信息。
表4.5 NodeInfo成员属性表
属性 类型 描述
serialVersionUID long 序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
temperature String 存储节点对象的温度值
humidity String 存储节点对象的湿度
light String 存储节点对象的光感值
x String 存储节点对象的三轴加速度x值
y String 存储节点对象的三轴加速度y值
z String 存储节点对象的三轴加速度z值
ad String 存储节点对象的ad值
led int 存储节点对象的led灯状态(0,灭;1,亮)
fun int 存储节点对象的风扇状态(0,关;1,开;2,加速)
beep int 存储节点对象的报警器状态(0,关;1,开)
nixietub int 存储节点对象的数码管状态(0,关;1,开)
rfid rfid 存储节点对象的rfid信息
devNum int 存储节点对象的设备号
next NodeInfo 便于生成链表
watchDog int 看门狗,监控节点生命值
表4.6 NodeInfo成员方法表
方法 参数 返回值 描述
NodeInfo void void 构造函数,初始化节点对象
NodeInfo void int 有参数构造函数,参数为节点设备号
getNext void NodeInfo 获取下一个节点并返回节点信息
setNext NodeInfo void
getTemperature void String 获取该对象温度值
setTemperature String void 设置该对象温度值
getHumidity void String 获取该对象湿度值
setHumidity String void 设置该对象湿度值
getLight void String 获取该对象光感值
setLight String void 设置该对象光感值
getAd void String 获取该对象AD值
setAd String void 设置该对象AD值
getX void String 获取该对象三轴加速度x值
setX String void 设置该对象三轴加速度x值
getY void String 获取该对象三轴加速度y值
setY String void 设置该对象三轴加速度y值
getZ void String 获取该对象三轴加速度z值
setZ String void 设置该对象三轴加速度z值
getLed void int 获取该对象Led状态值
setLed int void 设置该对象Led状态值
getFun void int 获取该对象Fun状态值
setFun int void 设置该对象Fun状态值
getBeep void int 获取该对象Beep状态值
setBeep int void 设置该对象Beep状态值
getNixietub void int 获取该对象Nixietub状态值
setNixietub int void 设置该对象Nixietub状态值
getDevNum void int 获取该对象DevNum值
setDevNum int void 设置该对象DevNum值
getRfid void String 获取该对象Rfid值
setRfid String void 设置该对象Rfid值
getWatchDog void int 获取该对象WatchDog值
setWatchDog int void 设置该对象WatchDog值
ledOn void void 开灯
ledOff void void 关灯
funOn void void 开风扇
FunOn1 void void 风扇加速
funOff void void 关风扇
beepOn void void 开蜂鸣器
beepOff void void 关蜂鸣器
nixietubeOn void void 开数码管
nixietubeOff void void 关数码管
4 .NodeList类,存储所有连接设备的信息,便于进行界面节点的更新,删除和添加操作。
表4.7 NodeList成员属性表
属性 类型 描述
head NodeInfo 链表头结点
len Long 链表长度
表4.8 NodeList成员方法表
方法 参数 返回值 描述
getHead NodeInfo void 获取链表头结点
setHead void NodeInfo 设置链表头结点
createNodeList void void 创建设备节点链表
insertNode NodeInfo void 插入节点
delNode NodeInfo void 删除节点
allNode void void 遍历链表所有节点
findByDevNum int NodeInfo 通过设备号找到节点
nodeIsNotExisted int boolean 通过设备号查找节点是否存在于链表
delByDevNum int void 通过设备号删除节点
allNodeSetWatchDog void String 所有设备节点看门狗减一
oneNodeFeedWatchDog int void 通过设备号找到设备节点并喂狗
findNodeDogDie void int 遍历设备节点,查看是否有节点生命结束
getLen void int 得到链表长度
findNodeByPos int NodeInfo 通
上一篇:
基于Android平台的校园通软件
下一篇:
试论APP广告在手机中的应用