版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Hi3531D 电源管理之上电待机例子
PowerCtrl简介
该示例程序演示了如何使用电源管理接口。
准备工作
- 参照用户手册搭建开发环境、编译3531D工程、配置网络启动参数。
- 上电,进入/root/demo目录
- 默认状态下,上电后直接启动,绿灯亮起
- 运行PowerCtrl程序
- 长按poweron按键,程序响应按键事件,调用poweroff接口,系统断电,红灯亮起
- 再次长按poweron按键,系统启动,红灯熄灭,绿灯亮起
- 断开电源
- 上电,此时系统进入standby模式,红灯亮起
- 长按poweron按键,系统启动,红灯熄灭,绿灯亮起
运行结果
源程序
完整工程参见:https://gitee.com/LinkPi/3531D/tree/master/PowerCtrl
//main.cpp
#include <QCoreApplication>
#include "Link.h"
#include "Worker.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Link::init();
Worker w;
return a.exec();
}
//Worker.cpp
#include "Worker.h"
Worker::Worker(QObject *parent) : QObject(parent)
{
dev=Link::create("Device");
dev->start();
connect(dev,SIGNAL(newEvent(QString,QVariant)),this,SLOT(onEvent(QString,QVariant)));
dev->invoke("setBootMode","standby");
}
void Worker::onEvent(QString type, QVariant msg)
{
if(type=="keyPress" && msg.toString()=="power")
{
dev->invoke("poweroff");
}
}