Categorías

by Transposh - Plugin de traducción para WordPress
Navegando en IPv4

VUSiBino Tachometer II – Host

Archivos de utilidad

Funciones importadas

Comienzo con una función “itoa()” que encontré muy útil, no es estandar y sirve para pasar a cualquier base un número y devolverlo en una cadena de texto. La función devuelve una cedena y se le alimenta con el valor a evaluar y la base en que queremos la cadena resultante. Este es el enlace a la función.

Funciones USB

Son las de este envío.

Funciones de diálogos

Me centraré en repasar las funciones específicas para “sliders”, al haber explicado las otras en el correspondiente capítulo de VUSiBino Demo.

La función “setInfoSlider” sirve para poner información relacionada al control en un formato específico. Sus parámetros de entrada son hwndDlg, donde ponemos la referencia al contenedor del control, sliderId, que es la referencia al control, buddyId, que es la referencia al control informativo asociado al “slider” y sliderUnits, que es cómo queremos que se muestre la información. De momento sólo elegimos entre mostrarla “en crudo” (caso “AS_IS”) o como porcentaje (caso “PERCENTAGE”).

Usamos mensajes para obtener la información que necesitamos. Obtenemos la posición en que se encuentra el marcador con “SendMessage(GetDlgItem(hwndDlg, sliderId), TBM_GETPOS, 0, 0)”, que manda el mensaje “TBM_GETPOS” al control “sliderId” de la ventana “hwndDlg”, y lo identificamos con “GetDlgItem” para que “SendMessage” se capaz de saber a qué nos referimos. El mensaje “TBM_GETRANGEMAX” nos devuelve la posición máxima que tendrá el control, útil para calcular el tanto por ciento que queremos mostrar.

Hechos los cálculos, mostramos la información con la función “SetDlgItemText”.

La función redrawSlider sirve para reposicionar el cursor del control cuando la llamemos, la variable “newValue” es donde ponemos el valor que queremos que tenga el “slider”.  Llama a su vez a setInfoSlider tras poner el cursor en el nuevo lugar con el mensaje “TBM_SETPOS”.

La función setMySlider es para inicializar el control con los valores y aspecto que queremos que tenga por defecto.

Declaramos en la llamada las varianles “minRange” para el inicio del control, “maxRange” el final y máximo valor, “ticFreq” que nos pondrá marcadores cada intervalo que le digamos e “initPos” donde queremos que se ponga el cursos del deslizador. Con esos datos mandamos los mensajes “TBM_SETRANGE,1,MAKELONG(minRange, maxRange))” y “TBM_SETTICFREQ,ticFreq” y llamando a redrawSlider ya lo ponemos todo en su sitio. Si bien el resto de los parámetros del control los podemos poner usando el editor de recursos, siempre podemos cambiarlos dinámicamente si lo necesitamos. Esta es una lista de los mensajes que se pueden usar para ello, y hay enlaces a macros y funciones para hacerlo de forma sencilla.

 

Función Principal

En esta función manejaremos todo el flujo de datos, he usado una forma muy primitiva de “hilos” de programación ya que el compilador no parecía tomarse muy bien todas las funciones que llamaba y no encontré forma de correr los ejemplos necesarios para un correcto control de los hilos sin que algo reventara. Lo importante es que funciona y es simple.

 

Declaraciones

 

 

En la siguiente entrega, unicamente nos dedicaremos al hardware para usar los ventiladores de tres y dos hilos.

Deja un comentario