[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:chargemon.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/kimmoli/chargemon.git</param>
<param name="branch">master</param>
- <param name="revision">c41131d29cd5466493e960fbc711c16ce2a1b8f1</param>
+ <param name="revision">1e68ff8520573137b1b14a70379a8b09907f37bb</param>
<param name="token"/>
<param name="debian"/>
<param name="dumb"/>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/qml/chargemon.qml
^
|
@@ -5,7 +5,7 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
import harbour.chargemon 1.0
-
+import "pages"
ApplicationWindow
{
@@ -55,6 +55,11 @@
}
}
+ Messagebox
+ {
+ id: messagebox
+ }
+
Timer
{
id: refreshTimer
@@ -67,6 +72,7 @@
Cmon
{
id: cmon
+ onThisDeviceIsNotSupported: messagebox.showMessage("This device is not supported!")
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/qml/cover/CoverPage.qml
^
|
@@ -152,6 +152,7 @@
Row
{
width: parent.width
+ visible: cmon.dcinVoltage !== "N/A"
Label
{
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/qml/pages/Chargemon.qml
^
|
@@ -10,11 +10,6 @@
{
id: page
- Messagebox
- {
- id: messagebox
- }
-
SilicaFlickable
{
anchors.fill: parent
@@ -116,10 +111,12 @@
SectionHeader
{
text: "DC input voltage"
+ visible: cmon.dcinVoltage !== "N/A"
}
Label
{
+ visible: cmon.dcinVoltage !== "N/A"
x: Theme.paddingLarge
text: cmon.dcinVoltage
color: Theme.primaryColor
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/qml/pages/InfoPage.qml
^
|
@@ -68,12 +68,12 @@
id: infolist
ListElement { title: "Time until low"; param: "time_until_low" }
ListElement { title: "Time until full"; param: "time_until_full" }
- ListElement { title: "Status"; param: "battery/status" }
- ListElement { title: "Charge type"; param: "battery/charge_type" }
- ListElement { title: "USB Connection type"; param: "usb/type" }
- ListElement { title: "USB Max charging current"; param: "usb/current_max" }
- ListElement { title: "Health"; param: "battery/health" }
- ListElement { title: "Technology"; param: "battery/technology" }
+ ListElement { title: "Status"; param: "status" }
+ ListElement { title: "Charge type"; param: "charge_type" }
+ ListElement { title: "USB Connection type"; param: "type" }
+ ListElement { title: "USB Max charging current"; param: "current_max" }
+ ListElement { title: "Health"; param: "health" }
+ ListElement { title: "Technology"; param: "technology" }
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/src/chargemon.cpp
^
|
@@ -19,11 +19,6 @@
int main(int argc, char *argv[])
{
- QCoreApplication::setOrganizationDomain("KimmoLi");
- QCoreApplication::setOrganizationName("KimmoLi");
- QCoreApplication::setApplicationName("chargemon");
- QCoreApplication::setApplicationVersion("0.1-1");
-
qmlRegisterType<Cmon>("harbour.chargemon", 1, 0, "Cmon");
QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/src/cmon.cpp
^
|
@@ -10,6 +10,7 @@
#include <QStandardPaths>
#include <QDateTime>
#include <QDBusConnection>
+#include <QDBusInterface>
#include <QDebug>
#include "cmon.h"
@@ -20,6 +21,10 @@
{
emit versionChanged();
+ deviceDetected = checkDevice();
+ if (!deviceDetected)
+ emit thisDeviceIsNotSupported();
+
m_writeToFile = false;
m_logFilename = QString("%1/chargemonlog.txt")
@@ -45,6 +50,86 @@
{
}
+bool Cmon::checkDevice()
+{
+ int res = false;
+
+ if (!QDBusConnection::systemBus().isConnected())
+ {
+ printf("Cannot connect to the D-Bus systemBus\n%s\n", qPrintable(QDBusConnection::systemBus().lastError().message()));
+ return false;
+ }
+
+
+ QDBusInterface ssuCall("org.nemo.ssu", "/org/nemo/ssu", "org.nemo.ssu", QDBusConnection::systemBus());
+ ssuCall.setTimeout(1000);
+
+ QList<QVariant> args;
+ args.append(2);
+
+ QDBusMessage ssuCallReply = ssuCall.callWithArgumentList(QDBus::Block, "displayName", args);
+
+ if (ssuCallReply.type() == QDBusMessage::ErrorMessage)
+ {
+ printf("Error: %s\n", qPrintable(ssuCallReply.errorMessage()));
+ return false;
+ }
+
+ QList<QVariant> outArgs = ssuCallReply.arguments();
+ if (outArgs.count() == 0)
+ {
+ printf("Reply is epmty\n");
+ return false;
+ }
+
+ deviceName = outArgs.at(0).toString();
+
+ printf("device name is %s\n", qPrintable(deviceName));
+
+ if (outArgs.at(0).toString() == "JP-1301") /* The one and only original Jolla phone */
+ {
+ generalValues.clear();
+ generalValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8xxx-adc/dcin";
+ generalValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8xxx-adc/usbin";
+ generalValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/current_now";
+ generalValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/voltage_now";
+ generalValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/capacity";
+ generalValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/temp";
+
+ infoPageValues.clear();
+ infoPageValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/status";
+ infoPageValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/charge_type";
+ infoPageValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/health";
+ infoPageValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/technology";
+ infoPageValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/usb/type";
+ infoPageValues << "/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/usb/current_max";
+
+ res = true;
+ }
+ else if (outArgs.at(0).toString() == "onyx") /* OneplusX */
+ {
+ generalValues.clear();
+ generalValues << "";
+ generalValues << "/sys/devices/msm_dwc3/power_supply/usb/voltage_now";
+ generalValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/current_now";
+ generalValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/voltage_now";
+ generalValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/capacity";
+ generalValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/temp";
+
+ infoPageValues.clear();
+ infoPageValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/status";
+ infoPageValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/charge_type";
+ infoPageValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/health";
+ infoPageValues << "/sys/devices/qpnp-charger-f6169000/power_supply/battery/technology";
+ infoPageValues << "/sys/devices/qpnp-charger-f6169000/power_supply/qpnp-dc/type";
+ infoPageValues << "/sys/devices/qpnp-charger-f6169000/power_supply/qpnp-dc/current_max";
+
+ res = true;
+ }
+
+ return res;
+}
+
/* Return git describe as string (see .pro file) */
QString Cmon::readVersion()
{
@@ -76,22 +161,35 @@
{
QString p_tmp;
- p_tmp = readOneLineFromFile("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8xxx-adc/dcin");
- m_dcinvoltage = p_tmp.split(QRegExp("\\W+"), QString::SkipEmptyParts).at(1).toFloat() / 1e6;
+ if (!deviceDetected)
+ return;
- p_tmp = readOneLineFromFile("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8xxx-adc/usbin");
- m_usbinvoltage = p_tmp.split(QRegExp("\\W+"), QString::SkipEmptyParts).at(1).toFloat() / 1e6;
+ if (deviceName == "JP-1301")
+ {
+ p_tmp = readOneLineFromFile(generalValues.at(0));
+ m_dcinvoltage = p_tmp.split(QRegExp("\\W+"), QString::SkipEmptyParts).at(1).toFloat() / 1e6;
+ }
+ else
+ {
+ m_dcinvoltage = 0;
+ }
- p_tmp = readOneLineFromFile("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/current_now");
+ p_tmp = readOneLineFromFile(generalValues.at(1));
+ if (deviceName == "JP-1301")
+ m_usbinvoltage = p_tmp.split(QRegExp("\\W+"), QString::SkipEmptyParts).at(1).toFloat() / 1e6;
+ else
+ m_usbinvoltage = p_tmp.toFloat() / 1e6;
+
+ p_tmp = readOneLineFromFile(generalValues.at(2));
m_current = p_tmp.toFloat() / 1e6;
- p_tmp = readOneLineFromFile("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/voltage_now");
+ p_tmp = readOneLineFromFile(generalValues.at(3));
m_voltage = p_tmp.toFloat() / 1e6;
- p_tmp = readOneLineFromFile("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/capacity");
+ p_tmp = readOneLineFromFile(generalValues.at(4));
m_capacity = p_tmp.toFloat();
- p_tmp = readOneLineFromFile("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/battery/temp");
+ p_tmp = readOneLineFromFile(generalValues.at(5));
m_temperature = p_tmp.toFloat() / 10;
@@ -132,22 +230,15 @@
void Cmon::updateInfoPage()
{
- /* sysfs */
-
- QStringList lookFor;
- lookFor << "battery/status";
- lookFor << "battery/charge_type";
- lookFor << "battery/health";
- lookFor << "battery/technology";
- lookFor << "usb/type";
- lookFor << "usb/current_max";
+ if (!deviceDetected)
+ return;
m_infoPage.clear();
- foreach (const QString &looking, lookFor)
+ foreach (const QString &looking, infoPageValues)
{
- QString fpath = QString("/sys/devices/platform/msm_ssbi.0/pm8038-core/pm8921-charger/power_supply/%1").arg(looking);
- m_infoPage.insert(looking, readOneLineFromFile(fpath));
+ QString fpath = looking;
+ m_infoPage.insert(looking.split("/").last(), readOneLineFromFile(fpath));
}
/* contextproperties */
@@ -160,7 +251,10 @@
QString Cmon::readDcinVoltage()
{
- return QString::number(m_dcinvoltage) + " V";
+ if (deviceName == "JP-1301")
+ return QString::number(m_dcinvoltage) + " V";
+ else
+ return QString("N/A");
}
QString Cmon::readUsbinVoltage()
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-chargemon-0.4.0.tar.bz2/src/cmon.h
^
|
@@ -29,6 +29,7 @@
explicit Cmon(QObject *parent = 0);
~Cmon();
+ bool checkDevice();
QString readVersion();
QString readDcinVoltage();
@@ -63,6 +64,8 @@
void coverStatusChanged();
void infoPageChanged();
+ void thisDeviceIsNotSupported();
+
private:
QString readOneLineFromFile(QString name);
float m_dcinvoltage;
@@ -79,6 +82,12 @@
QScopedPointer<ContextProperty> propertyTimeUntilFull;
QScopedPointer<ContextProperty> propertyTimeUntilLow;
+
+ QStringList infoPageValues;
+ QStringList generalValues;
+
+ bool deviceDetected;
+ QString deviceName;
};
|