From 1897e8237a23d87848e91a0bbf4396de694f96fa Mon Sep 17 00:00:00 2001 From: Siegfried Siegert Date: Wed, 13 Nov 2024 15:02:14 +0100 Subject: [PATCH] Add watcher for switching on/off modem --- include/hwapi.h | 4 +++- src/hwapi.cpp | 47 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/include/hwapi.h b/include/hwapi.h index 910bd4f..f656f4b 100644 --- a/include/hwapi.h +++ b/include/hwapi.h @@ -117,7 +117,9 @@ private: ReportingThread *m_reportingThread; DownloadThread *m_downloadThread; QScopedPointer m_fileSystemWatcher; - QString m_watchedFile; + + QString m_powerctrl_cc; + QString m_powerctrl_modem; private slots: void onCCWakeGpioChanged(QString const &file); diff --git a/src/hwapi.cpp b/src/hwapi.cpp index 74e0262..950fee4 100755 --- a/src/hwapi.cpp +++ b/src/hwapi.cpp @@ -60,16 +60,21 @@ hwapi::hwapi(QObject *parent) : QObject(parent) #endif QSettings settings("/opt/app/ATBAPP/ATBQT.ini", QSettings::IniFormat); - m_watchedFile = settings.value("AsyncPOS_CCPlugin/terminal_watch_file", + m_powerctrl_cc = settings.value("AsyncPOS_CCPlugin/terminal_watch_file", "/run/powerctrl_cc").toString(); m_fileSystemWatcher.reset(new QFileSystemWatcher()); - if (!m_fileSystemWatcher->addPath(m_watchedFile)) { - qCritical() << "cannot add path for" << m_watchedFile; + + m_powerctrl_modem = "/run/powerctrl_modem"; + m_fileSystemWatcher->addPath(m_powerctrl_modem); + + + if (!m_fileSystemWatcher->addPath(m_powerctrl_cc)) { + qCritical() << "cannot add path for" << m_powerctrl_cc; } else { if (connect(m_fileSystemWatcher.get(), SIGNAL(fileChanged(QString const&)), this, SLOT(onCCWakeGpioChanged(QString const&)))) { - qCritical() << "connected file watcher with" << m_watchedFile; + qCritical() << "connected file watcher with" << m_powerctrl_cc; } } @@ -137,9 +142,12 @@ hwapi::hwapi(QObject *parent) : QObject(parent) } void hwapi::onCCWakeGpioChanged(QString const &fileName) { - if (fileName == m_watchedFile) { - qCritical() << __func__ << ":" << __LINE__ << " " << m_watchedFile; - QFile f(m_watchedFile); + + qCritical() << __func__ << ":" << __LINE__ << fileName; + + if (fileName == m_powerctrl_cc) { + + QFile f(m_powerctrl_cc); if (f.exists() && f.open(QFile::ReadOnly | QFile::Text)) { QTextStream stream(&f); QString const &content = stream.readAll(); @@ -162,11 +170,30 @@ void hwapi::onCCWakeGpioChanged(QString const &fileName) { credit_switchWake(true); } else { qCritical() << "switching cc-terminal watched file contained" << content; - QFile::resize(m_watchedFile, 0); // empty file + QFile::resize(m_powerctrl_cc, 0); // empty file } } - } else { - qCritical() << "ERROR watching the wrong file" << fileName << m_watchedFile; + } + else if (fileName == m_powerctrl_modem) { + + QFile f(m_powerctrl_modem); + if (f.exists() && f.open(QFile::ReadOnly | QFile::Text)) { + QTextStream stream(&f); + QString const &content = stream.readAll(); + if (content.startsWith("0")) { + qCritical() << __func__ << ":" << __LINE__ << "switching modem off..."; + mod_switchWake(false); + mod_switchPower(false); + } else + if (content.startsWith("1")) { + qCritical() << __func__ << ":" << __LINE__ << "switching modem on..."; + mod_switchWake(true); + mod_switchPower(true); + } + } + } + else { + qCritical() << "ERROR watching the wrong file" << fileName << m_powerctrl_cc; } }