#include "./_ArrayEx.au3" Global $soh = "" Global $stx = "" Global $etx = "" loader() Func checkNumber($number, $text, $vars, $params) If($number <> 123) Then Return SetError(1, 0, "Number given : " & $number & " <> 123") EndIf addValue($vars, "number", $number) EndFunc Func addValueOnVar($number, $text, $vars, $params) Local $name = $text Local $value = getValue($vars, $name) addValue($vars, $name, $value * 100) EndFunc Func loader() If $CmdLine[0] <> 1 Then ConsoleWriteError("Function name needed") Sleep(100) Exit EndIf Local $funcName = $CmdLine[1] Local $number = getNextEntry() Local $text = getNextEntry() Local $vars = getNextEntry() Local $params = getNextEntry() Local $ret = Call($funcName, $number, $text, $vars, $params) If(@error) Then If(@error == 0xDEAD) Then ConsoleWriteError("Unknown function") Else ConsoleWriteError($ret) EndIf EndIf EndFunc Func getNextEntry() Local Static $read = "" Local $data = "" While 1 $read &= ConsoleRead() Local $pos = StringInStr($read, $etx) If($pos > 0) Then $data = StringLeft($read, $pos-1) $read = StringTrimLeft($read, $pos) $data = _Array_Deserialize($data, $soh, $stx) ExitLoop EndIf Sleep(10) WEnd Return $data EndFunc Func getValue($vars, $name) Local $indice = _Array_Find($vars, $name) If ($indice >= 0) Then Return $vars[$indice][1] EndIf Return SetError(1) EndFunc Func addValue($vars, $name, $value, $isNumber = False) Local $indice = _Array_Find($vars, $name) Local $newValue = _AsArray($name, $value) If($indice >= 0) Then _Array_Set($vars, $newValue, $indice) Else _Array_Add($vars, $newValue) EndIf sendValue($newValue) EndFunc Func sendValue($value) ConsoleWrite(_Array_Serialize($value, $soh, $stx) & $etx) EndFunc