📄 channelm.nc
字号:
/* tab:4
*
*
* Copyright (C) 2004 by North Carolina State University.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice, the following
* two paragraphs and the author appear in all copies of this software.
*
* IN NO EVENT SHALL THE NORTH CAROLINA STATE UNIVERSITY BE LIABLE TO ANY PARTY
* FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
* OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE NORTH
* CAROLINA STATE UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE NORTH CAROLINA STATE UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE NORTH CAROLINA STATE UNIVERSITY HAS NO OBLIGATION
* TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
*
* Authors: Donggang Liu
* Date: 4/25/04
*/
includes PolyOne;
module ChannelM {
provides {
interface StdControl;
interface Channel;
}
uses {
interface StdControl as RadioControl;
interface SendMsg;
interface ReceiveMsg;
}
}
implementation
{
TOS_Msg packet;
uint8_t Msg[29];
command result_t StdControl.init() {
return call RadioControl.init();
}
command result_t StdControl.start() {
return call RadioControl.start();
}
command result_t StdControl.stop() {
return call RadioControl.stop();
}
command result_t Channel.send(uint16_t node, uint8_t *msgP) {
packet.addr=node;
packet.length=29;
memcpy(packet.data,msgP,packet.length);
call SendMsg.send(packet.addr,packet.length,&packet);
return SUCCESS;
}
event result_t SendMsg.sendDone(TOS_MsgPtr msg, result_t success)
{
if ( msg == &packet)
{
signal Channel.sendDone((uint8_t *)msg->data,success);
}
return SUCCESS;
}
event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr m) {
uint8_t *msgP;
msgP = (uint8_t *)m->data;
signal Channel.receive(msgP);
return m;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -