250 likes | 407 Views
YETI:A TinyOS Plug-in for Eclipse. YETI: Eclipser 一种 TinyOS 操作系统的插件.
E N D
YETI:A TinyOS Plug-in for Eclipse YETI:Eclipser 一种TinyOS操作系统的插件
Eclipse 是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件,但是Eclipse已经超越了开发环境的概念,可以想象Eclipse将成为未来的集成的桌面环境。目前的Eclipse本身就具备资源管理和外部程序的功能,加上无所不能的插件,将构成一个丰富多彩的工作环境而不仅仅是一个集成开发环境。对于程序员来说,没有什么比可以随心所欲的定制的工作环境更重要,你的决心,勇气和创造力在与别人分享成果的过程中一览无余。好了,你是不是心动了,如果你已经对Eclipse有一定的认识,那么,和我一起打造自己的个性化工作环境吧。
摘要 • 由于无线的ad hoc和传感器网络应用广泛而应得日益重要。使用的传感器的硬件和软件越来越复杂,而由传感器网络实现的项目日益的变得强大。虽然有这些的优势,但传感器网络的开发工具还很简单,一个普通的文本编辑器和一个命令行shell工具便是大多数传感器网络开发者的常用工具。本文中介绍了一种微操作系统的插件程序YETI。除了有其它的开发环境的基本功能外,YETI还特别的优化了TioyOS的开发工具。
关键词:传感器网络开发,TinyOS-1.x,插件程序。关键词:传感器网络开发,TinyOS-1.x,插件程序。 • Keywords • Sensor network development, TinyOS-1.x, Eclipse plug-in
因为不同领域的传感器网络的应用通常需要特别的硬件条件,人们在建立一些高效的节点上做了很多的工作。开发了各种不同的应用目标的不同的节点家族。一个完美的节点,也不可能对所有的任务进行理想的设计。但是,今天的平台提供的了大部分要求的解决方案,比如预装的传感器,简单的扩展性,大范围的传送范围,多板的无线收发设备,或者完整的USB接口。传感器网络的事实上的标准操作系统TinyOS在不断地应用于开发。一个活跃的开发者社区大大的推动了系统性能并扩展其功能。因为不同领域的传感器网络的应用通常需要特别的硬件条件,人们在建立一些高效的节点上做了很多的工作。开发了各种不同的应用目标的不同的节点家族。一个完美的节点,也不可能对所有的任务进行理想的设计。但是,今天的平台提供的了大部分要求的解决方案,比如预装的传感器,简单的扩展性,大范围的传送范围,多板的无线收发设备,或者完整的USB接口。传感器网络的事实上的标准操作系统TinyOS在不断地应用于开发。一个活跃的开发者社区大大的推动了系统性能并扩展其功能。
虽然有大的用户群和软硬件方面的优势,TinyOS还是很难学并且在功能上有很多的局限。因此,使用者被迫只能使用简单的文本文件编辑器来编写他们的应用程序。还需要命令行工具来编译和擦写二进制的运行文件到flash里。缺少诸如拼写检查,代码自动完成或者语法改正高亮显示等便捷的功能使得开发TinyOS应用需要做很多不必的繁重工作。虽然有大的用户群和软硬件方面的优势,TinyOS还是很难学并且在功能上有很多的局限。因此,使用者被迫只能使用简单的文本文件编辑器来编写他们的应用程序。还需要命令行工具来编译和擦写二进制的运行文件到flash里。缺少诸如拼写检查,代码自动完成或者语法改正高亮显示等便捷的功能使得开发TinyOS应用需要做很多不必的繁重工作。 • 本文提出一种程序插件YETI,为TinyOS开发提供支持。YETI提供开发环境的支持语言的所有重要的特点,它适应用初学和经验丰富的传感器网络的开发者。
本文组织方法如下:第2节讨论了对TinyOS开发者的要求。第3节介绍了YETI以及其最重要的特点。第4节讨论了系统最根本的技术现状。后面的章节将我们的工具与相关的工具进行了一些对比。最后第6节作了一个总结并展望了未来的工作。本文组织方法如下:第2节讨论了对TinyOS开发者的要求。第3节介绍了YETI以及其最重要的特点。第4节讨论了系统最根本的技术现状。后面的章节将我们的工具与相关的工具进行了一些对比。最后第6节作了一个总结并展望了未来的工作。
2. DEVELOPMENT REQUIREMENTS • 从我们的自己的经验和无数的与其它的TinyOS和传感器网络开发者的讨论中我们发现,对于TinyOS的初学者和有经验的开发者来说要求是很不一样的。初学者在编写传感器网络的应用程序上没有什么经验,需要一些基础的知识方面的帮助。而要掌握一个操作系统的设计原理并不是一件简单的事。尤其是完全模块化的应用设计和各个模块独一无二的连接方式。一个编写的好的操作指南可以有助于我们的学习,因为其中会讲述到系统的TinyOS的所有重要特点和它的编程语言nesC。对于一个新手来说另一个问题是大量的系统资源文件使得你很难寻找到需要的帮助,通常新手都很容易忽略有用的信息。有经验的开发者则较容易发现,但就算他们的丰富经验和深厚的功底,依然还需要花费大量的时间来寻找他们需要的适当的执行函数。
3.特征 • YETI的目标是为有经验的用户提供一个高效的开发工具,为新手提供一个便捷,易用的环境。所以第2节中提到的所有的要求都需要考虑到。我们在广泛使用的Eclipse的框架上来开发YETI。Eclipse提供强大的插件机制允许用户进行几乎无限的扩展和内嵌功能的增强。因为这一点Eclipse成为许多开发者和插件程序编程语言支持的首选,例如C++,ForTran,或者Cobol等。
3.1系统插件 • 系统插件为在Ecplise中开发TinyOS提供了实际的编程环境和工具,如图1所示:安装YETI后的运行界面,它提供了编写传感器网络程序的任务的优化方法并能满足所有平台的开发。
新建项目Project Creation • 使用TinyOS项目向导来新建项目,在对话框中用户可以对新项目进行命名,选择可用的TinyOS的安装并定义一个构造目标,指定默认的传感器节点。YETI并不提供目标的代码列表,但要求TinyOS构造系统来支持设备。这就保证了安装的每一个TinyOS系统都支持用户可用的节点平台。
文件编辑File Editing • 对于这个应用的开发,YETI提供了支持用户自定义的并支持nesC编程语言的编辑器。它配备了正确的语法突出和整合各商品的职能,从已知的其他开发环境。其最重要的特点是,明确了实时拼写检查。句法和语义错误检测到几分之一秒,并标有一个红色的X ,在开始的路线。此外,一个错误信息是产生在Eclipse的问题日志载点击链接指向相应的位置,在源代码。为最常见的问题,如失踪分号的错误讯息,还提供了一项建议,对如何修复(也见第4.2 ) 。此外,编辑器包含一个代码完成功能,可以用来创建存根的方法都必须在实施文件提供或使用特定的界面。
纲要Outline • 为更好地概述的应用提供了一个YETI 纲要开启的档案。这个纲要中列出了所有组件,接口模块和配置,这是建设大厦的每个Tinyos申请。一个简单的点击这是有可能打开宣言的界面,或跳转到特定功能的开放源代码文件。预期的以缺乏明确的封装结构Tinyos 多种实现同一界面中可找到。这是大多数情况下,如果硬件的具体特点用。举例来说,访问硬件定时器不同的工程在不同的处理器,从而计时器接口用在几乎所有Tinyos申请,有许多自订的实施,各种传感器节点平台。 YETI 使用目前所选择的目标平台,以决定哪些对各种档案的开放。因此,用户通常实施将用来编译应用程序。
Tinyos具体的搜索 • Tinyos具体的搜索功能可以让浏览通过所有可用的接口和扫描模块执行这些建议。为此,结构适当的源文件的解析和评价。几种特殊的搜索模式可用。接口,模块和配置可以上市,过滤和访问从搜索框。此功能特别有用,因为Tinyos使用一套复杂的规则来决定哪些模块,包括时编制的申请。 YETI的搜索功能如下所有有效的途径,包括自订进口所提出的用户,要查找的文件相匹配的进入搜索查询。这可确保所有有效文件被发现,但没有来源不相容的,以使目前的目标是显示。
编译和存储 • 编制应用程序和存储的传感器节点与由此产生的二进制文件YETI依赖于Tinyos作出的制度。不过,用户不再需要输入在潜命令行呼吁,但一个简单的向导帮助成立作出选择和商店他们稍后再用。 YETI自动识别所有可用的目标平台,为某一特定Tinyos安装和还探讨了进一步有效的参数,如尽可能延长议会的意见。已确定的选项都显示在一个对话框,并且用户可以创建复杂的,甚至打电话的方式简单的点和单击操作。 反馈意见的结果,打电话给系统,使印刷,以Eclipse的内置在控制台。这个用户界面,不仅更容易使用,但它也阻碍了一代无效作出的来电。此外, YETI使一批执行该制度,使简化繁琐的过程,编程大量的节点。 应用图
另一个特色,该系统的插件是在应用图。这个工具产生的图形代表目前开发的应用,可以用来阴谋之间的关系及其模块。利用层次结构Tinyos模块,用户可以决定对图形的抽象层,扩大或折叠式的一些内容。如有需要,是有可能的扩大图来显示所有的模块,形成目前的应用,包括那些的作业系统。不过,可以看出,在图2 ,甚至简单的程序,如闪烁演示应用导致复杂的图形,如果充分扩大。因此,在大多数情况下,可取的做法是保持一定程度的抽象,以查看结构的一个程序。
4. CODE ANALYSIS • 代码分析 • 大部分的功能,如“守则纲要”或拼写检查需要的句法和语义理解的申请,才能达到通过扫描和分析的源代码。这些行动必须执行近实时以来,用户不愿等待几秒钟之前,一个新的输入验证。在同一时间,结果是正确的或开发环境,产生虚假警报,使大多没用的发展。
4.1 Scanner and Parser • 扫描与剖析 • 分析源代码是传统的分裂,分三个阶段:词法,句法,语义分析。在该阶段的词法分析该nesc源文件记号。象征性的定义是作为一个序列的逻辑连接项目建设的原子结构的编程语言。这包括关键字,如“模块”或“执行” ,也字符串,数字和类型名称。令牌所建立的比较,源代码预定义的模式。该工具执行词法分析,这是所谓的扫描器或lexer 。 目标的句法分析是组个人和令牌,以验证其正确性根据给定的文法一种编程语言。由于这一分析语法树是建立在其中的语义分析是执行枪决。在这最后一步,不合理的代码是在语法上是正确的确定。
4.2 ExTending The Parser • 扩展剖析器 • 用户可读的错误报告是至关重要的任何开发环境。一个简单的输出说: “语法错误”是不是真的有帮助的任何发展。我们要的是一个表达的报告有关的地点和性质的问题。杰伊已经产生相当精确的错误报表,但它是有可能的进一步改善。 YETI提供了强大的机制,以扩大分析器的错误讯息所喂养它与专门编写的文件。
5. RELATED WORK 相关的工作 • 如我们所知,目前只有其他两个项目,旨在提供一个发展的环境, Tinyos 。像YETI两者都意识到,作为Eclipse的插件不同,但他们在各方面。 第一工具是Tinyos的集成开发环境 [ 14 ]理查德这是第一次公开TinyOS的发展环境。 TinyOS的集成开发环境提供了很少的优势,采用先进的文本编辑器和一个shell 。它提供的语法,突出为nesc文件和选项编译应用从Eclipse。不过,为使编译功能,这是需要有一个预先安装工作TinyOS安装。也TinyOS具体的环境变数需要界定全系统或工具无法找到编译器。同样地,以YETI , TinyOS的集成开发环境允许撰写作出呼吁通过选择不同的方案,从一个对话框。 TinyOS 集成开发环境没有产生此对话框自动只是加载的信息从一个手写配置文件。显示作出选择,不能保证合理的,如果参数是必需的,这是不具备的默认菜单configuraTionfile必须适应。 TinyOS 集成开发环境没有提供一个拼字检查,但后建立一个应用编译错误提供了在Eclipse的错误日志。
6. CONCLUSION AND FUTUREWORK • 结论与未来工作展望 • YETI是目前推出正在公测的一种工具,我们从发布后下载并使用过的1000多名开发者收集反馈。除了收集到的错误报告,引入的特征需求帮助我们决定哪种特征是最社区用户最为需要的。我们通常将其改编使其与Unix/Linux兼容。另一个重要问题是如何整合现在已有的TinyOS仿真工具,支持其中的哪个。我们同样在察看TinyOS的2.X版本,并会尝试引进YETI来支持这个新的操作系统。最后我们仍然在继续开发更多的,传感器网络开发需要的的工具,管理器和调度器