write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge (Operator)
Name
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge — Speichern von Informationen über das hardwareabhängige Verhalten der
automatischen Operator-Parallelisierung.
Signatur
void WriteAopKnowledge(const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)
static void HSystem::WriteAopKnowledge(const HString& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)
static void HSystem::WriteAopKnowledge(const HString& FileName, const HString& GenParamName, const HString& GenParamValue)
static void HSystem::WriteAopKnowledge(const char* FileName, const char* GenParamName, const char* GenParamValue)
static void HSystem::WriteAopKnowledge(const wchar_t* FileName, const wchar_t* GenParamName, const wchar_t* GenParamValue)
(Nur Windows)
Beschreibung
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge speichert das operatorspezifische Wissen zur
automatischen Operator-Parallelisierung (AOP) in einer Datei ab.
Diese Wissen wird vom HALCON-System verwaltet und genutzt, um
Mehrprozessorarchitekturen besser nutzen und die Operatoren zu
beschleunigen. Es beschreibt für jeden Operator, der sich auf Tupel-,
Kanal- oder auf Domain-Ebene parallelisieren lässt, das Laufzeitverhalten in
Abhängigkeit der Hardware. Dieses Hardware spezifische Wissen kann mit Hilfe
des Operators optimize_aopoptimize_aopOptimizeAopOptimizeAopOptimizeAopoptimize_aop ermittelt oder von einer Datei mit
read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledgeread_aop_knowledge gelesen werden.
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge ermöglicht es, dieses Wissen explizit in einer
Binär-Datei abzuspeichern. Hierfür wird in FileNameFileNameFileNameFileNamefileNamefile_name der Name der
Datei übergeben (inkl. des Pfades und der Dateierweiterung). Falls
FileNameFileNameFileNameFileNamefileNamefile_name einen leerer String ''"""""""""" enthält, schreibt HALCON
die AOP-Informationen in die Datei '.aop_info'".aop_info"".aop_info"".aop_info"".aop_info"".aop_info" im HALCON
Installationsverzeichnis (Linux/macOS) oder im gemeinsame Datenverzeichnis
für Applikationen (Windows). Diese spezielle Datei wird automatisch
während der Initialisierungsphase des ersten HALCON Operators geladen.
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge fügt dem gespeicherten Wissen Attribute wie
den Computernamen und Informationen über die HALCON-Architektur, -Variante,
-Version und -Revision hinzu. Das ermöglicht es HALCON, AOP-Informationen
von verschiedenen Systemen in dieselbe Datei zu schreiben. Zu diesem Zweck
kann write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge die Aktualisierung des Dateiinhalts mit dem
Parameterpaar GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
kontrollieren. GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name definiert dabei die Bedeutung,
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value den Wert der gewünschten Aktion. Dabei muss jeder
Eintrag in GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name jeweils einen korrespondierenden Eintrag in
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value haben, d.h. dass die Länge der Parametertupel gleich
lang sein muss. Im Folgenden sind die möglichen Werte für
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name gelistet und die jeweils möglichen Werte für
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value beschrieben:
- 'mode'"mode""mode""mode""mode""mode"
-
setzt die Art, wie das bestehende Wissen mit den
gleichen Attributen in der Datei aktualisiert wird.
- 'truncate'"truncate""truncate""truncate""truncate""truncate"
für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value löscht das
bestehende Wissen mit passenden Attributen, bevor die neuen
Informationen der Datei zugefügt werden.
- 'renew'"renew""renew""renew""renew""renew"
überschreibt bestehendes Wissen und fügt neues
hinzu (Standard).
- 'append'"append""append""append""append""append"
behält alle existierenden Operatorinformationen
und fügt nur noch nicht enthaltenes Wissen hinzu.
- 'nil'"nil""nil""nil""nil""nil"
unterdrückt jegliche Aktualisierung der Datei,
sondern überprüft nur die Datei hinsichtlich ausreichender
Benutzerrechte für einen Schreib- und Lesezugriff.
- 'operator'"operator""operator""operator""operator""operator"
weist darauf hin, dass der korrespondierende Wert
von GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value einen Operatornamen enthält. Damit
lassen sich die Operatoren eingrenzen, für welche entsprechendes
AOP-Wissen abgespeichert werden soll. Mehrere Operatoren können
definiert. Standardmäßig wird jede verfügbare Information aller
Operatoren geschrieben.
- 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type"
schränkt die zu speichernde Information
auf einen bestimmten ikonischen Typ ein. Folgende Werte werden
für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value unterstützt:
'byte'"byte""byte""byte""byte""byte", 'uint2'"uint2""uint2""uint2""uint2""uint2", 'real'"real""real""real""real""real", 'int1'"int1""int1""int1""int1""int1",
'int2'"int2""int2""int2""int2""int2", 'int4'"int4""int4""int4""int4""int4", 'int8'"int8""int8""int8""int8""int8", 'direction'"direction""direction""direction""direction""direction",
'vector_field'"vector_field""vector_field""vector_field""vector_field""vector_field", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic", 'vector_field'"vector_field""vector_field""vector_field""vector_field""vector_field",
'complex'"complex""complex""complex""complex""complex", 'region'"region""region""region""region""region", 'xld'"xld""xld""xld""xld""xld". Es können mehrere
ikonische Typen festgelegt werden.
Ausführungsinformationen
- Multithreading-Typ: exclusive (läuft parallel nur zu unabhängigen Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
FileNameFileNameFileNameFileNamefileNamefile_name (input_control) filename.write → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Name der Informationsdatei
Defaultwert:
''
""
""
""
""
""
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) string(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Filtert die zu schreibende Information
Defaultwert:
'none'
"none"
"none"
"none"
"none"
"none"
Wertevorschläge: 'mode'"mode""mode""mode""mode""mode", 'operator'"operator""operator""operator""operator""operator", 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control) string(-array) → HTupleMaybeSequence[Union[str, int, float]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Spezifiziert den Filter
Parameteranzahl: GenParamName == GenParamValue
Defaultwert:
'none'
"none"
"none"
"none"
"none"
"none"
Wertevorschläge: 'truncate'"truncate""truncate""truncate""truncate""truncate", 'renew'"renew""renew""renew""renew""renew", 'append'"append""append""append""append""append"
Ergebnis
Sind die Parameterwerte korrekt, dann liefert read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledgeread_aop_knowledge
den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Modul
Foundation