From: Christian M. <ma...@Ch...> - 2012-12-14 18:31:09
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 So, habe gerade mal den Stand in's SVN gebracht, an dem ich die letzten Abenden dran war. => GrAFd macht nun schon sinnvolleres als vorher Er spricht nun nämlich mit dem logicd und kann mehere Skripte gleichzeitig ausführen (per Thread Pool). Konkret gibt es nun zwei, eines hört nur auf die Nachricht "baz", der andere auf "bar" und "baz". Der andere nimmt den INT Wert, der auf "bar" gesendet wurde und schickt den verdoppelt und "baz" Millisekunden später an die Adresse "blub". Oder etwas konkreter, logicd und GrAF läuft (letzteres gerne mit "-v - -v -v" als Parameter) in einem Terminal: cm@obiwan:/mnt/hdd/devel/GrAF/logicd/build$ ./send2logic bar INT 2 cm@obiwan:/mnt/hdd/devel/GrAF/logicd/build$ ./send2logic baz INT 20000 cm@obiwan:/mnt/hdd/devel/GrAF/logicd/build$ ./send2logic bar INT 3 cm@obiwan:/mnt/hdd/devel/GrAF/logicd/build$ ./send2logic baz INT 40000 Gibt im anderen: cm@obiwan:/mnt/hdd/devel/GrAF/logicd/build$ ./logicspy -c -t [2012-12-14 19:22:19.266] bar (<- NoSrc){8}: INT: 2 0x2; additonal 0 bytes of raw: [2012-12-14 19:22:19.267] blub (<- NoSrc){9}: INT: 4 0x4; additonal 0 bytes of raw: [2012-12-14 19:22:20.252] baz (<- NoSrc){10}: INT: 20000 0x4e20; additonal 0 bytes of raw: [2012-12-14 19:22:22.262] bar (<- NoSrc){11}: INT: 3 0x3; additonal 0 bytes of raw: [2012-12-14 19:22:24.577] baz (<- NoSrc){12}: INT: 40000 0x9c40; additonal 0 bytes of raw: [2012-12-14 19:22:40.253] blub (<- NoSrc){13}: INT: 4 0x4; additonal 0 bytes of raw: [2012-12-14 19:23:20.254] blub (<- NoSrc){14}: INT: 6 0x6; additonal 0 bytes of raw: => Man sieht schön, wie das Skript (nicht der GrAFd!) beim ersten "baz" die 20 Sekunden (bewusst) blockiert um dann das "blub" um 19:22:40 zu senden. Die zwischenzeitlichen Nachrichten "bar" und "baz" werden zwischengespeichert und sofort danach gemeinsam abgearbeitet. Dieser Stand wird nun dann ein "Problem" haben, wenn in der blockierenden Zeit mehr als eine Nachricht pro Adresse kommt. Das kann nun gut oder schlecht sein: - - ist es etwas vergängliches wie ein Temperaturwert passt das, denn da will ich wohl kaum um die Historie kümmern müssen und gleich den aktuellen verarbeiten - - ist es etwas wie ein Impulszähler könnte es doof sein (wäre aber lösbar durch ein kleines Skript das nur zählt und das komplexe, blockierende, dass dann diesen Wert weiterverwendet) => Da beides sinnvoll erscheint: wie machen das denn die anderen, wie z.B. HS? CU, Chris PS @Dirk, Julian und Makki: ab jetzt, wie besprochen, über die Mailingliste. Ich befürchte, da fehlt noch Euere Anmeldung über die Projekt-Seite... -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEAREIAAYFAlDLcGIACgkQoWM1JLkHou3kmQCgjgiIGQTHQOS5aBXclI0Xj+vG GpwAoJY44jSKb0txexo4sFYtxoXEeuoD =jdTv -----END PGP SIGNATURE----- |
From: Michael M. <mm...@el...> - 2012-12-14 22:21:41
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 14.12.2012 19:30, Christian Mayer wrote: > So, habe gerade mal den Stand in's SVN gebracht, an dem ich die > letzten Abenden dran war. Da war noch was mit dem backporten von boost bzw. libzmq :o ("make install" auf Produktivsystemen ist in meinem Hirn ganz fest mit Stromschlägen verdrahtet) > => Man sieht schön, wie das Skript (nicht der GrAFd!) beim ersten > "baz" die 20 Sekunden (bewusst) blockiert um dann das "blub" um > 19:22:40 zu senden. Die zwischenzeitlichen Nachrichten "bar" und > "baz" werden zwischengespeichert und sofort danach gemeinsam > abgearbeitet. > > Dieser Stand wird nun dann ein "Problem" haben, wenn in der > blockierenden Zeit mehr als eine Nachricht pro Adresse kommt. Das > kann nun gut oder schlecht sein: - ist es etwas vergängliches wie > ein Temperaturwert passt das, denn da will ich wohl kaum um die > Historie kümmern müssen und gleich den aktuellen verarbeiten - ist > es etwas wie ein Impulszähler könnte es doof sein (wäre aber lösbar > durch ein kleines Skript das nur zählt und das komplexe, > blockierende, dass dann diesen Wert weiterverwendet) > > => Da beides sinnvoll erscheint: wie machen das denn die anderen, > wie z.B. HS? Im HS läuft das so: Diesen Fall angenommen, 2 Telegramme (21 + 22°) an eine GA binnen 10sek.; Logik1 (thread1 bzw. event-timer intern glaube ich) verzögert stur den Wert 20sek - nachfolgende Logiken/BS bekommen aber BEIDE Werte - mit eben dieser Verzögerung. Logik2 ohne Telegrammverzögerung rechnet (sofort) z.B. eine Temperatur-tendenz aus, also erst mit 21, dann mit 22° (das Beispiel ist blöde, ich weiss, sollte aber sagen wie es tut..) > PS @Dirk, Julian und Makki: ab jetzt, wie besprochen, über die > Mailingliste. Ich befürchte, da fehlt noch Euere Anmeldung über > die Projekt-Seite... Ich bin druff.. - -- Mit freundlichen Grüssen Michael Markstaller Elaborated Networks GmbH www.elabnet.de Lise-Meitner-Str. 1, D-85662 Hohenbrunn, Germany fon: +49-8102-8951-60, fax: +49-8102-8951-80 Geschäftsführer: Stefan Werner, Michael Markstaller Amtsgericht München HRB 125120, Ust-ID: DE201281054 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with undefined - http://www.enigmail.net/ iEYEARECAAYFAlDLpmkACgkQaWRHV2kMuAKYDACfZVCwTVMRmGPUGNXOabxQ8HTk ZHMAnRLxuT573wgrxJw8AYUJnWrCA4eX =bZz3 -----END PGP SIGNATURE----- |
From: Christian M. <ma...@Ch...> - 2012-12-14 22:39:20
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Am 14.12.2012 23:21, schrieb Michael Markstaller: > On 14.12.2012 19:30, Christian Mayer wrote: >> So, habe gerade mal den Stand in's SVN gebracht, an dem ich die >> letzten Abenden dran war. > Da war noch was mit dem backporten von boost bzw. libzmq :o ("make > install" auf Produktivsystemen ist in meinem Hirn ganz fest mit > Stromschlägen verdrahtet) Nimm libzmq nicht zu ernst - ich glaube da ist richtig dicker Bloat drinnen. Die Größen der Binaries hat mich nämlich für die lächerliche Größe etwas geschockt. Das gleiche mit Boost::ASIO. => Beides ist auf der Liste der zu ersetzenden Systeme. (Aber vorher soll's mal grundsätzlich laufen) D.h. auf einem Test-System (mit Dreiklang configure; make; make install :) gerne mal machen, sauber für's WireGate ist noch nicht der Anspruch. >> => Da beides sinnvoll erscheint: wie machen das denn die >> anderen, wie z.B. HS? > Im HS läuft das so: Diesen Fall angenommen, 2 Telegramme (21 + 22°) > an eine GA binnen 10sek.; Logik1 (thread1 bzw. event-timer intern > glaube ich) verzögert stur den Wert 20sek - nachfolgende Logiken/BS > bekommen aber BEIDE Werte - mit eben dieser Verzögerung. > > Logik2 ohne Telegrammverzögerung rechnet (sofort) z.B. eine > Temperatur-tendenz aus, also erst mit 21, dann mit 22° (das > Beispiel ist blöde, ich weiss, sollte aber sagen wie es tut..) Ui - das habe ich jetzt nicht verstanden :( Nehmen wir mal an, das hier wäre eine HS Logik, bzw. halt eine "Seite": ----------- ----------- GA -+->| Block 1 |-------->| | | ----------- | Block 2 |---> Out | |--->| | ------------------| ----------- Und Block 1 braucht 20 Sekunden zwischen Aufruf und Ausgabe, Block 2 geht schnell. Jetzt kommen auf GA 2 Werte innerhalb von 10 Sekunden. Wann wird die Gesammt-Logik und wann welcher Block aufgerufen? CU, Chris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEAREIAAYFAlDLqowACgkQoWM1JLkHou24cgCfSCpAH3p1DoD29CKy1SBc+hO5 a2AAn1VsY7MJfbLCCuq3EAvJIQNcJVP2 =Hewh -----END PGP SIGNATURE----- |
From: Christian M. <ma...@Ch...> - 2013-01-05 00:38:16
|
Da's wohl untergegangen ist (hat sich mit dem Subscriben überschnitten) hier nochmal die Frage: Am 14.12.2012 23:39, schrieb Christian Mayer: > Am 14.12.2012 23:21, schrieb Michael Markstaller: >> On 14.12.2012 19:30, Christian Mayer wrote: >>> => Da beides sinnvoll erscheint: wie machen das denn die >>> anderen, wie z.B. HS? >> Im HS läuft das so: Diesen Fall angenommen, 2 Telegramme (21 + 22°) >> an eine GA binnen 10sek.; Logik1 (thread1 bzw. event-timer intern >> glaube ich) verzögert stur den Wert 20sek - nachfolgende Logiken/BS >> bekommen aber BEIDE Werte - mit eben dieser Verzögerung. > >> Logik2 ohne Telegrammverzögerung rechnet (sofort) z.B. eine >> Temperatur-tendenz aus, also erst mit 21, dann mit 22° (das >> Beispiel ist blöde, ich weiss, sollte aber sagen wie es tut..) > > Ui - das habe ich jetzt nicht verstanden :( > > Nehmen wir mal an, das hier wäre eine HS Logik, bzw. halt eine "Seite": > > ----------- ----------- > GA -+->| Block 1 |-------->| | > | ----------- | Block 2 |---> Out > | |--->| | > ------------------| ----------- > > Und Block 1 braucht 20 Sekunden zwischen Aufruf und Ausgabe, Block 2 > geht schnell. Jetzt kommen auf GA 2 Werte innerhalb von 10 Sekunden. > Wann wird die Gesammt-Logik und wann welcher Block aufgerufen? > > CU, > Chris > > |