Status an Parent anpassen (MessageSink?)

Hallo,

ich möchte in meinem Modul wenn das Parent IO inaktiv/aktiv geht, auch inaktiv/aktiv gesetzt wird.

Dazu habe ich folgende Funktion in modules.php


	public function MessageSink($TimeStamp, $SenderID, $Message, $Data) {
		$this->SendDebug ( "MessageSink_" . $Message, $Data, 0 );
		
		switch ($Message) {
			case DM_CONNECT :
				$this->SendDebug ( "DM_CONNECT", $Message, 0 );
				$this->ApplyChanges ();
				break;
			case DM_DISCONNECT :
				$this->SendDebug ( "DM_DISCONNECT", $Message, 0 );
				$this->ApplyChanges ();
				break;
		}
	}

Und in ApplyChanges() die Nachrichten noch registriert:


		$this->RegisterMessage ( $this->InstanceID, DM_CONNECT );
		$this->RegisterMessage ( $this->InstanceID, DM_DISCONNECT );

Aber irgendwie kommt nichts an. Jemand ne Idee, wo mein Fehler ist?

Danke!

Gruß Basti

DM_* ist für die Datenverbindung zwischen den Instanzen.
Du suchst vermutlich IM_CHANGESTATUS
Michael

Ah ok wofür nutzt du dann DM, wenn ich fragen darf? :slight_smile: Du wartest auch auf KernelReady, hat das einen bestimmten Grund?

Beim DM_Connect melde ich mich an meiner Hardware an, merke mir den Parent und registriere auf diesen Parent IM_CHANGESTATUS.
Weil vorher gab es ja keine Verbindung und somit ist der Status von meinem Splitter zur Hardware nicht bekannt.
Ebenso beim KRready.
Meistens rufe ich einfach ApplyChanges auf.
Michael

Okay dann werde ich da vermutlich auch nicht drum herum kommen, muss ich mir nochmal intensiv anschauen

Ich würde mir eher eine „HasActiveParent“ Funktion bauen, welche anhand des Zustands vom Parent „arbeitet“. Ein Aktiv/Inaktiv Zustand in deinem Modul ist somit im Normalfall überflüssig. :slight_smile:

paresy

Die habe ich bereits, allerdings wollte ich die eigene Instanz halt auch auf Inaktiv setzen, da es so die nativen Module auch machen, oder hab ich mich da vertan?

Das machen die eigentlich nicht.
Ich habe es teilweise drinnen, aber nur wenn ich selbst auch einen ‚active‘ bzw. Öffnen Property habe.
Michael

Ok, dann lasse ich das weg, habe momentan genug Baustellen :slight_smile: