DOCUMENTACIÓN CON IA
¿Qué desea saber?
HTTP API
La HTTP API permite que un MES, un sistema SCADA o su propio software trabajen con la cámara directamente a través de la red, con o sin un PLC. Desde la API puede:
- Disparar una inspección y obtener su resultado en la misma llamada
- Leer resultados pasados, o seguirlos en vivo a medida que terminan, con sus imágenes, mapas de calor y máscaras de segmentación
- Listar recetas y cambiar la activa
- Alternar entre modo de Configuración y modo de ejecución
- Leer y restablecer los contadores de aprobado/rechazado
Vaya a Integration → HTTP API:

| Área | Lo que ofrece |
|---|---|
| Connection | La Base URL con la que comienza cada llamada, por ejemplo http://10.250.0.100/api/integration/v1, la versión de la API y si las llamadas requieren usuario y contraseña |
| Download OpenAPI spec | Una descripción legible por máquina de cada endpoint, con sus parámetros y respuestas. Entréguela a sus desarrolladores, o cárguela en Postman o en cualquier herramienta OpenAPI |
| Ready to trigger? | Una lista de verificación en vivo de lo que debe cumplirse antes de que POST /trigger funcione |
| Endpoints y Examples | Cada endpoint, agrupado por su función, y llamadas de ejemplo listas para copiar |
Antes del primer disparo
El panel Ready to trigger? verifica tres cosas. POST /trigger se rechaza hasta que las tres pasen, y el error nombra la que falló.
- Modo de ejecución. Saque la cámara de Configuración desde la barra superior, o llame a
POST /mode/run. - Receta activa. Debe haber una receta activa. Actívela desde All Recipes, o llame a
POST /recipes/{id}/activate. - Acepta disparos HTTP. En la receta activa, abra Step 2: Triggering, elija External, y marque HTTP bajo Enabled sources.

Puede marcar más de una fuente. Una receta puede aceptar un disparo por hardware desde la línea y un disparo HTTP desde su software al mismo tiempo. Una fuente que no esté marcada se ignora, incluso si algo está enviándole.
Disparar una inspección
curl -X POST http://10.250.0.100/api/integration/v1/trigger \
-H "Content-Type: application/json" \
-d '{"wait_ms": 5000}'
La llamada espera hasta wait_ms milisegundos (5000 por defecto, hasta 30000) a que la inspección termine:
| Respuesta | Significado | Qué hacer |
|---|---|---|
| 200 | El resultado finalizado | Lea judgment: pass, fail o not_inspected |
| 202 | Aceptado, pero no finalizado dentro de wait_ms | Consulte GET /results?trigger_id= con el trigger_id devuelto |
| 409 | La cámara no está lista | Corrija lo que indica code: modo de ejecución, receta activa o la fuente HTTP |
| 503 | Una condición temporal, como una inspección aún en curso | Reintente |
La cámara inspecciona un disparo a la vez. Un disparo enviado mientras el anterior aún se ejecuta se rechaza con 503, a menos que el Image trigger buffer de la receta le permita esperar. Envíe el siguiente disparo después de que llegue la respuesta anterior.
not_inspected significa que todas las herramientas de inspección se omitieron, generalmente porque la alineación no encontró la pieza. No se verificó nada, así que trátelo como un rechazo, nunca como un aprobado.
Leer resultados
| Llamada | Devuelve |
|---|---|
GET /results/latest | El resultado más reciente |
GET /results | Resultados, más nuevos primero, filtrables por receta o disparo |
GET /results/{id} | Un resultado, con el veredicto de cada herramienta |
GET /results/{id}/image | La imagen inspeccionada, como JPEG |
GET /results/{id}/tools/{tool_id}/heatmap | El mapa de calor de una región, como PNG |
GET /results/{id}/tools/{tool_id}/mask | La máscara de segmentación de una región, como PNG |
GET /results/stream | Un flujo en vivo de resultados a medida que terminan, desde cada fuente de disparo |
GET /results/stream usa Server-Sent Events: mantenga una conexión abierta y cada inspección finalizada llega en el momento que ocurre, ya sea que haya sido disparada por HTTP, por un PLC o por un sensor. Normalmente es más sencillo que hacer polling.
Cada herramienta reporta ok, ng, indeterminate o not_applicable, y el resultado en su conjunto reporta pass, fail o not_inspected.
Otras llamadas
| Grupo | Llamadas |
|---|---|
| Device | GET /health, GET /device, GET /status, GET /whoami, GET /openapi.yaml |
| Recipes | GET /recipes, GET /recipes/active, POST /recipes/{id}/activate |
| Statistics | GET /statistics, POST /statistics/reset, GET /statistics/stream |
| Control | POST /mode/run, POST /mode/setup |
| Fieldbus | GET /fieldbus, GET /fieldbus/descriptor (el archivo EDS o GSDML del protocolo activo) |
Una receta se identifica por su número, el mismo PLC recipe ID que usa un PLC para seleccionarla, configurado en Step 5: Outputs.
Después de POST /mode/run, consulte GET /status hasta que mode sea run y mode_changing sea false antes de disparar. El cambio de modo tarda un momento mientras se carga la receta.
Inicio de sesión y seguridad
Mientras la cámara no tenga un usuario Admin, la API no requiere credenciales. Una vez que exista un Admin, cada llamada excepto /health, /whoami y /openapi.yaml requiere el nombre de usuario y la contraseña de una cuenta de la cámara, enviados como autenticación HTTP Basic:
curl -u line3-mes:PASSWORD http://10.250.0.100/api/integration/v1/results/latest
Cree una cuenta por sistema en Users and Permissions, de modo que los Audit Logs muestren qué sistema hizo qué. Asígnele el rol más bajo que cumpla el trabajo; GET /whoami con las credenciales de esa cuenta lista exactamente lo que tiene permitido llamar. Active HTTPS en System Settings para que las contraseñas no viajen por la red en texto plano.
La API solo crece dentro de /api/integration/v1: pueden aparecer nuevos endpoints y campos, pero los existentes nunca cambian de significado ni desaparecen. El código escrito contra ella hoy sigue funcionando después de una actualización de firmware.
Qué sigue
- Step 2: Triggering, para habilitar la fuente HTTP
- Users and Permissions, para crear una cuenta por cada sistema
- Industrial Ethernet, si también hay un PLC involucrado
- Remote Storage, para enviar imágenes y resultados a un servidor de archivos en su lugar