Rev 748 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 748 | Rev 749 | ||
|---|---|---|---|
| Line 10... | Line 10... | ||
| 10 | import imp |
10 | import imp |
| 11 | import re |
11 | import re |
| 12 | from ConfigParser import ConfigParser |
12 | from ConfigParser import ConfigParser |
| 13 | import filters |
13 | import filters |
| 14 | import statespaces |
14 | import statespaces |
| 15 | - | ||
| - | 15 | from CanPktHandlerBase import CanPktHandlerBase |
|
| - | 16 | from CanPktHandler1 import CanPktHandler1 |
|
| 16 | 17 | ||
| 17 | class DynamicModuleCfg: |
18 | class DynamicModuleCfg: |
| 18 | """Dynamic module manager""" |
19 | """Dynamic module manager""" |
| 19 | 20 | ||
| 20 | modSubDir = None |
21 | modSubDir = None |
| Line 136... | Line 137... | ||
| 136 | 137 | ||
| 137 | def loadFilter(self, name): |
138 | def loadFilter(self, name): |
| 138 | newFilt = self.dynamicModuleCfg.loadModule(name) |
139 | newFilt = self.dynamicModuleCfg.loadModule(name) |
| 139 | if newFilt is not None: |
140 | if newFilt is not None: |
| 140 | self.filterModules[name] = newFilt |
141 | self.filterModules[name] = newFilt |
| 141 | return True |
142 | return True |
| 142 | else: |
143 | else: |
| 143 | return False |
144 | return False |
| 144 | 145 | ||
| 145 | def loadFilters(self, config = None): |
146 | def loadFilters(self, config = None): |
| 146 | self.filterModules = self.dynamicModuleCfg.loadModules() |
147 | self.filterModules = self.dynamicModuleCfg.loadModules() |
| 147 | for fM in self.filterModules: |
148 | for fM in self.filterModules: |
| Line 187... | Line 188... | ||
| 187 | 188 | ||
| 188 | def loadSpaces(self, config = None): |
189 | def loadSpaces(self, config = None): |
| 189 | self.spaceModules = self.dynamicModuleCfg.loadModules() |
190 | self.spaceModules = self.dynamicModuleCfg.loadModules() |
| 190 | for sM in self.spaceModules: |
191 | for sM in self.spaceModules: |
| 191 | log.debug(sM) |
192 | log.debug(sM) |
| 192 | 193 | ||
| 193 | def __saveSpace(self, className, classObj): |
194 | def __saveSpace(self, className, classObj): |
| 194 | self.dynamicModuleCfg.saveModule(className, classObj) |
195 | self.dynamicModuleCfg.saveModule(className, classObj) |
| 195 | 196 | ||
| 196 | def saveSpaces(self): |
197 | def saveSpaces(self): |
| 197 | for className in self.spaceModules: |
198 | for className in self.spaceModules: |
| 198 | self.__saveSpace(className, self.spaceModules[className]) |
199 | self.__saveSpace(className, self.spaceModules[className]) |
| 199 | 200 | ||
| 200 | def importSpace(self, name): |
201 | def importSpace(self, name): |
| 201 | """Imports a given state space definition file """ |
202 | """Imports a given state space definition file """ |
| 202 | classObj = self.dynamicModuleCfg.importModule(name, self.REQUIRED_ATTRIBUTES) |
203 | classObj = self.dynamicModuleCfg.importModule(name, self.REQUIRED_ATTRIBUTES) |
| 203 | if classObj is not None: |
204 | if classObj is not None: |
| 204 | print 'Imported: ' + classObj.DESCRIPTIVE_NAME |
205 | print 'Imported: ' + classObj.DESCRIPTIVE_NAME |
| 205 | return True |
206 | return True |
| 206 | else: |
207 | else: |
| 207 | return False |
208 | return False |
| 208 | 209 | ||
| 209 | class DaemonConfig: |
210 | class DaemonConfig: |
| 210 | 211 | ||
| 211 | stateSpaceCfg = None |
212 | stateSpaceCfg = None |
| 212 | filterCfg = None |
213 | filterCfg = None |
| - | 214 | pktHandler = None |
|
| - | 215 | ||
| 213 | filterChain = [] |
216 | filterChain = [] |
| - | 217 | nodeInterfaces = [] |
|
| - | 218 | nodeInterfaceMap = {} |
|
| 214 | 219 | ||
| 215 | def __init__ (self): |
220 | def __init__ (self): |
| 216 | self.filterCfg = FilterCfg() |
221 | self.filterCfg = FilterCfg() |
| 217 | self.stateSpaceCfg = StateSpaceCfg() |
222 | self.stateSpaceCfg = StateSpaceCfg() |
| - | 223 | self.pktHandler = CanPktHandler1() |
|
| - | 224 | ||
| - | 225 | def load(self): |
|
| - | 226 | self.stateSpaceCfg.loadSpaces() |
|
| - | 227 | self.stateSpaceCfg.loadFilters() |
|
| - | 228 | __setupFilterBindings() |
|
| - | 229 | __setupFilterChain() |
|
| - | 230 | ||
| - | 231 | def save(self): |
|
| - | 232 | self.stateSpaceCfg.saveSpaces() |
|
| - | 233 | self.filterCfg.saveFilters() |
|
| 218 | 234 | ||
| 219 | def |
235 | def __setupFilterChain(self): |
| 220 | self.filterChain = ['DefaultFilter'] |
236 | self.filterChain = ['DefaultFilter'] |
| 221 | 237 | ||
| 222 | def |
238 | def __setupFilterBindings(self): |
| 223 | for f in self.filterCfg.filterModules.values(): |
239 | for f in self.filterCfg.filterModules.values(): |
| 224 | assocSpaces = [] |
240 | assocSpaces = [] |
| 225 | for s in f.ASSOCIATED_SPACES: |
241 | for s in f.ASSOCIATED_SPACES: |
| 226 | if self.stateSpaceCfg.spaceModules.has_key(s): |
242 | if self.stateSpaceCfg.spaceModules.has_key(s): |
| 227 | assocSpaces.append(self.stateSpaceCfg.spaceModules[s]) |
243 | assocSpaces.append(self.stateSpaceCfg.spaceModules[s]) |