OctopusX與OctopusII如何溝通之設定
1.tinyos-2.x-contrib\diku\common\lib\simplemac目錄下中packet.h
加入”mac_addr_t pan;”
2.tinyos-2.x-contrib\diku\common\lib\simplemac目錄下中SimpleMacM.nc
內修改
command error_t SimpleMac.sendPacket(packet_t * packet)
{
… …
//2009.11.5 modified version
transmitbuffer[4] = (packet->pan & 0x00FF);
transmitbuffer[5] = (packet->pan >> 8);
transmitbuffer[6] = (packet->dest & 0x00FF);
transmitbuffer[7] = (packet->dest >> 8);
transmitbuffer[8] = *shortAddress & 0x00FF;
transmitbuffer[9] = *shortAddress >> 8;
/* original version
transmitbuffer[4] = (packet->dest & 0x00FF);
transmitbuffer[5] = (packet->dest >> 8);
transmitbuffer[6] = *shortAddress & 0x00FF;
transmitbuffer[7] = *shortAddress >> 8;
*/
for (i = 10; i < length - 1; i++)
{
transmitbuffer[i] = packet->data[i - 10];
}
transmitbuffer[length - 1] = 0; // transmitPacketPtr->fcs.rssi;
transmitbuffer[length] = 0; // transmitPacketPtr->fcs.correlation;
return call HALCC2420.sendPacket(transmitbuffer);
}
… …
event uint8_t * HALCC2420.receivedPacket(uint8_t * packet)
{
… …
tmp = packet[2];
tmp = (tmp << 8) + packet[1];
receivedPacketPtr->fcf = tmp;
receivedPacketPtr->data_seq_no = packet[3];
//2009.11.5 modified version
tmp = packet[5];
tmp = (tmp << 8) + packet[4];
receivedPacketPtr->pan = tmp;
tmp = packet[7];
tmp = (tmp << 8) + packet[6];
receivedPacketPtr->dest = tmp;
tmp = packet[9];
tmp = (tmp << 8) + packet[8];
receivedPacketPtr->src = tmp;
for (i = 10; i < length - 1; i++)
{
receivedPacketPtr->data[i - 10] = packet[i];
}
receivedPacketPtr->fcs.rssi = packet[length - 1];
receivedPacketPtr->fcs.correlation = packet[length];
receivedPacketPtr = signal
SimpleMac.receivedPacket(receivedPacketPtr);
return packet;
}
3.\tinyos-2.x-contrib\diku\common\apps\TestSimpleMac目錄下中修改
command error_t Init.init() {
uint8_t i;
shortAddress = TOS_NODE_ID;
transmitPacketPtr = (packet_t *) transmitPacket;
// Beacon packet
transmitPacketPtr->length = 15; //調整長度
transmitPacketPtr->fcf = 0x8841;
transmitPacketPtr->pan = 0x0025;
transmitPacketPtr->dest = 0xFFFF;
transmitPacketPtr->src = 1;
// 118 bytes
for (i = 0; i <40; i++)
{
transmitPacketPtr->data[i] = 0;
}
// 2 bytes
transmitPacketPtr->fcs.rssi = 0;
transmitPacketPtr->fcs.correlation = 0;
return SUCCESS;
}
event void Boot.booted() {
call Leds.led0On();
call Leds.led1On();
call Leds.led2On();
channel = 26;
call SimpleMac.setChannel(channel);
l=0;
//CLKCON |=0x00;
radioOn = TRUE;
receiverOn =TRUE;
call SimpleMac.rxEnable();
call SimpleMacControl.start();
call Timer.startPeriodic(1000);
//call Timer.start(TIMER_REPEAT, 1000);
}
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
event void Timer.fired()
{
sequence++;
transmitPacketPtr = (packet_t *) transmitPacket;
// Beacon packet
transmitPacketPtr->length = 15; //7 + 118 + 2 + 2;
transmitPacketPtr->fcf = 0x8841;
transmitPacketPtr->pan = 0x0025;
transmitPacketPtr->dest = 0xFFFF;
transmitPacketPtr->src = 1;
transmitPacketPtr->data_seq_no = sequence;
transmitPacketPtr->data[0] =0x3F ;
transmitPacketPtr->data[1] =0x06;
transmitPacketPtr->data[2] =0x00;//傳送的資料
transmitPacketPtr->data[3] =0x0C ;//傳送的資料
沒有留言:
張貼留言