# La ventana

> El marco que rodea cada página: la barra de título con su tecla de Ayuda, su botón Informar, sus teclas de tema y su ficha de usuario, la barra de navegación y qué muestra cada entrada, la barra de estado y su registro de acciones, la banda del runtime detenido, el panel de ayuda, las notificaciones, el diálogo de consentimiento del informe de fallo, las pantallas que aparecen al perder la conexión, la pantalla completa, el zoom del Desktop y el área de notificación.

Todas las páginas de Ganter Lab se dibujan dentro de un mismo marco: una barra de título, una barra de navegación a la izquierda, la página en sí y una barra de estado abajo. El marco es el mismo en todas las páginas y en todas las pantallas que miran a la estación, tanto la ventana de la propia estación como un navegador de la red (véase [Acceso remoto](remote-access)); los pocos sitios donde las dos difieren se señalan más abajo. Ver el marco no exige ningún permiso, pero varias de sus entradas y marcas se dibujan solo para una identidad que tiene el permiso correspondiente, exactamente igual que las páginas que hay detrás.

## El marco de un vistazo {#the-frame-at-a-glance}

| Parte | Dónde | Qué contiene |
|---|---|---|
| Barra de título | Arriba | La marca, la tecla de Ayuda, el botón Informar, las tres teclas de tema y la ficha de usuario. En la ventana de la propia estación es el sistema operativo el que dibuja el título ("Ganter Lab", con minimizar, maximizar y cerrar), la barra de título web se pliega, y la tecla de Ayuda, el botón Informar, las teclas de tema y la ficha se acoplan en la esquina superior derecha. Un navegador conserva la barra completa, con el distintivo de la marca y el nombre a la izquierda. Con una [marca](settings-branding) puesta, el título dice el Nombre de la estación y lleva su Icono, y la barra muestra el Logotipo de la estación en lugar del distintivo y el nombre. |
| Banda del runtime detenido | Bajo la barra de título | Presente solo mientras el runtime está detenido (véase más abajo). |
| Barra de navegación | Borde izquierdo | Hasta once entradas en dos grupos: el grupo de trabajo arriba y el grupo del pie fijado abajo. |
| Contenido | Centro | La página. Una página que no consigue dibujarse se degrada a un solo aviso ("Algo falló en este panel", "El resto de la pantalla sigue funcionando. El fallo se registró en la página Eventos, en Consola.", con **Intentar de nuevo**) mientras el marco sigue vivo; la siguiente navegación trae una página limpia. |
| Mensajes emergentes | Sobre el contenido, abajo a la derecha | Las notificaciones que interrumpen, la más reciente arriba. |
| Barra de estado | Abajo | Los indicadores, con la marca de versión disponible al final, el registro de acciones y el reloj. |

La ventana no se abre en un tamaño menor de 880 por 520 píxeles y recuerda dónde la dejó usted (posición, tamaño, maximizada) entre arranques; véase [Primer arranque](app-install#first-launch).

## Barra de título {#title-bar}

### La tecla de Ayuda {#the-help-key}

Un signo de interrogación a la izquierda del grupo derecho de la barra de título, pasado un fino separador respecto de las teclas de tema. Abre el panel de ayuda que se describe en [Ayuda contextual](#contextual-help) y se marca a sí misma mientras el panel está abierto. Se dibuja en todas las rutas, para toda identidad, y también con el runtime detenido.

### El botón Informar {#the-report-button}

A la derecha de la tecla de Ayuda, el botón Informar escribe un aviso a Ganter, un fallo, una sugerencia o la petición de un controlador, con una captura de pantalla de la ventana. Es solo un icono, del tamaño de la tecla de Ayuda: su información emergente lo nombra, **Informar**, con lo que hace debajo del nombre, y un lector de pantalla lo anuncia por ese nombre. Una pulsación captura primero la ventana y solo después abre el formulario del aviso en un diálogo sobre la página, así que el formulario nunca sale en su propia imagen; el formulario, lo que envía y lo que responde el servidor están en [Avisos y sugerencias](account-feedback#the-report-button). Se dibuja en todas las rutas para una identidad cuyo rol tiene Enviar avisos a Ganter, que tienen todos los roles hasta que un administrador lo apaga, y no se dibuja para una cuyo rol no lo tiene. Mientras una situación rechaza el aviso, sigue dibujado y atenuado, con el motivo bajo su nombre en la información emergente: un navegador en lugar de la ventana de la estación, una sesión que no puede enviar (el perfil de demostración, o una sesión de la cuenta Ganter de la estación que hay que volver a iniciar) o una captura que ya se está tomando. Una estación sin sesión iniciada en ninguna cuenta Ganter no se rechaza: su aviso sale sin cuenta, y el formulario dice que Ganter no puede responderle. La demostración publicada no lo dibuja.

### Teclas de tema {#theme-keys}

Tres teclas contiguas, en este orden, cada una con una información emergente que la nombra:

| Tecla | Ayuda emergente | Qué hace |
|---|---|---|
| Sistema (un glifo de monitor) | Tema: Sistema | Sigue la apariencia de Windows. En la ventana de la estación es el anfitrión quien la resuelve y la vuelve a aplicar en cuanto Windows cambia entre claro y oscuro; un navegador la resuelve contra su propia preferencia de claro u oscuro. |
| Claro (un glifo de sol) | Tema: Claro | La apariencia clara, diga lo que diga Windows. |
| Oscuro (un glifo de luna) | Tema: Oscuro | La apariencia oscura, diga lo que diga Windows. |

La tecla realzada es la **elección** en vigor, nunca la apariencia a la que se resuelve: Sistema sigue marcada como Sistema aunque se vea como Claro u Oscuro. En la ventana de la propia estación, al pulsar una tecla se aplica en vivo y se guarda como preferencia de la estación en la base de datos de configuración, y todo navegador que no ha elegido un tema propio la sigue al momento. En un navegador, pulsar una tecla cambia solo ese navegador: la elección se guarda en él y sobrevive a recargar la página, no llega nada a la estación y desde entonces ese navegador deja de seguir el tema de la estación. Las teclas no piden permiso, porque la elección de un navegador no llega a ninguna otra pantalla. [Ajustes, Apariencia](settings-appearance) muestra y cambia esos mismos tres valores, en las mismas condiciones.

### La ficha de usuario {#the-user-chip}

A la derecha de las teclas de tema, pasado un fino separador, la ficha nombra quién tiene la sesión iniciada en **esta pantalla**: **Iniciar sesión** mientras no la tenga nadie, y el nombre visible en cuanto alguien la tenga. El punto del glifo de persona es verde con la sesión iniciada y gris en caso contrario. La ficha se dibuja siempre, en todas las rutas y en todas las pantallas, porque los roles están siempre en vigor y no tener la sesión iniciada es una identidad en sí misma (el rol "Sin sesión iniciada").

Al pulsarla se abre el diálogo de inicio de sesión:

- El título dice **Iniciar sesión**, o **Cambiar de usuario** mientras alguien ya tiene la sesión iniciada y se está mostrando la lista de usuarios. En ese caso una línea de cabecera "Sesión iniciada como *nombre*" lleva un botón **Cerrar sesión**.
- La lista enumera todos los usuarios locales con un distintivo de dos letras, el nombre y una marca: un candado para un usuario con PIN (información emergente "PIN obligatorio"), una flecha para un usuario sin él (información emergente "Inicia sesión al tocar"), que inicia la sesión en el momento en que se pulsa la fila.
- Un usuario con PIN abre el paso del PIN: el distintivo y el nombre del usuario, **Atrás**, el rótulo "Introduzca el PIN" y un teclado numérico que admite de 4 a 6 dígitos. La tecla de confirmación o Intro lo envían.
- Un rechazo se queda en el teclado numérico, en su sitio: "Ese PIN no es correcto." o "Demasiados PIN incorrectos. Vuelva a intentarlo en *n* segundos/minutos." Cinco PIN incorrectos seguidos cierran la puerta durante un minuto; cada serie adicional de cinco duplica la espera, hasta quince minutos.
- Si la estación todavía no tiene ningún usuario local, el diálogo lo dice en lugar de mostrar una lista vacía: "Esta estación todavía no tiene usuarios locales. El primero, el administrador principal, se crea en la página Usuarios."

En la ventana de la propia estación, la ficha cambia la sesión de la estación, la identidad bajo la que se ejecutan todos los comandos de esa ventana; en un navegador inicia la sesión de esa conexión y nada más. En cualquiera de los dos casos el resultado aterriza además en el registro de acciones de la barra de estado ("Sesión iniciada como Ana.", "Ana cerró la sesión.", "Inicio de sesión rechazado. La sesión sigue iniciada como Ana."), porque quién tiene la sesión iniciada decide lo que puede hacer cualquier otro comando. El flujo completo se describe en [Iniciar sesión](users-signing-in).

## Barra de navegación {#navigation-rail}

La barra mide 64 píxeles de ancho: un glifo y una etiqueta por entrada, con la entrada activa realzada. Cada entrada se dibuja solo cuando la identidad de esta pantalla tiene al menos uno de los permisos indicados; las páginas vuelven a comprobarlo al abrirse, así que la barra solo recorta lo que de todos modos se rechazaría. Los permisos son los conmutadores del editor de roles; véase [Permisos](users-permissions).

| Entrada | Grupo | Abre | Se dibuja cuando |
|---|---|---|---|
| Bienvenida | Arriba | La página Bienvenida (`/welcome`): todas las áreas del programa, explicadas parada a parada | En una estación, solo mientras la estación conserva la página (véase [Bienvenida](welcome)), y entonces cualquiera de Configurar Connector, Configurar Logic, Gestionar Process, Editar los paneles de control, Gestionar los usuarios locales, Gestionar el agente (MCP). La demostración publicada la dibuja siempre, para cada visitante. |
| View | Arriba | La página de paneles de control (`/view`; también encendida para `/`, `/home` y la dirección propia de un panel de control, `/d/…`) | Siempre: ver los paneles de control no se puede revocar nunca |
| Process | Arriba | El espacio de trabajo de Process, que contiene también los Históricos (encendida también para `/histories`) | Cualquiera de Consultar los modelos, Ejecutar procedimientos, Editar recetas y evaluaciones, Gestionar Process, Ver los históricos |
| Logic | Arriba | La página Logic | Ver Logic |
| Connector | Arriba | La página Connector | Ver Connector |
| Usuarios | Arriba | La página Usuarios | Siempre en una estación real (la propia página avisa a quien no es administrador de que la gestión está bloqueada). La demostración publicada la deja apagada. |
| Validación | Pie | La página Validación | Ver Validación |
| Eventos | Pie | La página Eventos | Ver los eventos |
| Agente | Pie | La página Agente | Gestionar el agente (MCP) |
| Acceso remoto | Pie | La página Acceso remoto | Ver acceso remoto |
| Ajustes | Pie | La página Ajustes | Cambiar los ajustes |
| Cuenta | Pie | La página Cuenta. La única entrada que se dibuja con la G de la marca en lugar de un glifo. | Siempre en una estación real. La demostración publicada la deja apagada. |

Sin nadie con la sesión iniciada decide el rol "Sin sesión iniciada". Sus permisos de fábrica lo abarcan todo salvo Gestionar los usuarios locales y Acceso remoto (LAN), así que una estación recién instalada dibuja todas las entradas hasta que un administrador estreche ese rol en [Roles](users-roles). Cuando un cambio de rol retira la entrada de la página en la que usted está, el shell lo lleva a la primera entrada que aún dibuja.

Dos entradas llevan una marca:

- **Validación** lleva una pastilla de precaución con el número de elementos por reparar (99+ pasados los noventa y nueve), oculta mientras la configuración está limpia. Sigue la nueva exploración en segundo plano del validador, así que cambia mientras usted edita; véase [Validación](validation).
- **Cuenta** lleva un signo de exclamación solo cuando la licencia necesita atención: ámbar cuando la suscripción tiene un pago pendiente, termina dentro de 14 días o no tiene fecha de fin conocida aun estando marcada para terminar; roja cuando la suscripción está cancelada, o cuando podría conceder un puesto y esta estación no tiene ninguno. Al pulsar la entrada marcada se aterriza en la sección Suscripción y no en lo alto de la página; véase [Suscripción](account-subscription). No hay ningún punto neutro de "conectado".

## Barra de estado {#status-bar}

La barra dice, de izquierda a derecha: el grupo de indicadores, que termina con la marca de versión disponible, el registro de acciones en el centro elástico y el reloj, a solas en el extremo derecho. Se refresca cada segundo.

### Los indicadores {#the-indicators}

| Indicador | Dice | Se muestra cuando | Clic |
|---|---|---|---|
| Cuenta atrás del modo gratuito | "Gratuito · 12:34" en cuenta atrás, "Gratuito · runtime detenido" cuando ya se agotó, "Gratuito" mientras no se conoce el tiempo restante; la G de la entrada Cuenta de la barra de navegación, en ámbar. Ayuda emergente: "Modo gratuito: el runtime se detiene cuando se agota el tiempo. Inicie sesión o añada una licencia para quitar el límite. Haga clic para abrir Cuenta." | La estación no tiene licencia (véase [El modo gratuito y la licencia](app-free-mode)) | Cuenta (en un dispositivo bloqueado en su pantalla de inicio solo informa) |
| Estado de salud | La marca del Connector de la barra de navegación, teñida por el estado de salud del Connector, y un texto que empieza por el Connector. El peor dispositivo: "Connector: *nombre* sin comunicación" (rojo) o "Connector: *nombre* inestable" (ámbar); con todos los dispositivos leyendo, "Connector: en línea" (verde); "Connector: detenido" (gris) mientras el propio Connector no está en marcha. El servidor OPC UA integrado no forma parte de él: el Connector lee los dispositivos mientras el servidor está detenido, y el estado del servidor está en [Estado](connector-opcua-server). Ayuda emergente: "Estado de salud de Connector (haga clic para abrir)". | Siempre | Connector |
| Alarmas | Una campana y "Alarmas: *n* activas (*m* sin reconocer)", con glifo y texto teñidos por la prioridad más grave de entre ellas (la misma escala que usan el árbol de Logic y Eventos). Ayuda emergente: "Alarmas (haga clic para abrir la lista de alarmas)". | Hay alguna alarma activa o que sigue esperando un reconocimiento | Eventos, Alarmas |
| Grabaciones | "Process: *n* grabando", "Process: *n* en pausa", o "Process: *n* grabando · *m* en pausa"; la marca de Process de la barra de navegación, verde, ámbar mientras algún ensayo está en pausa (cada ensayo cuenta una sola vez, según su situación: un ensayo en pausa no cuenta también como grabando; solo se detiene su reloj, la adquisición continúa). Ayuda emergente: "Grabaciones activas (haga clic para abrir Process)". | Al menos una unidad está grabando o en pausa | Process |
| Versión nueva | Un glifo de flecha en el color de acento y "Actualización disponible", o "Actualización con correcciones importantes" en el tono de precaución cuando la versión se ha marcado como portadora de correcciones importantes. No dice ningún número de versión. La información emergente dice que hay una versión nueva disponible, añade si ya está descargada ("Ya está descargada y se instala la próxima vez que se reinicie Ganter Lab.") y termina con "Haga clic para abrir Ajustes, Actualizaciones." | Una versión más reciente espera a que la tomen y no se ha ignorado en [Ajustes, Actualizaciones](settings-updates), para una identidad que tenga Cambiar los ajustes (un operador en una tableta remota nunca ve una decisión que no le corresponde), y nunca en una compilación sin canal de actualizaciones | Ajustes, Actualizaciones |

Cada indicador lleva la marca del área por la que habla y sus palabras empiezan por el nombre de esa área, así que un vistazo dice qué parte de la estación está bien y cuál no: las marcas del Connector y de Process son las de la barra de navegación, la cuenta atrás lleva la G de la entrada Cuenta, y las alarmas conservan la campana, ya que pulsarlas abre la lista de alarmas en Eventos y no Logic. Los colores son los de todos los puntos de estado de la aplicación: verde si está sano, ámbar si está degradado o arrancando, rojo si está en fallo o sin conexión, gris si es neutro. El icono del área de notificación dice ese mismo estado de salud del Connector (más abajo).

### El registro de acciones {#the-action-feed}

El centro de la barra es el único sitio donde aterriza el resultado de lo que usted acaba de hacer: un guardado, una eliminación, un cambio de nombre, una importación, una impresión, una exploración, un reconocimiento. Todo comando que cambia el estado informa de los dos desenlaces, cuando funcionó y cuando fue rechazado.

- Un éxito se desvanece solo a los seis segundos. Un fallo conserva una marca roja y se desvanece solo al cabo de unos diez segundos, salvo que antes otro resultado más nuevo lo sustituya o usted pulse su botón **Descartar** (x). Un rechazo sobre un dispositivo, una línea serie o un bróker MQTT de Connector (un campo que todavía le falta, o una edición que la estación no aceptó) se va además en cuanto un guardado posterior de ese mismo dispositivo, de esa misma línea o de ese mismo bróker sale bien en esta pantalla, porque la página muestra entonces exactamente lo que está guardado.
- El texto se recorta con puntos suspensivos contra el reloj; el texto completo es la información emergente.
- Una entrada puede llevar **un** botón de seguimiento a su lado, por ejemplo **Deshacer** después de quitar un componente de un panel de control. Vive y muere con la entrada: la caducidad de la entrada, el siguiente resultado, un descarte y la propia pulsación se lo llevan, de modo que la barra nunca ofrece un verbo que ya no responde al texto que tiene al lado.
- El registro pertenece a la conexión: esta pantalla muestra los resultados de lo que hizo esta pantalla, nunca lo que hizo un navegador en otro sitio. La ventana de la propia estación lleva además el trabajo que no pidió ninguna pantalla (una copia de seguridad automática, un informe generado por su cuenta, un fallo del anfitrión).
- La única excepción: un comando pulsado dentro de un componente de panel de control (un Botón, un Conmutador, una Entrada) responde bajo ese componente, la superficie que sigue existiendo cuando un panel de control a pantalla completa oculta esta barra.

Las páginas nunca sacan un destello de "Guardado" ni una línea de estado propia; si usted busca la respuesta a una pulsación, está aquí.

### El reloj {#the-clock}

**El reloj**: la fecha y la hora locales en los formatos elegidos en [Ajustes, Idioma y formatos](settings-localization) (por ejemplo `dd/MM/yyyy HH:mm:ss`), con un tictac cada segundo. La información emergente dice "Ajustes: Idioma y formatos", que es la sección donde se fijan esos formatos.

La barra no muestra ninguna versión: la versión que se está ejecutando ahora está en [Acerca de](settings-about) y bajo el titular de [Ajustes, Actualizaciones](settings-updates).

### Mientras el runtime está detenido {#while-the-runtime-is-stopped}

El estado de salud, las alarmas y las grabaciones no se pueden afirmar mientras no se lee nada, así que el grupo de indicadores deja paso a un único mensaje que lleva a algún sitio útil: "Inicie sesión para ampliar el tiempo gratuito" o "Añada una licencia para quitar el límite" (ambos abren la página Cuenta), o, si ya no queda nada que comprar, "Reinicie el runtime para continuar" en la ventana de la estación y "El reinicio se hace en la estación, el ordenador donde se ejecuta Ganter Lab." en un navegador. La cuenta atrás sigue la primera por la izquierda, diciendo "Gratuito · runtime detenido".

## La banda del runtime detenido y la página en pausa {#the-stopped-runtime-band-and-the-paused-page}

Cuando se agota la ventana del modo gratuito el runtime se detiene (véase [El modo gratuito y la licencia](app-free-mode)), y el shell lo dice una vez, de la misma manera en todas las rutas y en todas las pantallas:

- Una banda bajo la barra de título: **Runtime detenido**, "La adquisición, Logic y la grabación están en pausa. Su configuración y los ensayos grabados están intactos.", y el único botón **Reiniciar el runtime**. El botón existe solo en la ventana de la propia estación: un navegador lee en su lugar "El reinicio se hace en la estación, el ordenador donde se ejecuta Ganter Lab.", de modo que una ventana de modo gratuito no se puede rearmar nunca desde la red.
- Todas las páginas salvo Cuenta dejan paso a un aviso de pausa: **Esta pantalla está en pausa**, "Lee la estación en tiempo real, y no se lee nada mientras el runtime está detenido. Espera aquí en lugar de mostrar valores que ya no son ciertos.", y después "El reinicio es inmediato y sin límite. El runtime vuelve en cuanto lo pida." en la estación y "El operador de la estación puede reiniciarlo en cualquier momento, sin límite. Esta pantalla vuelve por sí sola." en el resto. Cuenta conserva su página, porque iniciar sesión o añadir una licencia es lo que quita el límite.
- Un panel de control a pantalla completa sale de ella, para que la banda y la barra de navegación estén a la vista.
- Todo comando que cambiaría la estación se rechaza con las mismas dos palabras, "Runtime detenido": en las barras de herramientas, en los menús, en los botones de los mensajes emergentes (atenuados con esa información emergente) y en el endpoint de agente.

Un reinicio que falla levanta una notificación de advertencia, "Error al reiniciar el runtime: El runtime no pudo reiniciarse por completo. Revise Eventos e inténtelo de nuevo.", y el botón se queda para otro intento.

## Ayuda contextual {#contextual-help}

La tecla de Ayuda abre un panel a la derecha, junto a la página y no encima de ella: la página sigue funcionando, así que la instrucción se puede llevar a cabo en la misma pantalla de la que habla. En una pantalla estrecha (un teléfono, o una tableta en vertical) el panel ocupa la ventana entera. Escape lo cierra, igual que su propia tecla de cierre, y el foco vuelve a la tecla de Ayuda.

Lo que muestra es la página de documentación de lo que usted tiene delante. Lo decide la ruta, así que abrir el panel en Logic abre la página Logic de esta documentación; en una página que se lee como una sola columna larga (Ajustes, Agente, Cuenta) decide en cambio la sección hasta la que usted se ha desplazado, de modo que Ajustes en Copias de seguridad abre Copias de seguridad. Pasar a otra página, o a otra sección de la misma, trae la página que corresponde a lo que hay ahora en pantalla, en lugar de dejar el artículo anterior encima.

El panel lleva el título de la página, su resumen, la lista de sus secciones y todo su texto. Los enlaces a otras páginas de la documentación y a secciones se abren dentro del panel; un enlace que sale de la documentación se abre en su navegador. La propia tecla **Abrir la documentación completa** del panel abre esa misma página en el sitio web, en el mismo idioma y para la versión que ejecuta esta estación; es lo único de aquí que necesita red.

Arriba del panel, encima del artículo, **Hacer el recorrido** empieza un recorrido por todas las áreas del programa, abriendo cada página y señalando sus controles reales sin cambiar nada (véase [El recorrido por el programa](tour)). Empezarlo desde aquí cierra antes el panel, para que el globo tenga la ventana para sí. El botón se dibuja en cada página para las identidades para las que la barra dibuja la entrada Bienvenida, conserve o no la estación esa página. Sigue ahí cuando el panel no tiene ayuda que mostrar, porque el recorrido señala la página y no un artículo.

La documentación se instala con la aplicación, no se descarga: es la documentación de la versión que usted está ejecutando, en el idioma de la estación, y se abre sin conexión a internet alguna. Un navegador de la red lee esas mismas páginas desde la estación, así que una pantalla de taller nunca se queda sin ellas. Cuando un paquete no lleva ayuda para la versión en ejecución o para el idioma de la estación, el panel dice qué versión y qué idioma buscó en lugar de abrir otra cosa, y esa misma línea se escribe en [Eventos, Consola](events-console).

## Notificaciones {#notifications}

### Mensajes emergentes {#snackbars}

Los avisos que interrumpen se apilan abajo a la derecha sobre la página, el más reciente arriba. Cada tarjeta lleva un acento de color según su gravedad (Información, Advertencia, Error), un título opcional, el mensaje, los botones de acción que tenga y un **Descartar** (x). Una tarjeta es persistente salvo que quien la levantó le diera un tiempo de espera. Mientras el runtime está detenido, el botón de una tarjeta que cambiaría la estación queda atenuado con la información emergente "Runtime detenido".

Lo que las levanta, entre otras cosas:

| Tarjeta | Botones | Se queda |
|---|---|---|
| La activación de una alarma (título: el nombre de la alarma; mensaje: su texto de activación), para toda alarma cuyo tipo de notificación no sea "Barra de estado" | **Reconocer** (el mismo reconocimiento que en cualquier otro sitio) y **Abrir las alarmas** (la lista de alarmas de Eventos) | Persistente, u 8 segundos para una alarma "Temporizada"; un reconocimiento o una vuelta al reposo la cierran. Descartar la tarjeta **no** es un reconocimiento. |
| "Límite de tiempo del modo gratuito": "El runtime se detendrá dentro de unos *n* minutos. Inicie sesión o añada una licencia para quitar el límite." | Ninguno | 12 segundos |
| "Runtime detenido": "Se alcanzó el límite de tiempo del modo gratuito y el runtime se detuvo. Inicie sesión o añada una licencia para quitar el límite, o reinicie el runtime en la estación." | Ninguno | Hasta que el runtime vuelva |
| "El servidor no pudo iniciarse" (el servidor OPC UA integrado, casi siempre un puerto ya ocupado) | **Abrir Connector** | Persistente |
| "Configuración restaurada", "Configuración restaurada con una advertencia", "Restauración de la configuración aplazada" o "Error al restaurar la configuración", después de una restauración de copia de seguridad programada | Ninguno | Persistente |
| "El acceso de agente (MCP) no pudo iniciarse", "Panel de control remoto no disponible", "El panel de control web no pudo iniciarse" | Ninguno | Persistente |
| "Actualización aplazada": se pidió reiniciar y actualizar mientras había una grabación en curso | Ninguno | Persistente |
| El disparo del enclavamiento de una unidad, un cliente OPC UA o un equipo a la espera de que se apruebe su certificado | Un botón que abre la página que lo responde | Persistente |

Los mensajes emergentes son para lo que interrumpe; el resultado de su propia acción nunca es una tarjeta (véase el registro de acciones más arriba).

### Notificaciones de Windows {#windows-notifications}

Las tarjetas viven dentro de la ventana, así que mientras la ventana está escondida en el área de notificación o minimizada esos mismos momentos levantan además una notificación de Windows: la activación de una alarma ("Alarma de prioridad *prioridad*: *nombre*"), el disparo de un enclavamiento, el aviso del modo gratuito y la parada, un fallo del servidor o de una restauración en un arranque oculto, y el aviso de una sola vez la primera vez que se esconde. Al hacer clic en la notificación se abre la ventana, donde la tarjeta está esperando. Estas notificaciones existen solo en una compilación instalada; una copia portátil o de desarrollo se queda solo con las tarjetas de la ventana.

## El diálogo de consentimiento del informe de fallo {#the-crash-consent-dialog}

Si Ganter Lab se cerró de forma inesperada, el siguiente arranque que muestre la ventana abre **¿Enviar el informe de fallo?** sobre la página (un arranque escondido en el área de notificación espera al siguiente que sea visible):

- "Ganter Lab se cerró de forma inesperada la última vez. Enviar este informe nos ayuda a corregirlo. Contiene el error y un fragmento breve del diario técnico reciente. Revíselo abajo antes de enviarlo."
- **Detalle del fallo**: toda la carga que se enviaría, con un botón **Copiar** ("Copiado" durante un momento). La carga es el momento de la captura, el contexto, la versión de la aplicación, el sistema operativo, la excepción con su pila y las últimas 60 líneas del diario técnico, depuradas del nombre de usuario de Windows y de la ruta del perfil. Nada más sale de la estación.
- **Enviar siempre los informes de fallo automáticamente**: acepta enviar los fallos futuros sin preguntar (el mismo conmutador que [Ajustes, Informes de fallo](settings-crash-reports)). Queda atenuado con "Runtime detenido" mientras el runtime está detenido, porque la aceptación no podría guardarse.
- **No enviar** borra el fallo capturado para que no se vuelva a ofrecer. **Enviar el informe** lo envía; un envío que falla conserva el fallo y vuelve a preguntar en el siguiente arranque. El informe se atribuye a su cuenta Ganter cuando la estación tiene la sesión iniciada, y se acepta de forma anónima en caso contrario.

El fallo se guarda como `crash\pending-crash.json` bajo la carpeta de datos hasta que se envía o se rechaza.

## Cuando la pantalla pierde la estación {#when-the-screen-loses-the-station}

La página la sirve la estación en tiempo real, así que una pantalla puede perderla: la conexión se corta, la estación se reinicia, la página tropieza con un fallo. Un navegador de la red se encuentra con estas pantallas más a menudo; la ventana de la propia estación se sirve igual y también puede mostrarlas.

- **La banda del circuito.** Una página que falla dentro de una pantalla en marcha muestra una banda discreta abajo: "Esta página encontró un problema, pero la aplicación sigue funcionando. Los detalles están en la página Eventos.", con **Recargar** y una marca de descarte. No se pierde nada; al recargar se vuelve a enganchar.
- **La tarjeta de reconexión** ocupa toda la pantalla mientras no hay conexión:

| Estado | Título | Qué dice y qué ofrece |
|---|---|---|
| Reconectando | Reconectando con la estación | "Esta pantalla lee la estación en tiempo real (el ordenador donde se ejecuta Ganter Lab) y la conexión se cortó. Se está reconectando por sí sola, y su configuración y los ensayos grabados están intactos." Progreso: "Intento *n* de *m*", con " · siguiente en *s* s" mientras corre una espera. |
| Fallida | La estación no responde | "Esta pantalla dejó de reconectarse tras varios intentos. Puede que Ganter Lab esté cerrado en la estación (el ordenador donde se ejecuta Ganter Lab). Aquí no se pierde nada: la pantalla vuelve completa en cuanto la estación responda." **Intentar de nuevo** y **Recargar esta pantalla**. Una pantalla que se rindió mientras su pestaña estaba oculta lo intenta una vez más en cuanto se la vuelve a mirar. |
| En espera | Esta pantalla está en espera | "La estación apartó esta pantalla y conservó todo lo que había en ella. Al reanudarla vuelve exactamente como estaba." **Reanudar** y **Recargar esta pantalla**; después de una reanudación que no llegó a completarse: "La reanudación no se completó. Vuelva a pedirla o recargue la pantalla." |
| Rechazada | Esta pantalla debe recargarse | "La estación vuelve a responder, pero ya no conserva lo que había en esta pantalla, así que no se puede retomar donde se quedó. Al recargar vuelve en tiempo real. Su configuración y los ensayos grabados están intactos." **Recargar esta pantalla**. La recarga es siempre un clic suyo; una pantalla nunca se sustituye por debajo. |

- **La ventana no se pudo servir.** La ventana de la propia estación se sirve desde un puerto interno de la máquina. Cuando ese puerto no se puede abrir (casi siempre una segunda copia de Ganter Lab ya en marcha), la ventana pinta su propio aviso en lugar de una página en blanco: **Ganter Lab no pudo abrir su pantalla**, "La aplicación está en marcha y sus dispositivos se siguen leyendo. Lo que falta es la pantalla…", el puerto, lo que informó el sistema y la carpeta del diario técnico. Lo reintenta cada cinco segundos y se abre por sí sola en cuanto el puerto queda libre.
- **No encontrada.** Una dirección que no corresponde a ninguna página aterriza dentro del marco: **Esta pantalla no forma parte de esta estación**, "Esa dirección no corresponde a ninguna pantalla de aquí. Puede que se haya renombrado o eliminado.", con **Ir a View**, que abre la página de paneles de control.
- **Inicie sesión para verlo.** Un navegador de la red cuya identidad no tiene Acceso remoto (LAN), o cualquier pantalla cuyo rol no abre la página que pidió, recibe la tarjeta de inicio de sesión en lugar de la página ("Inicie sesión para ver esta estación desde la red." o "Inicie sesión para abrir esta página."), nombrando la identidad que fue rechazada. Al iniciar sesión se dibuja la página que se había pedido. La ventana de la propia estación y un navegador en la máquina de la estación no pasan nunca por la puerta del acceso remoto.

## Pantalla completa y Ampliar {#full-screen-and-expand}

Un panel de control de View, y el panel o el sinóptico de una unidad bajo Process, pueden esconder el marco de dos maneras, ambas en el grupo de cola de la barra del panel de control:

| Verbo | Ayuda emergente | Qué hace |
|---|---|---|
| Ampliar | Usar toda la ventana | Esconde la barra de título y la barra de navegación; el panel de control ocupa toda la ventana. |
| Pantalla completa | Pantalla completa (F11) | Lo de verdad: la ventana de la estación pasa a ocupar todo el monitor; un navegador pide la pantalla completa del documento (un navegador que la rechace esconde igualmente el marco). |

Los dos verbos se atenúan mientras no hay ningún panel de control abierto y no se dibujan mientras se está editando un panel de control: entrar en uno de los modos terminaría la edición sin decirlo. Que la barra de estado se quede abajo en cualquiera de los dos modos es un ajuste del propio panel de control (véase [Ajustes del panel de control](view-settings)). Los modos son excluyentes: pulsar Pantalla completa estando ampliado asciende, no alterna.

Teclas: **F11** alterna Pantalla completa (y no hace nada mientras se edita o mientras hay una carpeta abierta); **Esc** sale, de dentro afuera: primero una carpeta que se está renombrando, después la superposición de navegación, después Pantalla completa y después Ampliar. Un navegador que sale de la pantalla completa con su propio gesto se lleva el modo consigo. Salir de la ruta del panel de control restaura el marco, y un runtime detenido sale de la pantalla completa para que la banda y la barra de navegación vuelvan. La herramienta **Pantalla completa** de un gráfico llena el monitor de la misma manera (véase [Gráficos](view-charts)); Esc cierra antes el gráfico. Hay más en [Pantalla completa](view-fullscreen).

## Zoom del Desktop {#desktop-zoom}

En la ventana de la propia estación, **Ctrl + rueda del ratón** amplía toda la superficie en los pasos nativos del motor del navegador (cada paso multiplica por 1,2, entre el 25 % y el 500 %) y **Ctrl + 0** vuelve al 100 %. Cada cambio se anuncia en el registro de acciones ("Nivel de zoom: 120%") y se guarda al momento, por instalación, en `window-placement.json` bajo la carpeta de datos (nunca en la base de datos de configuración, nunca en una copia de seguridad). [Ajustes, Apariencia](settings-appearance) muestra el nivel actual y lo restablece. Un navegador conserva su propio zoom.

## El área de notificación {#the-system-tray}

Ganter Lab está siempre en marcha: cerrar la ventana la esconde mientras el servidor integrado, la adquisición y las grabaciones siguen funcionando (salvo que "Seguir funcionando en segundo plano al cerrar" esté desactivado en [Ajustes, Arranque](settings-startup), en cuyo caso la X cierra la aplicación). El icono del área de notificación es el mosaico de la marca con un punto de estado que refleja el Connector, la misma lectura y las mismas palabras que el estado de salud de la barra de estado: verde en línea, ámbar inestable, rojo sin comunicación, gris detenido. Su información emergente dice "Ganter Lab: *estado de salud*", la línea de la barra de estado, con "(grabando)" añadido mientras algún ensayo graba (se comprueba cada 15 segundos). Con un Icono y un Nombre en [Ajustes, Marca](settings-branding), el icono es el Icono de la estación con el mismo punto, y la información emergente y la entrada Abrir del menú dicen el Nombre de la estación en lugar de Ganter Lab.

- Un clic izquierdo abre la ventana; un clic derecho abre el menú: **Abrir Ganter Lab**, una línea de solo lectura con el estado de salud de la barra de estado y "(grabando)" mientras algún ensayo graba, y **Salir**. En el menú no hay mandos de arranque ni de parada: un clic despistado no debe tumbar a los clientes que leen del servidor.
- La primera vez que la X esconde la ventana, antes se abre sobre ella una ventana pequeña de la propia aplicación, **Ganter Lab sigue en ejecución**. Dice que el servidor, la lectura de los dispositivos y las grabaciones en curso continúan; que el icono se queda en el área de notificación, junto al reloj (en la flecha ^ de la barra de tareas cuando Windows lo oculta), y que **Salir** en el menú del icono cierra la aplicación; y que desactivar "Seguir funcionando en segundo plano al cerrar" en [Ajustes, Arranque](settings-startup) hace que la X cierre siempre. **Seguir en segundo plano** es la opción predeterminada (Enter, Esc y cerrar la ventana pequeña también la eligen) y esconde la ventana. **Salir ahora** cierra solo esta vez por el mismo Salir del menú, así que una grabación en curso sigue preguntando antes, y el conmutador sigue activado. Después de cualquiera de las dos respuestas, no vuelve a aparecer en esta estación. Es una ventana de la propia aplicación, no una notificación de Windows, así que aparece sin importar cómo se inició la aplicación.
- **Salir** lo detiene todo en un único desmontaje: el acceso de agente, el anfitrión web, los monitores, el runtime de Process (los ensayos siguen siendo reanudables), el servidor integrado, el runtime de la lógica (los valores retenidos se vuelcan), el diario de eventos y el anfitrión. Mientras hay una grabación en curso, la ventana vuelve primero con una confirmación tranquila, **Hay una grabación en curso**: "Al salir se detiene la adquisición de datos. Todo lo grabado hasta ahora queda guardado y se vuelve a abrir la próxima vez que inicie Ganter Lab, pero no se graba nada nuevo mientras la aplicación está cerrada." **Seguir en ejecución** es lo predeterminado; **Salir de todos modos** sigue adelante. Una actualización descargada se instala al salir.

## Lo que el marco no hace {#what-the-frame-does-not-do}

- Nunca esconde Usuarios a quien no es administrador; la página lleva su propio aviso en su lugar.
- Nunca ofrece el reinicio del runtime en otro sitio que no sea la banda, y nunca en un navegador.
- Nunca muestra los resultados de acción de otra pantalla, y nunca convierte un resultado de acción en una tarjeta.
- Nunca cambia el tema de otra pantalla desde un navegador: una tecla pulsada en un navegador solo vale para ese navegador.
- El panel de ayuda nunca sale a la web para mostrar un artículo, nunca abre una página escrita para otra versión, y nunca cae al inglés para un idioma que la ayuda instalada no lleva.
- La tecla de Ayuda, el botón Informar, las teclas de tema, la ficha, la barra de navegación y la barra de estado son los únicos controles del marco; todo verbo sobre algo que usted está configurando pertenece a la página de esa cosa (véase [Cómo funcionan las páginas](app-conventions)).
