---
title: "Execute-Methoden"
description: "Execute-Methoden der LumiScan-Apps - ein Schreibvorgang, der zurückkehrt, wenn die Operation abgeschlossen ist, die zwei zu prüfenden Ergebnisse und wo jede App Eingaben, Ausgaben und Status einer Methode ablegt."
product: "LumiScan Keryx"
component: "lumiscan-keryx-de"
version: "1.0.0"
display_version: "1.0.0.7"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/execute.html"
---

# Execute-Methoden – LumiScan Keryx

Eine Execute-Methode ist für eine Operation gedacht, die innerhalb von etwa 1 s abgeschlossen ist. Der Client schreibt einen beliebigen Wert auf den `execute`-Knoten der Methode, und der Schreibvorgang kehrt zurück, wenn die Operation abgeschlossen ist. Ein Schreibvorgang, kein Zustand, den man verfolgen muss.

## Eine Methode aufrufen

1. Schreiben Sie die Eingaben der Methode. Eine Methode hat keine eigenen Argumente: Ihre Eingaben sind separate Knoten.

2. Schreiben Sie auf den `execute`-Knoten der Methode, zum Beispiel `hdvisionsystems/lumiscan-cam-driver/camera1/control/capture/execute`.

3. Prüfen Sie **beide** Ergebnisse:

   a. **Das Ergebnis des Schreibvorgangs: Konnte die Operation überhaupt ausgeführt werden?** Ein abgelehnter Schreibvorgang wird nie in eine Warteschlange gestellt. Siehe [Ergebnisse eines Methodenaufrufs](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/status-codes.html#method-results).

   b. **Der Ausgang: War die Operation erfolgreich?** Wo Sie ihn lesen, hängt von der App ab, siehe unten.

4. Lesen Sie die Ausgaben.

## Wo Eingaben, Ausgaben und Ausgang stehen {#where}

| Apps | Knoten | Eine fehlgeschlagene Operation zeigt sich als |
| --- | --- | --- |
| Cam Driver, AI Object Matching, Calibration | `<module>/control/<function>/execute`; `input/…` und `output/…` des Moduls, dieselben, die der Handshake verwendet | `control/status/code` und `text`, während der Schreibvorgang selbst meldet, dass sie ausgeführt wurde. **Lesen Sie nach dem Schreibvorgang immer den Status.** Ein abgelehnter Schreibvorgang lässt den Status unverändert |
| Template Finder, Object Finder, Area Detector, Text Reader | `<module>/<method>/execute`, `<module>/<method>/input/…`, `<module>/<method>/output/result`, `output/status-code`, `output/status-text` | `<method>/output/status-code` und `status-text`, **und** der Schreibvorgang schlägt mit dem passenden Ergebnis fehl |
| DMC, QR, Aztec und Barcode Reader | `<app>/execute`, `<app>/input/…`, `<app>/output/results` | der Schreibvorgang schlägt fehl; der Grund steht im Log der Anwendung |

Der `status-code` der Finder hat eigene Werte, siehe [Ausführungsstatus der Finder](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/status-codes.html#execution-status).

Die Funktionen unter `system/` jeder App sind Methoden der zweiten Art: `system/<function>/execute` mit `input/…` sowie `output/status-code`, `status-text`. Eine Funktion der gesamten App im neueren Aufbau ist `system/control/<function>/execute`, zum Beispiel `system/control/restart/execute`.

## Wann eine Methode ausgeführt wird {#ready}

Eine Methode von Cam Driver, AI Object Matching oder Calibration prüft dasselbe Signal `control/<function>/ready`, das ihr Handshake verwendet, und wird abgelehnt, solange es `false` ist. Die meisten Funktionen hängen von etwas ab, das vorher geschehen muss - eine verbundene Kamera, ein geladenes Netz, ein Bild zum Speichern. Das Handbuch der App gibt an, wann jedes `ready` `true` ist.

Wird eine Methode abgelehnt, lesen Sie ihr `ready` zusammen mit `control/status/code` und `status/text`: `ready` benennt die fehlende Vorbedingung, und der Statustext enthält noch die Meldung des Fehlers, der sie verursacht hat.

## Timeouts {#timeouts}

Beachten Sie, dass der Aufrufer blockiert ist, bis die Methode zurückkehrt. Bei LumiScan Keryx gibt ein Client standardmäßig nach 2 s auf; der OPC UA Connector wartet bis zu 60 s auf einen Methodenaufruf. Eine Funktion, die länger dauern kann, wird nur als [Handshake](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/handshake.html) angeboten.

## Eine Operation zur Zeit {#busy}

Ein Modul führt jeweils eine Operation aus. Eine Methode, die aufgerufen wird, während eine andere Operation desselben Moduls läuft - ein Execute, ein Handshake oder bei den Findern ein Bild eines Streams -, wird als belegt abgelehnt (`TooManyOperations`, ctrlX `DL_TOO_MANY_OPERATIONS`). Wiederholen Sie den Aufruf: Derselbe Aufruf gelingt, sobald die laufende Operation abgeschlossen ist.

Eine Operation, die mit einem laufenden Stream kollidiert, wird anders abgelehnt: `capture` des Cam Driver und `inference` von AI Object Matching sind nicht bereit, solange ihr Stream läuft (`InvalidOperationMode`, ctrlX `DL_INVALID_OPERATION_MODE`). Wiederholen hilft nicht; stoppen Sie zuerst den Stream, siehe [Streams](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/streams.html#collisions).
