Update of /cvsroot/firebug/fireboard/beta/fireworks/apps/TestLink
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31226
Added Files:
TestLinkM.nc
Log Message:
TestLinkM module added
--- NEW FILE: TestLinkM.nc ---
includes LinkMsg;
module TestLinkM {
provides {
interface StdControl;
}
uses {
interface StdControl as CommControl;
interface SendMsg as SendLinkMsg;
interface ReceiveMsg as ReceiveLinkMsg;
interface Timer;
interface Leds;
interface CC1000Control;
}
}
implementation {
uint32_t seqno;
uint16_t lastRSSI;
uint16_t lastLQI;
uint16_t lastAddress;
TOS_Msg msg;
LinkMsg *lMsg;
void blink(uint8_t seq) {
if(seq&0x1) {
call Leds.redOn();
}
else {
call Leds.redOff();
}
if(seq&0x2) {
call Leds.greenOn();
}
else {
call Leds.greenOff();
}
if(seq&0x4) {
call Leds.yellowOn();
}
else {
call Leds.yellowOff();
}
}
void clearPacket() {
uint8_t i;
for(i=0; i< 29; i++)
msg.data[i]=0x0;
}
task sendLinkQualityData() {
blink(0x5);
clearPacket();
lMsg = (LinkMsg) &(msg.data);
lMsg->seqno = seqno++;
lMsg->addr = lastAddress;
lMsg->tstamp = 0;
lMsg->RSSI = lastRSSI;
lMsg->LQI = lastLQI;
if(!sendBusy) {
sendBusy = TRUE;
if(!call SendLinkMsg.send(TOS_BCAST_ADDR, sizeof(LinkMsg), &msg)) {
sendBusy = FALSE;
blink(0x7);
return;
}
else {
blink(0x6);
}
}
}
command result_t StdControl.init() {
call Leds.init();
call CommControl.init();
return SUCCESS;
}
command result_t StdControl.start() {
blink(CLEAR);
seqno = 1;
sendBusy = FALSE;
call CommControl.start();
return SUCCESS;
}
command result_t StdControl.stop() {
call CommControl.stop();
call Timer.stop();
return SUCCESS;
}
command TOS_MsgPtr ReceiveLinkMsg.receive(TOS_MsgPtr m) {
blink(0x3);
lastRSSI = m->RSSI;
lastLQI = m->LQI;
/* Copy timestamp here */
post sendLinkQualityData();
return m;
}
|