sleep() [ Classic API ]
SleepResult class
Since 0.8.0:
This class allows to query the information about the most recent System.sleep()
. It is only recommended for use in Device OS 0.8.0 - 1.4.4. There is a newer, more flexible class SystemSleepResult
in 1.5.0 and later.
reason()
// SYNTAX
SleepResult result = System.sleepResult();
int reason = result.reason();
Get the wake up reason.
// EXAMPLE
SleepResult result = System.sleepResult();
switch (result.reason()) {
case WAKEUP_REASON_NONE: {
Log.info("did not wake up from sleep");
break;
}
case WAKEUP_REASON_PIN: {
Log.info("was woken up by a pin");
break;
}
case WAKEUP_REASON_RTC: {
Log.info("was woken up by the RTC (after a specified number of seconds)");
break;
}
case WAKEUP_REASON_PIN_OR_RTC: {
Log.info("was woken up by either a pin or the RTC (after a specified number of seconds)");
break;
}
}
Returns a code describing a reason the device woke up from sleep. The following reasons are defined:
WAKEUP_REASON_NONE
: did not wake up from sleepWAKEUP_REASON_PIN
: was woken up by an edge signal to a pinWAKEUP_REASON_RTC
: was woken up by the RTC (after a specified number of seconds)WAKEUP_REASON_PIN_OR_RTC
: was woken up either by an edge signal to a pin or by the RTC (after a specified number of seconds)
wokenUpByPin()
// SYNTAX
SleepResult result = System.sleepResult();
bool r = result.wokenUpByPin();
// EXAMPLE
SleepResult result = System.sleepResult();
if (result.wokenUpByPin()) {
Log.info("was woken up by a pin");
}
Returns true
when the device was woken up by a pin.
wokenUpByRtc()
Returns true
when the device was woken up by the RTC (after a specified number of seconds).
// SYNTAX
SleepResult result = System.sleepResult();
bool r = result.wokenUpByRtc();
// EXAMPLE
SleepResult result = System.sleepResult();
if (result.wokenUpByRtc()) {
Log.info("was woken up by the RTC (after a specified number of seconds)");
}
rtc()
An alias to wokenUpByRtc()
.
pin()
// SYNTAX
SleepResult result = System.sleepResult();
pin_t pin = result.pin();
// EXAMPLE
SleepResult result = System.sleepResult();
pin_t pin = result.pin();
if (result.wokenUpByPin()) {
Log.info("was woken up by the pin number %d", pin);
}
Returns: the number of the pin that woke the device.
error()
Get the error code of the latest sleep.
// SYNTAX
SleepResult result = System.sleepResult();
int err = result.error();
Returns: SYSTEM_ERROR_NONE (0)
when there was no error during latest sleep or a non-zero error code.