Live camera
Robot (SAODF)
Actions
|
s
off
camera light in the cabinet; the robot switches it off by itself after the time you give
Create campaign
Tap ✕ to remove a command; tap the text to edit it. Jobs run in this order.
Build a line
The ports of the selected robot are loaded into the port picker.
Options
Robot queue
-- log in first --
| Pos | Job | Command | Status | Prio | Held until (UTC) | Details | |
|---|---|---|---|---|---|---|---|
| nothing loaded yet | |||||||
Alarms
-- log in first --
| Id | State | Severity | Appeared (UTC) | What | Detail | Ref | |
|---|---|---|---|---|---|---|---|
| nothing loaded yet | |||||||
Campaigns and status
| Id | Name | Created | Scheduled (UTC) | Jobs | Status | Prio | |
|---|---|---|---|---|---|---|---|
| nothing loaded yet | |||||||
Campaign
How a retry works
Same CampaignId: the execution is stopped and started again over all jobs, the
ones that already passed included.
CampaignAttempted goes back to 0, otherwise an OT job gets no
retry round. Empty time = now. Untick IsDeleted false to keep jobs you deleted per order out of the run.| Order | Command | Status | Details | Rounds | Executed | Running |
|---|
OTDR traces
nothing downloaded yet
| TestId | Port | Started | Ended | Status | File | Trace | |
|---|---|---|---|---|---|---|---|
| nothing loaded yet | |||||||
How it works · error codes
The trace comes through the API as bytes, not as a presigned URL, and the call carries the
bearer token — so the file is fetched and handed to the browser as a download; it lands in your normal download
folder.
409 means the test exists but has no trace yet (Pending, or Failed), 404 that
there is no such test or the key points at an object that is gone, 502 that S3 refused and
503 that no bucket is configured (local mode). With a port filled in the list comes from
GET /api/TestResult/{port}/OTDR, which filters on TEST_TYPE = 1: measurements from
before 2026-09-01 carry NULL there and stay out of it — leave the port empty to see those too.OTA firmware update
idle
unknown
Network (IP, subnet, gateway, MAC)
unknown
idle
fill in only what changes; an empty field keeps its value on the robot
How a change works
Needs firmware 5.0.5.0 or newer. The API checks every field (422) and refuses an IP or MAC
that another robot already has (409). The robot checks again, also that its core stays in the subnet, and
refuses without changing anything (the reason is on its status topic, in CloudWatch
/gigacom/robots/{id}). It restarts on the new settings; if it cannot reach its core within
5 minutes it puts the old ones back and restarts again, so a typo costs about six minutes offline.
Only the IP comes back over HTTP, so only an IP change can be followed here.Slot data (Excel)
nothing exported yet
the full slot data of the selected robot, in the shape the import reads back
Import
no file
How it works · error codes
Export and import are two halves of one round trip: export, edit in Excel, import back.
404
ROBOT_NOT_PROVISIONED means there is no StationMaster row for this robot, 422
WORKBOOK_FORMAT that the sheets are not what the parser expects, and 422
SHAPE_MISMATCH that the file does not fit the provisioned shape of this robot.
FILE_LARGER_THAN_SYSTEM means the file has more doors than the robot: with allow_grow the
import makes the robot that size. The robot gets its extra doors in the sync from firmware 5.0.6.0 on.Configuration
Storage thresholds (cord alarms)
-- log in first --
| Module | Operator (PLC) | Stored / slots | Row A | Row B | Applies | Alarm now |
|---|---|---|---|---|---|---|
| nothing loaded yet | ||||||
How thresholds work
Robot (SAODF)
-- log in first --
nothing loaded yet
Site settings (dbo.WinServiceSettings)
One row for the whole site; the columns are those of this database. In bold: the four this
API reads (rounds per campaign and the minutes between two rounds, each for a normal and a priority campaign);
the rest is read by the LMU app.
nothing loaded yet
Free request
Useful paths:
/api/version, /api/Port/1?limit=20, /api/Active/Operators,
/api/TestProfile/, /api/Configuration/, /api/Alarm/?limit=20, /docs in a new tab.