IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Savoir si un portable fonctionne sur sa batterie


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut Savoir si un portable fonctionne sur sa batterie
    Bonjour,
    est-il possible de savoir si un ordinateur portable est branché sur secteur ?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 067
    Par défaut
    en suivant le fil ... ?
    s'il entre dans le mur ...

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    J'y avais pensé.

    En fait, je voulais à la base utiliser le framework ATTU (Ask To The User) mais la programmation de ce dernier m'a paru un peu compliqué.

    Plus sérieusement, quelqu'un sait-il si cela est faisable en Python ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 696
    Par défaut
    Salut,

    Techniquement il faut parler à la bestiole et ce genre d'informations relève plutôt du "BIOS" et de fait, Python est un peu trop "high level" pour pouvoir le faire directement.

    "Normalement", la plupart des bestiaux implémentent plus ou moins correctement un standard appelé "Advanced Configuration and Power Interface" qui permettra à l'OS de connaître le "statut" des différents matériels connectés ou contenus dans la "boîte" et de générer des transitions en fonction de l'activité et de l'état.
    Note: ACPI est réalisé par le BIOS.

    => Dans le cas ou le PC dispose d'un BIOS "ACPI", l'OS sait sur quelle API se reposer pour récupérer les informations sur la configuration et la gestion du Power.

    Maintenant si un développeur veut accéder à... il faut trouver le pilote/driver qui lui fournira une API "pour"....
    Et comme en général cette API est compatible C, il n'est pas impossible d'espérer de l'attaquer en Python.

    Sur U*X, la partie visible de l'iceberg est /proc/acpi...
    => Tu sais quoi demander à Google pour trouver ton bonheur...

    Note: Le BIOS (et donc ACPI) étant sous la responsabilité de l'assembleur des composants de la boîte, la partie cachée de l'iceberg risque d'être pleine de surprises côté homogénéïté des interfaces entre différents modèles, assembleurs,... Ce que nous permettra d'en voir/utiliser l'OS est une autre histoire.

    Bon courage,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Salut à toi ô illustre wiztricks. Ça va, je n'en fais pas trop..

    Citation Envoyé par wiztricks Voir le message
    Sur U*X, la partie visible de l'iceberg est /proc/acpi...
    => Tu sais quoi demander à Google pour trouver ton bonheur...
    Tout à fait. Ceci m'a amené ici. Il va falloir que je creuse un peu plus pour mon Mac O$ et pour Windaube.

    Sous Ubuntu, j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # -*- coding: utf-8 -*-
     
    # Source
    #    http://groups.google.com/group/comp.lang.python/browse_thread/thread/ca37fae5aaabeb70/c52b7b6d2e8cfdbd?lnk=raot&pli=1
     
    from glob import glob
     
    for fname in glob('/proc/acpi/battery/BAT*/*'):
        f = file(fname)
        for line in f:
            print(line)
        f.close()
    Ma batterie étant juste chargée à 6%, le code renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    alarm:                   unsupported
    present:                 yes
    capacity state:          ok
    charging state:          discharging
    present rate:            717 mA
    remaining capacity:      230 mAh
    present voltage:         10512 mV
    present:                 yes
    design capacity:         4400 mAh
    last full capacity:      3820 mAh
    battery technology:      rechargeable
    design voltage:          10800 mV
    design capacity warning: 220 mAh
    design capacity low:     132 mAh
    capacity granularity 1:  264 mAh
    capacity granularity 2:  3780 mAh
    model number:            UM09H31
    serial number:           
    battery type:            Lion
    OEM info:                SANYO
    Ma portable branché sur secteur, le code renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    alarm:                   unsupported
    present:                 yes
    capacity state:          ok
    charging state:          charging
    present rate:            0 mA
    remaining capacity:      230 mAh
    present voltage:         10834 mV
    present:                 yes
    design capacity:         4400 mAh
    last full capacity:      3820 mAh
    battery technology:      rechargeable
    design voltage:          10800 mV
    design capacity warning: 220 mAh
    design capacity low:     132 mAh
    capacity granularity 1:  264 mAh
    capacity granularity 2:  3780 mAh
    model number:            UM09H31
    serial number:           
    battery type:            Lion
    OEM info:                SANYO
    La valeur de "charging state" répond à ma question sous Ubuntu au moins, et sûrement sous la majorité des distributions Linux.

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Pour MacBook, il y a ce snippet. Ceci donne le code "mal fait" suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #! /usr/bin/env python3
     
    # Source
    #    http://www.python-forum.org/pythonforum/viewtopic.php?f=18&t=20406&start=0
     
    import subprocess
     
    process = subprocess.Popen(['pmset', '-g', 'pslog'], shell=False, stdout=subprocess.PIPE)
    for i in range(5):
        line = process.stdout.readline()
     
    line = line.decode('utf8')
     
    print(line)
    Ceci m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     -InternalBattery-0	99%; charged; 0:00 remaining
    Plus que le cas de Windaube à gérer...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2012, 15h03
  2. Réponses: 1
    Dernier message: 20/11/2009, 15h49
  3. [Portable] extrème lenteur sur la batterie
    Par bossun dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 23/10/2008, 08h52
  4. Savoir si l'EXE est sur un portable ou PC
    Par LeForestier dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/09/2007, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo