编辑: 烂衣小孩 | 2016-09-01 |
112 Figure 5. The diagram of cross compile folder 图5. 交叉编译文件夹图 Figure 6. The diagram of modifying environment variable 图6. 修改环境变量图 QTcpServer 的listen()方法执行监听过程, 可以指定监听的地址和端口. 若给定了 QHostAddress 类型的监 听地址, 则监听该地址, 否则, 监听所有地址;
若给定了 quint16 类型的监听端口, 则监听该端口, 否则, 随机选定一个监听端口.一个基本的 TCP 连接设置如图 7. 4.3. MySQL 关系型数据库设计 利用 MySQL 数据库提供的 C 语言 API 通过网络登陆数据库,获取数据并保存.系统框图如图
8 所示. 首先通过数据库处理语句 mysql_real_connect 登陆到 MySQL 数据库, 然后用 mysql_real_query()函数 来发送查询语句 select * from 到服务器上并执行. 这种查询可以是 MySQL 服务器能够接受的任何有效的 SQL 查询语句.一旦查询已经结束,如果是 SELECT 查询的话,产生的结果集会带一个包含 mysql_store_result()函数的变量数组, 这个变量数组实际上是指向 MYSQL_RES 结构的指针. 然后可以通 过mysql_fetch_row()函数访问结果集中包含的记录,该函数可以每次读一条记录,使之进入特殊的 MYSQL_ROW 结构.该结构仅仅是一个数组,每一个元素代表一个记录字段.一旦结果已集中完成所有 记录的检索,该函数返回 NULL 值,然后需要使用 mysql_free_result()函数来重新分配使用的内存的结果 集,从而得到能正确显示的结果.当满足数据 SELECT 查询条件的满足数据往往不知道有几个条件,如 果获得保存数据的结构,出现浪费和内存溢出问题.所以这里选择使用链表结构中的数据的保存和进一 步的处理. 本设计数据库操作流程为:通过数据库处理函数将数据库的地址、用户名、密码、数据库名和端口 号发送给服务器来建立连接并打开数据库,然后通过函数将数据库处理语句发送给服务器来提取数据库 信息.此时提取的到的数据是数组指针,此信息存储在函数 mysql_use_result()中,通过处理函数 mysql_num_fields()来处理接收到的结果集,并将其逐条存入自定义的指针数组中,以实现可视化网关 MySQL 数据库的数据获取和存储. 5. 系统实现与结果分析 测试环境包括一个嵌入式可视化网关、一个 Zigbee 网络、五套温湿度传感器节点、一台 Linux 云服 务器、一部手机终端.传感器通过 RS232 串口与 Zigbee 节点进行数据交互.Zigbee 传感网络通过串口服 务器与嵌入式网关进行数据交互, 其中串口服务器具有 IEEE802.15.4 无线接口. 最终嵌入式网关通过 LCD 显示屏将数据处理结果显示出来. 基于 Linux Qt 技术可视化网关系统
113 连接好所有待测设备后,上电启动可视化网关,操作界面如图
9 所示.首先在远程服务器部分输入 远程服务器的 IP 地址 10.28.15.xx 和端口号
1236 ,点击 连接 按钮,如果连接成功则设备继续 运行,若连接不成功则操作界面弹出 远程服务器连接失败 的提示窗口.在远程服务器连接成功后继 续连接 WSN 服务器,即传感器网络.与连接远程服务器相同,首先输入 WSN 服务器的 IP 地址 192.168.1.105 和端口号
6000 ,然后点击 连接 按钮,操作界面未弹出 WSN 服务器连接失败 的提示窗口,说明可视化网关已经与 WSN 服务器建立了连接,此时 实验日期 窗口开始显示实时时 间,即本次实验的时间.最后点击 连续采集 按钮,开始记传感器网络中采集到的温度、湿度数据, 并在操作界面中绘制出曲线图,同时将数据保存到本地的 MySQL 数据库和发送至远程服务器上接受进 一步的处理. 双击触摸屏可将操作界面切换至 MySQL 记录查询,即对传感器网络采集到数据的记录,如图