Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » C & Cie. » Projet de gestion de ventilo sous linux

Amwus
ProgBoarder
Citer Windows XP Firefox 2 - Posté le 02/10/2007 à 23:12
Bonjour à tous !

J'envisage très prochainement de développer un petit programme sous linux, qui permettrait de gérer la vitesse de mon ventilo, via l'interface fournie par le module du noyau thinkpad-acpi (anciennement ibm-acpi).

J'ai ainsi accès à une série de fichiers, dont le fichier /proc/acpi/ibm/thermals, qui contient les différentes températures des sondes de températures du pc. J'ai aussi une série de commandes permettant de définir la vitesse de rotation du ventilateur, ou de rendre le controle au bios de la machine.

L'idée est d'isoler chaque température du fichier thermals, et de la comparer à une ou plusieurs températures limites. Ainsi, je teste toutes les variables températures environ toutes les 3 secondes. Si une des températures est supérieure à une température limite (par exemple 52°), le ventilo se déclenche à vitesse=2. Si je dépasse les 56° par ex => vitesse=3 etc. Et si je retombe en dessous de la limite, on décrémente la vitesse (sur mon thinkpad sous linux le ventilo tourne très souvent c'est assez énervant !).

Mon problème numéro 1 est l'isolation des variables de températures. Je pensais utiliser la fonction strtod mais il y a peut être plus simple...

J'aimerais votre avis sur ce projet, suggestions ou autres...

Merci d'avance !
:)
"Engl Amps are the best i've ever used... Not only are they powerfull, but they have charachter too..." R. Blackmore
Francesco
Modérateur
RemonterCiter Linux Mozilla 5 - Posté le 02/10/2007 à 23:29
bonne idée à priori. Je dis à priori puisque je pense que la températere est sous forme décimal. Reste à savoir quelle est le format de la ligne. Tu peux donner un exemple ?
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
Amwus
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 03/10/2007 à 08:59
en fait le fichier est plus simple que je ne le pensais. Il est de la forme suivante :

temperatures: 40 34 26 40 -128 -128 -128 -128 34 37 36 -128 -128 -128 -128 -128

Donc je pense qu'avec strtod ça ira assez facilement. Strtod va sauter toutes les lettres + espaces jusqu'au premier élément numérique. Au prochain espace, elle le saute aussi jusqu'à l'élément numérique suivant etc etc... Je pense que ça devrait aller...

Petite bizarerie : qd j'ouvre le fichier /proc/acpi/ibm/thermal avec emacs, ça ouvre sans probleme, avec gedit, il n'affiche rien... Est ce vraiment un vrai fichier ? Je veux dire, j'ai aussi accès aux données par la commande :

cat /proc/acpi/ibm/thermal

Voila voila, merci de ta réponse (sourire)
"Engl Amps are the best i've ever used... Not only are they powerfull, but they have charachter too..." R. Blackmore
zuzuf
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 03/10/2007 à 09:13
les fichiers que tu trouves dans /proc ne sont pas de "vrais" fichiers, ils représentent seulement des périphériques, dans le cas des périphériques qui ne stockent pas de données, le contenu de ces fichiers est généré à la lecture, le truc c'est que le pilote n'a pas à gérer toutes les opérations sur ces fichiers (genre déplacement du curseur de lecture dans le fichier), ce qui peut empêcher de les lire avec certains logiciels. mais cat devrait toujours fonctionner.
Linux a un noyau, windows un pepin
Amwus
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 03/10/2007 à 10:21
ha d'accord... et pour lire un tel fichier dans un programme C, un simple fopen suffira ou je dois utiliser les routines propres à Linux ?
"Engl Amps are the best i've ever used... Not only are they powerfull, but they have charachter too..." R. Blackmore
zuzuf
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 03/10/2007 à 13:50
un simple fopen suffira (c'est le minimum pour manipuler un fichier, même spécial), mais il se peut que certaines opérations comme le déplacement du curseur ne fonctionnent pas sur ce genre de fichiers (en fait ça n'aurait même pas de sens avec certains d'entre eux)
Linux a un noyau, windows un pepin
romain
Visiteur
RemonterCiter Linux Firefox 2 - Posté le 28/05/2008 à 16:00
Salut !
Ou est-ce que tu en ai pour ce projet car il m'interesse !
Merci
Amwus
ProgBoarder
RemonterCiter Linux Mozilla 5 - Posté le 03/06/2008 à 21:30
Bonjour ! Oui oui ce n'est pas parce que je ne poste plus que je ne viens plus trainer par ici (clein d'oeil) (plus bcp le temps à vrai dire !)

Pour répondre à ta question, mon programme est opérationnel, mais il est encore basique. Tu dois encore régler les températures dans un fichier source et recompiler tout. Je n'ai pas encore intégré la gestion de fichiers de configurations. Ceci dit ça fonctionne très bien mis à part ce détail.

Mais entre temps j'ai découvert un programme graphique pour gérer le ventilo des thinkpad sous Linux et je l'ai adopté. Mais je compte continuer à perfectionner le miens quand j'en aurai le temps.

Je précise aussi que ce programme ne gère que le ventilateur des pc portables IBM/Lenovo Thinkpad. Il utilise en effet l'interface thinkpad_acpi qui offre un controle du ventilateur.

Pour plus de détails, n'hésite pas à me contacter (clein d'oeil)
"Engl Amps are the best i've ever used... Not only are they powerfull, but they have charachter too..." R. Blackmore

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,026 s - Crédits - Stats
1 connecté