松散藕合,以提高可重用性,使维护修改更容易,实现新的用户需求。
2. 2. 3实现阶段
在实现阶段,要完成系统软硬件平台的定制和创建实际的程序。根据目标系统的设计和需求,定制传感器节点的功能,并对wsn操作系统(软件平台)进行裁减,剔除开发目标系统所不需要的部分,以节省有限的空间,提高系统运行效率。
使用流程图或伪代码将应用程序模块间的数据逻辑流程表示出来,然后开始使用指定或选定的语言编写程序代码。语言的选择是基于系统开发所使用的软件平台,即wsn操作系统。如在tinyos下使用nesc语言,而在mantisos下则使用c语言。最后在unix/linux环境中进行调试。
2. 2. 4测试阶段
将编译成功的应用程序导人节点进行测试。白盒测试是程序员的责任,必须确保每一条指令和每一种可能的情况都已经被测试过,需要构造多组测试用例来验证应用程序。当目标系统构建完毕,测试工程师通过利用系统需求和他的系统开发知识以及用户的工作环境来产生测试计划对整个系统进行测试,以确保所有的应用程序能够在一起工作。
2. 3技术模型
无线传感器网络操作系统实现对物理资源的抽象,并管理有限的内存、处理器等资源。不同的操作系统的实现机制和策略不尽相同,如tinyos操作系统在软件体系结构上体现了事件驱动模式和组件化编程技术,但没有区分用户和内核模式,没有提供内存保护机制。而mantisos是一个支持无线传感器网络快速构建的多线程嵌人式操作系统,支持多模态原型以及传感器节点动态重编程、远程调试70因此,在不同的操作系统上开发具体应用,必须充分考虑各个操作系统的技术特点,充分发挥其优势,开发出高效的应用程序。
这一部分给出了在mantisos平台上开发应用程序的一个技术模型,如图4所示,采用队列结构来实现单线程多任务,降低了多线程多任务所可能出现的线程切换开销,适合传感器节点能源、内存等资源十分有限的特点。
在这个模型中,定义一个任务队列结构,每个应用程序创建一个线程,线程启动时初始化任务队列,并对队列进行管理。每隔一定时间间隔,检查队列中是否有任务到达,如果有任务,则启动任务执行,完成后将该任务从队列中删除;如果没有任务,线程睡眠。共享缓冲区用于数据的接收和发送或节点其他参数的存储和处理。
3结束语
无线传感器网络的应用前景十分广阔,基于mantisos的无线传感器网络应用开发研究的基础上,引人软件工程的思想,结合无线传感器网络应用开发本身的特点,提炼出一个通用的wsn应用程序开发过程模型,该模型可以指引无线传感器网络应用开发的过程,提高开发速度和质量。随后,给出了一个单线程多任务的技术模型供开发人员参考,解决了在线程驱动的wsn操作系统mantisos下开发应用程序可能出现的线程上下文切换开销增加的问题。
上一页 [1] [2]