Accesar a los controles dentro de un "cluster" utilizando un "property node"

Actualizado el Dec 1, 2023

Ambiente

Software

  • LabVIEW

Tengo un conjunto de controles incrustados dentro de un clúster y quiero acceder a una propiedad de uno de los controles. ¿Puedo acceder a alguna propiedad específica (por ejemplo, color de fondo para un control de string) para uno de estos controles?

Hay tres formas de acceder a las propiedades de un control dentro de un clúster.

A) Usando un Property Node Implícito:

  1. Haga clic con el botón derecho en el control integrado / anidado en el panel frontal, no en el propio clúster, y seleccione Create»Property Node y coloque el nodo de propiedad en el diagrama de bloques. Configure el nodo de propiedad como leído o escriba para acceder o modificar las propiedades.
    1. También es posible crear un control con un nodo de propiedad asociado fuera de un clúster y mover el control a un clúster. El control seguirá asociado con el nodo de propiedad después de que el control se mueva al clúster.

B) Usando un Property Node Explícito:

  1. Haga clic con el botón derecho en el control en el panel frontal y seleccione Create»Reference. Esto creará una referencia en el diagrama de bloques.
  2. En el diagrama de bloques, haga clic con el botón derecho en el terminal de salida de la referencia y seleccione la propiedad deseada en la opción de menú Create»Property.
    1. La siguiente imagen muestra cómo editar una propiedad de un Ring Control utilizando este método.

C) Utilizando la referencia del clúster y los Property Nodes explícitos:

  1. Haga clic con el botón derecho en el control de clúster en el panel frontal y seleccione Create»Reference. Esto creará una referencia al grupo en el diagrama de bloques.
  2. En el diagrama de bloques, use un Property Node y conecte la referencia del clúster. Seleccione la propiedad Controls[] para obtener la referencia a todos sus controles contenidos.
  3. Utilice una función de Index Array para seleccionar el elemento dentro del clúster que desea modificar.
  4. Use una To More Specific Class VI para poder usar las propiedades y los métodos del tipo de control específico que desea modificar. Conecte la referencia del control desde la función Index Array a la entrada de la clase VI más específica. Cree una constante para la entrada ubicada en la parte superior llamada Target Class. Haga clic en la constante y seleccione Generic»GObject»Control»<Your control type> para forzar que la referencia sea esta clase y dar acceso a sus propiedades específicas.
  5. Coloque otro Property Node en el diagrama de bloques y conecte la referencia que sale de la clase VI más específica. Notará que ahora puede elegir las propiedades para ese tipo de control específico que seleccionó con la constante en el paso anterior.
  6. Haga clic con el botón derecho en el nodo de propiedad y seleccione Change All to Write. Seleccione la propiedad que desea modificar y conecte los datos deseados.

Additional Information

Estos métodos utilizan el VI Server de LabVIEW. El VI Server tiene una arquitectura orientada a objetos que es independiente de la plataforma. Cada objeto que es parte de VI Server es parte de una clase. La clase de la que forma parte el objeto determina qué propiedades y métodos están disponibles. Por ejemplo, cualquier control booleano es un miembro de la clase booleana, que es un miembro de la clase Control. La clase Control es un miembro de la clase GObject, que es un miembro de la clase Genérica. Las clases de nivel inferior, como la clase booleana, tienen sus propias propiedades y métodos, y heredan las propiedades y los métodos de las clases de nivel superior, como la clase Genérica. Lea más aquí: ¿Qué es el servidor VI? (en inglés)