fix command handling

This commit is contained in:
chrys 2018-03-06 23:58:28 +01:00
parent 35fb684627
commit 1c274a7c11

View File

@ -71,6 +71,7 @@ class driver(inputDriver):
def plugInputDeviceWatchdogTimer(self, active):
time.sleep(2.5)
return time.time()
def inputWatchdog(self,active , eventQueue):
while active.value:
r, w, x = select(self.iDevices, [], [], 0.5)
@ -78,15 +79,43 @@ class driver(inputDriver):
event = None
try:
event = self.iDevices[fd].read_one()
currMapEvent = self.mapEvent(event)
self.env['input']['eventBuffer'].append( [self.iDevices[fd], self.uDevices[fd], event])
eventQueue.put({"Type":fenrirEventType.KeyboardInput,"Data":currMapEvent})
except:
self.removeDevice(fd)
foreward = False
while(event):
self.env['input']['eventBuffer'].append( [self.iDevices[fd], self.uDevices[fd], event])
if event.type == evdev.events.EV_KEY:
if event.code != 0:
print(1)
currMapEvent = self.mapEvent(event)
if not currMapEvent:
print(2)
foreward = True
event = self.iDevices[fd].read_one()
continue
if not isinstance(currMapEvent['EventName'], str):
print(3)
foreward = True
event = self.iDevices[fd].read_one()
continue
if not foreward:
print(4)
if currMapEvent['EventState'] in [0,1,2]:
print(5)
eventQueue.put({"Type":fenrirEventType.KeyboardInput,"Data":currMapEvent})
print(currMapEvent)
print(6)
else:
print(7)
if not event.type in [0,1,4]:
foreward = True
event = self.iDevices[fd].read_one()
if foreward:
print('hmmm')
self.writeEventBuffer()
self.clearEventBuffer()
def handleInputEvent(self, event):
if not event:
print('skip')
return
if foreward:
self.writeEventBuffer()