Changeset 4650


Ignore:
Timestamp:
09/16/08 16:40:57 (5 years ago)
Author:
werner
Message:

Highlights:

  • yet more decoding fixes
  • measurement of distance from user-defined origin, toggled with [Space]

Details:

  • lib/decode.py (decode_address): range check for known FBR indices allowed too large values
  • lib/decode.py (decode_arg): do not cut off the byte/block count in CMD53 reads
  • lib/decode.py (decode_arg): merged common processing of CMD52 and CMD53
  • lib/wave.py (digital.debounce): do not delete the beginning of the waveform if the acquisition begins inside a glitch
  • lib/dxplore.py (measurement.init): follow "s" with a space to keep format from changing when changing units
  • lib/dxplore.py (measurement.hide): prefix is also shown when hidden
  • lib/dxplore.py: added prefixes to all measurements
  • lib/dxplore.py: added measurement relative to a user-defined origin, toggled with [Space]
Location:
developers/werner/ahrt/host/tmc
Files:
4 edited

Legend:

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

    r4649 r4650  
    3030for wv in w[1:]: 
    3131    dig.append(wv.digitize(0.5)) 
     32#    dig[-1].debounce(100e-9) 
    3233 
    3334min = dig[0].sample_step() 
  • developers/werner/ahrt/host/tmc/lib/decode.py

    r4649 r4650  
    8383 
    8484    # FBR 
    85     if addr >= 0x100 and addr < 0x800 and (addr & 0xff) < 0x112: 
     85    if addr >= 0x100 and addr < 0x800 and (addr & 0xff) < 0x12: 
    8686        return ("F%d" % (addr >> 8))+( 
    8787            "FIC", "EFC", "Pwr", "RFU", 
     
    9595 
    9696def decode_arg(cmd, arg): 
    97     if cmd == 52: 
     97    if cmd == 52 or cmd == 53: 
    9898        write = (arg >> 31) & 1 
    9999        s = ("R", "W")[write] 
    100100        s += str((arg >> 28) & 7) 
    101         s += (" ", "W")[(arg >> 27) & 1] 
    102101        addr = (arg >> 9) & 0x1ffff 
    103102        name = decode_address(addr) 
    104103        if name is None: 
    105             s += "0x%X" % addr 
     104            addr = "0x%X" % addr 
    106105        else: 
    107             s += name+("(0x%X)" % addr) 
     106            addr = name+("(0x%X)" % addr) 
     107    if cmd == 52: 
     108        s += (" ", "W")[(arg >> 27) & 1] 
     109        s += addr 
    108110        if not write: 
    109             return s 
    110         return s+",0x%X" % (arg & 0xff) 
     111            s += ",0x%X" % (arg & 0xff) 
     112        return s 
    111113    if cmd == 53: 
    112         write = (arg >> 31) & 1 
    113         s = ("R", "W")[write] 
    114         s += str((arg >> 28) & 7) 
    115114        s += ("b", "B")[(arg >> 27) & 1] 
    116115        s += ("=", "+")[(arg >> 26) & 1] 
    117         addr = (arg >> 9) & 0x1ffff 
    118         name = decode_address(addr) 
    119         if name is None: 
    120             s += "0x%X" % addr 
    121         else: 
    122             s += name+("(0x%X)" % addr) 
    123         if not write: 
    124             return s 
     116        s += addr 
    125117        return s+"*%d" % (arg & 0x1ff) 
    126118    return None 
  • developers/werner/ahrt/host/tmc/lib/dxplore.py

    r4647 r4650  
    146146        self.fn = ( 
    147147          ( self.show_samples, "Sa" ), 
    148           ( self.show_time, "s" ), 
     148          ( self.show_time, "s " ), 
    149149          ( self.show_frequency, "Hz" )) 
    150150 
     
    154154        self.last_prefix = None 
    155155        self.var = StringVar() 
    156         self.button = Button(master, textvariable = self.var, width = 12, 
     156        self.button = Button(master, textvariable = self.var, width = 14, 
    157157          relief = FLAT, borderwidth = 0, font = self.font, 
    158158          fg = self.color, bg = self.background_color, 
     
    256256 
    257257    def hide(self): 
    258         self.var.set(" "*9+self.fn[self.index][1]) 
     258        self.var.set(self.prefix+" "*9+self.fn[self.index][1]) 
    259259        self.last = None 
    260260 
     
    283283        self.main.wz.tag_raise(self.zoom_tag) 
    284284        self.main.meas_pos.show(self.pos) 
     285        if self.main.user_pos is not None: 
     286            self.main.meas_user.show(self.pos-self.main.user_pos) 
    285287 
    286288    def x_to_pos(self, x): 
     
    321323        self.setup_events(master) 
    322324        self.decode_from = None 
     325        self.user_pos = None 
    323326        self.ch = [] 
    324327        self.cur = cursor(self) 
     
    355358        w.pack(expand = 1, fill = "x") 
    356359 
    357         self.meas_start = measurement(w, 0, sample_step) 
    358         self.meas_pos = measurement(w, t0, sample_step) 
     360        self.meas_start = measurement(w, 0, sample_step, "SEL ") 
     361        self.meas_pos = measurement(w, t0, sample_step, "CUR ") 
     362        self.meas_user = measurement(w, 0, sample_step, "USR ") 
    359363        self.meas_width = measurement(w, 0, sample_step) 
    360364 
     
    388392        master.bind(".", self.center) 
    389393        master.bind("c", self.center) 
     394        master.bind("<space>", self.user_coord) 
    390395 
    391396    def decoder_menu(self, master, ch, n): 
     
    482487            self.cur.pos = self.samples-1 
    483488        self.center(event) 
     489 
     490    def user_coord(self, event): 
     491        if self.user_pos is None: 
     492            self.user_pos = self.cur.pos 
     493            self.meas_user.show(0) 
     494        else: 
     495            self.user_pos = None 
     496            self.meas_user.hide() 
    484497 
    485498    def reset(self): 
  • developers/werner/ahrt/host/tmc/lib/wave.py

    r4646 r4650  
    497497                i += 1 
    498498            else: 
    499                 del self.data[i] 
    500                 del self.data[i] 
     499                # If we begin in a glitch, we just remove the second entry, 
     500                # so that the start of the waveform is preserved. 
     501                if i == 0: 
     502                    del self.data[1] 
     503                    self.initial = not self.initial 
     504                else: 
     505                    del self.data[i] 
     506                    del self.data[i] 
    501507 
    502508    def __len__(self): 
Note: See TracChangeset for help on using the changeset viewer.