任何一种进行通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在
配置每个控制器的时候,在一个
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 动态加载动态链接库
动态链接库的加载有两种方式,分别为隐式链接和显示加载。