Changeset 7996

Show
Ignore:
Timestamp:
03/12/08 11:38:31
Author:
jcorgan
Message:

Applied changeset r7957 on trunk to release branch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gnuradio/branches/releases/3.1/gr-utils/src/python/gr_plot_const.py

    r7657 r7996  
    7979        connect('draw_event', self.zoom) 
    8080        connect('key_press_event', self.click) 
     81        connect('button_press_event', self.mouse_button_callback) 
    8182        show() 
    8283 
     
    104105        self.sp_iq.set_xlabel("Time (s)", fontsize=self.label_font_size, fontweight="bold") 
    105106        self.sp_iq.set_ylabel("Amplitude (V)", fontsize=self.label_font_size, fontweight="bold") 
    106         self.plot_iq = plot(self.time, self.reals, 'bo-', self.time, self.imags, 'ro-') 
    107         self.sp_iq.axis([min(self.time), max(self.time), 
    108                          1.5*min([min(self.reals), min(self.imags)]), 
    109                          1.5*max([max(self.reals), max(self.imags)])]) 
     107        self.plot_iq  = self.sp_iq.plot(self.time, self.reals, 'bo-', self.time, self.imags, 'ro-') 
    110108 
    111109        # Subplot for constellation plot 
     
    114112        self.sp_const.set_xlabel("Inphase", fontsize=self.label_font_size, fontweight="bold") 
    115113        self.sp_const.set_ylabel("Qaudrature", fontsize=self.label_font_size, fontweight="bold") 
    116         self.plot_const = plot(self.reals, self.imags, 'bo') 
     114        self.plot_const  = self.sp_const.plot(self.reals, self.imags, 'bo') 
     115 
     116        # Add plots to mark current location of point between time and constellation plots 
     117        self.indx = 0 
     118        self.plot_iq += self.sp_iq.plot([self.time[self.indx],], [self.reals[self.indx],], 'mo', ms=8) 
     119        self.plot_iq += self.sp_iq.plot([self.time[self.indx],], [self.imags[self.indx],], 'mo', ms=8) 
     120        self.plot_const += self.sp_const.plot([self.reals[self.indx],], [self.imags[self.indx],], 'mo', ms=12) 
     121 
     122        # Adjust axis 
     123        self.sp_iq.axis([min(self.time), max(self.time), 
     124                         1.5*min([min(self.reals), min(self.imags)]), 
     125                         1.5*max([max(self.reals), max(self.imags)])]) 
    117126        self.sp_const.axis([-2, 2, -2, 2]) 
    118127 
     
    145154        forward_valid_keys = [" ", "down", "right"] 
    146155        backward_valid_keys = ["up", "left"] 
     156        trace_forward_valid_keys = [">",] 
     157        trace_backward_valid_keys = ["<",] 
    147158 
    148159        if(find(event.key, forward_valid_keys)): 
     
    151162        elif(find(event.key, backward_valid_keys)): 
    152163            self.step_backward() 
     164 
     165        elif(find(event.key, trace_forward_valid_keys)): 
     166            self.indx = min(self.indx+1, len(self.time)-1) 
     167            self.set_trace(self.indx) 
     168 
     169        elif(find(event.key, trace_backward_valid_keys)): 
     170            self.indx = max(0, self.indx-1) 
     171            self.set_trace(self.indx) 
    153172 
    154173    def button_left_click(self, event): 
     
    170189        self.get_data() 
    171190        self.update_plots() 
    172          
     191     
     192         
     193    def mouse_button_callback(self, event): 
     194        x, y = event.xdata, event.ydata 
     195         
     196        if x is not None and y is not None: 
     197            if(event.inaxes == self.sp_iq): 
     198                self.indx = searchsorted(self.time, [x]) 
     199                self.set_trace(self.indx) 
     200                 
     201 
     202    def set_trace(self, indx): 
     203        self.plot_iq[2].set_data(self.time[indx], self.reals[indx]) 
     204        self.plot_iq[3].set_data(self.time[indx], self.imags[indx]) 
     205        self.plot_const[1].set_data(self.reals[indx], self.imags[indx]) 
     206        draw() 
     207 
    173208             
    174209def find(item_in, list_search):