Hallo zusammen,
ich bin gerade dabei mir ein Plugin zu schreiben um Leuchtengruppen zu definieren und teilweise Gruppen bzw. einzelne Leuchten schalten zu können.
In diesem Kontext tritt folgende Frage auf: Werden knx_writes und knx_reads eigentlich serialisiert verarbeitet? Mein Code sieht wie folgt aus:
Im Plugin Logfile sieht die Reihenfolge der plugin_logs wie folgt aus:
Im eibd-log sehen die Writes wie folgt aus:
Hier werden 14/4/2 und 15/2/2 aus dem dritten Schleifendurchlauf vertauscht im Vergleich zum Plugin-Log. D.h. offensichtlich werden die writes nicht serialisiert. Warum?
Nun lese ich später im Plugin eine zuvor geschriebene GA mit knx_read(GA,0) (aus dem Cache). Kann ich denn nun sicher gehen, dass ich den Wert, den ich zuvor geschrieben habe wieder erhalte?
Danke,
Stefan
ich bin gerade dabei mir ein Plugin zu schreiben um Leuchtengruppen zu definieren und teilweise Gruppen bzw. einzelne Leuchten schalten zu können.
In diesem Kontext tritt folgende Frage auf: Werden knx_writes und knx_reads eigentlich serialisiert verarbeitet? Mein Code sieht wie folgt aus:
Code:
foreach $ga(@schalt_ga){ plugin_log($plugname, "SchaltGA".$ga ); knx_write($ga, $data, 1); my $rueck_ga = get_rueck_ga_from_schalt_ga( $xml, $ga ); plugin_log($plugname, "Schalten RückGA".$rueck_ga." ".$data ); knx_write($rueck_ga, $data, 1); @gruppen_rueck_ga_tmp = get_gruppen_rueck_ga_from_rueck_ga( $rueck_ga, $xml ); push( @gruppen_rueck_ga, @gruppen_rueck_ga_tmp ); }
Code:
2013-04-04 22:14:46.376,Test DMX,SchaltGA15/2/0 2013-04-04 22:14:46.382,Test DMX,Schalten RückGA14/4/0 00 2013-04-04 22:14:46.385,Test DMX,SchaltGA15/2/1 2013-04-04 22:14:46.389,Test DMX,Schalten RückGA14/4/1 00 2013-04-04 22:14:46.393,Test DMX,SchaltGA15/2/2 2013-04-04 22:14:46.396,Test DMX,Schalten RückGA14/4/2 00
Code:
2013-04-04 22:14:46.428,A_GroupValue_Write,1.1.254,15/2/0,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0 2013-04-04 22:14:46.458,A_GroupValue_Write,1.1.254,14/4/0,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0 2013-04-04 22:14:46.494,A_GroupValue_Write,1.1.254,15/2/1,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0 2013-04-04 22:14:46.529,A_GroupValue_Write,1.1.254,14/4/1,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0 2013-04-04 22:14:46.566,A_GroupValue_Write,1.1.254,14/4/2,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0 2013-04-04 22:14:46.594,A_GroupValue_Write,1.1.254,15/2/2,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0
Nun lese ich später im Plugin eine zuvor geschriebene GA mit knx_read(GA,0) (aus dem Cache). Kann ich denn nun sicher gehen, dass ich den Wert, den ich zuvor geschrieben habe wieder erhalte?
Danke,
Stefan
Kommentar