时间:2024-09-03
重庆邮电大学光电工程学院 彭 珂 陈鸿跃
移动智能端利用WiFi实时监控接收的实现
重庆邮电大学光电工程学院 彭 珂 陈鸿跃
由于实验室的DMB发射系统信号覆盖全校,且各个教室都有接收终端,范围分布广,对接收终端运行情况难以把握,维护难度高。特此利用WiFi模块对终端进行监控,并返回监测的数据。将移动智能端作为一个服务端,把WiFi模块传回来的数据存入sqlite,并实时更新UI界面。本论文就是在该背景下设计出一款能够监控接收终端的app。
多媒体应用;TCP/IP;socket;实时监控
数字音频广播(DAB)是数字化技术发展的一种新的广播系统,以数字技术为核心手段,可以传输任何形式的数据,由此演变为数字多媒体广播(DMB)。一个DMB发射系统可控制多个接收终端,由于接收终端分布全校,数量多,范围广。每次维护需要耗费大量的人力和时间,为了改善此情况,特此提出用WiFi模块监控接收终端[1],并向移动智能端返回监控数据,其数据的主要内容有终端的ID号,时间,误码率,频段,音量等。ID号方便定位终端的位置,而误码率可以判断终端的接收情况[2]。本文主要采用多线程的技术[3],将移动智能终端当做服务器接接收各个WiFi模块传回的数据,并对其进行处理。
遵循TCP/IP协议,采用客户端/服务器模式,将移动智能端当做服务器,接收终端当做客户端。通过套接字Socket来连通服务器和客户端,每个客户端连接服务器就将开启一个线程。由于Android系统内置SQLite数据库,该数据库运算速度快,占用资源少,服务器将客户端传回来的数据存入SQLite数据库中,并实时显示在UI界面上。UI界面将采用RecyclerView控件,实现滚动显示数据的效果。
基于TCP的socket编程的服务器,其程序流程如下:
(1)创建套接字,将套接字绑定到一个本地地址和端口上,由于是一对多的关系,需要为客户端的连接,建立一个套接字列表:
(2)将套接字设置为监听模式,准备接受客户请求,当客户端请求到来,接受请求,返回一个对应的连接的套接字,并开启一个新线程,专门负责与客户端进行通信:
将客户端传回来的数据存入数据库中,Android为了方便管理数据库,提供了SQLiteOpenHelper帮助类来创建数据库和升级,利用getReadableDatabase()和getWriteableDatabase()来打开或创建一个数据库,并返回一个可对将数据库进行操作的对象。对数据的操作大致分为四种:添加数据(insert),查询数组(select),更新数据(updata),删除数据(delete)。
存入数据库后,就需要从数据库中读取数据显示在UI界面上,由于数据内容多,一页无法全部显示,所以选择RecyclerView控件,可滑动刷新数据。使用RecyclerView需要先在项目的build.gradle中添加相应的依赖库,且必须为准备一个适配器(adapter),将需要展示的传入适配器中。
本应用程序是在Android studio平台下开发的,在模拟器中稳定运行后,将APK安装到真机上测试,经过测试可以同时接收90个客户端发送过来的消息,整个应用稳定运行。达到了实时监控接收的目的,且数据保存在sqlite中,可提供查阅。测试效果如图1所示:
图1 测试效果图
本文介绍了一种移动智能终端利用WiFi实时监控接收的方法,能够实时监控接收,并通过WiFi模块传回的数据,存入数据库,更新在UI界面上。并在实际环境中调试应用,软件运行稳定。由于其能够精确定位终端位置,且可以实时监控,解决了接收终端难维护的问题。
[1]徐虎,彭正涛,赵俊逸.基于WiFi的Android移动设备语音通信系统的设计开发[J].计算机应用与软件,2012.
[2]韩路,高贤强,王世发.基于Android系统的手机软件开发研究[J].电子技术与软件工程,2014(3):60-61.
[3]李娟.Java多线程同步机制研究分析[J].中国科教创新导刊,2014(07).
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!