screenshotmcpuload


ACTUALIZACIÓN (Julio 31 de 2010)
Lanzada nueva versión, 0.0.2


Monitor CPU Load

Con éste programa podemos monitorizar la carga del CPU y cuando ésta sea menor a un valor establecido por nosotros entonces ejecutará un script. En el script por ejemplo podemos poner las ordenes para apagar el equipo (muy útil cundo compilamos algo pesado cómo un kernel), que el equipo emita una señal de audio, que se guarde en un log la hora en que la carga bajó, etc, etc...... el script está condicionado por nuestra imaginación.

Chucheras con las que cuenta el programa:

* Muestra la carga actual del CPU, tanto en un potenciómetro (componente Dial), en un label y en el Tooltip del trayicon
* El valor de CPU esperado se configura con un potenciómetro (componente Dial)
* La aplicación cuenta con un Trayicon para que se minimice en el área de notificaciones. Además de que el trayicon cuenta con un menú emergente.
* Se pueden configurar los parámetros de iteraciones totales, tiempo entre cada iteración y tiempo entre actualización del cálculo de carga de CPU.
* La aplicación cuenta con una pestaña para escribir el script a ejecutar.
* Se cuentan con funciones para guardar tanto la configuración de parámetros y el script a ejecutar.
* Antes de ejecutar el script se lanza una notificación informando que queda x tiempo (ese tiempo es el tiempo entre iteración), se necesita tener instalado el paquete libnotify-bin. Así sí se desea se puede detener el programa antes de que se ejecute el script.

El algoritmo es relativamente sencillo.

Cuando se dá la orden (se oprime el botón 'Run') se activa un timer con delay 'tiempo entre iteración', así cuando ocurre el evento Timer del timer (valga la redundancia) se compara el valor de carga actual del CPU con la del valor esperado; si es menor entonces el contador 'indice' se decrementa, en caso contrario se resetea a un valor configurado. Cuando índice es igual a cero se ejecuta el script.
Por lo tanto es necesario que la carga del CPU sea n veces seguidas menor al valor configurado para que se ejecute el script. Esas n veces es el valor máximo + 1 del índice.
Algo importante a mencionar es que el tiempo de actualización (dt) debe ser menor al tiempo entre iteración.

El programa es el segundo que hago con gambas y fue hecho en dos días (para unos es mucho tiempo, para mi es poco ). Así que no contemplé todas las circunstancias de uso del programa, por ejemplo no comprueba que los parámetros a configurar sean realmente numéricos, o que el índice sea entero, ni que dt sea menor a tiempo entre iteración, etc. Y de seguro el modo en que declaro o asigno variables/funciones está incorrecto, o puede también que la lógica no sea lo más eficiente posible. Por lo que si alguien usa/modifica el programa estaré muy agradecido de que de su opinión/consejo/modificaciones/etc.


Referencias:
Quiero Linux: Cálculo del uso de CPU en Linux
Documentación oficial de gambas
Internet en general.