query_aop_infoT_query_aop_infoQueryAopInfoQueryAopInfoquery_aop_info (Operator)
Name
query_aop_infoT_query_aop_infoQueryAopInfoQueryAopInfoquery_aop_info — Abfragen von Indizierungs-Informationen über HALCONs automatische
Operator-Parallelisierung.
Signatur
void QueryAopInfo(const HTuple& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, HTuple* Name, HTuple* Value)
static HTuple HSystem::QueryAopInfo(const HTuple& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, HTuple* Value)
static HTuple HSystem::QueryAopInfo(const HString& OperatorName, const HString& IndexName, const HString& IndexValue, HTuple* Value)
static HTuple HSystem::QueryAopInfo(const char* OperatorName, const char* IndexName, const char* IndexValue, HTuple* Value)
static HTuple HSystem::QueryAopInfo(const wchar_t* OperatorName, const wchar_t* IndexName, const wchar_t* IndexValue, HTuple* Value)
(Nur Windows)
static void HOperatorSet.QueryAopInfo(HTuple operatorName, HTuple indexName, HTuple indexValue, out HTuple name, out HTuple value)
static HTuple HSystem.QueryAopInfo(HTuple operatorName, HTuple indexName, HTuple indexValue, out HTuple value)
static HTuple HSystem.QueryAopInfo(string operatorName, string indexName, string indexValue, out HTuple value)
def query_aop_info(operator_name: Union[str, int], index_name: MaybeSequence[Union[str, int]], index_value: MaybeSequence[Union[str, int]]) -> Tuple[Sequence[str], Sequence[str]]
Beschreibung
HALCON unterstützt einen Mechanismus, um das Verhalten der automatischen
Parallelisierung von Operatoren (AOP) an Mehrprozessorarchitekturen
anzupassen und Operatoren zu beschleunigen.
Dazu können für jeden Operator, der sich auf Tupel-, Kanal- oder
Domain-Ebene parallelisieren lässt, mit Hilfe von
optimize_aopoptimize_aopOptimizeAopOptimizeAopOptimizeAopoptimize_aop Abhängigkeiten des Laufzeitverhaltens von der
Hardware und Eingabeparametern ermittelt werden und durch die Operatoren
get_aop_infoget_aop_infoGetAopInfoGetAopInfoGetAopInfoget_aop_info und set_aop_infoset_aop_infoSetAopInfoSetAopInfoSetAopInfoset_aop_info teilweise gelesen oder
verändert werden. Um diese operatorspezifischen Informationen
adressieren zu können, sind die Daten in einer 3-stufigen Hierarchie
indizierbar, die sich mit query_aop_infoquery_aop_infoQueryAopInfoQueryAopInfoQueryAopInfoquery_aop_info abfragen
lässt. Die drei Indizierungsstufen setzen sich durch den
Operatornamen, den ikonischen Bildtyp und optional einen
Parameterstring zusammen, der einen speziellen Modus oder Methode des
Operators spezifiziert.
Übergibt man in OperatorNameOperatorNameOperatorNameOperatorNameoperatorNameoperator_name einen leeren String ''"""""""""",
werden die Parameter IndexNameIndexNameIndexNameIndexNameindexNameindex_name und IndexValueIndexValueIndexValueIndexValueindexValueindex_value
ignoriert und alle Operatornamen in ValueValueValueValuevaluevalue zurückgegeben, für
die AOP-Optimierungsdaten vorhanden sind. NameNameNameNamenamename enthält für
jeden Operatornamen die entsprechende Indexkennung
'operator'"operator""operator""operator""operator""operator". Wird ein einzelner Operatorname mit
OperatorNameOperatorNameOperatorNameOperatorNameoperatorNameoperator_name spezifiziert und ein leerer String ''""""""""""
den Parametern IndexNameIndexNameIndexNameIndexNameindexNameindex_name und IndexValueIndexValueIndexValueIndexValueindexValueindex_value übergeben,
werden alle ikonischen Typen erfragt, für die der Operator Informationen
vorhält. ValueValueValueValuevaluevalue enthält den ikonischen Typ in Form eines
Strings, NameNameNameNamenamename die Indexkennung
'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type". Schließlich können die Parameterkennungen
für einen ikonischen Typ eines Operators erfragt werden, wenn
OperatorNameOperatorNameOperatorNameOperatorNameoperatorNameoperator_name den Operatornamen, IndexNameIndexNameIndexNameIndexNameindexNameindex_name die
Kennung 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type" und IndexValueIndexValueIndexValueIndexValueindexValueindex_value den bestimmten
ikonischen Typ enthält. NameNameNameNamenamename enthält dann die
Parameterkennung, ValueValueValueValuevaluevalue den entsprechenden Parameterwert des
Operators, der eine spezielle Methode beschreibt Das Format des Strings der
Parameterkennung setzt sich aus dem String 'parameter'
zusammen, gefolgt von einem Doppelpunkt-Trennzeichen ':' und
einer Zahl, die die Parameterposition unter den
Eingabe-Kontrollparameter des Operators beschreibt (beginnend bei
1). Falls der Operator keinen Methode-Parameter unterstützt oder keine
parameterspezifischen Informationen für den Operator mit
optimize_aopoptimize_aopOptimizeAopOptimizeAopOptimizeAopoptimize_aop ermittelt wurden, wird der String
'parameter:0'"parameter:0""parameter:0""parameter:0""parameter:0""parameter:0" für NameNameNameNamenamename zurückgegeben, während
ValueValueValueValuevaluevalue einen leeren String enthält. Falls jedoch keine
AOP-Informationen für die spezifizierte Kennung vorliegen, enthält
NameNameNameNamenamename einen leeren String.
Ausführungsinformationen
- Multithreading-Typ: exclusive (läuft parallel nur zu unabhängigen Operatoren).
- Multithreading-Bereich: local (kann nur von dem Thread aufgerufen werden, in dem die Fenster-, Modell- oder Tool-Instanz erzeugt wurde).
- Wird ohne Parallelisierung verarbeitet.
Parameter
OperatorNameOperatorNameOperatorNameOperatorNameoperatorNameoperator_name (input_control) string → HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Operator für AOP-Information.
Defaultwert:
''
""
""
""
""
""
IndexNameIndexNameIndexNameIndexNameindexNameindex_name (input_control) string(-array) → HTupleMaybeSequence[Union[str, int]]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Indizierungsname.
Defaultwert:
''
""
""
""
""
""
Wertevorschläge: ''"""""""""", 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type"
IndexValueIndexValueIndexValueIndexValueindexValueindex_value (input_control) string(-array) → HTupleMaybeSequence[Union[str, int]]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Adressierungswert.
Parameteranzahl: IndexName == IndexValue
Defaultwert:
''
""
""
""
""
""
Wertevorschläge: ''"""""""""", '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"
NameNameNameNamenamename (output_control) string-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Nächster Indizierungsname.
ValueValueValueValuevaluevalue (output_control) string-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Zugehöriger Adressierungswert.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledgeread_aop_knowledge
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Modul
Foundation