dmx.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. from pyray import *
  2. import pyray
  3. ConfigFlags(FLAG_MSAA_4X_HINT) #|FLAG_WINDOW_RESIZABLE )
  4. #ConfigFlags(FLAG_WINDOW_RESIZABLE )
  5. ConfigFlags(FLAG_WINDOW_HIGHDPI )
  6. init_window(760, 450, "RAY-DMX")#,10,10,10,10)
  7. #pyray.TextureFilter(font10,1)
  8. import sys
  9. sys.path.insert(0,"/opt/LibreLight/Xdesk/")
  10. import tool.tk_elm as tk_elm
  11. img = "/opt/LibreLight/Xdesk/icon/scribble.png"
  12. IMG = load_image(img)
  13. print(set_window_icon(IMG))
  14. import time
  15. import memcache
  16. mc = memcache.Client(['127.0.0.1:11211'], debug=0)
  17. #x=mc.get(k)
  18. old_x = -10
  19. old_y = -10
  20. start = time.time()
  21. frame_count = 0
  22. fps_count = 0
  23. #a = "resources/pixantiqua.ttf"
  24. #a = "/lib/firefox-esr/fonts/TwemojiMozilla.ttf"
  25. #a = "/lib/python3/dist-packages/pygame/freesansbold.ttf"
  26. #a = "/usr/share/fonts/truetype/freefont/FreeMono.ttf"
  27. #a = "/usr/share/fonts/truetype/freefont/FreeSerif.ttf"
  28. #a = "/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf"
  29. a = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"
  30. a = "/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf"
  31. k=200
  32. font10 = load_font_ex(a, 10, None, 0);
  33. font20 = load_font_ex(a, 20, None, 0);
  34. a = "/usr/share/fonts/truetype/freefont/FreeMono.ttf"
  35. font25 = load_font_ex(a, 25, None, 0);
  36. pyray.TextureFilter(3)
  37. grid_x = 250
  38. grid_y = 60
  39. while not window_should_close():
  40. begin_drawing()
  41. clear_background(BLACK)
  42. Color(255,0,0,0)
  43. rl_enable_smooth_lines()
  44. if 10:
  45. btn = tk_elm.Button(None,pos=[390,12])
  46. x=btn.btn1.name
  47. a = btn.pos
  48. draw_text(str(x), 5, a[0] , a[1], YELLOW)# VIOLET)
  49. x=btn.btn2.name
  50. draw_text(str(x), 5, a[0]+15, a[1], YELLOW)# VIOLET)
  51. x=btn.btn3.name
  52. draw_text(str(x), 5, a[0]+30, a[1], YELLOW)# VIOLET)
  53. x=btn.btn4.name
  54. font_size = 10
  55. try:
  56. DATA=mc.get("index")#cmd)
  57. GREY = [122,122,122,255]
  58. p=0
  59. keys = []
  60. host_list = {}
  61. for k in DATA:
  62. #print(DATA[k])
  63. keys.append(k)
  64. host_list[k] = DATA[k] #[0]).ljust(" ",18) #,0,"=",0]
  65. keys.sort()
  66. k=keys[2]
  67. for i,v in enumerate(range(20)):
  68. # COL NUMBER -> 1 2... 20
  69. x2 = grid_x+i*25
  70. y2 = grid_y-20
  71. txt=str(i+1)
  72. draw_text_ex(font10,txt, [x2,y2], font_size, 0, [0,255,0,255]) #YELLOW)
  73. i+=1
  74. xi=0
  75. yi=0
  76. DMX=mc.get(k)
  77. draw_text_ex(font25,"SRC:{}".format(k),[grid_x-20,5], 25, 0, VIOLET)
  78. for i,v in enumerate(DMX):
  79. #print(i,v)
  80. if v:
  81. host_list[k][-1] +=1
  82. txt = str(i)+":"+str(v)
  83. txt = str(v)
  84. x2 = grid_x+xi*25
  85. y2 = grid_y+yi*15
  86. try:
  87. draw_rectangle(x2-2, y2-2,24,13,[255,255,255,int(v)])
  88. except:
  89. draw_rectangle(x2-2, y2-2,24,13,[255,2,2,255])
  90. try:
  91. int(v)
  92. except:
  93. v=0
  94. if int(v) > 100:
  95. draw_text_ex(font10,txt, [x2,y2], font_size, 0, BLACK)# VIOLET)
  96. else:
  97. draw_text_ex(font10,txt, [x2,y2], font_size, 0, GREY)# VIOLET)
  98. xi+=1
  99. if xi % 20 == 0:
  100. txt = str(int(yi*20)+1)
  101. draw_text_ex(font10,txt, [grid_x-30,y2], font_size, 0, YELLOW)# VIOLET) # ROEW NR
  102. xi = 0
  103. yi += 1
  104. txt = str(int(yi*20)+1)
  105. draw_text_ex(font10,txt, [grid_x-30,y2], font_size, 0, YELLOW)# VIOLET) # ROEW NR
  106. p=0
  107. for k,v in host_list.items():
  108. #for k in keys:
  109. # HOST LIST
  110. x2 = 10
  111. y2 = grid_y+p
  112. txt =str(k)+" "+str(v).replace(" ","").replace("[","").replace("]","")
  113. draw_rectangle(x2-2, y2-2,200,18,[125,125,125,255])
  114. draw_text_ex(font10,txt, [x2,y2], font_size, 0, BLACK) # YELLOW)# VIOLET)
  115. p+=20
  116. w=200
  117. h=50
  118. x=200
  119. y=200
  120. draw_text_ex(font25,"FPS:{}".format(fps_count),[10,5], 25, 0, VIOLET)
  121. m=get_mouse_position()
  122. if m.x != old_x or m.y != old_y:
  123. old_x = m.x
  124. old_y = m.y
  125. print("POS:",m.x,m.y)
  126. draw_text_ex(font20,"POS:{}:{}".format(int(m.x),int(m.y)),[10,34], 20, 0, VIOLET)
  127. draw_rectangle(int(old_x-10),int(old_y-1),20,2,[255,0,255,255])
  128. draw_rectangle(int(old_x-1),int(old_y-10),2,20,[255,0,255,255])
  129. end_drawing()
  130. time.sleep(1/10)
  131. frame_count += 1
  132. if time.time()-start > 1:
  133. start = time.time()
  134. fps_count = frame_count
  135. frame_count = 0
  136. except KeyboardInterrupt as e:
  137. raise e
  138. except Exception as e:# KeyInterupt
  139. print("err",e)
  140. time.sleep(1)
  141. close_window()