event message_t* SubReceive.receive(message_t* msg)
{
- return signal Ieee154Receive.receive(msg,
- getPayload(msg), call Packet.payloadLength(msg));
+ if( call Ieee154Packet.isForMe(msg) )
+ return signal Ieee154Receive.receive(msg,
+ getPayload(msg), call Packet.payloadLength(msg));
+ else
+ return msg;
}
}
if( timesync != 0 )
*(timesync_relative_t*)timesync = (*(timesync_absolute_t*)timesync) - time32;
- do {
+ while( length-- != 0 )
call FastSpiByte.splitReadWrite(*(data++));
- }
- while( --length != 0 );
// wait for the SPI transfer to finish
call FastSpiByte.splitRead();
async command uint8_t PacketLinkQuality.get(message_t* msg)
{
- // we have some bug in BLIP, so fix it here
- if( getMeta(msg)->lqi > 120 )
- return 120;
-
return getMeta(msg)->lqi;
}
components MessageBufferLayerC;
MessageBufferLayerC.RadioSend -> CollisionAvoidanceLayerC;
MessageBufferLayerC.RadioReceive -> UniqueLayerC;
- MessageBufferLayerC.RadioState -> CollisionAvoidanceLayerC;
+ MessageBufferLayerC.RadioState -> RF212DriverLayerC;
RadioChannel = MessageBufferLayerC;
// -------- UniqueLayer receive part (wired twice)
if( timesync != 0 )
*(timesync_relative_t*)timesync = (*(timesync_absolute_t*)timesync) - time32;
- do {
+ while( length-- != 0 )
call FastSpiByte.splitReadWrite(*(data++));
- }
- while( --length != 0 );
// wait for the SPI transfer to finish
call FastSpiByte.splitRead();
components MessageBufferLayerC;
MessageBufferLayerC.RadioSend -> CollisionAvoidanceLayerC;
MessageBufferLayerC.RadioReceive -> UniqueLayerC;
- MessageBufferLayerC.RadioState -> CollisionAvoidanceLayerC;
+ MessageBufferLayerC.RadioState -> RF230DriverLayerC;
RadioChannel = MessageBufferLayerC;
// -------- UniqueLayer receive part (wired twice)