除非特别说明,所有的程序都是基于tinyos-1.3的,并在VM 模拟Win xp 32位下用cygwin调试运行。
思想:
Tinyos使用的是一种特殊的,面向组件的编程思想,这种思想和用惯了面向对象的编程思想的我来说,非常不习惯。Tinyos和nesC为什么难学? 因为他没有正常的教科书,不像C, C++,Java 一样有专门的书或者资料,告诉你需要实现什么功能,要去用到什么类(这里是组件),要去用什么接口,要去用什么函数。 Tinyos完全没有这些东西,什么都是让你自己去摸索和实践。
所以你有太多的不习惯:
1. 你不习惯NesC程序的基本组成是Component,每个Component是一个*.nc文件。这里不像Java,大家都知道java当中的类是有继承关系,有子类超类等等。你只需要知道一些简单的类,就可以自己扩展学习,即使有没见过的类,也可以找到很详细的介绍和使用方法。NesC中没有类的概念,自然也就没有子类超类,没有继承,也就是说,如果你知道有这么一个Component,你就可以用这个Component 可以完成一定的工作。但是如果你不知道这个Component呢,尤其是某些底层的Component 那么嘿嘿~~!! 要么你像我一样,去逼自己看懂系统提供那些的Component,要么自己写一个。可问题你现在连最简单的blink程序都看不懂,更何况自己写了。所以每个用NesC的初学者都和瞎子差不多,说白了,你就是什么都不会的。你的C还有java经验都根本没用。当然,你会if 还有for语句,这是你在学习tinyos中唯一比买菜大妈强的地方。