Separated Qt and WiringPi code in blink thread
This commit is contained in:
parent
d2e774fe5c
commit
388bc43b8b
6 changed files with 52 additions and 12 deletions
|
@ -15,7 +15,9 @@ add_executable(${PROJECT_NAME}
|
||||||
mainwindow.cpp
|
mainwindow.cpp
|
||||||
mainwindow.h
|
mainwindow.h
|
||||||
mainwindow.ui
|
mainwindow.ui
|
||||||
blinkthread.cpp
|
led.cpp
|
||||||
|
led.h
|
||||||
|
blinkthread.cpp
|
||||||
blinkthread.h
|
blinkthread.h
|
||||||
distancethread.cpp
|
distancethread.cpp
|
||||||
distancethread.h
|
distancethread.h
|
||||||
|
|
|
@ -1,22 +1,21 @@
|
||||||
#include "blinkthread.h"
|
#include "blinkthread.h"
|
||||||
#include <wiringPi.h>
|
#include "led.h"
|
||||||
|
|
||||||
BlinkThread::BlinkThread()
|
BlinkThread::BlinkThread(unsigned int pin)
|
||||||
|
: m_led(pin)
|
||||||
{
|
{
|
||||||
wiringPiSetup();
|
|
||||||
pinMode(m_blinkPin, OUTPUT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlinkThread::run()
|
void BlinkThread::run()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
digitalWrite(m_blinkPin, HIGH);
|
m_led.on();
|
||||||
emit ledOn();
|
emit ledOn();
|
||||||
delay(500);
|
msleep(500);
|
||||||
|
|
||||||
digitalWrite(m_blinkPin, LOW);
|
m_led.off();
|
||||||
emit ledOff();
|
emit ledOff();
|
||||||
delay(500);
|
msleep(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "led.h"
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
|
||||||
class BlinkThread : public QThread
|
class BlinkThread : public QThread
|
||||||
|
@ -7,10 +8,11 @@ class BlinkThread : public QThread
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const int m_blinkPin = 15;
|
Led m_led;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BlinkThread();
|
BlinkThread() = delete;
|
||||||
|
BlinkThread(unsigned int pin);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void run() override;
|
void run() override;
|
||||||
|
|
22
source/led.cpp
Normal file
22
source/led.cpp
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#include "led.h"
|
||||||
|
#include <wiringPi.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
Led::Led(unsigned int pin)
|
||||||
|
: m_pin(pin)
|
||||||
|
{
|
||||||
|
wiringPiSetup();
|
||||||
|
pinMode(m_pin, OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Led::on() const
|
||||||
|
{
|
||||||
|
digitalWrite(m_pin, HIGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Led::off() const
|
||||||
|
{
|
||||||
|
digitalWrite(m_pin, LOW);
|
||||||
|
}
|
||||||
|
|
15
source/led.h
Normal file
15
source/led.h
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class Led
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
unsigned int m_pin = 0;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Led(unsigned int pin);
|
||||||
|
|
||||||
|
void on() const;
|
||||||
|
void off() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
ui->progressBar->setFormat("%v cm");
|
ui->progressBar->setFormat("%v cm");
|
||||||
ui->progressBar->setValue(0);
|
ui->progressBar->setValue(0);
|
||||||
|
|
||||||
BlinkThread *blinkThread = new BlinkThread();
|
BlinkThread *blinkThread = new BlinkThread(15);
|
||||||
connect(blinkThread, &BlinkThread::ledOn, this, &MainWindow::ledOn);
|
connect(blinkThread, &BlinkThread::ledOn, this, &MainWindow::ledOn);
|
||||||
connect(blinkThread, &BlinkThread::ledOff, this, &MainWindow::ledOff);
|
connect(blinkThread, &BlinkThread::ledOff, this, &MainWindow::ledOff);
|
||||||
blinkThread->start();
|
blinkThread->start();
|
||||||
|
|
Loading…
Reference in a new issue