background image

任何一种进行通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在
配置每个控制器的时候,在一个

Modbus 网络上的所有设备都必须选择相同的传输模式和

串口参数

[14]。 

  从机地址(

1 字节):表示从机设备号,每个从机都有唯一的地址码,实际工作中只

有符合地址码的从机才能响应并回复。命令字(

1 字节):主机发送的功能代码。信息字

12 字节):包括进行两机通讯中各种数据地址、数据长度、数据信息。校验码(2 字节):

用于校验通讯数据是否出错,采用循环冗余码

CRC16 (循环冗长检测)。 

  上位机通讯模块分为三层:物理层,数据链路层和应用层。其中物理层采用了

RS-485

协议进行通信,通信速率为

9600bit/s, 8 个数据位,1 个停止位,奇校验。 

  

3 关键技术的应用 

  

3.1 多线程的同步 

  在进行多线程编程时,会碰到两个问题,那就线程间的互斥与同步:线程同步是指线
程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另
一个线程的消息时应等待,直到消息到达时才被唤醒。

 

  线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线
程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的
线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步
[11]。 
  现在流行的进程线程同步互斥的控制机制,主要通过临界区(

Critical Section)、互斥

量、信号量、事件和临界区(

Critical Section)4 种方法实现的。由这 4 种方法组合优化就实现

了对线程进程灵活多变的,快捷方便的控制手段。

 

  本文通过使用互斥量(

Mutex)的方法来实现线程的同步。 

  

3.2 中央数据库的设计 

  在真正构建数据仓库之前,搭建简便实用的中央数据库(又称管理信息数据库)既能
缓解药房管理的紧迫需要,又可以为未来数据仓库的建设摸索经验,积累实验数据,又不
会影响医院的正常工作。

 

  在设计中央数据库时应该遵循以下原则:

 

  

 数据的唯一性 

  

 数据的最少化 

  

 使用标准键值 

  

 数据字典先行 

  

 数据扩展性要强 

  

 数据容错性要好 

  

 中央数据库的结构灵活,扩容能力强,前端应用系统的修改不会对数据库造成很大的

影响。并且可以对前端应用系统提出统一的数据标准接口要求。

 

  

3.3 数据库应用程序接口 

  

Microsoft 开放式数据库互连(ODBC,Open DataBase Connectivity)是微软开放服务体

系(

WOSA)的一部分,是一个应用广泛的数据库访问应用编程接口(API),使用标准的

SQL 语言进行查询。其缺点在于 ODBC 只能应用于关系数据库,并且编写应用程序时要编
制大量的程序代码。

 

  

MFC 改进了 ODBC,原始的 ODBC 是简单的函数即 ODBC API。MFC 封装了 ODBC 

API,它提供了丰富的类供开发者使用。 
  

3.4 动态加载动态链接库 

  动态链接库的加载有两种方式,分别为隐式链接和显示加载。