基于C/S 模式与完成端口的路灯监控软件的设计

[10-10 20:38:44]   来源:http://www.88dzw.com  其它电路   阅读:8605

文章摘要:表2 现场数据报文表3 参数设置报文3. 4 完成端口通信的优化3. 4. 1 内存池的设计完成端口模型采用异步通信模式, 每次调用WSASend 和WSARecv 函数都需要在内存创建一个结构体空间,函数调用完毕后,再销毁这个结构体空间。频繁的创建和销毁内存空间占用了大量的系统资源,因此,在设计完成端口程序时,根据需求创建一定数量的结构体空间,并将其放入一个统一的空闲队列,当调用WSASend 和WSARecv 函数时,从队列中取用一个结构体空间,使用完毕,再将其放回队列。3. 4. 2 连接池的设计当用传统的aCCept 函数接收客户端时,accept函数会创建一个socket 作为返回值

基于C/S 模式与完成端口的路灯监控软件的设计,标签:电路设计,http://www.88dzw.com

表2 现场数据报文

表3 参数设置报文

  3. 4 完成端口通信的优化

  3. 4. 1 内存池的设计

  完成端口模型采用异步通信模式, 每次调用WSASend 和WSARecv 函数都需要在内存创建一个结构体空间,函数调用完毕后,再销毁这个结构体空间。频繁的创建和销毁内存空间占用了大量的系统资源,因此,在设计完成端口程序时,根据需求创建一定数量的结构体空间,并将其放入一个统一的空闲队列,当调用WSASend 和WSARecv 函数时,从队列中取用一个结构体空间,使用完毕,再将其放回队列。

  3. 4. 2 连接池的设计

  当用传统的aCCept 函数接收客户端时,accept函数会创建一个socket 作为返回值,分配给客户端。

  客户端断开连接时,创建的socket 会被销毁。创建和销毁socket 的过程会占用大量的系统资源,因此在接收客户端时, 采用acceptEx 函数代替accept,该函数可以把一个事先创建好的socket 对象,分配给接收到的客户端。首先, 创建好一定数量的socket 对象,形成一个连接池,当接收到客户端的连接请求时,从连接池中取出空闲socket 对象,分配给该客户端,断开连接时,再将socket 放回连接池队列。连接池的设计减少了客户端SOCKET 的不断创建与销毁,节省了大量的系统资源。

  3. 4. 3 线程池的设计

  完成端口本身就应用了线程池技术,线程池中的线程不仅包括了工作者线程,还包括了工作上完成端口上的服务线程。有效的对这些线程进行管理,能够减少CPU 在不同线程间的频繁切换,降低了切换线程上下文所耗费的时间。

  3. 4. 4 数据池的设计

  完成端口模块接收到的数据,要根据通信规约进行处理与分析,并将数据存储到相应的数据库中。

  由于完成端口网络通信的数据传输总是不平稳的,常常会出现短时间内接收到大量数据,而另一段时间内只接收到少量数据要的情况。为了防止服务器在短时间内超负荷工作,造成的数据意外丢失或是程序崩溃的情况,在进行数据处理时,预先建立了数据存储队列,形成一个数据池,将未处理的数据加入队列, 并采用FIFO 的策略来分配CPU 时间,这就使得CPU 资源得到充分的利用,提高了数据处理的安全性和可靠性。

  4 客户端软件设计

  客户端软件通过一般的SOCKET 通信方式与服务器相连,主要是功能是为用户提供一个简洁,便利的用户功能界面。地图显示模块通过对GIS 电子地图的绘制,将城市地图及路灯系统的分布图直观的显示给用户,使得用户能够大体的了解到整个路灯系统的运行状态。动画显示模块通过FLASH 编程技术,将单个远程终端所控制的配电柜示意图展示给用户,用户可以了解到现场的实时数据并对具体的监控点进行设置,开关灯等操作。数据显示模块与数据库相连,用户可以查询到各个监控点的历史数据以及当前的设置参数,了解路灯系统的具体工作状态。软件客户端主界面如图3 所示。

上一页  [1] [2] [3] [4]  下一页


Tag:其它电路电路设计家电维修 - 单元电路介绍 - 其它电路