uses interface Resource;
uses interface CC2420Power;
+ uses interface SplitControl as SpiSplitControl;
uses interface StdControl as SubControl;
uses interface CC2420Transmit;
uses interface RadioBackoff as SubBackoff;
}
m_state = S_STARTING;
- call CC2420Power.startVReg();
+ call SpiSplitControl.start();
+ // Wait for SpiSplitControl.startDone()
return SUCCESS;
}
}
m_state = S_STOPPING;
+ call SpiSplitControl.stop();
+ // Wait for SpiSplitControl.stopDone()
+ return SUCCESS;
+ }
+
+ /***************** SpiSplitControl Events ****************/
+ event void SpiSplitControl.startDone(error_t error) {
+ call CC2420Power.startVReg();
+ }
+
+ event void SpiSplitControl.stopDone(error_t error) {
call SubControl.stop();
call CC2420Power.stopVReg();
post stopDone_task();
- return SUCCESS;
}
-
+
/***************** Send Commands ****************/
command error_t Send.cancel( message_t* p_msg ) {
return call CC2420Transmit.cancel();
cc2420_metadata_t* metadata = call CC2420Packet.getMetadata( p_msg );
atomic {
- if ( m_state != S_STARTED )
+ if ( m_state != S_STARTED ) {
return FAIL;
+ }
m_state = S_TRANSMIT;
m_msg = p_msg;
}