Obsidean_VM/01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Basic FAQ Software.md

16 KiB

Este proyecto, denominado Uc09_Utility, es una aplicación de escritorio de Windows Forms diseñada para interactuar con instrumentos Maselli.

Funcionamiento General:

  1. Inicio y Configuración (Program.cs y FormPrincipaleMDI_Load):

    • La aplicación se inicia ejecutando FormPrincipaleMDI (Uc09_Utility\FormPrincipaleMDI.cs).
    • Configura el entorno de la aplicación, incluyendo estilos visuales y manejo global de excepciones. Las excepciones no controladas se registran en un archivo log.txt dentro de una carpeta logs.
    • Al cargar el formulario principal (FormPrincipaleMDI_Load):
      • Detecta la versión de Windows.
      • Procesa argumentos de línea de comandos para activar modos especiales como "DEMO", "PROVABRIX", "DEBUG" o "CCD".
      • Carga la configuración desde un archivo setup.txt.
      • Ajusta la resolución de la aplicación según la configuración o la pantalla.
      • Define rutas para archivos de servicio, iconos e imágenes.
      • Inicializa variables y los instrumentos Maselli (ClassInizializzazioni.InizializzaStrumenti()).
      • Establece la comunicación serial (ClassSerialeStrumenti) con los instrumentos basándose en la configuración (puerto COM, baudrate).
      • Inicializa una conexión a una base de datos SQL (ClassDatabaseSQLMaselli).
      • Un servicio (CommunicationHandlerLoggerService) se encarga de eliminar datos antiguos (más de seis meses).
  2. Interfaz Principal (MDI):

    • FormPrincipaleMDI es un contenedor MDI (Multiple Document Interface), lo que significa que puede albergar múltiples ventanas secundarias (paneles) dentro de ella.
  3. Navegación por Paneles (timer1_Tick):

  4. Comunicación con Instrumentos:

    • La aplicación se comunica con los instrumentos Maselli a través del puerto serie.
    • Maneja eventos como el cambio de protocolo de comunicación de un instrumento a "Maselli" (OnProtocolFunctionChangedToMaselli).
  5. Manejo de Cierre (MainFormClosing):

    • Antes de cerrar, si la comunicación serial está activa, presenta un diálogo de confirmación.
    • Permite al usuario decidir si confirma el protocolo MASELLI o si se deben realizar cambios antes de cerrar la comunicación serial.

¿Qué permite realizar?

La aplicación parece ser una utilidad central para:

En resumen, Uc09_Utility actúa como un panel de control y gestión para una variedad de instrumentos Maselli, facilitando su configuración, monitoreo y la adquisición de datos en un entorno industrial o de laboratorio.

Communicacion:


La comunicación con los dispositivos Maselli en este proyecto se gestiona principalmente a través de la comunicación serial (puerto COM). Aquí te explico los puntos clave:

  1. Inicialización de la Comunicación Serial (ClassSerialeStrumenti y FormPrincipaleMDI_Load):

    • En el evento FormPrincipaleMDI_Load (Uc09_Utility\FormPrincipaleMDI.cs), después de cargar la configuración, se llama a ClassInizializzazioni.InizializzaStrumenti().
    • Dentro de ClassInizializzazioni (no visible en el .csproj pero inferido por su uso), es muy probable que se instancie y configure un objeto de la clase ClassSerialeStrumenti.
    • ClassSerialeStrumenti (tampoco visible directamente, pero su nombre es muy indicativo) sería la responsable de:
      • Abrir el puerto COM especificado en el archivo de configuración (setup.txt).
      • Configurar los parámetros del puerto serie como baudrate, paridad, bits de datos y bits de parada, también leídos desde la configuración.
      • Manejar el envío y recepción de datos hacia/desde los instrumentos Maselli.
  2. Protocolo de Comunicación:

    • La aplicación parece soportar un protocolo específico de Maselli. Esto se evidencia en el método OnProtocolFunctionChangedToMaselli en FormPrincipaleMDI.cs.
    • Este método se activa cuando un instrumento cambia su función de protocolo a "Maselli", lo que sugiere que la aplicación adapta su comportamiento de comunicación según el protocolo activo del instrumento.
  3. Envío y Recepción de Comandos/Datos:

    • Una vez establecida la conexión serial, la aplicación enviará comandos a los instrumentos para solicitar datos, cambiar configuraciones, iniciar mediciones, etc.
    • Recibirá respuestas de los instrumentos que contienen los datos medidos, estados, confirmaciones, o errores.
    • La clase ClassSerialeStrumenti probablemente encapsula la lógica para formatear los comandos según el protocolo Maselli y para interpretar los datos recibidos.
  4. Manejo de Eventos y Datos:

    • Los diferentes formularios (paneles) que representan a cada instrumento (FormUC08Liv1FormURXXLivello1, etc.) interactuarán con ClassSerialeStrumenti (directa o indirectamente) para:
      • Enviar solicitudes específicas al instrumento que representan.
      • Recibir y mostrar los datos actualizados del instrumento.
      • Gestionar alarmas o eventos reportados por el instrumento.
  5. Cierre de la Comunicación:

    • En el evento MainFormClosing de FormPrincipaleMDI.cs, se verifica si la comunicación serial está activa.
    • Si lo está, se presenta un diálogo al usuario. Esto es importante para asegurar que cualquier operación en curso con el instrumento se complete o se cancele de forma segura antes de cerrar el puerto.
    • Se ofrece la opción de "Confirmar Protocolo MASELLI" o realizar cambios, lo que podría implicar enviar un comando final al instrumento antes de cerrar la conexión.

En resumen, la comunicación se basa en una conexión serial configurada según los parámetros definidos en setup.txt. Una clase dedicada (ClassSerialeStrumenti) maneja las operaciones de bajo nivel del puerto COM y la implementación del protocolo Maselli, mientras que los formularios de la interfaz de usuario interactúan con esta clase para controlar y monitorear los instrumentos.

Cambio de protocolo:

***La aplicación, específicamente Uc09_Utility, no parece realizar el cambio de protocolo en el dispositivo Maselli en sí misma, sino que reacciona a una notificación de que el protocolo del instrumento ha cambiado a "Maselli".

Este manejo se centra en el método OnProtocolFunctionChangedToMaselli que se encuentra en FormPrincipaleMDI.cs. Así es como probablemente funciona:

  1. Detección y Notificación Externa:

    • El instrumento Maselli cambia su protocolo de comunicación a "Maselli". Esto puede ser iniciado por el propio instrumento, por una configuración directa en el dispositivo, o a través de un comando enviado (posiblemente por esta utilidad u otra).
    • Una librería o componente de más bajo nivel, encargado de la comunicación directa con el instrumento (potencialmente parte de UI.Library.dll, que está referenciada en tu archivo Uc09_Utility.csproj), detecta este cambio.
    • Este componente de bajo nivel luego dispara un evento dentro de la aplicación para notificar sobre el cambio de protocolo.
  2. Suscripción al Evento:

    • En el código de FormPrincipaleMDI.cs, el método OnProtocolFunctionChangedToMaselli está suscrito a ese evento específico. Esto significa que cuando el evento de "cambio de protocolo a Maselli" se dispara, este método se ejecuta automáticamente.
  3. Acciones Dentro de OnProtocolFunctionChangedToMaselli:

    • Una vez que se llama a OnProtocolFunctionChangedToMaselli, la aplicación Uc09_Utility toma las medidas necesarias para adaptarse al nuevo estado del protocolo del instrumento. Las acciones específicas dentro de este método podrían incluir:
      • Registrar el evento de cambio de protocolo (por ejemplo, en un archivo de log).
      • Actualizar variables internas de la aplicación que rastrean el estado actual del protocolo de comunicación.
      • Reconfigurar aspectos de la comunicación serial (manejada por ClassSerialeStrumenti) si el protocolo "Maselli" tiene requisitos diferentes a un protocolo anterior (por ejemplo, diferentes estructuras de comando, análisis de datos o temporizaciones).
      • Modificar la interfaz de usuario, habilitando o deshabilitando funciones, o cambiando la información mostrada, si estas son específicas del protocolo "Maselli".

En resumen, el archivo .csproj indica el uso de librerías externas como UI.Library.dll. Es muy probable que esta librería (o una similar que esta utilice) gestione la comunicación con el hardware Maselli y sea responsable de generar el evento al que OnProtocolFunctionChangedToMaselli responde. La aplicación Uc09_Utility actúa como un observador que se adapta cuando se le informa que el instrumento está operando bajo el protocolo "Maselli".