Changeset 143


Ignore:
Timestamp:
08/20/2009 12:28:25 PM (13 years ago)
Author:
marcus
Message:
  • more tests
  • access to system variables
Location:
SHX/trunk/src/SeismicHandler
Files:
3 added
4 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/src/SeismicHandler/core/error.py

    r139 r143  
    7979        return """info entry "%s" not writable!""" % self.name 
    8080 
    81 class VarsInternalReadOnlyError(Error): 
     81class VarsSystemReadOnlyError(Error): 
    8282    def __init__(self): 
    8383        Error.__init__(self) 
  • SHX/trunk/src/SeismicHandler/core/modules/Variables.py

    r139 r143  
    2626from SeismicHandler.core.shlib import shlib 
    2727from SeismicHandler.core.log import logging 
    28 from SeismicHandler.core.modules.Events import EventManager, Event 
    29 from SeismicHandler.core.error import VarsInternalReadOnlyError 
     28from SeismicHandler.core.error import VarsSystemReadOnlyError 
     29import ctypes as C 
    3030 
    31 class accessInternal(object): 
     31class accessSystem(object): 
     32    def __init__(self): 
     33        self._logger = logging.getLogger("modules.variables") 
     34        self._sh = shlib().sh 
     35     
     36    def __getattr__(self, name): 
     37        if name in ["_logger", "_sh"]: 
     38            return self.__dict__[name] 
     39         
     40        res = C.create_string_buffer(1024) 
     41        status = C.c_int() 
     42         
     43        self._sh.tr_intern(name.upper(), "", len(res), C.byref(res), C.byref(status)) 
     44         
     45        if not status: 
     46            return res.value 
     47        else: 
     48            return False 
     49     
     50    def __setattr__(self, name, value): 
     51        if name in ["_logger", "_sh"]: 
     52            self.__dict__[name] = value 
     53        else: 
     54            raise VarsSystemReadOnlyError 
     55 
     56class accessSymbols(object): 
    3257    def __init__(self): 
    3358        pass 
    34  
    35 class accessUserDefined(object): 
    36     def __init__(self): 
     59     
     60    def __getattr__(self, name): 
     61        pass 
     62     
     63    def __setattr__(self, name, value): 
    3764        pass 
    3865 
    39 Internal = accessInternal() 
    40 UserDefined = accessUserDefined() 
     66SystemVars = accessSystem() 
     67SymbolVars = accessSymbols() 
     68 
     69if __name__ == "__main__": 
     70    print SystemVars.pi 
  • SHX/trunk/src/SeismicHandler/core/shlib.py

    r139 r143  
    170170        """set some start up parameters""" 
    171171 
     172#        self.call(StringIO("SHSTRTUP")) 
     173#        return 
     174     
    172175        self.call(StringIO("wdw/dc=s/ic=s/main")) 
    173176        self.call(StringIO("wdw/ic=s")) 
  • SHX/trunk/src/SeismicHandler/tests/test_traces.py

    r142 r143  
    191191            self.fail("non existing failure") 
    192192 
    193     def testSumCommand(self): 
    194         # this test fails for some reason 
    195         # the summed trace has *never* a length greater 100 seconds 
    196          
    197         EventManager.block(Event(EventManager.REDRAW)) 
    198          
    199         seconds, delta = 110., 0.01 
    200          
    201         Run("del 1") 
    202         # create 2 identical synthetics with "seconds" length, 1/"delta" Hz  
    203         for i in xrange(2): 
    204             Run("CREATE SHARP %.2f %u 1. 15. .1 .5" % (delta, seconds)) 
    205              
    206         Run("sum all") 
    207          
    208 #        Run("fili f BP_2S_10HZ_4") 
    209 #        Run("filter f 1") 
    210              
    211         EventManager.unblock(Event(EventManager.REDRAW)) 
    212          
    213         for i in range(len(self.traces)): 
    214             print i 
    215             trc = self.traces[i+1] 
    216             self.assertAlmostEqual(trc.delta, delta, 6) 
    217             self.assertEqual(trc.length, seconds/delta) 
    218             self.assertAlmostEqual(len(trc)/1000., seconds, 1) 
    219               
    220193def suite(): 
    221194    return unittest.makeSuite(eventsTestCase, 'test') 
Note: See TracChangeset for help on using the changeset viewer.