mc_api.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/usr/bin/python3
  2. import json
  3. import memcache
  4. try:
  5. mc = memcache.Client(['127.0.0.1:11211'], debug=0)
  6. except:
  7. mc = None
  8. def get_programmer():
  9. if mc is None:
  10. return
  11. DATA=mc.get("fix")#cmd)
  12. out=[]
  13. for k,v in DATA.items():
  14. ok=0
  15. for kk,vv in v["ATTRIBUT"].items():
  16. if kk.startswith("_"):
  17. continue
  18. if vv["ACTIVE"]:
  19. tmp={"ID":k,"NAME":v["NAME"],"ATTR":kk,"NR":vv["NR"]} #,"FX3":vv["FX2"]}
  20. out.append(tmp)
  21. ok=1
  22. #if ok:
  23. # print()
  24. return out
  25. def get_patch():
  26. if mc is None:
  27. return
  28. index=mc.get("PATCH-INDEX") #index")#cmd)
  29. index=json.loads(index)
  30. out = []
  31. for v in index:
  32. patch=mc.get("PATCH-"+str(v)) #index")#cmd)
  33. patch=json.loads(patch)
  34. u = patch["UNIVERS"] #* 512
  35. d = patch["DMX"]
  36. attr = {}
  37. for a in patch["ATTRIBUT"]:
  38. nr =patch["ATTRIBUT"][a]["NR"]
  39. if nr <= 0:
  40. continue
  41. if a == "END":
  42. continue
  43. if a.startswith("_"):
  44. continue
  45. nr = nr + d + u*512
  46. attr[a] = nr-1
  47. tmp = {"FIX":v,"UNI":u,"DMX":d,"NR":nr,"ATTR":attr}
  48. out.append(tmp )
  49. return out
  50. def patch_order_by_fix(patch):
  51. out={}
  52. for p in patch:
  53. ID = p["FIX"]
  54. out[ID] = p
  55. #print("patch_order",[ID,p])
  56. return out
  57. def get_exec_meta(nr):
  58. data = {}
  59. try:
  60. data = mc.get("EXEC-META-"+str(nr))
  61. data = json.loads(data)
  62. except Exception as e:
  63. print(" ER1R mc...",e)
  64. return data
  65. modes = {}
  66. def modes_refresh():
  67. global modes
  68. try:
  69. data = mc.get("MODES")
  70. data = json.loads(data)
  71. modes = data
  72. except Exception as e:
  73. print(" ER7R mc...",e)
  74. #time.sleep(3)
  75. return modes
  76. def modes_refresh_loop():
  77. time.sleep(3)
  78. while 1:
  79. modes_refresh()
  80. time.sleep(0.1)