forked from GerhardHoffmann/DCLibraries
		
	Add CCWakelineAbstraction
This commit is contained in:
		@@ -1,6 +1,8 @@
 | 
			
		||||
#include "CArun.h"
 | 
			
		||||
#include "datei.h"
 | 
			
		||||
 | 
			
		||||
#include "CCWakelineAbstraction.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CArun::CArun(QObject *parent)
 | 
			
		||||
    : QObject(parent)
 | 
			
		||||
@@ -17,6 +19,8 @@ CArun::CArun(QObject *parent)
 | 
			
		||||
    qCritical() << "CArun: start setup...";
 | 
			
		||||
 | 
			
		||||
    this->timerChainCtrl->start();
 | 
			
		||||
 | 
			
		||||
    this->ccWakelineAbstraction = new CCWakelineAbstraction(this->HWaccess, this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ enum class SETUP_STEP {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CCWakelineAbstraction;
 | 
			
		||||
 | 
			
		||||
class CArun : public QObject
 | 
			
		||||
{
 | 
			
		||||
@@ -45,6 +45,8 @@ private:
 | 
			
		||||
 | 
			
		||||
    void openSerialPort();
 | 
			
		||||
 | 
			
		||||
    CCWakelineAbstraction* ccWakelineAbstraction;
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								dCArun/CCWakelineAbstraction.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								dCArun/CCWakelineAbstraction.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
#include <QFileSystemWatcher>
 | 
			
		||||
#include <QFile>
 | 
			
		||||
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
 | 
			
		||||
#include "CCWakelineAbstraction.h"
 | 
			
		||||
#include "plugin.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * this is based on a solution from:
 | 
			
		||||
 * https://embeddeduse.com/2018/09/18/monitoring-sys-files-qfilesystemwatcher/
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
CCWakelineAbstraction::CCWakelineAbstraction(hwinf *dc, QObject *parent)
 | 
			
		||||
    : QObject(parent)
 | 
			
		||||
    , dc(dc)
 | 
			
		||||
{
 | 
			
		||||
    auto ccWakeMonitor = new QFileSystemWatcher(this);
 | 
			
		||||
 | 
			
		||||
    ccWakeMonitor->addPath("/sys/class/leds/wakeupctrl_cc/brightness");
 | 
			
		||||
    connect(ccWakeMonitor, &QFileSystemWatcher::fileChanged,
 | 
			
		||||
                this, &CCWakelineAbstraction::ccWakeChanged);
 | 
			
		||||
 | 
			
		||||
    qCritical() << "... init CCWakelineAbstraction";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void CCWakelineAbstraction::ccWakeChanged(const QString &path)
 | 
			
		||||
{
 | 
			
		||||
    QFile ccWakeFile(path);
 | 
			
		||||
     if (!ccWakeFile.open(QIODevice::ReadOnly)) {
 | 
			
		||||
         qWarning() << "ERROR: Could not open ccWakeFile file.";
 | 
			
		||||
         return;
 | 
			
		||||
     }
 | 
			
		||||
     auto ccWake = ccWakeFile.readAll();
 | 
			
		||||
     if (!ccWake.isEmpty()) {
 | 
			
		||||
         int state = ccWake.at(0);
 | 
			
		||||
         //qCritical() << "INFO: ccWake = " << state;
 | 
			
		||||
         switch (state) {
 | 
			
		||||
         case 0x30:  // '1'
 | 
			
		||||
             qCritical() << "INFO: ccWake -> sleep";
 | 
			
		||||
             this->dc->credit_switchWake(true); // switch 'sleep'
 | 
			
		||||
             break;
 | 
			
		||||
         case 0x31:  // '0'
 | 
			
		||||
             qCritical() << "INFO: ccWake -> wake";
 | 
			
		||||
             this->dc->credit_switchWake(false); // switch 'wake'
 | 
			
		||||
             break;
 | 
			
		||||
         }
 | 
			
		||||
     }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								dCArun/CCWakelineAbstraction.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								dCArun/CCWakelineAbstraction.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
#ifndef CCWAKELINEABSTRACTION_H
 | 
			
		||||
#define CCWAKELINEABSTRACTION_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
 | 
			
		||||
class hwinf;
 | 
			
		||||
class QFileSystemWatcher;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CCWakelineAbstraction : public QObject
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    CCWakelineAbstraction(hwinf *dc, QObject *parent = nullptr);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    hwinf *dc;
 | 
			
		||||
    QFileSystemWatcher *ccWakeMonitor;
 | 
			
		||||
 | 
			
		||||
    void ccWakeChanged(const QString &path);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // CCWAKELINEABSTRACTION_H
 | 
			
		||||
@@ -40,12 +40,14 @@ DEFINES+=APP_EXTENDED_VERSION=\\\"$$EXTENDED_VERSION\\\"
 | 
			
		||||
 | 
			
		||||
SOURCES += \
 | 
			
		||||
    CArun.cpp \
 | 
			
		||||
    CCWakelineAbstraction.cpp \
 | 
			
		||||
    main.cpp \
 | 
			
		||||
    tslib.cpp \
 | 
			
		||||
    datei.cpp
 | 
			
		||||
 | 
			
		||||
HEADERS += \
 | 
			
		||||
    CArun.h \
 | 
			
		||||
    CCWakelineAbstraction.h \
 | 
			
		||||
    guidefs.h \
 | 
			
		||||
    tslib.h \
 | 
			
		||||
    versionHistory.txt \
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user