Statuscodes und Ergebnisse

Zwei Arten von Antworten teilen einem Client mit, was geschehen ist:

Verwenden Sie in der Programmlogik die Zahlen, niemals die Texte.

Modulstatus: control/status/code

Cam Driver, AI Object Matching und Calibration melden den Zustand jedes Moduls auf <module>/control/status/code (int32) und control/status/text. Werte ab 0 sind normal, Werte unter 0 sind Fehler.

Code Text Bedeutung

0

ready

die letzte Funktion war erfolgreich; bereit für die nächste

1

settingUp

das Modul startet

2

running

eine Funktion läuft

3

waitingForClient

wartet auf den Client, meist darauf, dass request zurückfällt

-1

undefinedError

kein spezifischer Code

-2

invalidSetting

die Einstellungen konnten nicht geladen werden

-3

invalidInput

eine Eingabe ist ungültig

-4

missingLicense

die Lizenz fehlt

-5

restartRequired

die Einstellungen wurden über system/settings geändert: Starten Sie die App neu

App-spezifische Codes, aufgeführt im Handbuch der jeweiligen App:

App Codes

Cam Driver

-10000 bis -10012

Calibration

-10001 (inputXYSizeNotEqual)

AI Object Matching

100001 (ImageQueueEmpty), 100002 (StreamActive)

Ausführungsstatus der Finder

Template Finder, Object Finder, Area Detector und Text Reader schreiben den Ausgang jeder Methode auf <method>/output/status-code (int16) und status-text. Diese Werte sind eigene, nicht der obige Modulstatus:

Code Text

1

ok

0

idle

-1

busy

-2

invalidInput

-3

imageReadFailed

-4

sourceNotFound

-5

cropInvalid

-6

writeFailed

-7

algorithmFailed

-8

publishFailed

-9

moduleNotFound

-10

moduleExists

-11

licenseUnavailable

Beachten Sie, dass -5 hier cropInvalid bedeutet, im Modulstatus dagegen restartRequired.

Ergebnisse eines Methodenaufrufs

Ein Schreibvorgang auf einen execute-Knoten meldet, ob die Operation ausgeführt werden konnte. Die Namen unterscheiden sich zwischen den Data Layern; die Bedeutung ist dieselbe.

LumiScan Keryx ctrlX Data Layer OPC UA Connector Bedeutung und Vorgehen

Ok

DL_OK

Good

Die Operation wurde ausgeführt. Bei Cam Driver, AI Object Matching und Calibration lesen Sie für den Ausgang control/status/code

TooManyOperations

DL_TOO_MANY_OPERATIONS

BadTooManyOperations

Eine andere Operation des Moduls läuft. Wiederholen Sie den Aufruf

InvalidOperationMode

DL_INVALID_OPERATION_MODE

BadInvalidState

Die Funktion ist nicht bereit: Ihr ready ist false, keine Lizenz, die Kamera ist nicht verbunden, ein Stream läuft. Bringen Sie das Modul zuerst in den Zustand; bloßes Wiederholen schlägt weiter fehl

ResourceUnavailable

DL_RESOURCE_UNAVAILABLE

BadResourceUnavailable

Die App wird beendet, ein Neustart ist erforderlich (Status -5), oder ein AI-Modul hat einen Fehler. Lesen Sie den Status; starten Sie die App neu, wenn erforderlich

Rejected

DL_INVALID_VALUE

BadRequestNotAllowed

Eine Eingabe ist ungültig. Nichts wurde geändert. Korrigieren Sie die Eingabe

NodeNotFound

DL_INVALID_ADDRESS

BadNodeIdUnknown

Ein Bild, eine Quelle, ein Modul oder der Knoten selbst wurde nicht gefunden. Prüfen Sie die Adresse und ihre Groß-/Kleinschreibung

CreationFailed

DL_CREATION_FAILED

BadCommunicationError oder BadInternalError

Etwas konnte nicht geschrieben oder angelegt werden: eine Datei, ein bereits vorhandenes Modul, eine nicht verfügbare Lizenz. Das Log nennt den Grund

InternalError

DL_FAILED

BadInternalError

Die Operation ist fehlgeschlagen. Lesen Sie den Status oder das Log

Auf dem ctrlX Data Layer erreichen Daten, die eine Methode an einen fehlgeschlagenen Aufruf anhängt, den Client nicht; ein abgelehnter Aufruf enthält daher keinen Grund. Die Apps schreiben den Grund deshalb in ihr Log und, wo vorhanden, in einen Statusknoten.