嵌入式linux下关闭屏背光的方法通用方法:
常用操作是进行0 和1操作
echo 0 > /sys/class/graphics/fb0/blank 关闭
有时根据不同的系统进行操作,现在手上项目使用英创板卡,操作如下:
echo 6 > /sys/class/backlight/backlight/brightness 打开背光 0-6都可以发现亮度区别不大
echo 7 > /sys/class/backlight/backlight/brightness关闭背光
用命令测试正常。之后是在应用程序中进行操作修改:
QT下有鼠标键盘事件,目前设备只有触摸屏,所以重写Qt的鼠标事件:
protected:
void mouseMoveEvent(QMouseEvent *e);
void mousePressEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *);
bool eventFilter(QObject *watched, QEvent *event);
定义int变量 backlight = 0;加入定时操作backlight +=1;
backlight大于到指定时间无操作时候进行关闭背光操作;
if(!isBrightClose)
{
system("echo 7 > /sys/class/backlight/backlight/brightness");// 关闭背光
isBrightClose = true;
realTimer->stop();
}
重写鼠标单击操作,有鼠标操作时backlight重新赋值为0,重新计数;如背光关闭打开背光
void Widget::mousePressEvent(QMouseEvent *e)
{
mousePoint = e->globalPos();
isPressedWidget = false; // 当前鼠标按下的即是QWidget而非界面上布局的其它控件
if (e->button() == Qt::LeftButton) {
mousePressed = true;
mousePoint = e->globalPos() - this->pos();
e->accept();
backlight = 0;
if(isBrightClose)
{
system("echo 6 > /sys/class/backlight/backlight/brightness"); //打开背光
isBrightClose = false;
realTimer->start();
}
}
}
上面只是在Widget内操作鼠标有效,还要在其它按钮button等事件处加入同样操作,目前测试正常。
更好的操作是让子控件的鼠标事件传递到父控件Widget,目前没有实现。
最后在测试时为了避免断电或重启时处在显示关闭状态,造成重启后背光关闭,还需要在开机启动时将背光打开。