Editar un Enum causa cambios en la etiqueta del caso y el aspecto del punto de coerción en una estructura de casos

Actualizado el Aug 24, 2023

Reportado en

Software

  • LabVIEW

Detalles del problema

  • Tengo una máquina de estados y uso Enums para seleccionar los diferentes estados. Cuando realizo cambios en el Case Structure y el Enum, algunas o todas las etiquetas de mi caso vuelven a ser números.
  • Cuando trato de ejecutar mi VI, aparece una flecha de ejecución rota con un error que indica que " LabVIEW no se puede actualizar desde la definición de tipo sin preservar incorrectamente el valor predeterminado ". Algunos de los selectores del Enum dentro de mis casos están en gris.
  • También apareció un pequeño punto de coerción rojo después de editar el selector del Enum para mi estructura de casos.
 

Solución

La entrada en el selector de casos determina las etiquetas para la Estructura del casos. Si hay diferentes tipos de entradas conectadas al selector de casos, las etiquetas se establecerán de la forma más general posible. Por ejemplo, si los elementos del Enum fuera del ciclo While son diferentes de los elementos del Enum dentro de cada uno de los casos, la Estructura del casos no puede determinar qué tipo se debe mostrar para las etiquetas y, por lo tanto, muestra los números. LabVIEW también puede mostrar un pequeño punto de coerción (English) rojo y / o en gris algunos de los selectores del Enum dentro de los casos.

Para asegurarse de que el Enum sea el mismo en todas las partes de su VI, cree una Type Def. (Inglés):
  1. En el diagrama de bloques, haga clic con el botón derecho en Enum y seleccione Avanzado » Personalizar .
  1. La ventana de control personalizada se abrirá.
  2. Haga clic en el menú desplegable en la barra de herramientas que dice Control y seleccione Type Def .
  1. Haga clic en Archivo » Guardar para guardar su control: sunombredearchivo.ctl y cierre la ventana de control personalizado.
  2. Aparecerá un cuadro de diálogo con el mensaje: ¿ Reemplace el control original "Enum" por "sunombredearchivo"?, Seleccione .
  3. Reemplace todas las Enums en su diagrama de bloques con sunombredearchivo.ctl . Para colocar su Type Def. en la paleta de funciones, clic en Seleccionar un VI y navegue hasta sunombredearchivo.ctl. Alternativamente, puede arrastrar el archivo .ctl directamente desde la carpeta donde se guarda al diagrama de bloques. Haga clic con el botón derecho en cada instancia y asegúrese de que esté configurado como Actualización automática de Type Def.
  1. Si no desea que el Enum esté visible en el Panel frontal, haga que sea una constante haciendo clic con el botón derecho en Enum y seleccionando Cambiar a constante .
  2. Para realizar cambios en el Enum, haga clic con el botón derecho sobre él y seleccione Open Type Def .
  3. Cuando se abra la ventana de Control, haga clic con el botón derecho en Enum y seleccione Propiedades .
  4. Realice los cambios deseados, guarde y salga. Todas las Enums en el VI se actualizarán para tener los nuevos cambios.
  5. Cuando agregue nuevos casos a la enumeración y desee ver los nuevos casos en la estructura de casos, haga clic con el botón derecho en el borde de la estructura de casos y seleccione Agregar caso para cada valor .