大型集装箱检测系统控制站x环境下的通信控制转让

上传人:E**** 文档编号:117943265 上传时间:2019-12-11 格式:PDF 页数:5 大小:216.60KB
返回 下载 相关 举报
大型集装箱检测系统控制站x环境下的通信控制转让_第1页
第1页 / 共5页
大型集装箱检测系统控制站x环境下的通信控制转让_第2页
第2页 / 共5页
大型集装箱检测系统控制站x环境下的通信控制转让_第3页
第3页 / 共5页
大型集装箱检测系统控制站x环境下的通信控制转让_第4页
第4页 / 共5页
大型集装箱检测系统控制站x环境下的通信控制转让_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《大型集装箱检测系统控制站x环境下的通信控制转让》由会员分享,可在线阅读,更多相关《大型集装箱检测系统控制站x环境下的通信控制转让(5页珍藏版)》请在金锄头文库上搜索。

1、 第, 届全国核电 子学与核探洲技术学术年会论文集 P r o c e e d r g s o f 加 殉池. 如 因C o h e r e n c e o n 怜d e a r E b 出 o n ic s 压 N u d e a r D e l e d i c n T e c 俪 * . 大型集装箱检测系统控制站X环境下 的通信控制转让 高文焕陈志强 张丽 康克军 ( 大型集装箱位洲实脸室, 清华大学工程物理系, 北京, 1 0 0 0 8 4 ) 本文介绍了大里集魏箱检翻系统控翻站X环境下通信任务的控侧转让策略。 用迷了X的异步事件处理 机侧原理, 提出了X窗口 环境下四种可行的通伯控侧

2、转让方法。 关.调. 大狱粼装箱植洲 系旋控翻站 X,口 通信 控侧转让 1 引言 大型集装箱检侧系 统是海关用于快速检查大型集装箱内 装货物的 辐射成像技 术装备。 清 华大学研翻开发的同方威视大型集装箱检侧系统是一个集探洲器技术、 加速吞技术、 信号采集 与图 像处理 技术为 一体 的 高 度集成的系 统. 其中的 软件部分 涉及网 络通信技 术、 分 布式教据 库 技术, 图 像处理技术以 及人 机交互界面技术。 其中网络与调度的核心是系统控翻站, 它由 一台 高 性能的U N I X 双屏 工作 站构 成, 是现 场工程 师与整 个系 统的 接口 。 通过系 统控翻 站工 程师 发出

3、各种调度指令来指 挥系 统的运行, 此外通过网络它还要接收各个分系统的 状态多数, 用田 形界面实时显示来监侧系 统的 状态。因 此系统控制站应具有操作简便、 信息丰富、 交互性强的 图 形界面同时应有实 时通信传拾的能力。 我们 在系统控制站的具休实理中 采用了 多进程并发 处理的 机制。 主进程采用标 准的X窗口 系统, 负贵人机交互的 处理。 子进程负 责通信, 实时进 行致据交换。主进程和子进程之间 采用了消息队 列和套接字等进程间 通信机创。 实现实时的 通信处理和X窗口 事件处理机制的融合是系统控制站设计上的 难点。 2 X窗口 的 异步事件处理机制 X窗口 是一个工业标准窗口 环

4、境, 它允许程序员开发可移植的图 形用户界面。 X的 设各独 立性使得用 它开发的应用程序可以 在一个由 大型机、 工作站及徽机组成的网络环 魔下运行, 这 也本系 统采用X窗口 的原因. X窗口 的 体系结构是建立在客户一服务器棋型荃础之上的。 系 统中负责全部艳入及粉出 设备的 进程叫 做服务器, 任何一个使用X服务器的 设施的 应用程序 叫 做客户, 客户 与 服 务器 之间 的 联系 遵循X 协议. X 应用程序 采用了 异步事 件 要动 机翻。 事 件 驱动是指程序由系统中 物入的事件驭动或控制。 X程序必须按照事件类型进行转移井傲出 合 适的响 应. 在传 统的 批程 序中, 程序

5、完 全有 其本 身控制; 而在事件 驭动 程序中, 程序 把它的 控 制 权 交给用户, 用户 通 过一系 列的 事 件来 控制 程序的 动作. X 服务器 采用 事件队 列 进行连 接, 这 是 一个为程 序窗口 生 成的 所 有事 件的 先进 先出 列表, 程序 从队 列中 读取事 件井以 某 种方式响 应。 X窗口中的各个事件的 执行是由 事件间的切换来完成的, 它是书程序从事件队 列中 取出 事 件, 根据事件的 状况来完成切换. 切换的方式是转 让控制, 这种转让是各个事件“ 自 觉” 的。 实 3 0 7 质 上, X 窗口 通 过这种方式实现 其本身 “ 无 优先级” 事 件.

6、由 于X程序的事件驱动异步本质, 给进程间 通信带来了困难。 传统的U N I X方式, 管道和 套接字不能很好地适应这种环境。 在X环境下它们 有一大缺点, 它们使用的文件I / O本质是 同 步的, 而X进程的操作是异步的。当程序读通信数据时如不能立刻获得, 就必须等待数据, 这时U N I X进程就堵塞了。 这对X进程来说是不能接受的: 当它被堵塞等待箱入时, 许多事件 将在 输 人队列中 累 积起来. 因 此必 须 考虑在X窗口 环 境下通 信任 务的 控制转 让问 题. 这是因 为, 如通信任务独占 控制将破坏X 窗口 的事 件驭动机 创, 在通信任 务完成 之前其它事件将不 能执行

7、, 而且在通信进行过程中 系统不能响 应用户的其它要求。 3 通信任务的四种控制转让策略 要解决通信任务的 控翻转让间 皿, 必须 较好地协 调X事件与我们 通信任务的交互机翻. 主要思想是: ,采用“ 非阻塞” 进程间通信方式与X的异步事件机材相协调 。划分大块的 通信任务为小块的通信片段, 减少 通信时延 。直接控制X的事件分发机制, 抢夺X的 事件控制权进行通信传翰 ,生成特殊的 通信事件峋 柄, 由X事件调度机制直接分发处理根据以上思想, 我们采 用“ 非阻塞” 进程间通信方式结合X T o o ll t i t 工具箱 初步实现了X环境下的 通信控翻转让。 3 . 1 宜 接监控抢夺

8、控 制的 策略 大多数X应用程序 使用X t m a i n uo p 或X t A p p M a i n L o o p 从事件队列中砚除事件并将它 们 分 发到选择它们的 窗口 中. 但在 必要的 时 候, 我们 可以 对这一 过程 进行控切, x t 提供了 很多 用于检侧和操纵事件队列的函致。主要有两类: 1 , 获 取事件函 数 可供 应用 程序 用来 检查事 件状态的函 数有 三 个: X t A p p P e n d in g ( ) , X t A p p P e e k E v e n t O , X t A p p N e x t E v e n t O, X t A

9、p p P e o d in g 决 定在 皮 用 粗 序 的 事 件队 列中 是 否 有 事 件 存 在. 其 侧 用 格 式 为: X t l n p u t Ma a k X t A p p P e n d i n g ( 如果在事件队列中存在事件. 就返回一个非零值, 该返回值为X t I M X E v e n t , X t I M T i m e r , X t I M A l t e t n a t e I n p u t 三者或其子集的逻辑或。 X t A p p P e e k E v e n t 用 来 取出 事 件队 列中 存 在 的 第 一 个事 件, 但 并不 从事

10、 件队 列中 清 除它, 其调用格式如下: B o o k a n X t A p p P e e k E v e n t ( a p p _ c o n t e x t , e v en t _ t e t u r n ) X t A p p r, o n t e x t a p p _ c o n t e x t ; X E v e n t二, cot _ r e t u r n , 其中e v e n t _ r e t u r n 是指向 返回的事件结构的指针, 如果返回的事件是X李件, 就返回 T r u e ; 否则就返回F a l s e , 并清除 应用程序现场中 所有显示器事

11、件队 列。 函致X t A p p N e x t E v e n t 从应用程序的事件队列中返回一个事件, 并把它从事件队列中清 除掉, 其调用格式如下: void X t A p p N e x t E v e n t ( a p p _ co n t e x t , e v e n t _ r e t u rn) X t A p p C o n t e x t . 即- c o n t e s t ; 3 0 9 X E v e n t e v e n t _ r e t u r n ; 其中e v e n t _ r e t u r n 是指向返回的事件结构的指针, 如果在事件队列中没

12、有事件, X t A p p N e x t E v e n t 就清除应用程序现场中 所有显示器的事件队 列, 井等待来自 服务器或其它翰 入源的事件. 或者等待定时时间到。 当X事件发生时函数X t A p p N e x t E v e n t 就把该事件从事件 队列中清除掉并返回 该事件。当发生定时事件或翰入事件时, X t A p p N e x t E v e n t 就调用为它们 注册的函教. 2 、 分发事件函 数 应用程序在获取到一个事件后, 要将它发送给选择它的对象元窗口, 这可通过X t 的函 致 X t D is p a t c h E v e n t 来实现, 调用格

13、式如下: 致d X 止 助 户t c 卜 E v e n t ( e v e n t ) X 万 代口 t二 , 吧 . t ; 其 中, e v e n t 指出要发送 的事件。这个事件可用函数 X t A p p N e x t E v e n t 获取到。 X t D i s p a t c h E v e n t 把事 件分发给以 前 用X t A d d E v e n t H a n d l e r 注册的事件处理函致或用翻译表描述 的动作函教。 如果X t D i s p a t c h E v e n t 把事件发送给了某个事件 处理函 致或动作函 数, 就返回T r u e

14、; 否列返回F a L % e , 我们可以利用以 上两类函 数编写直接监控X事件队 列的 循环, 使用X t A p p N e x t E v e n t 函数监视X的事件队列, 当事件 队列中没有等待处理的X事件时, 就抢夺控制权进行一轮通 信。这种通信控制转让策略的结构如图1 所示. 下面给出了实 际系统控肠站定义的 循环结构: ) 监视X移件队列 剧取出相应,件并分发处理 则抢夺控侧 权和相关 站进行一次 图1 监视X事件队列的通信 控创转让给构 v oi d S C S M.( a p p _ 一)/ .主进粗 监往盆事件抽环结构. / X t A P P C a n t e a

15、t a p p _ m e t e rt; ( XE v mt e v e n t ; wh i k( 1 ) 丈 甘IXt A p p P e e 成 明( . 即_ x c e t e x t ) ) X t A p p N e x t E v mt ( a p p _ c mt e x t , 6 x ( / 圣C o m mu n i c a t e 杭止 。 山仃a t a t i a m a Re c e i v e, , . en d a t ma t i o e卜 已e 这种监控X事件队 列抢夺通信任务控制权的基本思想是: 将通信任务划分为较小的通信 事件, 每一个通信事件独占

16、一个控制段, 当X事件队列无事件时抢夺控翻, 进行一轮通信, 等 3 0 S 待X事件队 列无事件后再处理下一个通信事件. 3 . 2 使用输人率件句柄获取通信任务控制权 在X窗口 中由 于客户和服务器之间 使用文件系统进行联系, 在程序设计中 可以 将我们的 文件、 管道或套节字与客户的低级I / O代码相连, 允许进行异步翰人通知。 这种方法是通过翰 入事件调用X t A d d l n p u t 实现的。它的调用格式如下: X t l n p t a l d X t A d d I n p u t ( a o u r ce, c o n d i t io n , p r o c , c l ie n t - d a t

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号