使用SplitControl 进行电源管理
当设备的启动和关闭时间不可忽略时,必须用SplitControl 接口代替StdControl 接口。
interface SplitControl {
command error t start();
event void startDone(error t error);
command error t stop();
event void stopDone(error t error);
}
调用任意一个命令必须返回SUCCESS,FAIL,EBUSY,或EALREADY 之一。
- SUCCESS 意味着设备开始转换电源状态并会在一会儿之后发出一个相应的完成事件信号.
- EBUSY 意味着设备在启动或关闭过程中(比如,在设备启动的时候调用stop,或在设备关闭的时候调用start),这将不会有事件完成信号发生。
- EALREADY 表示设备已经在该状态,该调用是不正确的,完成事件也不会发生。
- FAIL 表示设备的电源状态没有被成功的转换
成功的SplitControl.start() 调用必须发出SplitControl.startDone(SUCCESS) 信号或Split- Control.startDone(FAIL) 信号。
成功的SplitControl.stop() 调用必须发出SplitControl.stopDone(SUCCESS) 或SplitControl. stopDone(FAIL) 信号。
Call | Device On | Device Off | Starting | Stopping |
---|---|---|---|---|
SplitControl.start() | EALREADY | SUCCESS FAIL | SUCCESS | EBUSY |
SplitControl.stop() | SUCCESS FAIL | EALREADY | EBUSY | SUCCESS |
operation | depends | FAIL EOFF EOFF | FAIL EOFF SUCCESS | FAIL EOFF |