---
title: "Aufrufmuster wählen"
description: "Die drei Arten, eine Funktion einer LumiScan-App auf dem Data Layer aufzurufen - Handshake, Execute-Methode und Stream - und wann Sie welche verwenden."
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/calling-functions.html"
---

# Aufrufmuster wählen – LumiScan Keryx

Jede Funktion einer LumiScan-App wird auf eine von drei Arten aufgerufen.

|   | [Handshake](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/handshake.html) | [Execute-Methode](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/execute.html) | [Stream](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/streams.html) |
| --- | --- | --- | --- |
| Für | Operationen, die länger als etwa 1 s dauern oder deren Dauer unbekannt ist | Operationen innerhalb von etwa 1 s | jedes Element, das eine Quelle erzeugt, sobald es eintrifft |
| Der Client | schreibt `request`, pollt `ready` und den Status; nichts blockiert | schreibt die Methode einmal; der Schreibvorgang kehrt zurück, wenn die Operation abgeschlossen ist | abonniert einmal; die Apps senden jedes Ergebnis |
| Das Ergebnis | `control/status/code` und die Ausgaben | das Ergebnis des Schreibvorgangs (konnte die Operation ausgeführt werden?), dann der Status (war sie erfolgreich?) | jedes gesendete Ergebnis |
| Beispiele | `connect-camera`, `reset`, `inference` | `capture`, `trigger`, `transform`, `find-template` | Kamerabilder in AI Object Matching, einen Finder oder einen Code Reader |

## Warum etwa 1 s

Eine Execute-Methode hält ihren Aufrufer fest, bis die Operation abgeschlossen ist: eine SPS-Task oder einen Client, dessen Anfrage in ein Timeout läuft. Bei LumiScan Keryx gibt ein Client standardmäßig nach 2 s auf. Eine Operation, die länger dauern kann, ist daher ein Handshake, den der Aufrufer pollt, statt zu warten. Deshalb bietet der Cam Driver `connect-camera`, `disconnect-camera` und `reset` nur als Handshakes an.

## Auf Anfrage oder als Stream

|   | Auf Anfrage (Handshake oder Execute) | Stream |
| --- | --- | --- |
| Wer die Arbeit anstößt | Ihr Programm: ein Aufruf pro Bild oder pro Punkt | die Quelle: Jedes Bild, das die Kamera liefert, startet die nächste App |
| Wie die Apps zusammenhängen | unabhängig; Ihr Programm trägt die Daten von einer zur nächsten | verkettet; jede App abonniert die vorherige |
| Geschwindigkeit (eine Kamera, ein PC, gemessen) | etwa 34 Bilder pro Sekunde vom Cam Driver | 63 bis 68 Bilder pro Sekunde vom Cam Driver |

Verwenden Sie **auf Anfrage** für einzelne, langsame oder unregelmäßige Operationen: die Kamera verbinden, ein Bild aufnehmen, einige bereits vorhandene Punkte transformieren. Verwenden Sie einen **Stream** für kontinuierliche Arbeit: Die Kamera liefert ein Bild, AI Object Matching findet die Objekte, Calibration wandelt sie in Koordinaten um, und Ihr Programm liest nur das Ergebnis.

**Eine Implementierung, mehrere Muster.** Wo eine App dieselbe Arbeit in mehr als einem Muster anbietet, teilen diese sich eine Implementierung und eine Sperre pro Modul. Das Ergebnis ist dasselbe, und zwei Operationen eines Moduls überschneiden sich nie.

## Welche App was bietet

| App | Handshake | Execute | Stream |
| --- | --- | --- | --- |
| Cam Driver | ja | ja | erzeugt Bilder |
| AI Object Matching | ja | ja | konsumiert Bilder, erzeugt Detektionen |
| Calibration | ja | ja | konsumiert Punkte oder Ergebnisse, erzeugt 3D-Punkte |
| Template Finder, Object Finder, Area Detector, Text Reader | – | ja | konsumieren Bilder, erzeugen Ergebnisse |
| DMC, QR, Aztec und Barcode Reader | – | ja | konsumieren Bilder, erzeugen Codes |

Das Handbuch jeder App listet ihre Funktionen auf und welche Muster jede davon bietet.
