微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于Zigbee的病房护理机远程监控系统的设计与实现

基于Zigbee的病房护理机远程监控系统的设计与实现

时间:05-15 来源:互联网 点击:

计的基于ZigBee的护理机智能远程监控系统中,整个网络的通信工作流程规定如下:
(1)下位机待机时,每隔5s,发送身份号(ID)和状态数据到上位机。
(2)下位机工作时,每隔500ms通过ZigBee模块发送身份号和当前工作数据到上位机。
(3)上位机在添加一个新的下位机ID(入网身份证号)时,主动发送命令字给下位机,然后需等待下位机的应答,若10s内下位机无对此命令的应答,应重复给下位机发送此命令。超过15s上位机未接收到下位机的应答信息,将提示与该下位机连接不成功(即认为下位机不在网络内)。
1.4 协调器与上位机软件的通信
ZigBee网络协调器与上位机监控软件的通信是通过深圳市华奥通通信技术有限公司的HAC-DEV开发测试板连接完成的。HAC-DEV开发测试板是HAC-LBee ZigBee的测试开发装置,它能够直接和HAC-LBee系列的ZigBee模块进行数据传输,ZigBee网络协调器就是安装在HAC-DEV开发测试板上的(图3),因此PC机串口的波特率、校验位等需要与ZigBee网络协调器的一致,这样才能保证硬件连接的成功。在协调器与上位监控PC机连接成功后,要实现真正的通信,必须通过上位机软件对PC机串口编程来完成。

2 上位机监控软件设计
2.1 基于API的Windows多线程串口通信
多线程是指同一个程序中可以同时执行多个任务,通过多线程可以将整个任务分成几个线程,同时执行,从而提高系统的效率。在多线程环境下,许多线程需要访问同一资源,而且事件发生往往有先后顺序,因此,线程间需要通信控制。本系统数据库的存取以及公共变量的访问,都涉及到线程间的通信,必须使用同步化机制,防止线程访问冲突。在实际实现过程中,系统利用了临界区,它是保证在同一时间只有一个线程可以访问某一资源的有效方法。在使用临界区时,需要给各线程提供一个共享的临界区对象。临界区具体使用步骤如下:1)声明对象;2)初始化对象;3)进入临界区;4)离开临界区。同样在本系统中,为了保证线程访问安全,设置了多个临界区对象,包括:串口通信临界区m_csCommunicationSync、数据库ADO组件访问临界区critical for ado、护理机结构链表临界区对象critical for list等。为保证串口收发数据的高效性,在充分分析多线程技术和API异步操作串口方式的特点之后,本系统将串口的数据收发采用单独的线程处理。
系统串口通信采用事件通知方式,该方式是Windows下效率较高的一种方式。主线程在打开串口后首先设置要监视的串口通信事件,然后将监视线程打开,用来监视主线程设置的这些串口通信事件是否发生,当其中的某个事件发生后,监视线程要能根据不同的事件类型进行处理。
2.2 护理机监控功能的实现
按照护理机的无线远程监控要求,在上位监控PC机中需要完成以下功能:
(1)重要监测参数的显示。在监控界面的显示区能实时显示护理机的重要监测信息(护理机所在科室及床位号、检测数据、工作状态、报警状态等)。
(2)系统配置。管理员(如护士长)能“动态”地完成系统通信端口的配置和使用单位名称(如医院名称)配置。
(3)用户管理配置。管理员能“动态”地增添用户,并设置用户的权限和初始密码,管理员能注销除了“当前登录管理员”以外的所有用户。所有用户在登录后可以修改自己的登录密码。
(4)网络设备配置。管理员能“动态”地向无线网络中“注册”或“注销”某一护理机(包括该护理机的ID号、所属科室名称、所处病房号和床位号)。
(5)具有数据报表查询和打印功能。系统能对监控过程中重要事件进行记录,并能实现对这些信息的条件查询和打印功能。这些重要事件包括用户登录或退出时的用户名及时间;护理机状态改变及时间。任何当前用户均能点击监控主界面的“报表查询”菜单,能分别按“时间”、“用户名”、“床位号”查询以往所有数据库中记录的值班期间的所有监测信息。此功能的实现主要是通过数据库结合报表的设计来实现的。
通过对上位机监控软件的功能分析,首先确定其由“主线程”、“通信处理线程”、“语音处理线程”等部分组成,然后进行各部分功能细化,最后,按照模块化功能用C++Builder编程实现。为提高数据处理效率,在通信处理软件设计部分,开辟了单独的“数据接收线程”和“数据处理线程”,处理线程将接收线程接收的下位机所有数据进行校验处理,并将下位机工作数据存入数据库,最后根据与上次工作数据比较,确定是否更新“主线程目录树”。主线程根据用户需求,实时地从数据库调取数据显示,同时主线程还要能完成护理机“入网注册”、“注销”、“操作员的配置”以及对下位机数据的“按条件报表查询”等功能。此外,考虑到现在的PC机通常采用USB通信方式,因此针对ZigBee网络的协调器与上位机的连结采用了“USB转串口”方式,本系统还设计了USB串口热插拔功能,当更换不同的USB连接口时,上位机通过C++Builder编程能自动获取串口COM的串口号,使上位机监控软件的应用非常通用化。图4为用C++Builder编写的上位机监控主界面,鉴于篇幅因素,本文以具有代表性的“护理机监测参数显示”和“护理机动态注册注销功能”为例,介绍其实现过程。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top