Merge branch 'master' into processing
This commit is contained in:
commit
6c7277ec12
@ -16,7 +16,6 @@ class command():
|
|||||||
def getDescription(self):
|
def getDescription(self):
|
||||||
return 'No description found'
|
return 'No description found'
|
||||||
def run(self):
|
def run(self):
|
||||||
if not self.env['runtime']['screenManager'].isSuspendingScreen(): # remove if all works
|
self.env['runtime']['inputManager'].updateInputDevices()
|
||||||
self.env['runtime']['inputManager'].updateInputDevices()
|
|
||||||
def setCallback(self, callback):
|
def setCallback(self, callback):
|
||||||
pass
|
pass
|
||||||
|
@ -163,9 +163,10 @@ class commandManager():
|
|||||||
self.env['runtime']['debug'].writeDebugOut("Executing trigger:" + trigger + "." + newScript ,debug.debugLevel.ERROR)
|
self.env['runtime']['debug'].writeDebugOut("Executing trigger:" + trigger + "." + newScript ,debug.debugLevel.ERROR)
|
||||||
self.env['runtime']['debug'].writeDebugOut(str(e),debug.debugLevel.ERROR)
|
self.env['runtime']['debug'].writeDebugOut(str(e),debug.debugLevel.ERROR)
|
||||||
|
|
||||||
def executeDefaultTrigger(self, trigger):
|
def executeDefaultTrigger(self, trigger, force=False):
|
||||||
if self.env['runtime']['screenManager'].isSuspendingScreen():
|
if not force:
|
||||||
return
|
if self.env['runtime']['screenManager'].isSuspendingScreen():
|
||||||
|
return
|
||||||
for command in sorted(self.env['commands'][trigger]):
|
for command in sorted(self.env['commands'][trigger]):
|
||||||
if self.commandExists(command, trigger):
|
if self.commandExists(command, trigger):
|
||||||
try:
|
try:
|
||||||
|
@ -61,7 +61,7 @@ class eventManager():
|
|||||||
elif event['Type'] == fenrirEventType.BrailleInput:
|
elif event['Type'] == fenrirEventType.BrailleInput:
|
||||||
pass
|
pass
|
||||||
elif event['Type'] == fenrirEventType.PlugInputDevice:
|
elif event['Type'] == fenrirEventType.PlugInputDevice:
|
||||||
pass
|
self.env['runtime']['fenrirManager'].handlePlugInputDevice(event)
|
||||||
elif event['Type'] == fenrirEventType.BrailleFlush:
|
elif event['Type'] == fenrirEventType.BrailleFlush:
|
||||||
pass
|
pass
|
||||||
elif event['Type'] == fenrirEventType.ScreenChanged:
|
elif event['Type'] == fenrirEventType.ScreenChanged:
|
||||||
|
@ -113,10 +113,10 @@ class fenrirManager():
|
|||||||
#print('handleScreenUpdate:',time.time() - startTime)
|
#print('handleScreenUpdate:',time.time() - startTime)
|
||||||
|
|
||||||
def handlePlugInputDevice(self, event):
|
def handlePlugInputDevice(self, event):
|
||||||
self.environment['runtime']['commandManager'].executeDefaultTrigger('PlugInputDevice')
|
self.environment['runtime']['commandManager'].executeDefaultTrigger('onPlugInputDevice', force=True)
|
||||||
|
|
||||||
def handleHeartBeat(self, event):
|
def handleHeartBeat(self, event):
|
||||||
self.environment['runtime']['commandManager'].executeDefaultTrigger('onHeartBeat')
|
self.environment['runtime']['commandManager'].executeDefaultTrigger('onHeartBeat',force=True)
|
||||||
#self.environment['runtime']['outputManager'].brailleText(flush=False)
|
#self.environment['runtime']['outputManager'].brailleText(flush=False)
|
||||||
|
|
||||||
def detectCommand(self):
|
def detectCommand(self):
|
||||||
|
@ -36,7 +36,7 @@ class driver():
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._manager = multiprocessing.Manager()
|
self._manager = multiprocessing.Manager()
|
||||||
self.iDevices = {}
|
self.iDevices = {}
|
||||||
self.iDevicesFD = None
|
self.iDevicesFD = self._manager.list()
|
||||||
self.uDevices = {}
|
self.uDevices = {}
|
||||||
self.iDeviceNo = 0
|
self.iDeviceNo = 0
|
||||||
self._initialized = False
|
self._initialized = False
|
||||||
@ -64,9 +64,6 @@ class driver():
|
|||||||
while active:
|
while active:
|
||||||
devices = monitor.poll(2)
|
devices = monitor.poll(2)
|
||||||
if devices:
|
if devices:
|
||||||
for device in devices:
|
|
||||||
if not active:
|
|
||||||
return
|
|
||||||
print('drin')
|
print('drin')
|
||||||
eventQueue.put({"Type":fenrirEventType.PlugInputDevice,"Data":''})
|
eventQueue.put({"Type":fenrirEventType.PlugInputDevice,"Data":''})
|
||||||
|
|
||||||
@ -78,23 +75,25 @@ class driver():
|
|||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
if not self._initialized:
|
if not self._initialized:
|
||||||
return
|
return
|
||||||
def inputWatchdog(self,active , iDevicesFD):
|
def inputWatchdog(self,active , params):
|
||||||
deviceFd = []
|
deviceFd = []
|
||||||
for fd in iDevicesFD['dev']:
|
print('WD:',params['dev'],self.watchDog.value == 0)
|
||||||
deviceFd.append(fd)
|
|
||||||
while self.watchDog.value == 0:
|
while self.watchDog.value == 0:
|
||||||
if active.value == 0:
|
if active.value == 0:
|
||||||
return
|
return
|
||||||
r = []
|
r = []
|
||||||
while r == []:
|
while r == []:
|
||||||
|
deviceFd = list(params['dev'])
|
||||||
r, w, x = select(deviceFd, [], [], 2)
|
r, w, x = select(deviceFd, [], [], 2)
|
||||||
|
print('select',r, w, x)
|
||||||
self.watchDog.value = 0
|
self.watchDog.value = 0
|
||||||
def getInputEvent(self):
|
def getInputEvent(self):
|
||||||
if not self.hasIDevices():
|
if not self.hasIDevices():
|
||||||
self.watchDog.value = 1
|
self.watchDog.value = 1
|
||||||
return None
|
return None
|
||||||
event = None
|
event = None
|
||||||
r, w, x = select(self.iDevices, [], [], 0.0001)
|
r, w, x = select(self.iDevices, [], [], 0.00001)
|
||||||
|
print(self.iDevices,'read',r, w, x)
|
||||||
if r != []:
|
if r != []:
|
||||||
for fd in r:
|
for fd in r:
|
||||||
try:
|
try:
|
||||||
@ -153,7 +152,7 @@ class driver():
|
|||||||
if init:
|
if init:
|
||||||
self.removeAllDevices()
|
self.removeAllDevices()
|
||||||
deviceFileList = evdev.list_devices()
|
deviceFileList = evdev.list_devices()
|
||||||
if not force:
|
if not force and False:
|
||||||
if len(deviceFileList) == self.iDeviceNo:
|
if len(deviceFileList) == self.iDeviceNo:
|
||||||
return
|
return
|
||||||
mode = self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper()
|
mode = self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper()
|
||||||
@ -200,13 +199,15 @@ class driver():
|
|||||||
self.env['runtime']['debug'].writeDebugOut('Device added (Name):' + self.iDevices[currDevice.fd].name,debug.debugLevel.INFO)
|
self.env['runtime']['debug'].writeDebugOut('Device added (Name):' + self.iDevices[currDevice.fd].name,debug.debugLevel.INFO)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.env['runtime']['debug'].writeDebugOut("Skip Inputdevice : " + deviceFile +' ' + str(e),debug.debugLevel.ERROR)
|
self.env['runtime']['debug'].writeDebugOut("Skip Inputdevice : " + deviceFile +' ' + str(e),debug.debugLevel.ERROR)
|
||||||
self.iDevicesFD = multiprocessing.Array('i', len(self.iDevices))
|
|
||||||
i = 0
|
|
||||||
for fd in self.iDevices:
|
|
||||||
self.iDevicesFD[i] = fd
|
|
||||||
i +=1
|
|
||||||
self.iDeviceNo = len(evdev.list_devices())
|
self.iDeviceNo = len(evdev.list_devices())
|
||||||
|
self.updateMPiDevicesFD()
|
||||||
|
def updateMPiDevicesFD(self):
|
||||||
|
for fd in self.iDevices:
|
||||||
|
if not fd in self.iDevicesFD:
|
||||||
|
self.iDevicesFD.append(fd)
|
||||||
|
for fd in self.iDevicesFD:
|
||||||
|
if not fd in self.iDevices:
|
||||||
|
self.iDevicesFD.remove(fd)
|
||||||
def mapEvent(self, event):
|
def mapEvent(self, event):
|
||||||
if not self._initialized:
|
if not self._initialized:
|
||||||
return None
|
return None
|
||||||
@ -296,11 +297,8 @@ class driver():
|
|||||||
del(self.uDevices[fd])
|
del(self.uDevices[fd])
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
self.iDevicesFD = multiprocessing.Array('i', len(self.iDevices))
|
self.updateMPiDevicesFD()
|
||||||
i = 0
|
|
||||||
for fd in self.iDevices:
|
|
||||||
self.iDevicesFD[i] = fd
|
|
||||||
i +=1
|
|
||||||
def hasIDevices(self):
|
def hasIDevices(self):
|
||||||
if not self._initialized:
|
if not self._initialized:
|
||||||
return False
|
return False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user