test5M发送和接收消息是通过组件GenericComm来实现的。GenericComm通过调用其他组件实现从消息包到主动消息、字节级数据传数、位级数据传送到无线电收发模块的功能。在此不再深入分析其实现过程,采用随机后退的CSMA/AD的MAC协议,只要明白组件GenericComm就可以完成消息的收发。

  GenericComm提供了256个消息收发接口,也就是说系统可以使用256种消息,或者说256种状态进行转换。由于系统是非阻塞模式,一旦消息到达组件test5M中,receive事件就会立刻调用,因此在这个事件中实现不同消息的转换,从而实现通信双方的握手:

event TOS_MsgPtr Receive.receive[uint8_t id](TOS_MsgPtr m) {
  switch(id) {
    case 1: //状态转换1
    case 2: //状态转换2
  
  }
  return m;
}

结语

  分析无线传感器节点Mica和其上运行的TinyOS操作系统出发,描述无线传感器网络节点体系结构,通过应用程序开发说明其通信模型建立思路,着重描述无线传感器网络节点应用程序体系结构和消息通信机制。

参考文献

[1]  21 ideas for the 21st century[J] Business Week, 1999-08-30.
[2]  王峰,陈艾. 软件设计者的契机与挑战. http://www.cnw.com.cn/.
[3]  孙利民,等. 无线传感器网络. 第1版. 北京:清华大学出版社,2005.
[4]  Atmega 128技术手册. p36.
[5]  http://www.tinyos.net/.
[6]  David Gay, Philip Levis, David Culler. Eric Brewer nesC 1.1 Language Reference Manual.p26.