3 Android终端应用程序设计
3.1 程序框架
文章Android应用程序开发基于Java语言,在eclipse安装ADT(Android Development Tools)的集成开发环境下开发的,并且设置目标版本为Android 4.4,最低兼容版本为Android4.0。主要包括四个模块:主活动、绘图活动和设置活动以及数据分析算法的程序实现部分。其中程序框架如图4所示。
框架创建三个Activity实现人机交互,分别实现不同的操作和功能,MainActivity是主活动交互界面,该界面是应用程序启动进入的第一个界面,其他界面都由该界面进行相关操作触发启动:DrawActvity是运行曲线交互界面,该界面实现将接收到的数据绘制成曲线图,可以直观地分析数据;Setting是设置光伏组件参数界面,是在Menu菜单之下的选项,进入该界面可进行光伏组件参数的具体设置,主要参数包括:工作电压、工作电流、开路电压、短路电流、系统电压和最大功率,以供分析数据算法初始化,进而进行故障分析。各活动间数据通信通过Intent实现,以及各界面的按钮、布局等是用XML文件实现的。其中,数据分析算法在DataAnalyse.java中实现,并在主活动中调用DataAnalyse.class中的方法进行故障组件的定位。
3.2 程序设计
文章设计的系统运用Wi-Fi实现数据采集终端与Android终端的通信,其中Wi-Fi连接部分使用系统中的网络连接设置实现将Android终端与服务器连接,连接成功后通过设计的应用程序实现相关操作和功能。程序设计中主要应用到了Activity类、File类、Socket类等。利用Android开发中Java语言、XML布局和配置文件间的独立性和关联性可以分别在各不同文件下编程实现相关功能,在相互根据联系调用组成一个有机的系统。其中,绘图活动使用了Android开源图表库MPAndroidChart里面的相关函数。3.2.1 数据接收并存储
文章设计的应用程序工作在客户端模式,在Android终端连接服务器之后,便可以开始进行接收数据。手机客户端先向服务器发起连接请求后,就被动地等待服务器的响应,文中客户端实现功能过程为[5]:
(1)创建一个Socket实例:构建函数向指定的远程主机和端口建立一个TCP连接;(2)通过套接字的输入输出流(I/O streams)进行通信:一个Socket连接实例包括一个InputStream和一个OutputStream;(3)使用Socket类的close()方法关闭连接。
3.2.2 数据分析算法
对接收到的数据进行分析,从而找到故障点的位置并且显示出来。算法设计思路主要为:由前面分析学可以根据采集到的辐照度以及温度数据,可以计算得到该辐照度,温度下光伏列阵理论的正常工作电流值。然后找到检测值偏离理论值较大的支路电流,该支路判定为有故障的支路。
支路上的故障组件的确定:以一条支路上有N个组件为例。由前面分析可知每次检查M(M=N/2)个所用传感器数目最少,出现故障的组件输出电压明显变小。如果电压传感器检测的N/2个组件中包含有故障点,则这N/2组件输出的值肯定小于U/2,所以当电压检测值大于U/2的这N/2个组件中没有包含故障点,根据此原理逐步排查,最后确定故障点的位置。程序设计示意框图如图5所示。