write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledge (Operator)

Name

write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledge — Speichern von Informationen über das hardwareabhängige Verhalten der automatischen Operator-Parallelisierung.

Signatur

write_aop_knowledge( : : FileName, GenParamName, GenParamValue : )

Herror write_aop_knowledge(const char* FileName, const char* GenParamName, const char* GenParamValue)

Herror T_write_aop_knowledge(const Htuple FileName, const Htuple GenParamName, const Htuple GenParamValue)

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)

static void HOperatorSet.WriteAopKnowledge(HTuple fileName, HTuple genParamName, HTuple genParamValue)

static void HSystem.WriteAopKnowledge(string fileName, HTuple genParamName, HTuple genParamValue)

static void HSystem.WriteAopKnowledge(string fileName, string genParamName, string genParamValue)

Beschreibung

write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledge 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_aopOptimizeAopOptimizeAopOptimizeAop ermittelt oder von einer Datei mit read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledge gelesen werden.

write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledge ermöglicht es, dieses Wissen explizit in einer Binär-Datei abzuspeichern. Hierfür wird in FileNameFileNameFileNameFileNamefileName der Name der Datei übergeben (inkl. des Pfades und der Dateierweiterung). Falls FileNameFileNameFileNameFileNamefileName einen leerer String ''"""""""" enthält, schreibt HALCON die AOP-Informationen in die Datei '.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_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledge 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_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledge die Aktualisierung des Dateiinhalts mit dem Parameterpaar GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue kontrollieren. GenParamNameGenParamNameGenParamNameGenParamNamegenParamName definiert dabei die Bedeutung, GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue den Wert der gewünschten Aktion. Dabei muss jeder Eintrag in GenParamNameGenParamNameGenParamNameGenParamNamegenParamName jeweils einen korrespondierenden Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue haben, d.h. dass die Länge der Parametertupel gleich lang sein muss. Im Folgenden sind die möglichen Werte für GenParamNameGenParamNameGenParamNameGenParamNamegenParamName gelistet und die jeweils möglichen Werte für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue beschrieben:

'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"

für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue löscht das bestehende Wissen mit passenden Attributen, bevor die neuen Informationen der Datei zugefügt werden.

'renew'"renew""renew""renew""renew"

überschreibt bestehendes Wissen und fügt neues hinzu (Standard).

'append'"append""append""append""append"

behält alle existierenden Operatorinformationen und fügt nur noch nicht enthaltenes Wissen hinzu.

'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"

weist darauf hin, dass der korrespondierende Wert von GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue 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"

schränkt die zu speichernde Information auf einen bestimmten ikonischen Typ ein. Folgende Werte werden für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue unterstützt: 'byte'"byte""byte""byte""byte", 'uint2'"uint2""uint2""uint2""uint2", 'real'"real""real""real""real", 'int1'"int1""int1""int1""int1", 'int2'"int2""int2""int2""int2", 'int4'"int4""int4""int4""int4", 'int8'"int8""int8""int8""int8", 'direction'"direction""direction""direction""direction", 'vector_field'"vector_field""vector_field""vector_field""vector_field", 'cyclic'"cyclic""cyclic""cyclic""cyclic", 'vector_field'"vector_field""vector_field""vector_field""vector_field", 'complex'"complex""complex""complex""complex", 'region'"region""region""region""region", 'xld'"xld""xld""xld""xld". Es können mehrere ikonische Typen festgelegt werden.

Ausführungsinformationen

Parameter

FileNameFileNameFileNameFileNamefileName (input_control)  filename.write HTupleHTupleHtuple (string) (string) (HString) (char*)

Name der Informationsdatei

Defaultwert: '' "" "" "" ""

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Filtert die zu schreibende Information

Defaultwert: 'none' "none" "none" "none" "none"

Wertevorschläge: 'mode'"mode""mode""mode""mode", 'operator'"operator""operator""operator""operator", 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  string(-array) HTupleHTupleHtuple (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"

Wertevorschläge: 'truncate'"truncate""truncate""truncate""truncate", 'renew'"renew""renew""renew""renew", 'append'"append""append""append""append"

Ergebnis

Sind die Parameterwerte korrekt, dann liefert read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledge den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Modul

Foundation