Windows Embedded 系统应用软件框架设计

Windows Embedded Standard开发初体验(一) Windows Embedded Standard,微软又创造了一个新名词。与此同时,XP Embedded,成为了一个历史名词。微软在年初推出了新的Windows Embedded产品线命名规则:Windows CE改名为Windows Embedded Compact,而XP Embedded改名为Windows Embedded Standard,WEPOS改名为Windows Embedd 阅读详情

本文参与 优快云 博文大赛(决赛阶段),如果文章对你有帮助,请到下面的网址:投票按键在文章最后 投上您宝贵的一票。多谢!投票结束时间:2014-8-15。


Windows Embedded 做为嵌入式系统(包含 Windows CE),实际实用的领域还是很多的,例如:

(1)(工业)控制
(2)医疗
(3)瘦客户机
(4)探测仪器一类
(5)车载
(6)电梯的轿内显示器
(7)PND
(8)测试仪表

工控领域,使用 Windows XP Embedded 的比较多,当然也有用到 Windows CE 系统。在消费类电子领域,如车载、PND等,使用 Windows CE 的产品比较多。
由于 Windows Embedded 系统的标准窗体界面无法满足车载及其它产品的需求,主要是因为用户在小屏幕的设备上操作系统提供的控件不方便。其实,在 PC 上也常见此种实现方式,例如:银行的一些客户终端,使用的是 Windows XP 系统,但从界面上是看不到系统提供的哪些控件,也感觉不到使用的是 Windows XP 系统。
一般使用 Windows Embedded 的产品都会采用自定义、个性化的 UI。UI 的实现方案也是千差万别,操作方便、美观是最基本的要求。其它如扩展性、稳定性等等要求,在设计时也是必须要考虑的。
整个框架暂且不说,比如功能的扩展性等,先简单说说 UI 最终的实现方法,即 UI 是如何呈现给用户的。
(1) 使用 GDI 贴图可能是大家最容易想到,是的,这确实是最通用的。其对系统的要求也比较低,不必考虑硬有件是否支持;
    如果使用 GDI 感觉速度不能满足要求,可以参考通过显示驱动,直接写显存。这种方法,需要驱动人员配合,在定制系统时提供相应的接口,一般通过 IOControl 来实现。
(2) 为了实现一些特殊的效果,在产品方案支持的情况下使用 overlay 结合贴图,利用 overlay 的特性完成 UI 之间的快速切换。例如:使用以下 CPU 的方案Telechips、SiRF Prima、iMX,MStar785等使用 Overlay 是没有问题的;但 SiRF A5、MStar 2521等低端的 CPU 则不支持。
这两种方案,基本上都是使用 Windows Embedded 系统提供的功能。
(3) 使用诸如 Open GL ES 做出的支持较好的动画效果的 UI。

(4) 使用 Windows Embedded 新特性的 Silverlight 来实现的 UI 产品,现在也慢慢的出现在车载系统中。但使用 Silverlight 对系统的硬件配置要求比较高,现在也只出现在一些高端的产品中。

(5) 第三方工具或开源项目,例如:QT、MiniGUI。


接下来说说框架,在 Windows Embedded 下编程,怎么也逃脱不了 Windows 消息框架,至于是使用 MFC 还是使用 Win32 编程,那可以说是仁者见仁智者见智。但无论选用哪一种,它也只是一个基础。UI 框架如何设计,功能如何与 UI 完美的结合,以达到修改 UI 时尽可能不去关心功能代码?这也是 Silverlight 推出时的设计想法:UI 设计和实现,与功能的实现分开。这种分开,个人认为简单的说就是耦合度降到最低,不可能彻底分开的。UI 与功能之间一般通过消息、回调或定时等机制结合在一起。例如有一种使用定时刷新的 UI 方案,界面刷新的工作由一个独立的线程控制,定时检查各 UI 控件是否需要刷新、及如何刷新?功能模块在功能实现时,只需要触发控件的刷新标志即可。
例如如下刷新线程与功能代码:

// 刷新线程代码: 刷新各类型控件
while
{
   // 字符串显示控件
   foreach(各个字符串控件)
   {
      if(控件.bRefreshFlag) // 如果控件的刷新标志
      {
         控件.bRefreshFlag = FALSE;
         // 刷新操作
      }
   }
   // 按键控件
   foreach(各个按键控件)
   {
      if(控件.bRefreshFlag) // 如果控件的刷新标志
      {
         控件.bRefreshFlag = FALSE;
         // 刷新操作
      }
   }
   // ......                     // 其它类型控件
    Sleep(50);
}


// 功能代码
// 功能: 字符串显示控件功能代码
// 参数说明:  csStr 控件显示的字符串; bRefreshFlag 刷新控件标志
void StrSettingFunction(CString &csStr,BOOL &bRefreshFlag)
{
   //  根据功能代码赋值新的字符串
   CString csNewStr;
   if(条件1)
      csNewStr= L"XXX";
   else
      csNewStr = L"YYY";
   if(csStr != csNewStr)
   {
      csStr = csNewStr;
      bRefreshFlag = TRUE; // 赋值刷新标志
   }
}
// 功能: 按键控件功能功能代码
// 参数说明:  bEnable 按键使能标志(对应显示Enable/Disable图片); bSelect 按键按下或选中图片; bRefreshFlag 刷新标志
void BtnSettingFunction(BOOL &bEnable,BOOL &bSelect,BOOL &bRefreshFlag,...)
{
   BOOL bNewEnable;
   BOOL bNewSelect;
   if(条件1)
      bNewEnable = TRUE;
   else
      bNewEnable = FALSE;
   if(条件2)
      bNewSelect = TRUE;
   else
      bNewSelect = FALSE;
   if(bEnable != bNewEnable)
   {
      bEnable = bNewEnable;
      bRefreshFlag = TRUE; // 赋值刷新标志
   }
   if(bSelect != bNewSelect)
   {
      bSelect = bNewSelect;
      bRefreshFlag = TRUE; // 赋值刷新标志
   }
}


以上功能函数只是一个示例,例如:按键控件可能需要显示字符串,其必然包含一个与字符串显示类似的函数。各个控件都会有显示/隐藏属性,这个在功能代码中也需要体现出现。为了方便控件布局,一般都会支持子窗口,这是一个多个功能的集合。
将 UI 与功能分开,是框架设计的核心思路。分层的好坏,决定了后继开发与维护的难易程度。

如何使 UI 的设计具有简单、方便的移植性?这是大家在设计时都会考虑的内容。只所以这样考虑,是想在功能不变、或简单变化的情况下,能快速完成修改、且保证产品的稳定性。特别是一些车载方案公司,对于一些要求不高的小客户在快速确定 UI 后几天就可以完成产品的交付。这种修改,一般包括换图和图片位置的调整。如何简单有限的记录图片与图片的位置等信息呢?早在几年前,就有通过简单的格式化文本来完成的方案。后来标记语言兴起,在嵌入式方案中也得到广泛应用,特别是 XML 语言。XML 语言的特点这里就不多说了,有兴趣的童鞋在网络上查找一下,就能得到答案。在这些方案中,都有用到图片处理的技术,以实现透明、半透明等效果。图片一般采用 BMP 和 PNG 格式,为了方案的保密性等其它一些考虑,图片一般通过工具打包,甚至于,XML 文件也一起打包。这样在不了解打包后文件格式的情况下,客户就必须依赖于软件设计者。将 UI 部分通过可视化工具来实现,可以大大加快 UI 的开发速度。一般是通过 PC 上的程序来直接操作,刚刚毕业的学生在经过2到3天的培训,就可以完成 UI 部分的工作。

以上三部分结合在一起,就构成了车载应用系统中单个应用软件的框架:控件/子窗体/完整的界面。再给合一个对多个应用控制的逻辑,完成应用启动/关闭(显示/隐藏)等的控制,以完成一个完整的系统的设计实现。
采用Windows Embedded 操作系统平台的医疗设备和系统设计 针对当今正在开发的大量不同类型的医疗设备和系统,医疗保健行业的开发者们至少有一个共同点:寻求一个可自定义、可靠的操作系统作为自己设计的基础。       医疗保健行业越来越趋向于要求无缝集成的更智能、更可靠的系统,而 Microsoft Windows Embedded 家族操作系统恰好能够满足这所有要求:在单个工具集内实现了可靠的架构、行业标准支持、多种图形界面选项、全面的联网支 阅读详情

相关推荐

Windows Embedded CE 6.0操作系统的架构

Windows Embedded CE 6.0操作系统的架构 Windows Embedded CE 6.0操作系统被实现为一种分层的架构,分别由内核模式层和用户模式层组成,其中内核模式层由OAL(OEM抽象层)、KITL(独立于内核的传输层)、操作系统内核、内核模式的Coredll库及文件系统模块、GWES模块、设备管理器模块和内核模式驱动/服务模块等组成,而用户模式层分别由用户模式

张冬泉的博客 5139

MBTI性格测试

INFP 哲学家型——生活在自己的理想世界 报告接收人: 才储成员4361454 日期: 2014/9/2 一、你的MBTI图形 倾向示意图表示四个维度分别的倾向程度。从中间往两侧看,绿色指示条对应下面坐标的哪个区间。 本报告地址不会长期有效,请复制报告内容到本地或自己的博客。 二...

weixin_30252709的博客 1392

Python爬虫实战:5分钟搞定Web of Science文献批量导出与解析(附完整代码)

本文提供了一套利用Python爬虫技术,快速实现Web of Science文献批量提取与解析的完整方案。通过解析官方导出的HTML文件,结合BeautifulSoup和pandas库,可将文献数据自动转换为结构化的Excel/CSV表格,帮助科研人员高效管理文献信息,节省大量手动整理时间。

weixin_29050513的博客 1171

La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017

A Ambiguous Dates贪心,从小到大取日期#include<bits/stdc++.h> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define ForkD(i,k,n) for(int i=n;i>=k;i--) #def

nike0good |Oier&ACMer | 熟能生巧 962

从零构建:ESP32S3无线DAP-Link调试器的硬件与软件协同设计

本文详细介绍了基于ESP32S3的无线DAP-Link调试器的硬件与软件协同设计,涵盖关键元器件选型、无线通信协议优化、双核任务处理及低功耗调试方案。通过ESP-NOW协议实现低延迟无线调试,结合USB协议栈与双核协同,为嵌入式开发提供高效灵活的调试解决方案。

gitlab7runner的博客 860

从零到一:OptimizePI Pre-layout PDN前仿真实战指南

本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。

weixin_28304023的博客 509

inf文件介绍(一)

本文简单介绍了一下Windows系统中的inf文件,主要包括基本概念,文件结构,字段含义以及规则用法等基本情况。

大道至简,知易行难 8670

python数据处理(一)——如何用python实现excel功能

python如何实现excel的数据提取、指标构建,进行透视分析。

一名数据分析师 2709

我的性格类型—— INFP(哲学家型人格 )

测试日期: 2019/6/9 基本描述 INFP (Introverted Feeling with Intuition)代表人物:卢梭 语录:虽然我的心既傲慢又温柔,我的性格柔弱,然而,我是不可战胜的。 才储分析:您的性格类型倾向为“ INFP ”(内向 直觉 情感 知觉 倾向度: I95 N68 F65 P52 不假思索指数:23) 理想主义者,忠于自己的价值观及自己所重视的人。外在的生...

sunset_1234的博客 5万+

010、Zephyr RTOS开发环境搭建(Docker)

摘要 本文分享了使用Docker搭建Zephyr RTOS开发环境的实践经验。作者通过团队新人配置环境的真实案例,指出传统安装方式存在版本冲突、缓存污染等问题,而Docker方案能确保环境一致性。文章详细介绍了自定义Docker镜像的设计思路,重点解决工具链版本匹配、Python虚拟环境隔离等问题,将镜像体积从2GB优化到800MB。提供了从拉取镜像到点亮LED的完整工作流程,并总结了USB设备直通、文件权限、缓存问题等常见陷阱。还探讨了多阶段构建、CI集成等进阶用法,同时客观分析了Docker方案的局限性

m0_50546716的博客 81

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1509

Windows Embedded北京无锡大兴

Windows XP Embedded with Service Pack 2 - ISO CD1 (English) en_winxp_embedded_sp2_CD1.iso 发布日期:2004-12-15 21:43:00 语言:英语(美国) 文件名:en_winxp_embedded_sp2_CD1.iso SHA1:3FBA1A66F14FC5B925FE9741F74

u012798089的专栏 2575

g2o&PCL 四阶多项式拟合

g2o&PCL 四阶多项式拟合

dayuhaitang1的博客 142

Windows XP Embedded 官方下载地址

Windows XP Embedded是一种嵌入式操作系统,可以以组件化的形式提供 Windows 操作系统的功能。Windows XP Embedded 与 Windows XP Professional 一样基于二进制,包含 10,000 多个独立的功能组件,因此开发人员在自定义设备映像中管理或降低内存占用量时可以选择并获得最佳功能。 Windows XP Embedde...

weixin_33739523的博客 8517

从泛光成像到可寻址扫描:Flash激光雷达的车规级优势与技术演进

Flash激光雷达凭借固态架构优势成为自动驾驶感知技术的重要发展方向。该方案无机械部件,具备抗振动、长寿命等特点,同时CMOS工艺带来显著成本优势。但传统泛光式存在能量弥散问题,难以兼顾大视场和远距离探测。可寻址扫描技术通过分区点亮VCSEL阵列,有效提升局部能量密度,在保持固态可靠性的同时突破性能瓶颈。这种"电子扫描+分区点亮"的混合架构,使Flash激光雷达有望实现大视场、远距离、高可靠和低成本的多重突破,推动自动驾驶技术发展。

致力于lidar应用开发 235

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

windows embedded

 Windows Embedded是微软嵌入式技术和产品的总称,它是微软专门为嵌入式智能设备开发的窗口操作系统。目前微软的Windows Embedded家族主要包括两个产品:Windows CE和Windows XP Embedded。目前Windows CE的最新版本为Windows CE 6.0,Windows XP Embedded的最新版本为Windows XP Embedded SP2

IT强哥的专栏 4348

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Windows 7 Embedded快速入门-安装

PS: 通过以下步骤,在VMware中安装成功。安装包en_windows_embedded_standard_7_runtime_x86.iso 文章来源:http://sns.ca800.com/space.php?uid=45972&do=blog&id=10528 近期公司的一个产品的硬件升级,为了更好的利用新硬件的优势,决定将原来使用的嵌入式操作系统XPE...

路楷的专栏 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Windows XP Embedded studio 的安装说明

Windows XP Embedded studio 的安装说明

Rojun的专栏 1935

微软发布Windows Embedded Handheld移动平台

在今年2月15日微软发布新一代的面向普通消费者的移动设备平台Windows Phone 7之后,大家都在猜测微软的 LOB方案将会何去何从。今日,微软宣告了其新的面向企业用户的移动平台 Windows Embedded Handheld 平台的诞生。

我的回收站 2893

通用Windows XP Embedded增强版

,windows xp embedded......在网上查了一下,这个版本的XP是嵌入版的,跟我们平时接触到的专业版和家庭版,或者CE和MCE版不同。引用:日前,微软(中国)有限公司在京召开了嵌入式系统开发者大会,并宣布:微软最新的嵌入式系统—Windows(r) XP Embedded正式在中国发布。联想集团、北京美斯比、研华(中国)有限公司、联强国际等国内外厂商在会上展示了基于微软嵌入式操作

IT强哥的专栏 5576

了解Windows Embedded Compact 7

Windows Embedded Compact 是在 Windows Embedded CE 的基础之上演变而来的。 Compact 是一种组件化的实时操作系统,用于创建各种占用空间小的企业类和消费类设备。 Windows Embedded Compact 7 使用 OEM 所熟知的工具帮助创建下一代设备,这类设备可提供具有吸引力且直观的用户体验。 Compact 沿袭了第一版 CE 所开创的嵌入式解决方案创新历史,为 OEM 提供了新的技术,使其能够独树一帜打造出与竞争对手截然不同的设备。 Silv

WinCE7的专栏 1040

Windows Embedded POSready2009

Windows Embedded POSready2009 ,这个看上去和 XP 差不多,可能是别人说的 XPE 系统 下载 POSready2009_CD.iso, 安装 KEY : XM633-9YG7Y-47JM6-4QMF8-XPKYG https://download.microsoft.com/download/6/3/...

weixin_34208283的博客 2219

Windows Embedded Compact 2013 介绍及安装

微软于2013年6月份推出WindowsEmbeddedCompact2013 版本的嵌入式系统,其支持x86和ARM架构的处理器。专为构建小型化、实时性等特殊需求的行业设备而优化,支持VS2012等开发工具,扩展了Windows的用户体验,将更好的帮助企业构建基于物联网应用的行业设备及系统。 面向行业应用 Windows Embedded Compact 2013 是应用于小型化、嵌入式行业

老翁的嵌入式专栏 1万+

微软嵌入式系统Windows XP Embedded(简称XPE)

什么是Windows XP Embedded? Windows XP Embedded(简称XPE)是⑷硗瞥龅幕?赪indows 2000代码库基础之上的嵌入式系统。了解一下这个不需要启动过程,只需要打开电源就可以用的...

csdn0240694的博客 2525

如何选择Windows Embedded操作系统

Microsoft Windows Embedded平台包括2个产品:Windows XP Embedded和 Windows CE .NET。在您开发产品/设备时,您需要考虑以下的特性和功能来决定选择哪一个产品。   ü        CPU 架构 您使用是x86还是非x86的CPU?如果您使用X86 CPU,您可以采用Windows CE .NET或Windows XP Embedd

记事本 2872
上一篇: 辞职申请——范文
普通网友
普通网友 领域专家: 编程技术技术领域 领域专家: 编程技术技术领域
博客等级 码龄25年 2837粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

91program

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值