Dokumentation
ForceParent
Benötigt: IP-Symcon >= 4.0
boolean ForceParent (string $ModulID)
Parameterliste
ModulID |
Rückgabewert
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
Beschreibung
Diese Funktion ist nur für IPSModule verfügbar. Die Alternative für IPSModuleStrict ist GetCompatibleParents.
Es wird eine Verbindung mit einer kompatiblen übergeordneten Instanz mit der GUID ModulID forciert. Falls die bisherige Verbindung nicht mit der gewünschten ModulID übereinstimmt, wird diese getrennt. Anschließend wird eine neue Instanz mit der übergordneten ModuleID erstellt und verbunden.
Eine Liste der verfügbaren ModulIDs kann hier entnommen werden.
Der Normalfall für die Funktion ist ein Splitter-Modul, welches je nach Konfiguration in der Oberfläche ein anderes I/O Modul benötigt.
Diese Funktion wird normalerweise nur in der Create() oder ApplyChanges() Methode aufgerufen.
Beispiel
// IPSModuleStrict
ConnectParent/RequireParent/ForceParent ist nicht verfügbar,
kann aber durch die neue Funktion "GetCompatibleParents()" ersetzt werden.
// IPSModule
public function ApplyChanges() {
// Die Zeile niemals entfernen!
parent::ApplyChanges();
// Je nach Konfiguration unterschiedliche I/O Instanzen erstellen
switch($this->ReadPropertyInteger("GatewayMode")) {
case 0: //ClientSocket bei Modus 0 erstellen
$this->ForceParent("{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}");
break;
case 1: //SerialPort bei Modus 1 erstellen
$this->ForceParent("{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}");
break;
}
}