C/S模型在WinCE串口编程中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引 言
与 传 统 的 Wid ws串 口编 程 技 术 相 比 较 , iC 串 no W nE 口编 程 中不 具 备 串 口复 用 的 功 能 , 给 在 W iCE 系 统 中 这 n 实 现 对 串 口的复 杂 操 作 增 加 了技 术 难 度 。本 文 介 绍 一 种 使 用 在 信 息 平 台 软 件 中 常 用 的 c/ s模 型 技 术 , 拟 串 口 模 复 用 的动 作 来 实 现 w iCE操 作 系 统 串 口复 用 的 问题 。 n 本 方 法 实 现 所 使用 的 函 数 大 部 分 都 是 嵌 入 式 开 发 中 最 常 使 用 的 c c+ + 函 数 , 有 的 函数 都 具 有 一 定 的 通 用 / 所
难题 具有一定参考价值 。
1 3 服 务 器 端 程 序 流 程 及 工 作 原 理 .
服 务 器 端 程 序 流 程 图如 图 2所 示 。
1 软 件 结 构 及 工 作 原 理
1 1 软 件 结构 及 特 点 .
为 了 使 WiCE操 作 系 统 的 串 口操 作 支 持 复 用 , 本 n 在 方 法 中 , 用 了 一 种 类 式 信 息 平 台 开 发 经 常 使 用 的 c/ 采 s 结 构 , 用 此 结 构 来 模 拟 实 现 类 似 于 W id ws串 口 的 复 利 no 用功能 , 即在 数 据 与 串 口硬 件 实 际 控 制 之 间 增 加 了 一 个
从 图 2中 可 以 看 出 , 个 服 务 器 端 程 序 是 由两 个 线 程 整 组 成 。 一个 线 程 用 来 处 理 由 客 户 端 发 起 的 发 送 数 据 请 求 , 符合 控 制 协 议 的 数 据 先存 入 预 先 定 义 好 的 发 送 缓 冲 区 , 同 时 判 断 对 应 串 口的 使 用 情 况 。当 该 串 口被 占用 ( 口正 在 串 处 理 上一 个 发送 数 据 请 求 或 者 是 正 在 接 收 数 据 ) , 次 时 此 请 求 将 被 挂 起 一 直 到 串 口恢 复 到 空 闲 状 态 ; 口恢 复 到 空 串 闲状 态后 该 线程 将 处 理最 先 挂起 的请 求 , 最 先 存 入 发 送 将
缓 冲 区 的数 据 通 过 串 口发 走 。
同 时 , 务 器 端 程 序 还 要 用 一 个 线 程 来 实 时监 视 该 串 服 口 , 由该 串 口接 收 到 的符 合 控 制 协 议 的数 据 存 人 预 先 定 将
1 2 控 制 协 议 .
控 制 协 议 的 实 现 属 于 基 础 部 分 , 杂 程 度 与 串 口 的 操 复
经 验 交 流
c s模 型 在 W iC 串 口编 程 中 的 应 用 / n E
于兴 晗 ’李 琳 ’ 侯 煜 , 优 普 , 昭 阳 , 军 郭 易’ , , 盖 孟 张 ,
( .中 国水 利 水 电科 学 研 究 院 , 1 北京 1 0 3 ; .北 京 中水 科 水 电 科 技 开 发 有 限公 司 ) 008 2
的是 发 生 读 写 动 作 的 串 口 (o , o , , o ), 据 c ml c m2 … c mn 数
图 2 服 务 器 端 程 序 流 程 图
ppr entcm.n投稿专用) ae@m se.o c(
21 - 期 平 02#g7 机 嵌 入式系 应国 7 忱 3
作 复 杂 程 度 有 关 , 文 中 提 到 本 的 编 程 方 法 只 是 解 决 串 口 的
复 用 部 分 , 同 时 对 串 口发 生 即 读 写 时 在 编 程 上 的 实 现 。 因 此 在 本 方 法 中 , 现 串 口 复 用 实 的 控 制 协 议 只 需 要 两 部 分 — — 串 口 + 数 据 。 串 口 指
流 程 图
锁 对象 的 L c 员 函数 。此 时 , 程 要 么 等 待 资 源 释 放 ok成 线 后 访 问 ; 么等 待 资 源 释 放 而 超 时 , 问 资 源 失 败 。 在 各 要 访 种 情 况 下 , 源 都 被 以 线 程安 全 方式 访 问 。 资
性 , 加 改 动 即可 应 用 到 其 他 嵌 入 式 操 作 系 统 中 ; 且 该 稍 并
提交 数据 提 交数据 提交数据 提 交数据 提交数据
图 1பைடு நூலகம்系 统 软 件 结 构 图
指 的是 需 要 用 串 口通 信 的数 据 。
方 法 实 现 的思 路 对 于 解 决 其 他 嵌 入 式 编 程 中 资 源 复 用 的
14 客户 端程序 流程及 工作原理 .
客 户 端 程 序 流 程 图 如 图 3所 示 。
客 户 端 程 序 只 需 将 要 发 送 的 数 据 按 照 控 制 协 议 要 求 整 合 , 符 合 控 制 协 议 的 将 数 据 提 交 给 服务 器端 的程 序 即 可 。 图 3 客户端 程序
c s结 构 的 中 间 层 。系 统 整 个 结 构 主 要 包 括 控 制 协 议 、 / 客
户 端 程 序 和 服务 器 端 程 序 三 部 分 。 客 户 端 和 服 务 器 端 的 程 序 复 杂 程 度 与 串 口操 作 的 复 杂 程 度 成 正 比 , 直 观 上 也 在
与 控 制 协 议 的 复 杂 程 度 成 正 比 。软 件 结 构 图 如 图 1所 示 。
经 验 交 流
义好 的 接 收 缓 冲 区 , 时 通 知 数 据 处 理 同
线程。
此 外 C e t 象 还 可 以 保 护 控 制 的 资 源 , 该 资 源 Ev n 对 使 在 一 个 时 间里 只 可被 一 个 线 程 访 问 ; 用 时 要 先 在 资 源 访 使 问 成 员 函 数 中构 造 一 个 C e t 型 的变 量 , 后 调 用 封 Ev n 类 然