Changeset 4814


Ignore:
Timestamp:
11/22/08 03:42:01 (9 years ago)
Author:
werner
Message:

Highlights:

  • increase delay to improve reliability of communication with DS1000
  • some bug fixes

Details:

  • setup.py: forgot to install phosphor.py
  • lib/scope.py: increase pause after commands from 100ms to 300ms :-(
  • lib/scope.py: :HARDCOPY is synonymous to :LCD:DATA? - remove it
  • lib/scope.py (rigol_ds1000c): new experimental method "window" to set up the horizontal system in application-centered terms
  • lib/dxplore.py (channel.draw): if a channel contained edits, we cut off the channel after them
Location:
developers/werner/ahrt/host/tmc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • developers/werner/ahrt/host/tmc/lib/dxplore.py

    r4677 r4814  
    5555        for pos in self.edits: 
    5656            if pos < self.main.pos0: 
    57                 return 
     57                break 
    5858            self.main.w.create_rectangle( 
    5959              self.x(pos)-self.edit_border, self.y(0)+self.edit_border, 
  • developers/werner/ahrt/host/tmc/lib/scope.py

    r4673 r4814  
    157157            return self.trigger_get(self.scope.trigger) 
    158158 
    159          
     159 
    160160class horizontal(settable): 
    161161 
     
    347347    def send(self, s): 
    348348        scope.send(self, s) 
    349         time.sleep(0.1) 
     349        time.sleep(0.3) 
    350350 
    351351    # --- functions below are for internal use -------------------------------- 
     
    379379 
    380380    def screendump(self): 
    381         self.send(":HARDCOPY") 
    382381        return rigol_to_ppm(self.query(":LCD:DATA?")) 
    383382 
     
    395394                res.append(la[ch]) 
    396395        return res 
     396 
     397    # WORK IN PROGRESS. INTERFACE WILL CHANGE ! 
     398 
     399    # DS1000C/CD only ! E/D will need a different map. 
     400    # 
     401    # Note that we don't check if 400MSa/s mode is actually available. 
     402 
     403    rate_map = ( 
     404        ( 400e6,  50e-9 ),      #  50ns/div -> 400MSa/s 
     405        ( 200e6, 200e-9 ),      # 200ns/div -> 200MSa/s 
     406        ( 100e6, 200e-6 ),      # 200us/div -> 100MSa/s, mind the gap ! 
     407        (  50e6, 500e-6 ),      # 500us/div ->  50MSa/s 
     408        (  20e6,   1e-3 ),      #   1ms/div ->  20MSa/s 
     409        (  10e6,   2e-3 ),      #   2ms/div ->  10MSa/s 
     410        (   5e6,   5e-3 ),      #   5ms/div ->   5MSa/s 
     411        (   2e6,  10e-3 ),      #  10ms/div ->   2MSa/s 
     412        (   1e6,  20e-3 ),      #  20ms/div ->   1MSa/s 
     413        ( 873813.3125,    50e-3 ),      # mystery clock divider 
     414        ( 436906.65625,  100e-3 ),      # PLL at 32.768 Hz ? 
     415        ( 218453.328125, 200e-3 ),      # *80/3 yields 873813.3333... Hz 
     416        (  87381.335938, 500e-3 ), 
     417        (  43690.667969,   1 ), 
     418        (  21845.333984,   2 ), 
     419        (   8738.133789,   5 ), 
     420        (   4369.066895,  10 ), 
     421        (   2184.533447,  20 ), 
     422        (    873.813354,  50 ), 
     423    ) 
     424 
     425    def rate_to_div(self, rate): 
     426        last = None 
     427        for e in self.rate_map: 
     428            if rate > e[0]: 
     429                break 
     430            last = e 
     431        if last is None: 
     432            raise hell 
     433        return last[0], last[1] 
     434 
     435    def window(self, rate, t0 = None, t1 = None, trigger = 0): 
     436        real_rate, div = self.rate_to_div(rate) 
     437        if t0 is not None and t1 is not None: 
     438            if t0 >= t1: 
     439                raise hell 
     440            samples = (t1-t0)*real_rate 
     441            if samples > 524288:        # 512*1024 Sa 
     442                raise hell 
     443        self.hor.pos = 0 
     444        self.hor.scale = div 
     445        if t0 is None and t1 is None: 
     446            self.hor.pos = 0 
     447        else: 
     448            if t0 is None: 
     449                t0 = t1-self.samples/real_rate 
     450            center = (t0+t1)/2.0 
     451            self.hor.pos = center-trigger 
  • developers/werner/ahrt/host/tmc/setup.py

    r4649 r4814  
    77        "tmc.wave", "tmc.trigger", "tmc.shape", 
    88        "tmc.crc", "tmc.decode", "tmc.dxplore", 
     9        "tmc.phosphor", 
    910        "tmc.meter", "tmc.scope", "tmc.power", "tmc.function" ], 
    1011    package_dir = { "tmc": "lib" }, 
Note: See TracChangeset for help on using the changeset viewer.