Merge branch 'master' into processing
This commit is contained in:
		@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user