1.tcl用于编写网络拓扑、事件触发等脚本事件,c++用于处理具体的数据包等底层网络协议;
???otcl的类和c++的类是一一对应的?。
2. Helper Functions:
??? getRandomNumber {llim ulim}?
??? node {}
??? nodeID {}
??? mac {}
??? getX {}? getY {}
?? ?getER {}
?? GoToSleep {}????
?? WakeUp {}?
???setCode code?
?? checkAlive {}
3. Cluster Head Functions:
??? isClusterHead? {} {
??? hasbeenClusterHead? {} {
??? hasnotbeenClusterHead {} {
?? setClusterHead {} {
?? unsetClusterHead {} {
4. Distributed Cluster Set-up Functions:
?? decideClusterHead {}
?? findBestCluster {}
?? informClusterHead {}
?? createSchedule {}
5. Receiving Functions:
?? recv {args}
?? recvADV_CH {msg}
???recvJOIN_REQ {nodeID}
?? recvADV_SCH {order}
?? recvDATA {msg}
6. Sending Functions
?? sendData {}
?? send {mac_dst link_dst type msg? data_size dist code}
?? send_now {mac_dst link_dst type msg \? data_size dist code}
?? SendDataToBS {}
?? SendMyDataToBS {}?
能把这些过程尤其是TDMASchedule转换成面向interface的nesc语言,就算巨大的成功了。这只是网络层的协议,必须同时修改mac协议才能在tmote上形成了leach自组网。国外有人做出了,那是人家的,郁郁啊!