Subversion Repositories HomeAutomation

Rev

Rev 750 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 750 Rev 752
Line 3... Line 3...
3
# The default implementation of the packet handler
3
# The default implementation of the packet handler
4
#
4
#
5
###########################################################
5
###########################################################
6
from CanPktHandlerBase import CanPktHandlerBase
6
from CanPktHandlerBase import CanPktHandlerBase
7
from CanPkt import CanPkt
7
from CanPkt import CanPkt
-
 
8
import logging as log
8
 
9
 
9
class SpacePort():
10
class SpacePort():
10
   
11
   
11
    filterSpaces = {}
12
    filterSpaces = {}
12
   
13
   
Line 30... Line 31...
30
            return True
31
            return True
31
 
32
 
32
class CanPktHandler1(CanPktHandlerBase):
33
class CanPktHandler1(CanPktHandlerBase):
33
   
34
   
34
    daemonCfg = None
35
    daemonCfg = None
-
 
36
    serverListeners =[]
35
   
37
   
36
    def __init__ (self, daemonCfg):
38
    def __init__ (self, daemonCfg):
37
        self.daemonCfg = daemonCfg
39
        self.daemonCfg = daemonCfg
38
       
40
       
39
    def input(self, strdata):
41
    def input(self, strdata):
Line 52... Line 54...
52
        for filter in self.daemonCfg.filterChain:
54
        for filter in self.daemonCfg.filterChain:
53
            fObj = self.daemonCfg.filterCfg.filterModules[filter]
55
            fObj = self.daemonCfg.filterCfg.filterModules[filter]
54
            sp = SpacePort(fObj.__ASSOCIATED_SPACES__)
56
            sp = SpacePort(fObj.__ASSOCIATED_SPACES__)
55
            fObj.filter('', pkt, sp) # FIXME: use if name
57
            fObj.filter('', pkt, sp) # FIXME: use if name
56
 
58
           
-
 
59
        for sl in self.serverListeners:
-
 
60
            if not sl.full():
-
 
61
                sl.write(pkt.toString())
-
 
62
            else:
-
 
63
                log.debug('WARNING: Overflow in server buffer: ' + sl + ', packet dropped')
57
 
64
 
58
    def output(self, data):
65
    def output(self, data):
59
        pass
66
        pass
-
 
67
   
-
 
68
    def addServerListener(self, serverListener):
-
 
69
        self.serverListeners.append(serverListener)
-
 
70
   
-
 
71
    def remServerListener(self, serverListener):
-
 
72
        self.serverListeners.remove(serverListerner)
-
 
73