我是NesC语言中的一员,我想学习如何发现不同的消息,在我的情况下我必须发送你好的消息和其他类型的消息,但在接待处我不知道如何指定收到的消息,如果它是hello ar other
我暂时这样做了
event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) {
msg_voisin *voi= (msg_voisin*)payload;
Hello *omsg = (Hello*)payload;
printInt8(len);
printStr("***");
report_received();
答案 0 :(得分:0)
接收事件只有在收到它正在侦听的消息类型后才会运行,并且该类型在应用程序配置文件中指定。
因此,在您的配置文件中,您将拥有:
components ApplicationNameP as App, ActiveMessageC;
components new AMSenderC(HELLOMSG) as HELLOMsgSender;
components new AMSenderC(VIOSINMSG) as VIOSINMsgSender;
App.RadioSendHello -> HELLOMsgSender;
App.RadioReceiveHello -> ActiveMessageC.Receive[HELLOMSG];
App.RadioSendViosin -> VIOSINMsgSender;
App.RadioReceiveViosin -> ActiveMessageC.Receive[VIOSINMSG];
在您的标题中,您将拥有:
enum
{
HELLOMSG = 1,
VIOSINMSG = 2,
} ;
并在您的应用程序文件中,您将拥有:
uses interface AMSend as RadioSendHello;
uses interface Receive as RadioReceiveHello;
uses interface AMSend as RadioSendViosin;
uses interface Receive as RadioReceiveViosin;
然后,您可以使用相关的事件处理程序在数据包进入时对其进行处理。