📄 cc2420activemessagec.nc
字号:
#include <sim_gain.h>
#include <sim_tossim.h>
#include <AM.h>
module CC2420ActiveMessageC {
provides interface CC2420Packet as Packet;
uses interface AMPacket as SubPacket;
}
implementation {
typedef struct cc2420_header {
} cc2420_header_t;
/**
* Get transmission power setting for current packet.
*
* @param the message
*/
async command uint8_t Packet.getPower( message_t* p_msg ) {
return 1;
}
/**
* Set transmission power for a given packet. Valid ranges are
* between 0 and 31.
*
* @param p_msg the message.
* @param power transmission power.
*/
async command void Packet.setPower( message_t* p_msg, uint8_t power ) {
return;
}
/**
* Get rssi value for a given packet. For received packets, it is
* the received signal strength when receiving that packet. For sent
* packets, it is the received signal strength of the ack if an ack
* was received.
*/
async command int8_t Packet.getRssi( message_t* p_msg ) {
uint16_t src = call SubPacket.source(p_msg);
return (int)sim_gain_value(src, TOS_NODE_ID);
}
/**
* Get lqi value for a given packet. For received packets, it is the
* link quality indicator value when receiving that packet. For sent
* packets, it is the link quality indicator value of the ack if an
* ack was received.
*/
async command uint8_t Packet.getLqi( message_t* p_msg ) {
uint16_t src = call SubPacket.source(p_msg);
int sig = (int)sim_gain_value(src, TOS_NODE_ID);
if (sig > -60) {
sig = 110;
}
else {
sig = 230 + (sig * 2);
sig += (sim_random() % 10);
}
return (uint8_t)sig;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -