Kürzlich habe ich eine Python Extension für TML/SIDEX (BEEP (Block Extensible Exchange Protocol) basierte Lösung für viele Aufgaben, die normalerweise mit der Implementierung eines eigenen TCP/IP Socket Protokolls gelöst werden würden) veröffentlicht.
TML/SIDEX benötigt eine Lizenz. Die Python Extension wird mit Quellcode ausgeliefert und läuft auf Windows, Linux und OS-X mit Python ab Version 2.5 bis 3.4. Ältere Python Versionen sollten funktionieren, sind aber nicht getestet.
Beschreibung der Extension mit Videos
Download Seite
Hier ein Beispiel für einen RPC Server, der auch einen Fortschritt sendet, während ein Kommando abgearbeitet wird.
Code: Alles auswählen
import tml.core
import time
def cmd42handler(tmlprofile, cmd):
cmd.data['Result']['Value'] = 42
cmd.data['Result']['Test'] = "some text"
def cmd43handler(tmlprofile, cmd):
cmd.data['Result']['Value'] = 43
cmd.data['Result']['Test'] = [1, 2, 3, 'test', 3.14]
def cmd44_progress_test(tmlprofile, cmd):
time.sleep(1)
for p in range(0, 100, 10):
cmd.data['Result']['Progress'] = p
time.sleep(0.5)
cmd.progress = p
def main():
tmlcore = tml.core.TMLCore()
tmlcore.listener_binding = "127.0.0.1:12345"
cmdprofile = "http://www.tml-software.com/tml_rpc_server/test"
# register a command and profile
tmlcore.profiles.add_profile(cmdprofile)
# register commands
tmlcore.profiles[cmdprofile].register_cmd(42, cmd42handler)
tmlcore.profiles[cmdprofile].register_cmd(43, cmd43handler)
tmlcore.profiles[cmdprofile].register_cmd(44, cmd44_progress_test)
tmlcore.listener_enabled = True
run() # wait until CTRL-C is pressed (not in this script)
if __name__ == '__main__':
main()
Viele Grüße,
Maik