VI nugget:Llamando código externo::Parte I

Tal como los archivos ejecutables (.exe) los archivos .dll pueden contener código (hecho en algun lenguaje de programación) datos o algun otro recruso

LabVIEW tiene la capacidad de llamar y ejecutar código externo (Dynamic link libraries o Shared libraries, generalmente bajo las extensiones: dll, drv, ocx) incrementando el poderio y robustez de la plataforma de programacion creada por National Instruments.

Vamos a describir un ejemplo básico utilizando una API de Windows (WinAPI) bastante conocida: user32.dll

Esta API contiene una funcion llamada: MessageBox (bastante intuitivo el nombre… no crees?) la cual despliega un cuadro de dialogo  “modal” el cual contiene el icono y apariencia del sistema, un set de botones.

A pesar de ser una aplicacion sencilla es muy util para desplegar información de “estatus” o de errores, una vez seleccionada la opción, el dll retorna un numero entero dependiendo el boton que el usuario haya presionado.

Para mayores informes, lea la MSDN de dicha función : http://msdn.microsoft.com/en-us/library/ms645505%28VS.85%29.aspx

El VI presentado como ejemplo, funciona de manera similar (aunque no igual) al nodo: One Dialog Button contenido en la libreria de LabVIEW,  este ejemplo no pretende sustituirlo, sino solo demostrar de una manera clara como se puede ejecutar coódigo externo.

Código Fuente

Como puede observarse,  dependiendo de el tipo de mensaje seleccionado (Message Type) es el tipo de dialogo que aparece en pantalla y la opcion seleccionada retorna un entero (en este caso se hizo un indicador tipo enum para su mejor visualización)

Tal como lo indica la MSDN, el dialogo contiene la apariencia del sistema,  asi mismo ofrece la oportunidad de colocr titulo y mensaje al dialogo.

Este ultimo dialogo correponde entonces a el tipo de mensaje llamado : OK/Cancel

Finalmente se presenta un dialogo mostrado a traves de Twitter

Y aqui uno lanzado desde nuestro VI

Saludos, espero sus comentarios

Advertisement

7 thoughts on “VI nugget:Llamando código externo::Parte I

  1. Es muy bueno este post

  2. Tengo problemas con el ENUM y con la constante tipo array en la primera imagen, como configura el indicador enum y la constante

  3. Perdo, ya entendi, solo era cosa de insertar.

  4. Preunta:

    ¿Como obtengo el valor de salida de este box, en otras palabras como lo uso para continuar o detener un vi?

    • Hola Anjirus….
      El libreria MessageBox te regresa un valor entero dependiendo el boton presionado… lo que hice fue hacer un arreglo de constantes (ENUM) y extraigo del arreglo el elemento de acuerdo al boton correspondiente…. esto lo hago con la ayuda de Array index
      El index por supesto es el numero entero que me regreso la API

      de este modo, tiene mas sentido observar el boton presionado utilizando un ENUM (con el cual l puedes conectar un case y los valores de cada caso adoptaran el nombre de ENUM… que utilizar los numero enteros que te regresa la API

      Te mande el código a tu email

      Saludos!

  5. me puedes mandar el codigo?? esta muy bueno el post! gracias mi e-mail es: manuelreyesjrhn@hotmail.com

    • Que tal Manuel… gracias por seguirnos…
      Te mande el ejemplo a tu email

      Promueve el blog con tus cuates
      Saludos!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s