|
A menudo las aplicaciones que requieren seleccionar un dispositivo antes de efectuar algún tipo de comunicacion, no ofrecen ninguna información adicional sobre el estado del dispositivo. Sobre todo si hablamos del puerto serie, normalmente nos ofrecen una simple enumeración de los COM. Esto último es el causante de que la aplicación nos permita seleccionar un puerto que en ocasiones no existe o está siendo usado por otro programa.
Os propongo una idea con la intención de mejorar y facilitar la selección de este tipo de dispositivos en nuestras aplicaciones.
Básicamente se trata de enumerar en un ‘ComboBox’ personalizado los puertos existentes en nuestro equipo, utilizando el mandato :
My.Computer.Ports.SerialPortNames.ToArray
En el momento de la inicialización del ‘combobox’ asignaremos el evento de ‘DrawItem’ a la función que enriquecerá el aspecto, añadiendo al nombre un rectángulo coloreado y el texto correspondiente a la disponibilidad del puerto.
AddHandler ComboBox1.DrawItem, AddressOf cmbo_SerialPorts_Status
No dudéis en contactar conmigo si necesitáis aclarar o necesitáis entender alguna parte del código.
Para poder darle mayor difusión los comentarios del código están en inglés, aunque si os parece oportuno y necesario puedo posteároslo también en español.
|
Sometimes our communications applications are required to select any type of external device, and normally these applications are not giving any extra information about their availability. This is the case when talk around serial ports, normally when select the port only have a simple enumeration of COM’s, this may be confusing at time leaving at users selecting inexistent ports or ports that simply are already in use.
With this sample, you can improve and make easy these device selections in our applications.
The main think is enumerate serial port inside our customized ‘ComboBox’, using :
My.Computer.Ports.SerialPortNames.ToArray
After when initialize our combo only need assign ‘DrawItem’ event to function with our personalized combo draw,
AddHandler ComboBox1.DrawItem, AddressOf cmbo_SerialPorts_Status
This function are adding red rectangle and “busy” text when no have availability, and green rectangle and “available” text when the port is free.
Please no doubt in contact with me if you need any other explanation or opinion about this.
|