ソースを参照

cambio json a dict

David 10 年 前
コミット
2a30e3fc91
5 ファイル変更16 行追加16 行削除
  1. 1 1
      client/clock.py
  2. 3 4
      client/keyboard.py
  3. 2 4
      client/main.py
  4. 1 2
      client/slides.py
  5. 9 5
      node/node.lua

+ 1 - 1
client/clock.py

@@ -12,4 +12,4 @@ class Clock(threading.Thread):
     def handleTime(self):
         while True:
             self.cb(time.strftime("%H:%M"))
-            time.sleep(15)
+            time.sleep(10)

+ 3 - 4
client/keyboard.py

@@ -1,13 +1,12 @@
 import threading
 import json
 from select import select
-from evdev import ecodes, InputDevice, list_devices
+from evdev import ecodes, InputDevice
 
 
 class Keyboard(threading.Thread):
     def __init__(self,next,prev,toggle):
         super(Keyboard, self).__init__()
-        self.devices = [InputDevice(d) for d in list_devices("/dev/input/")]
         self.running = False
         self.prev = prev
         self.next = next
@@ -17,8 +16,8 @@ class Keyboard(threading.Thread):
         self.running=True
         self.handleInput()
     def handleInput(self):
-        #dev = InputDevice("/dev/input/by-id/usb-Microsoft_Comfort_Curve_Keyboard_3000-event-kbd")
-        dev = InputDevice("/dev/input/by-path/platform-i8042-serio-0-event-kbd")
+        dev = InputDevice("/dev/input/by-id/usb-Microsoft_Comfort_Curve_Keyboard_3000-event-kbd")
+        #dev = InputDevice("/dev/input/by-path/platform-i8042-serio-0-event-kbd")
         VALID_KEYS = [ "KEY_PAGEUP", "KEY_PAGEDOWN", "KEY_F5" ]
         while True:
             r, w, e = select([dev], [], [])

+ 2 - 4
client/main.py

@@ -11,7 +11,7 @@ import signal
 import sys
 
 def signal_handler(signal, frame):
-    print('You pressed Ctrl+C!')
+    print('Interrupted. Exiting')
     sys.exit(0)
 
 class Mode(Enum):
@@ -45,12 +45,10 @@ class Main(object):
         signal.pause()
 
     def next(self):
-        print("next")
         if self.mode == Mode.diapo:
             self.s.send(self.slides.next())
 
     def prev(self):
-        print("prev")
         if self.mode == Mode.diapo:
             self.s.send(self.slides.prev())
 
@@ -66,7 +64,7 @@ class Main(object):
             self.mode = Mode.diapo
             self.s.send(self.slides.cur())
     def timerTick(self,data):
-        print(data)
+        self.s.send(dict(type="time",time=data))
 
 
 m = Main()

+ 1 - 2
client/slides.py

@@ -5,7 +5,6 @@ class Slides():
     def __init__(self,path):
         if os.path.isdir(path) != True:
             print("PATH is not a dir")
-        self.data = "{'type'='diapo', 'value'='%s', 'number'='%d', 'total'='%d'}"
         self.files=sorted(glob("%s/*.png" % path), key=self.key_func)
         for f in range(0,len(self.files)):
             self.files[f] = os.path.abspath(self.files[f])
@@ -15,7 +14,7 @@ class Slides():
         return int(os.path.split(x)[-1].rsplit('.', 1)[0])
 
     def cur(self):
-        return ( self.data % (self.files[self.cur_diapo], self.cur_diapo+1, len(self.files)))
+        return dict(type='diapo', value=self.files[self.cur_diapo], progress="%d/%d" %(self.cur_diapo+1, len(self.files)))
 
     def prev(self):
         self.cur_diapo=max(self.cur_diapo-1, 0)

+ 9 - 5
node/node.lua

@@ -2,16 +2,22 @@ gl.setup(800,600)
 
 local json = require "json"
 local font = resource.load_font("silkscreen.ttf")
-local cur_image = resource.load_image("1.png")
+local cur_image = resource.load_image("/home/david/git/especificos-node/node/1.png")
+local state = "diapo"
+local cur_preg = ""
+local time = "0:0"
+local img_prog="0/0"
 
 node.alias("eba")
 
 function decode_command(line)
     local cmd = json.decode(line)
 	print(line)
+	print(cmd.type)
 	if cmd.type == "diapo" then
 		cur_image:dispose()
-		cur_image = resource.load_image(cmd.image)
+		cur_image = resource.load_image(cmd.value)
+		img_prog= cmd.progress
 	elseif cmd.type == "pregunta" then
 		cur_preg = cmd.preg	
 	elseif cmd.type == "time" then
@@ -26,13 +32,11 @@ end
 
 --node.event("input", decode_command) -- listen to TCP
 node.event("data", decode_command)  -- listen to UDP
-state = "diapo"
-cur_preg = ""
-time = "0:0"
 function node.render()
 	if state == "diapo" then
 		cur_image:draw(0,0,WIDTH,HEIGHT)
 		font:write(730,580,time,20,1,1,1,1)
+		font:write(10,580,img_prog,20,1,1,1,1)
 	elseif state == "pregunta" then
 		preguntas:draw(0,0,WIDTH,HEIGHT)
 		font:write(120,320,cur_preg,20,1,1,1,1)