/*----------------- Global fields -----------------*/
- uint8_t flags;
+ norace uint8_t flags;
enum
{
FLAG_TXPOWER = 0x01,
FLAG_SLEEPINT = 0x02,
};
- uint8_t transmitPower;
- uint16_t sleepInterval;
+ norace uint8_t transmitPower;
+
+ // TODO: Move sleepInterval into the metadata
+ norace uint16_t sleepInterval;
/*----------------- PacketTransmitPower -----------------*/
post transition();
}
- void sleepIntervalChanged()
- {
- if( (state == LISTEN && sleepInterval == 0) || state == SLEEP )
- {
- call Timer.stop();
- --state;
- post transition();
- }
- }
-
event message_t* SubReceive.receive(message_t* msg, void* payload, uint8_t len)
{
if( state == SLEEP_SUBSTOP )
interval = MAX_SLEEP;
sleepInterval = interval;
- sleepIntervalChanged();
+
+ if( (state == LISTEN && sleepInterval == 0) || state == SLEEP )
+ {
+ call Timer.stop();
+ --state;
+ post transition();
+ }
}
command uint16_t LowPowerListening.getLocalSleepInterval()
ASSERT( state == STATE_BUSY_TX_2_RX_ON );
}
else
- ASSERT(FALSE);
+ {
+#ifdef RF230_DEBUG
+// ASSERT(FALSE);
+ if( call DiagMsg.record() )
+ {
+ call DiagMsg.str("assert pll");
+ call DiagMsg.uint16(call RadioAlarm.getNow());
+ call DiagMsg.hex8(readRegister(RF230_TRX_STATUS));
+ call DiagMsg.hex8(readRegister(RF230_TRX_STATE));
+ call DiagMsg.hex8(irq);
+ call DiagMsg.uint8(state);
+ call DiagMsg.uint8(cmd);
+ call DiagMsg.send();
+ }
+#endif
+ }
}
if( irq & RF230_IRQ_RX_START )
cmd = CMD_DOWNLOAD;
}
else
- ASSERT(FALSE);
+ {
+#ifdef RF230_DEBUG
+// ASSERT(FALSE);
+ if( call DiagMsg.record() )
+ {
+ call DiagMsg.str("assert trx");
+ call DiagMsg.uint16(call RadioAlarm.getNow());
+ call DiagMsg.hex8(readRegister(RF230_TRX_STATUS));
+ call DiagMsg.hex8(readRegister(RF230_TRX_STATE));
+ call DiagMsg.hex8(irq);
+ call DiagMsg.uint8(state);
+ call DiagMsg.uint8(cmd);
+ call DiagMsg.send();
+ }
+#endif
+ }
}
}
}