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 conforme terminan, con sus imágenes, mapas de calor y máscaras de segmentación
- Listar recetas y cambiar la activa
- Alternar entre modo Configuración y modo de ejecución
- Leer y restablecer los contadores de aprobado/rechazado
Vaya a Integration → HTTP API:

| Área | Qué le proporciona |
|---|---|
| Connection | La Base URL con la que empieza cada llamada, por ejemplo http://10.250.0.100/api/integration/v1, la versión de la API, y si las llamadas requieren un usuario y contraseña |
| Download OpenAPI spec | Una descripción legible por máquina de cada endpoint, con sus parámetros y respuestas. Entrégela a sus desarrolladores, o cárguela en Postman o 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 lo que hace, y llamadas de ejemplo listas para copiar |
Antes del primer disparo
El panel Ready to trigger? verifica tres cosas. POST /trigger es rechazado hasta que las tres pasen, y el error nombra la que falló.
- Modo de ejecución. Saque la cámara del modo 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 en la línea y un disparo HTTP desde su software al mismo tiempo. Una fuente que no está marcada se ignora, incluso si algo le está enviando.
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 terminado | 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 que devolvió |
| 409 | La cámara no está lista | Corrija lo que nombra 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 está en curso es rechazado 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 fueron omitidas, usualmente 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, del más nuevo al más antiguo, 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 conforme terminan, de cada fuente de disparo |
GET /results/stream usa Server-Sent Events: mantenga una conexión abierta y cada inspección finalizada llega conforme ocurre, ya sea que haya sido disparada por HTTP, por un PLC o por un sensor. Esto es generalmente más simple que el 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 para el protocolo activo) |
Una receta se identifica por su número, el mismo PLC recipe ID que un PLC usa 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. Cambiar de modo toma 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 usuario y contraseña de una cuenta de la cámara, enviadas 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, para que los Audit Logs muestren qué sistema hizo qué. Asígnele el rol más bajo que haga el trabajo; GET /whoami con las credenciales de esa cuenta lista exactamente lo que se le permite llamar. Active HTTPS en System Settings para que las contraseñas no viajen por la red en texto claro.
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.
A dónde ir después
- Step 2: Triggering, para habilitar la fuente HTTP
- Users and Permissions, para crear una cuenta para cada sistema
- Industrial Ethernet, si también está involucrado un PLC
- Remote Storage, para enviar imágenes y resultados a un servidor de archivos en su lugar