2. 1 Objektbefehle
Die meisten simcron-Befehle sind objektorientiert. D.h., jedem
erzeugten Objekt wird ein spezifischer Befehlssatz zugeordnet, mit
dessen Hilfe auf das zugehörige Objekt zugegriffen werden kann. Ein
Teil der Objektbefehle ist unabhängig vom Objekttyp, die Mehrzahl
jedoch typbezogen und wird im entsprechenden Teil dokumentiert.
Darüber hinaus gibt es einige Befehle, die für den jeweiligen
Objekttyp definiert sind. Folgende Objekttypen (objtype)
werden durch den MODELLER bereitgestellt:
2. 1. 1 Typbefehle
SYNTAX
objtype option ?arg arg ...?
option und args bestimmen das exakte
Verhalten des Typbefehls. Die folgenden Befehle sind für alle
Objekttypen definiert:
| |
| objtype
count |
|
Gibt die Anzahl der Objekte vom Typ objtype
zurück. |
| |
| objtype
used ?pattern? |
|
Gibt eine Liste aller Objekte vom Type objtype
zurück, wenn kein Pattern angegeben wird. Mit Pattern
werden nur die Objekte zurückgegeben, die dem Pattern
entsprechen (.z.B. machine used machine1*). Die
Reihenfolge wird vom Objektverwalter bestimmt. Früher
erzeugte Objekte erscheinen in der Liste nach später
angelegten Objekten. (siehe auch zeitgleiche Ereignisse) |
| |
| objtype
table ?pattern? |
|
Gibt eine Liste aller Hashtable-Einträge der Objekte vom
Type objtype zurück. Bis auf die Reihenfolge
sollten die vom table- und used-Befehl
erzeugten Listen identisch sein. Eine Einschränkung kann
ebenfalls über die Angabe eines Patterns erfolgen. Der table-Befehl
ist allerdings schneller als der used-Befehl. |
| |
| objtype
create objCmd |
|
Ein neues Objekt vom Typ objtype mit dem
zugehörigen Objektbefehl objCmd wird erzeugt.
Enthält objCmd
Leerzeichen, so ist der String in Anführungszeichen zu
setzen (z.B. "M 3"). Groß- und Kleinbuchstaben werden
unterschieden. Der Versuch, einen bereits vorhandenen
Befehls-Namen zu vergeben, löst eine Fehlermeldung aus.
Das Objekt wird in diesem Fall nicht erzeugt.
Im Bezeichner objCmd
sind grundsätzlich alle Unicode Zeichen aus dem Latin-1
Code zugelassen. Es wird aber empfohlen, auf Zeichen zu
verzichten, die für den Tcl-Interpreter, das graphische
Toolkit oder in regulären Ausdrücken spezifische Bedeutung
besitzen. Dazu gehören alle Klammern ( )[ ]{ } sowie
weitere Steuerzeichen für den Interpreter „\$#::; als auch
die Atome bzw. Operatoren für reguläre Ausdrücke ^*?+.
Desweiteren sollte auch der Punkt nicht verwendet werden
und der Bezeichner sollte nicht ausschließlich aus Ziffern
zusammengesetzt sein (Verwechslungsgefahr mit
Canvas-Tags). Ob ein String als Objektbezeichner toleriert
wird, hängt nichtzuletzt von der Art der Anwendung ab (mit
oder ohne graphische Oberfläche, Verwendung von
Objektbezeichnern in Skripten usw.). Probleme lassen sich
zuverlässig vermeiden, indem man entweder die automatische
Erzeugung von Objektbezeichnern nutzt (Befehl objtype) oder nur
Objektbezeichner vergibt, die auch als Variablennamen in
der Programmiersprache C zulässig sind:
Namen bestehen aus Buchstaben, Ziffern und/oder dem
Unterstrich _. Der Name darf nicht ausschließlich aus
Ziffern bestehen, darf aber (abweichend von der
C-Konvention) auch mit einer Ziffer beginnen.
|
| |
| objtype |
|
Entspricht dem Befehl objtype create.
Der dem Objekt zugehörige Befehls-String wird automatisch
vergeben und lautet objtypeX, worin X eine
fortlaufende, mit 1 beginnende Nummer ist. Eine lückenlose
Nummerierung aller Objekte wird nicht garantiert. |
| |
| objtype priority |
|
Gibt eine Liste aller Objekte vom Typ objtype
(nur für queue oder machine definiert) in
der Reihenfolge ihrer Priorität bei der Abarbeitung
zeitgleicher Ereignisse zurück. Die Reihenfolge hängt von
der Einlagerungsstrategie und der Reihenfolge des Anlegens
der Objekte ab. |
|
| objtype property
?-type propertyName default? |
|
Abfrage bereits deklarierter Properties
oder Deklaration neuer Property an objtype.
Deklariert eine neue Property an objtype vom Typ type
mit dem Namen propertyName und dem
Standardwert default. Die Option type kann
die Werte bool, integer, double und
string annehmen. Jedes bestehende und neu erzeugte
Objekt vom Typ objytpe besitzt diese Property mit dem
Standardwert default, solange bis dieser Wert
geändert wird.
Bemerkung: Die Verwendung von Properties über
Namespacevariablen hat Vorteile im Bereich Speicherbedarf
und Zugriffszeiten.
|
|
objtype property
-del propertyName
|
|
Löscht eine deklarierte Property mit Namen
propertyName. Die Property wird von allen
bestehenden Objekten vom Typ objtype entfernt und
bei neu erzeugten Objekten nicht mehr angelegt.
|
|
|
2. 1. 2 Allgemeine Objektbefehle
Wenn ein Objekt erzeugt wird, wird diesem ein spezifischer
Objektbefehl zugeordnet. Über diesen Befehl ist das Objekt
adressierbar. Ein solcher Objektbefehl objCmd hat die
allgemeine Form:
objCmd option ?arg arg ...?
option und args bestimmen das exakte
Verhalten des Befehls. Die folgenden Befehle sind für alle
Objekte, unabhängig von ihrem jeweiligen Typ definiert:
| |
| objCmd
del |
|
Vernichtet das betreffende Objekt einschließlich der
zugehörigen Eigenschaften, des Befehls und weiterer
Einträge. Der Objekt-Befehl objCmd kann wieder für
neue Objekte benutzt werden. |
| |
| objCmd
objtype |
|
Abfrage des Typs des Objekts. Gibt objtype
zurück. |
| |
| objCmd
name ?string? |
|
Abfrage oder Modifikation des Namens des Objektes.
Der Name der Objektes wird auf string gesetzt.
Ohne den Parameter string gibt der Befehl den
Namen des Objektes zurück. Der Name hat im Gegensatz zum
Objekt-Befehl keinerlei programmtechnisch relevante
Bedeutung, sondern dient lediglich der
anwendungsorientierten Bezeichnung von Objekten und kann
daher auch mehrfach vergeben werden. Im Unterschied zu objCmd
gelten für den Parameter string keine
Einschränkungen. Sonderzeichen dürfen ebenso wie Umlaute
oder Trennzeichen verwendet werden. |
| |
| objCmd
refcount |
|
Gibt die Anzahl der auf dieses Objekte gerichteten
Objektreferenzen zurück. Referenzierte Objekte können
nicht gelöscht werden. |
| |
| objCmd
variables |
|
Gibt eine Liste aller Eigenschaftsvariablen
des Objekts objCmd zurück. |
| |
| objCmd
procs |
|
Gibt eine Namensliste aller Prozeduren
des Objekts objCmd zurück.
|
|
|
objCmd property propertyName
?propertyValue?
|
|
Ändert den Wert einer Property an objCmd
oder gibt den bestehenden Wert zurück. Die Property
muss zuvor deklariert worden
sein. Wenn die Property an objCmd noch nicht
geändert wurde, so wird der definierte Standardwert
ausgegeben.
|
|
DialogObject objCmd
|
simcron MODELLER 3.4
Copyright © 2025 simcron
21.05.2025
|