KlassenKlassenKlassenKlassen | | | | Operatoren

read_aop_knowledgeT_read_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge (Operator)

Name

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

Signatur

read_aop_knowledge( : : FileName, GenParamName, GenParamValue : Attributes, OperatorNames)

Herror T_read_aop_knowledge(const Htuple FileName, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Attributes, Htuple* OperatorNames)

Herror read_aop_knowledge(const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Attributes, HTuple* OperatorNames)

void ReadAopKnowledge(const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Attributes, HTuple* OperatorNames)

static HTuple HSystem::ReadAopKnowledge(const HString& FileName, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* OperatorNames)

static HTuple HSystem::ReadAopKnowledge(const HString& FileName, const HString& GenParamName, const HString& GenParamValue, HString* OperatorNames)

static HTuple HSystem::ReadAopKnowledge(const char* FileName, const char* GenParamName, const char* GenParamValue, HString* OperatorNames)

void HOperatorSetX.ReadAopKnowledge(
[in] VARIANT FileName, [in] VARIANT GenParamName, [in] VARIANT GenParamValue, [out] VARIANT* Attributes, [out] VARIANT* OperatorNames)

VARIANT HSystemX.ReadAopKnowledge(
[in] BSTR FileName, [in] VARIANT GenParamName, [in] VARIANT GenParamValue, [out] VARIANT* OperatorNames)

static void HOperatorSet.ReadAopKnowledge(HTuple fileName, HTuple genParamName, HTuple genParamValue, out HTuple attributes, out HTuple operatorNames)

static HTuple HSystem.ReadAopKnowledge(string fileName, HTuple genParamName, HTuple genParamValue, out HTuple operatorNames)

static HTuple HSystem.ReadAopKnowledge(string fileName, string genParamName, string genParamValue, out string operatorNames)

Beschreibung

read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge wird verwendet, um die automatische Operator-Parallelisierung (AOP) der HALCON-Operatoren zu unterstützen. HALCON verwendet intern einen Parallelisierungsmechanismus, um Mehrprozessorarchitekturen besser zu nutzen und die Bearbeitungsdauer von Operatoren zu verkürzen. Um diese Parallelisierung automatisch, optimiert durchführen zu können, benötigt HALCON spezielles Wissen über die verwendete Hardware bzw. über deren Potential, die verschiedenen HALCON-Operatoren parallel zu verarbeiten. Dieses Wissen ist rechnerspezifisch und kann mit dem Operator optimize_aopoptimize_aopOptimizeAopoptimize_aopOptimizeAopOptimizeAop und write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledge trainiert und abgespeichert werden.

Mit read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge ist es möglich, dieses Wissen explizit aus einer Binärdatei zu laden. Dabei definiert FileNameFileNameFileNameFileNameFileNamefileName den Namen der Datei mit Pfad und Dateierweiterung. Falls ein leerer String ''"""""""""" übergeben wird, liest HALCON die Informationen aus der spezifischen Datei '.aop_info'".aop_info"".aop_info"".aop_info"".aop_info"".aop_info" im HALCON Installationsverzeichnis (Linux/macOS) oder aus dem gemeinsamen Datenverzeichnis für Anwendungen (Windows). Diese Datei wird auch von HALCON automatisch während der Initialisierungsphase gelesen, kann aber mit read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge leicht wieder eingelesen werden und so das gespeicherte Wissen gegebenenfalls wieder restaurieren. Die Art und Weise wie das gelesene Wissen die vorhandene Systeminformation aktualisiert, kann mit Hilfe des Parameterpaares GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue gesteuert werden. Dabei muss jeder Wert in GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName einen korrespondierenden Definitionswert in GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue haben. D.h. die Länge der Parameterarrays muss gleich groß sein.

'ignore_attrib'"ignore_attrib""ignore_attrib""ignore_attrib""ignore_attrib""ignore_attrib"

für GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName ermöglicht es, das Überprüfen der Wissensattribute zu beeinflussen. Beispielsweise überprüft read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge während des Lesens, ob der Inhalt der Datei den aktuell verwendeten Computer, die HALCON-Version, -Revision und -Architektur betrifft. Die entsprechenden Attribute können mit Hilfe der folgenden Werte für GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue unterdrückt werden:

'host'"host""host""host""host""host"

der Computername des aktuellen Rechners

'cpu_info'"cpu_info""cpu_info""cpu_info""cpu_info""cpu_info"

die Rechnertopologie

'variant'"variant""variant""variant""variant""variant"

die HALCON-Variante

'version'"version""version""version""version""version"

die HALCON-Version

'revision'"revision""revision""revision""revision""revision"

die HALCON-Revision

'architecture'"architecture""architecture""architecture""architecture""architecture"

die HALCON Architektur

Dabei können mehrere, unterschiedliche Attribute unterdrückt werden.

'mode'"mode""mode""mode""mode""mode"

setzt die Art und Weise, wie die System-Informationen aktualisiert werden.

'truncate'"truncate""truncate""truncate""truncate""truncate"

für GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue löscht alle existierenden Informationen bevor das Wissen aus der Datei hinzugefügt wird.

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

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

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

behält das existierende Wissen und fügt nur das Wissen hinzu, welches noch nicht enthalten ist.

'nil'"nil""nil""nil""nil""nil"

verweigert jegliche Aktualisierung gibt aber die Wissensattribute in AttributesAttributesAttributesAttributesAttributesattributes und alle in der Datei enthaltenen Operatoren in OperatorNamesOperatorNamesOperatorNamesOperatorNamesOperatorNamesoperatorNames.

'operator'"operator""operator""operator""operator""operator"

für GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName legt fest, dass der korrespondierende Index von GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue einen Namen eines Operators enthält, dessen spezifisches AOP-Wissen aus der Datei gelesen und im System aktualisiert werden soll. Mehrfache Definitionen von Operatoren sind möglich. Standardmäßig werden die Informationen zu allen, in der Datei enthalten Operatoren gelesen.

'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type"

beschränkt sich auf AOP-Information eines bestimmten ikonischen Typs. Folgende Typen können mit GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue spezifiziert werden: '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". Mehrfache Definitionen von ikonischen Typen sind möglich.

Die Namen der aktualisierten Operatoren werden in OperatorNamesOperatorNamesOperatorNamesOperatorNamesOperatorNamesoperatorNames zurückgegeben, die Attribute der enthaltenen Information in AttributesAttributesAttributesAttributesAttributesattributes. Letzteres Tupel kodiert folgende Bedeutungen mit aufsteigendem Index, beginnend mit 0: Rechnername, HALCON-Variante, HALCON-Version, HALCON-Revision, HALCON-Architektur.

Parallelisierung

Parameter

FileNameFileNameFileNameFileNameFileNamefileName (input_control)  filename.read HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Name der Informationsdatei.

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

GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Filtert die zu ladende Information.

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

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

GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Spezifiziert den Filter.

Parameteranzahl: GenParamName == GenParamValue

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

Wertevorschläge: 'none'"none""none""none""none""none", 'host_name'"host_name""host_name""host_name""host_name""host_name", 'variant'"variant""variant""variant""variant""variant", 'architecture'"architecture""architecture""architecture""architecture""architecture", 'version'"version""version""version""version""version", 'revision'"revision""revision""revision""revision""revision", 'byte'"byte""byte""byte""byte""byte", 'int1'"int1""int1""int1""int1""int1", 'int2'"int2""int2""int2""int2""int2", 'uint2'"uint2""uint2""uint2""uint2""uint2", 'int4'"int4""int4""int4""int4""int4", 'int8'"int8""int8""int8""int8""int8", 'direction'"direction""direction""direction""direction""direction", '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", 'xld_cont'"xld_cont""xld_cont""xld_cont""xld_cont""xld_cont", 'xld_poly'"xld_poly""xld_poly""xld_poly""xld_poly""xld_poly", 'nil'"nil""nil""nil""nil""nil", 'truncate'"truncate""truncate""truncate""truncate""truncate", 'replace'"replace""replace""replace""replace""replace", 'renew'"renew""renew""renew""renew""renew", 'append'"append""append""append""append""append"

AttributesAttributesAttributesAttributesAttributesattributes (output_control)  string-array HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Attribute der geladenen Information.

OperatorNamesOperatorNamesOperatorNamesOperatorNamesOperatorNamesoperatorNames (output_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Gelesene Operatoren.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt. HALCON verwendet intern einen Parallelisierungsmechanismus, um Mehrprozessorarchitekturen besser zu nutzen und die Bearbeitungsdauer von Operatoren zu verkürzen. Um diese Parallelisierung automatisch, optimiert durchführen zu können, benötigt HALCON spezielles Wissen über die verwendete Hardware bzw. über deren Potential, die verschiedenen HALCON-Operatoren parallel zu verarbeiten. Dieses Wissen ist rechnerspezifisch und kann man mit Hilfe der Operatoren optimize_aopoptimize_aopOptimizeAopoptimize_aopOptimizeAopOptimizeAop und read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledge erhalten.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren