⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testtinyvizm.nc

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 NC
字号:
// $Id: TestTinyVizM.nc,v 1.2 2003/10/07 21:45:24 idgay Exp $/* * Copyright (c) 2003 *	The President and Fellows of Harvard College. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *//* Author: Matt Welsh <mdw@eecs.harvard.edu>  * Last modified: 3 August 2003 *//** * The TestTinyViz application simply sends random messages to demonstrate  * the debugging and visualization features of TinyViz. * @author Matt Welsh <mdw@eecs.harvard.edu>  */module TestTinyVizM {  provides {    interface StdControl;  }  uses {    interface Timer;    interface ReceiveMsg;    interface SendMsg;    interface Random;  }} implementation {  enum {    MAX_NEIGHBORS = 8,  };  uint16_t neighbors[MAX_NEIGHBORS];  TOS_Msg beacon_packet;  command result_t StdControl.init() {    int i;    for (i = 0; i < MAX_NEIGHBORS; i++) {      neighbors[i] = 0xffff;    }    *((uint16_t *)beacon_packet.data) = TOS_LOCAL_ADDRESS;    return call Random.init();  }  command result_t StdControl.start() {    return call Timer.start(TIMER_REPEAT, 1000);  }  command result_t StdControl.stop() {    return call Timer.stop();  }  event result_t Timer.fired() {    uint16_t nbr;    nbr = call Random.rand() % MAX_NEIGHBORS;    // Don't worry if we can't send the message    if (neighbors[nbr] != 0xffff) {      dbg(DBG_USR1, "TestTinyVizM: Sending message to node %d\n", neighbors[nbr]);      call SendMsg.send(neighbors[nbr], sizeof(uint16_t), &beacon_packet);    } else {      dbg(DBG_USR1, "TestTinyVizM: Sending beacon\n");      call SendMsg.send(TOS_BCAST_ADDR, sizeof(uint16_t), &beacon_packet);    }    return SUCCESS;  }  event result_t SendMsg.sendDone(TOS_MsgPtr msg, bool success) {    dbg(DBG_USR1, "TestTinyVizM: Done sending, success=%d\n", success);    return SUCCESS;  }  event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr recv_packet) {    int n;    uint16_t nodeaddr = *((uint16_t *)recv_packet->data);    dbg(DBG_USR1, "TestTinyVizM: Received message from %d\n", nodeaddr);    for (n = 0; n < MAX_NEIGHBORS; n++) {      if (neighbors[n] == 0xffff) {	neighbors[n] = nodeaddr;	break;      }    }    return recv_packet;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -