“这本书绝对是让我对状态机大开眼界。我最近使用(包含在本书内)的 QP 框架改写了代码的主要部分,它带来了奇迹。我以前的代码使用了许多传统的状态机,并很快演变成意大利面条式代码。层次式状态机方法令新代码更小,更健壮,并且更易于维护和扩展。优秀的书和代码!”——Bob Bradley, Apple Computer, Inc.,4本书的目标人群为以下对事件驱动型编程和现代状态机感兴趣的软件开发者: 嵌入式程序员和顾问会发现一个完整的,立即可以用的事件驱动型构架,用来开发应用系统。本书描叙了状态机编码策略,和同样重要的,一个与之配套的执行并发状态机的实时框架。这两个因素是互补的,离开了对方,每个因素都不能发挥它的最大潜能。 寻求一个实时内核或实时操作系统的嵌入式系统开发者会发现,QP 事件驱动型平台可以做到 RTOS 可以做到的任何事情,而且事实上,QP 包含了一个完全可抢占的实时内核和一个简单的协作式调度器。
无线传感器网络等超低功耗系统的设计者会发现,如何把基于事件驱动状态机的解决方案裁剪以适合最小的微控制器。超轻量级的 QP-nano 版本(第十二章)在仅 1-2KB 字节的ROM 中融合了一个层次式事件处理器,一个实时框架和一个协作式或者完全可抢占式的内核。
对于复杂性的应用,大规模的大型并行服务应用的设计者会发现,结合了层次式状态机的事件驱动型解决方法很容易扩展,在管理非常大数目的状态化构件,例如客户任务方面,它非常理想。可以证明,QP 的嵌入式设计理念对每个构件的时间和空间性能都提供了关键的支持。 开源社区会发现 QP 辅助了其他的开源软件,比如 LINUX 或 BSD。QP 到 LINUX(和POSIX 兼容的操作系统)的移植在第八章描叙。
使用 C 或 C++的图形用户界面开发者和计算机游戏程序员会发现 QP 很优雅的辅助了 GUI库。QP 提供了高层的基于层次式状态机的“屏幕逻辑”,而由 GUI 库处理底层的窗口部件(widget)并在屏幕上画图。
系统构架师会发现 QP 是大型自动化设计工具的一个超轻量化的替代。
PSiCC2-CN.pdf
(4.49 MB)
自动化设计工具的用户会获得对他们使用工具的内部工作方法更深的理解。看到“帽子下面”的内容会帮助他们更加自信的更有效的使用工具。
|