Hallo zusammen,
anbei Stelle ich euch mein neues Baby vor: OverMind.au3
da ich beruflich an einer sehr großen Anwendung arbeite, welche aus mehreren exe Dateien besteht, benötigte ich dringend eine Möglichkeit die Scripte miteinander kommunizieren zulassen. Auf der Suche nach Lösung habe ich eine Unmenge an Lösungen gefunden. Über DLL Struct, Console, NamedPipes oder SQL.
Ich suchte explizit nach einer smarten und einfachen Lösung. Also begann ich mit DLL Struct & SharedMemory jedoch war mir das viel zu kompliziert, umständlich im jeweiligen Script umzusetzen und zudem hatte ich immer wieder unerwartete abstürze unter win8.1 64 bit.
Also entschied ich mich etwas Eigenes zu bauen und neue Wege einzuschlagen. Auf der Suche stoß ich auf ein Interessantes Thema im AutoIt.de Forum welches sich mit UDP Verbindungen beschäftigte. Daher entschied ich mich in diese Richtung zu gehen, was sich als sehr vielversprechend erwies. Und zudem eine Kommunikation nicht nur auf Lokaler Ebene sondern im gesamten Netzwerk ermöglichte.
Funktionen:
;----------------------------------------------------------------------------------------------/
; Overmind Einstellungen.
; Einstellungen können komplett mit einem Array geändert werden oder einzeln.
;
; Mögliche Settings (Reihenfolge im Array muss beachtet werden):
; -> ip
; -> port
; -> timeout
; -> pfad (Pfad der Overmind-Store Exe)
; -> mode // CaseSensitive (0 = True / 1 = False)
;
; BSP Array:
; $aSettings[] = ['127.0.0.1',1337,250,@scriptdir & '\OverMind_store.exe',0]
; $OVM_Setup($aSettings)
;
; BSP Wert:
; $OVM_Setup('port',4321)
;----------------------------------------------------------------------------------------------/
$OVM_Setup() ;siehe Beispiel
;----------------------------------------------------------------------------------------------/
; Beendet OverMind_Store.exe und die UDP Verbindung
;----------------------------------------------------------------------------------------------/
$OVM_Shutdown()
;----------------------------------------------------------------------------------------------/
; Wiedergabe Request an OverMind Store
; Parameter: $VarName -> Name der Variable, dessen Wert Zurückgegeben werden soll
; $TimeOut -> *optional* Zeitfenster, wie lange auf Antwort gewartet werden soll
; Bemerkung: Es werden 1D & 2D Arrays Unterstützt
;----------------------------------------------------------------------------------------------/
$OVM_get($VarName,[$TimeOut = 250])
;----------------------------------------------------------------------------------------------/
; Speicher Request an OverMind Store
; Parameter: $VarName -> Name der Variable, die gesetzt oder verändert werden soll
; $Value -> Wert der gesetzt werden soll
; $TimeOut -> *optional* Zeitfenster, wie lange auf Antwort gewartet werden soll
; Bemerkung: Es werden 1D & 2D Arrays Unterstützt
;----------------------------------------------------------------------------------------------/
$OVM_set($VarName,$Value,[$TimeOut = 250])
;----------------------------------------------------------------------------------------------/
; Wiedergabe Delete Request an OverMind Store
; Parameter: $VarName -> Name der Variable, dessen Wert Zurückgegeben werden soll
; $TimeOut -> *optional* Zeitfenster, wie lange auf Antwort gewartet werden soll
; Bemerkung: Es werden 1D & 2D Arrays Unterstützt
;----------------------------------------------------------------------------------------------/
$OVM_delete($VarName,[$TimeOut = 250])
;----------------------------------------------------------------------------------------------/
; Übergibt ein Array aller gespeicherten Variablen im OverMind Store
; Parameter: $TimeOut -> *optional* Zeitfenster, wie lange auf Antwort gewartet werden soll
;----------------------------------------------------------------------------------------------/
$OVM_list()
;----------------------------------------------------------------------------------------------/
; Suche Request an OverMind Store
; Parameter: $VarValue -> Wert der gesucht werden soll
; $TimeOut -> *optional* Zeitfenster, wie lange auf Antwort gewartet werden soll
; Bemerkung: Es werden 1D & 2D Arrays Unterstützt
;----------------------------------------------------------------------------------------------/
$OVM_search($Value,[$TimeOut = 250])
;----------------------------------------------------------------------------------------------/
; Count Request an OverMind Store
; Parameter: $TimeOut -> *optional* Zeitfenster, wie lange auf Antwort gewartet werden soll
; Bemerkung: Es werden 1D & 2D Arrays Unterstützt
;----------------------------------------------------------------------------------------------/
$OVM_count()
Alles anzeigen
EDIT:
Bugfix Version 1.1
(vielen Dank an Bitnugger)
- Wurde der Befehl $OVM_Shutdown aufgerufen, wenn OverMind noch nicht gestartet wurde. So wurde OverMind gestartet und die UDP Verbindung gleich wieder getrennt.
- #forceref implementiert, damit der Au3 Check nicht mehr meckert.
Aktuellste Version: http://4ern.de/overmind-autoit-udf/