Ejemplo n.º 1
0
void Battery::checkBatteryLevel()
{
    qDebug() << Q_FUNC_INFO;

    /*
      Due to mutex mechanism for I2C access, battery reading
      level must be skipped when power key pressed
    **/
    if(Power::getInstance()->isPowerKeyPressed())
    {
        qDebug() << Q_FUNC_INFO << "Not possible to check battery, power key down";
        return;
    }

    int newLevel = getLevel();
    if(newLevel != _currentLevel) {

        if(newLevel <= BATTERY_LEVEL_LOW && BATTERY_LEVEL_LOW < _currentLevel
          || newLevel <= BATTERY_LEVEL_LOW_2 && BATTERY_LEVEL_LOW_2 < _currentLevel)
        {
            qDebug() << Q_FUNC_INFO << "Battery low" << newLevel;
            emit batteryLevelLow(newLevel);
        }
        else if (newLevel == BATTERY_LEVEL_FULL
                   && newLevel > _currentLevel)
        {
            qDebug() << Q_FUNC_INFO << "Battery full" << newLevel;
            emit batteryLevelFull();
        }

        qDebug() << Q_FUNC_INFO << "Battery level change" << newLevel;
        emit batteryLevelChanged(newLevel);
        _currentLevel = newLevel;
    }
}
Ejemplo n.º 2
0
void BearcatState::setBatteryLevel(double a_batteryLevel)
{
    if (m_batteryLevel != a_batteryLevel)
    {
        m_batteryLevel = a_batteryLevel;
        emit batteryLevelChanged();
   }
}
Ejemplo n.º 3
0
int BatteryMx508::getLevel(){
    qDebug() << "--->" << Q_FUNC_INFO;

    /*  Range of values from the driver: 885 - 1023
        Critical level bit: 0x8000
    */

    int FHWhandle = open("/dev/ntx_io", O_RDWR);
    int value;
    ioctl(FHWhandle, CM_GET_BATTERY_STATUS, &value);
    close (FHWhandle);

    int level = value & 0x7FFF;
    int percentage = qBound(0,(level - MX508_BATTERY_VALUE_MIN)*100/(MX508_BATTERY_VALUE_MAX - MX508_BATTERY_VALUE_MIN),100);

    if (level < MX508_BATTERY_VALUE_MIN) // Check battery critical level
        emit batteryLevelCritical();

    else
        emit batteryLevelChanged(percentage);

    return percentage;
}
Ejemplo n.º 4
0
    void Monitor::procBattery() {
        QString value;
        if ( !fGotBatteryInfo ){
            QFile f("/sys/class/power_supply/battery/health");
            if (f.open(QFile::ReadOnly)){
                QByteArray content = f.readAll();
                value = QString(content).replace(QString("\n"), QString(""));
                f.close();
                emit batteryHealthChanged(value);
            }

            QFile f1("/sys/class/power_supply/battery/technology");
            if (f1.open(QFile::ReadOnly)){
                QByteArray content = f1.readAll();
                value = QString(content).replace(QString("\n"), QString(""));
                f1.close();
                emit batteryTechnologyChanged(value);
            }
            fGotBatteryInfo = true;
        }

        QFile f2("/sys/class/power_supply/battery/capacity");
        if (f2.open(QFile::ReadOnly)){
            QByteArray content = f2.readAll();
            int v = QString(content).toInt();
            f2.close();
            emit batteryLevelChanged(v);
        }
        QFile f3("/sys/class/power_supply/battery/status");
        if (f3.open(QFile::ReadOnly)){
            QByteArray content = f3.readAll();
            value = QString(content).replace(QString("\n"), QString(""));
            f3.close();
            emit batteryStatusChanged(value);
        }
    }