• # Fonction(s) de lissage ?

    Posté par . En réponse au message Amélioration d'un script de gestion de la vitesse des ventilateurs.. Évalué à 2.

    Bonjour,

    Pour gérer les seuils de manière plus "lisse", tu peux utiliser une ou plusieurs fonction(s) (affine, polynomiale, quadratically :P, ... - avec ou sans mémoire) pour le calcul de la vitesse de rotation du ventilateur.
    Cela remplacera les "sauts" (213, 232, 240 ...) par des valeurs (si elles sont supportées par le noyau et le ventilateur) "continues" [par morceaux].

    Par exemple, je pourrais dire que la vitesse du ventilateur est:

    V = MIN (255, 200 + ($temp/1000 - 10))

    Ce calcul est très approximatif mais donne une idée :-)

    Note: Cela me rappelle les cours de mathématiques pour le calcul des intégrales...

    Après, pour compléter, tu peux stocker un mini historique (un petit tableau des valeurs antérieures, genre dans un RRA/RRD ^__^) et modifier le calcul grâce à ta connaissance du passé (et donc de l'évolution de la température sur une petite période, un peu comme le load average).

    Aussi, tu peux ajouter d'autres paramètres (la température d'un autre élément, la charge CPU, l'heure [si tu as des tâches programmées], ...)

    Voili voilà quelques pistes.

    Bon courage !

    Cdlt,

    PS: Il y a bcp de fonctions/modules Perl (parfois même dans la base d'install) comme open/<>/print/close, Sys::Syslog ou Unix::Syslog ou Logger::Syslog....