#ifndef LEDTEST_H
#define LEDTEST_H
#include <QMainWindow>
namespace Ui {
class ledtest;
}
class ledtest : public QMainWindow {
Q_OBJECT
public:
ledtest(QWidget *parent = 0);
~ledtest();
public slots:
void LED1_Toggle();
void LED2_Toggle();
void LED3_Toggle();
void LED4_Toggle();
protected:
void changeEvent(QEvent *e);
private:
Ui::ledtest *ui;
};
#endif // LEDTEST_H
ledtest.c #include "ledtest.h"
#include "ui_ledtest.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<string.h>
#include <sys/ioctl.h>
#include<stdio.h>
#include<QDirectPainter>
static int fb;
static int LED1=0, LED2=0,LED3=0,LED4=0;
ledtest::ledtest(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::ledtest)
{
ui->setupUi(this);
int screenWidth=QDirectPainter::screenWidth();
int screenHeight=QDirectPainter::screenHeight();
this->resize(screenWidth,screenHeight);
connect(ui->checkBox_LED1,SIGNAL(toggled(bool)),this,SLOT(LED1_Toggle()));
connect(ui->checkBox_LED2,SIGNAL(toggled(bool)),this,SLOT(LED2_Toggle()));
connect(ui->checkBox_LED3,SIGNAL(toggled(bool)),this,SLOT(LED3_Toggle()));
connect(ui->checkBox_LED4,SIGNAL(toggled(bool)),this,SLOT(LED4_Toggle()));
system("/etc/rc.d/init.d/leds stop");
fb=open("/dev/EmbedSky-leds",O_RDWR);
if(fb<0)
{
perror("open device leds fail");
exit(1);
}
for (int i = 0 ; i < 4; i ++)
{
ioctl(fb, 0, i);
}
}
ledtest::~ledtest()
{
delete ui;
}
void ledtest::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent:: LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void ledtest:: LED1_Toggle()
{
LED1=~LED1;
if(LED1==1)
{
ioctl(fb,1,0);
}
else
{
ioctl(fb,0,0);
}
}
void ledtest:: LED2_Toggle()
{
LED2=~LED2;
if(LED2==1)
{
ioctl(fb,1,1);
}
else
{
ioctl(fb,0,1);
}
}
void ledtest:: LED3_Toggle()
{
LED3=~LED3;
if(LED3==1)
{
ioctl(fb,1,2);
}
else
{
ioctl(fb,0,2);
}
}
void ledtest:: LED4_Toggle()
{
LED4=~LED4;
if(LED4==1)
{
ioctl(fb,1,3);
}
else
{
ioctl(fb,0,3);
}
}