Adressen und Module
Die Adresse eines Knotens
hdvisionsystems/<app>/<module>/<folder>/... die Knoten eines Moduls
hdvisionsystems/<app>/system/... was die ganze App oder mehrere Module betrifft
types/hdvisionsystems/<app>/<type> die FlatBuffers-Typen, die die App veröffentlicht
<app>-
Der Name der App auf dem Data Layer, in Kleinbuchstaben mit
-, zum Beispiellumiscan-cam-driver. Er ist nicht immer der Name des Programms: Das Programmlumiscan-ai-obj-matbedientlumiscan-ai-object-matching, undlumiscan-calibbedientlumiscan-calibration. <module>-
Eine Instanz innerhalb der App: eine Kamera, ein neuronales Netz, eine Kalibrierebene, ein Finder-Modul. Ihr Name stammt aus den Einstellungen der App. Die Code Reader haben keine Modulebene.
Beispiel: hdvisionsystems/lumiscan-cam-driver/camera1/control/connect-camera/request.
Modulnamen
-
Adressen sind kleingeschrieben. Ein Knoten, den Sie nicht finden, ist fast immer eine Abweichung in Groß-/Kleinschreibung oder Schreibweise.
-
Modulnamen bestehen aus Kleinbuchstaben, Ziffern,
-und_. Cam Driver und AI Object Matching lehnen jeden anderen Modulnamen ab: Ein solches Modul erscheint nicht auf dem Data Layer. Calibration benennt ein Modul nach seiner Datei und verwendet den Namen in Kleinbuchstaben. -
systemist reserviert und nie ein Modulname.
Die Ordner eines Moduls
| Ordner | Enthält |
|---|---|
|
die Funktionen: |
|
was ein Client schreibt, bevor er eine Funktion startet |
|
die Ergebnisse der Funktionen, schreibgeschützt |
|
eine schreibgeschützte Ansicht dessen, was das Modul anwendet, zum Beispiel |
Einige Apps haben eigene Ordner, zum Beispiel beim Cam Driver device-info/,
transport-layer/ und features/.
Wo eine Funktion ihre Knoten ablegt
Eine Execute-Methode legt alles, was zu ihr gehört, unter ihrer Funktion ab:
<module>/control/<function>/execute
<module>/control/<function>/input/...
<module>/control/<function>/output/...
Ein Handshake hat ready und request unter seiner Funktion und verwendet die Eingaben und Ausgaben des
Moduls:
<module>/control/<function>/ready
<module>/control/<function>/request
<module>/input/...
<module>/output/...
<module>/control/status/code, text
Eine Funktion, die beides hat - die meisten Funktionen von Cam Driver, AI Object Matching und Calibration -,
verwendet für beide Aufrufarten input/ und output/ des Moduls.
Der Aufbau jeder App
Einige Apps behalten einen älteren Aufbau bei, damit Programme, die dafür geschrieben wurden, weiter funktionieren.
| App | Modul benannt nach | Funktionen |
|---|---|---|
Cam Driver |
|
|
AI Object Matching |
|
|
Calibration |
dem Namen der Moduldatei ohne |
|
Template Finder, Object Finder, Area Detector, Text Reader |
der an |
|
DMC, QR, Aztec und Barcode Reader |
keine Modulebene |
|
Cockpit |
keine: Cockpit liest nur die Knoten der anderen Apps |
|
Die genauen Knoten jeder App stehen in der Data Layer Reference ihres Handbuchs.
Der Knoten system
Alles, was nicht ein einzelnes Modul betrifft, liegt unter hdvisionsystems/<app>/system/: Module anlegen und
entfernen, die Einstellungsdateien, die Geräteerkennung und Ressourcen, die alle Module gemeinsam nutzen. Die Code
Reader haben dort nur system/meta/subscription-schema. Siehe Einstellungen, Module und Neustart.
Typen
| Typ | Verwendet für |
|---|---|
bool, int16, int32, uint32, uint64, float32, float64, string |
einfache Werte: Eingaben, Flags, Zähler, Statuscodes ( |
Arrays dieser Typen |
zum Beispiel die Koordinaten-Arrays von Calibration |
FlatBuffers |
Ergebnisse und Bilder. Ihre Schemas liegen auf dem Data Layer unter |
Bauen Sie SPS-Logik auf den einfachen Werten auf. Ein FlatBuffers-Ergebnis benötigt zum Dekodieren sein Schema; jedes Ergebnis, das eine SPS üblicherweise benötigt, ist auch als einfache Knoten verfügbar - siehe das Handbuch der App.