interface SplitControl as PromiscuousMode;
interface Get<bool> as PromiscuousModeGet;
interface FrameRx;
+ interface GetNow<token_requested_t> as IsRadioTokenRequested;
} uses {
- interface Resource as Token;
+ interface TransferableResource as RadioToken;
interface RadioRx as PromiscuousRx;
interface RadioOff;
interface Set<bool> as RadioPromiscuousMode;
error_t result = FAIL;
if (m_state == S_STOPPED) {
m_state = S_STARTING;
- call Token.request();
+ call RadioToken.request();
result = SUCCESS;
}
dbg_serial("PromiscuousModeP", "PromiscuousMode.start -> result: %lu\n", (uint32_t) result);
return result;
}
- event void Token.granted()
+ event void RadioToken.granted()
{
call RadioPromiscuousMode.set(TRUE);
if (call RadioOff.isOff())
{
call RadioPromiscuousMode.set(FALSE);
m_state = S_STOPPED;
- call Token.release();
+ call RadioToken.release();
dbg_serial("PromiscuousModeP", "Promiscuous mode disabled.\n");
signal PromiscuousMode.stopDone(SUCCESS);
}
post continueStopTask();
}
+ async command token_requested_t IsRadioTokenRequested.getNow(){ return m_state == S_STARTING; }
default event void PromiscuousMode.startDone(error_t error) {}
default event void PromiscuousMode.stopDone(error_t error) {}
+ async event void RadioToken.transferredFrom(uint8_t clientFrom){ASSERT(0);}
}