APP下载

基于Android平台的WiFi无线遥控装置设计

2017-08-28李秋洁束义平

无线互联科技 2017年15期
关键词:服务器端遥控器线程

徐 波,李秋洁,束义平,孙 靓

(1.南京林业大学 机械电子工程学院,江苏 南京 210037;2.华东理工大学 信息科学与工程学院,上海 200237)

基于Android平台的WiFi无线遥控装置设计

徐 波1,2,李秋洁1,束义平1,孙 靓1,2

(1.南京林业大学 机械电子工程学院,江苏 南京 210037;2.华东理工大学 信息科学与工程学院,上海 200237)

随着WiFi的不断发展,WiFi无线通信技术的使用越来越常见。文章提出了基于Android平台的WiFi无线遥控装置的设计方案,介绍了基于Android平台的遥控器以及控制器的设计方法,并阐述了遥控器与控制器间的WiFi通信方案。经试验,Android遥控器能在WiFi环境下实现对控制器的远程控制,同时界面能显示控制器传来的参数。

Android;WiFi通信;遥控

目前,随着信息技术的快速发展,WiFi、ZigBee、蓝牙等无线通信技术趋于成熟。相比于ZigBee,WiFi通信传输速率更高;而蓝牙无线通信虽然传输速率快,但传输距离短,一般多适用于家居用品。WiFi具有覆盖范围广、可靠性高、传输速度快等优点,是当前应用较为广泛的无线网络传输技术[1]。

随着WiFi的不断发展,国外已有很多城市实现了WiFi覆盖计划,我国北京、上海等十几个城市实施了“无线城市”计划,这对WiFi无线通信的使用提供了很大的帮助。现阶段,WiFi无线通信已有较为广泛的应用。屈川等[2]设计的农机工作状态实时无线监测系统通过无线网络对农机的工作状态进行实时监测。薛金林等[3]设计的基于无线网络的大田农业机械遥操作控制平台通过无线网络与农业机械进行通信。祝彦等[4]设计的基于WIFI技术的矿用机车无线通信系统采用WiFi无线通信技术进行数据传输。

1 整体结构

系统整体结构如图1所示。遥控器为基于Android平台的平板电脑,采用Android Studio开发,采用Java语言编程;控制器采用Visual Studio 2015开发,采用C语言编程。首先通过遥控器设置模式、参数,按下启停按钮后,通过WiFi将模式、参数、启停发送给控制器,控制器根据发来的参数进行数据处理后,将处理结果通过WiFi发送给遥控器,在界面显示出来。

图1 系统整体结构

2 Android遥控器设计

2.1 遥控器整体结构

Android遥控器整体结构如图2所示,采用了3个线程:界面主线程主要负责界面的加载、刷新;发送线程sendThread主要负责建立socket连接、控制器发送参数;接收线程recvThread接收来自控制器的处理结果。

图2 Android遥控器整体结构

2.2 界面布局

点开Android Studio左边的Project面板,就可以看到工程组织,如图3(a)所示。遥控器添加控件实现结果状态显示、自动/手动模式选择、左侧/右侧选择、车速及距离阈值设置、IP地址端口号的输入、连接启停及系统退出,系统界面外观如图3(b)所示。

2.3 Handler通信过程

由于界面线程不能做耗时的工作,因而将耗时的工作放在了非界面线程中。而界面上的控件是由主线程创建的,非界面线程不能直接更改,所以采用Android 消息处理机制进行界面线程与非界面线程之间的通信[5]。

每个线程都有一个Looper对象和一个Handler。界面主线程的Handler为myHandler,线程sendThread的Handler为recHandler,线程recvThread的Handler为sendHandler。遥控器界面按下连接、启动、停止、退出按钮后,会利用Handler. sendEmptyMessage(msg.what)发送一个整型数。控制器处理结果则用一个8位数组NOZZLE存放,利用Bundle作为中间载体来传递喷头状态,在sendHandler中利用函数putByteArray将数组放入自定义字符串,在myHandler利用函数getByteArray取出即可。具体Handler过程如图4所示。

图3 Android遥控器界面设计

3 控制器设计

控制器用C语言开发,开发软件为Visual Studio 2015。该部分由3个线程构成—主函数部分、数据接收线程、数据处理发送线程。

第一步,主函数初始化socket后创建数据接收、发送线程。第二步,作为socket服务器端,接收来自客户端发来的参数,将接收的参数分离并输出到控制台上,若未进行初始化操作,则执行第三步操作,否则跳过第三步执行第四步操作。第三步,进行初始化工作。第四步,初始化之后,使发送线程数据处理标识DEAL置true,进入数据处理循环;若为停止,生成关闭全部指示灯指令;若为退出,则调用自定义函数ExitInstance,进行释放空间等操作。第五步,将数据处理结果通过socket发送给Android遥控器,进行界面刷新。Handler通信流程如图4所示。

图4 Handler通信

4 WiFi通信过程

Android遥控器与控制器间的WiFi通信采用基于TCP协议的通信方式[6-8],通过套接字Socket网络来进行通信[9-10],Android遥控器作为客户端,控制器作为服务器端,具体通信过程如下:

第一步,服务器端调用函数listen将socket设为监听模式。第二步,客户端向服务器端发送连接请求。第三步,服务器端不断调用函数accept接收连接请求,并创建线程来接收来自客户端传来的数据,同时创建数据发送线程准备进行数据处理。第四步,客户端向网络发送参数,并新建线程用来接收服务器端传来的数据处理结果。第五步,服务器端调用函数recv不断从网络接收来自客户端发来的数据,接收完数据后发送线程线程根据客户端传来的参数进行数据处理。第六步,调用函数send将数据处理结果发送给客户端遥控器。第七步,客户端从网络接收服务器端发送的数据处理结果,并发送给遥控器界面进行刷新显示。在退出按钮按下后,两端都关闭socket,并清理缓存。

5 真机调试

遥控器调试机型为华为荣耀平板T1-821w,操作系统为Android 4.4。Android遥控器手动模式下右侧选中时调试结果如图5(a)所示,自动模式下调试结果如图5(b)所示。

图5 Android 遥控器调试结果

6 结语

本文设计了基于Android平台的WiFi无线遥控装置,主要工作如下:(1)基于Android平台的遥控器的设计,能够设置相关参数,控制控制器进行相应的工作,并能显示控制器的数据处理结果。(2)设计了控制器,能够根据遥控器设置的参数进行相应的数据处理工作,并将数据处理结果发送给Android遥控器进行显示。(3)Android遥控器与控制器间的WiFi无线通信,通过WiFi互相进行数据传输。本文提出的遥控装置操作简单,控制及时,可移植到嵌入式平台,为远程控制对象进行自动化作业提供很大帮助。

[1]杨洪涛,王英卓,杜娟.基于Android平台的WiFi控制系统的设计与实现[J].北京工业职业技术学院学报,2016(3):10-16.

[2]屈川,刘思扬,吴昊宇.农机工作状态实时无线监测系统设计与实现[J].南方农机,2016(8):59-60.

[3]薛金林,张欣欣,范博文,等.基于无线网络的大田农业机械遥操作控制平台(CN205507418U)[P].南京:实用新型专利,2016.

[4祝彦,谭凯,罗剑.基于WIFI技术的矿用机车无线通信系统的应用[J].辽宁工程技术大学学报,2012(5):76-79.

[5]黄蓉. Android消息处理机制研究[J]. 黑龙江科技信息,2012(33):87.

[6]万书鹏,雷宝龙,翟明玉.调度与变电站一体化系统链路状态监测与 TCP 通信方案[J].电力系统自动化,2014(1):92-96.

[7]刘爽,史国友,张远强.基于TCP/IP协议和多线程的通信软件的设计与实现[J].计算机工程与设计,2010(7):1417-1420.

[8]李雅丽,李永江.基于TCP通信方案的电力线路状态监测系统研究[J].电源技术,2015(1):175-177.

[9]刘建华,田岁苗,赵勇,等. 基于Android的智能家居系统设计[J].西安邮电大学学报,2013(4):71-74.

[10]张秋波. 基于Android手机和WiFi的网络定时开关的设计与实现[D].长春:吉林大学,2015.

Design of WiFi wireless remote control device based on Android platform

Xu Bo1,2, Li Qiujie1, Shu Yiping1, Sun Jing1,2
(1.Mechanical and Electronic Engineering College of Nanjing Forestry University, Nanjing 210037, China; 2.Information Science and Engineering College of East China University of Science and Technology, Shanghai 200237, China)

With the continuous development of WiFi, it is more and more common to use WiFi wireless communication technology. This paper presents a design scheme of WiFi wireless remote control device based on Android platform, and introduces the design method of controller and the remote controller based on Android platform and the WiFi communication scheme between the remote controller and controller is expounded. After testing, Android remote controller can remote control the controller in WiFi environment, and the interface can display parameters from the controller.

Android; WiFi communication; remote control

徐波(1995— ),男,江苏泰兴,硕士。

猜你喜欢

服务器端遥控器线程
我是“糊涂虫”
Linux环境下基于Socket的数据传输软件设计
时间遥控器
爸妈有个“遥控器”
浅析异步通信层的架构在ASP.NET 程序中的应用
浅谈linux多线程协作
基于Qt的安全即时通讯软件服务器端设计
基于上下文定界的Fork/Join并行性的并发程序可达性分析*
Linux线程实现技术研究
网页防篡改中分布式文件同步复制系统