Ejemplo n.º 1
0
 def __init__(self, parent, name, unit, lower, upper, goal, actual):
     Tix.Frame.__init__(self, parent)
     self.unit_scale = 1
     if unit == 'rad' or unit == 'radians':
         unit = 'deg'
         self.unit_scale = math.pi / 180
     elif unit == 'm' or unit == 'meters':
         unit = 'mm'
         self.unit_scale = 0.001
     lower /= self.unit_scale
     upper /= self.unit_scale
     goal /= self.unit_scale
     actual /= self.unit_scale
     Tix.Label(self, text = '%s [%s]  (%5.2f to %5.2f)' % (name, unit, lower, upper), anchor = 'w')\
         .pack(side = Tix.TOP, expand = True, fill = Tix.X)
     self.goal_var = Tix.DoubleVar(self)
     self.goal_var.set(goal)
     frame = Tix.Frame(self)
     Tix.Label(frame, text='goal', width=6).pack(side=Tix.LEFT)
     self.goal_scale = Tix.Scale(frame,
                                 orient=Tix.HORIZONTAL,
                                 variable=self.goal_var,
                                 showvalue=0,
                                 from_=lower,
                                 to=upper,
                                 command=self._UpdateGoalLabel)
     self.goal_scale.pack(side=Tix.LEFT, expand=True, fill=Tix.X)
     self.FORMAT = '%5.2f'
     self.goal_label = Tix.Label(frame, text=self.FORMAT % goal, width=12)
     self.goal_label.pack(side=Tix.LEFT)
     frame.pack(side=Tix.TOP, expand=True, fill=Tix.X)
     self.actual_var = Tix.DoubleVar(self)
     self.actual_var.set(actual)
     frame = Tix.Frame(self)
     Tix.Label(self, text='actual', width=6).pack(side=Tix.LEFT)
     self.actual_scale = Tix.Scale(self,
                                   orient=Tix.HORIZONTAL,
                                   state=Tix.DISABLED,
                                   sliderrelief=Tix.FLAT,
                                   sliderlength=3,
                                   variable=self.actual_var,
                                   showvalue=0,
                                   from_=lower,
                                   to=upper,
                                   command=self._UpdateGoalLabel)
     self.actual_scale.pack(side=Tix.LEFT, expand=True, fill=Tix.X)
     self.actual_label = Tix.Label(frame,
                                   text=self.FORMAT % actual,
                                   width=12)
     self.actual_label.pack(side=Tix.LEFT)
     frame.pack(side=Tix.TOP, expand=True, fill=Tix.X)
     self.lower = lower
     self.upper = upper
     self.master_var = None
Ejemplo n.º 2
0
 def __init__(self, parent):
     Tix.Frame.__init__(self, parent)
     self.slider = []
     self.master_override = Tix.IntVar(self)
     self.master_override.set(0)
     frame = Tix.Frame(self)
     frame.pack(side=Tix.TOP, expand=True, fill=Tix.X)
     self.master_check = Tix.Checkbutton(frame,
                                         text='override',
                                         variable=self.master_override,
                                         command=self.Toggle)
     self.master_check.pack(side=Tix.LEFT)
     self.master_var = Tix.DoubleVar(self)
     self.master_var.set(0)
     self.master_scale = Tix.Scale(frame,
                                   orient=Tix.HORIZONTAL,
                                   variable=self.master_var,
                                   showvalue=0,
                                   from_=0,
                                   to=100,
                                   command=self._UpdateMaster)
     self.master_scale.pack(side=Tix.LEFT, expand=True, fill=Tix.X)
     Tix.Label(frame, textvariable=self.master_var,
               width=12).pack(side=Tix.LEFT)
     self.gframe = Tix.Frame(self)
     self.gframe.pack(side=Tix.TOP, expand=True, fill=Tix.X)
Ejemplo n.º 3
0
 def __init__(self, parent, name, unit, lower, upper, value):
     Tix.Frame.__init__(self, parent)
     self.unit_scale = 1
     if unit == 'rad' or unit == 'radians':
         unit = 'deg'
         self.unit_scale = math.pi / 180
     elif unit == 'm' or unit == 'meters':
         unit = 'mm'
         self.unit_scale = 0.001
     lower /= self.unit_scale
     upper /= self.unit_scale
     value /= self.unit_scale
     Tix.Label(self, text = '%s [%s]  (%5.2f to %5.2f)' % (name, unit, lower, upper), anchor = 'w')\
         .pack(side = Tix.TOP, expand = True, fill = Tix.X)
     self.value_var = Tix.DoubleVar(self)
     self.value_var.set(value)
     frame = Tix.Frame(self)
     Tix.Label(frame, text='value', width=6).pack(side=Tix.LEFT)
     self.value_scale = Tix.Scale(frame,
                                  orient=Tix.HORIZONTAL,
                                  variable=self.value_var,
                                  showvalue=0,
                                  from_=lower,
                                  to=upper,
                                  command=self._UpdateValueLabel)
     self.value_scale.pack(side=Tix.LEFT, expand=True, fill=Tix.X)
     self.FORMAT = '%5.2f'
     self.value_label = Tix.Label(frame, text=self.FORMAT % value, width=12)
     self.value_label.pack(side=Tix.LEFT)
     frame.pack(side=Tix.TOP, expand=True, fill=Tix.X)
     self.lower = lower
     self.upper = upper
     self.master_var = None
Ejemplo n.º 4
0
 def __init__(self, parent, prefixes, name, maxvals, gains):
     if (len(prefixes) != len(maxvals)) or (len(prefixes) != len(gains)):
         raise 'you gave me %d prefixes, %d maxvals, and %d gains' % (
             len(prefixes), len(maxvals), len(gains))
     Tix.Frame.__init__(self, parent)
     self.name = Tix.Label(self, text='name: %s' % name, anchor='w')
     self.name.pack(side=Tix.TOP, expand=True, fill=Tix.X)
     self.gain_var = []
     self.gain_label = []
     self.gain_scale = []
     self.master_var = []
     for ii in xrange(len(prefixes)):
         gv = Tix.DoubleVar(self)
         gv.set(gains[ii])
         frame = Tix.Frame(self)
         Tix.Label(frame, text=prefixes[ii], width=6).pack(side=Tix.LEFT)
         gs = Tix.Scale(frame,
                        orient=Tix.HORIZONTAL,
                        variable=gv,
                        showvalue=0,
                        from_=0,
                        to=maxvals[ii])
         gs.pack(side=Tix.LEFT, expand=True, fill=Tix.X)
         gl = Tix.Label(frame, textvariable=gv, width=12)
         gl.pack(side=Tix.LEFT)
         frame.pack(side=Tix.TOP, expand=True, fill=Tix.X)
         self.gain_var.append(gv)
         self.gain_label.append(gl)
         self.gain_scale.append(gs)
         self.master_var.append(None)
Ejemplo n.º 5
0
    def __init__(self, w):
        self.root = w
        self.exit = -1

        global demo_maker, demo_thrust, demo_num_engines

        demo_maker = Tix.StringVar()
        demo_thrust = Tix.DoubleVar()
        demo_num_engines = Tix.IntVar()
        demo_maker.set('P&W')
        demo_thrust.set(20000.0)
        demo_num_engines.set(2)

        top = Tix.Frame(w, bd=1, relief=Tix.RAISED)

        # $w.top.a allows only integer values
        #
        # [Hint] The -options switch sets the options of the subwidgets.
        # [Hint] We set the label.width subwidget option of the Controls to 
        #        be 16 so that their labels appear to be aligned.
        #
        a = Tix.Control(top, label='Number of Engines: ', integer=1,
                        variable=demo_num_engines, min=1, max=4,
                        options='entry.width 10 label.width 20 label.anchor e')

        b = Tix.Control(top, label='Thrust: ', integer=0,
                        min='10000.0', max='60000.0', step=500,
                        variable=demo_thrust,
                        options='entry.width 10 label.width 20 label.anchor e')

        c = Tix.Control(top, label='Engine Maker: ', value='P&W',
                        variable=demo_maker,
                        options='entry.width 10 label.width 20 label.anchor e')

        # We can't define these in the init because the widget 'c' doesn't
        # exist yet and we need to reference it
        c['incrcmd'] = lambda w=c: adjust_maker(w, 1)
        c['decrcmd'] = lambda w=c: adjust_maker(w, -1)
        c['validatecmd'] = lambda w=c: validate_maker(w)

        a.pack(side=Tix.TOP, anchor=Tix.W)
        b.pack(side=Tix.TOP, anchor=Tix.W)
        c.pack(side=Tix.TOP, anchor=Tix.W)

        box = Tix.ButtonBox(w, orientation=Tix.HORIZONTAL)
        box.add('ok', text='Ok', underline=0, width=6,
                command=self.okcmd)
        box.add('cancel', text='Cancel', underline=0, width=6,
                command=self.quitcmd)
        box.pack(side=Tix.BOTTOM, fill=Tix.X)
        top.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)
Ejemplo n.º 6
0
 def __init__(self, parent, lower, upper):
     Tix.Frame.__init__(self, parent)
     Tix.Label(self, text = 'goal').pack(side = Tix.TOP, expand = True, fill = Tix.X)
     goal = (lower + upper) / 2.0
     self.goal_var = Tix.DoubleVar(self)
     self.goal_var.set(goal)
     frame = Tix.Frame(self)
     Tix.Label(frame, text = 'goal', width = 6).pack(side = Tix.LEFT)
     self.goal_scale = Tix.Scale(frame, orient = Tix.HORIZONTAL,
                                 variable = self.goal_var, showvalue = 0,
                                 from_ = lower, to = upper,
                                 command = self._UpdateGoalLabel)
     self.goal_scale.pack(side = Tix.LEFT, expand = True, fill = Tix.X)
     self.FORMAT = '%5.2f'
     self.goal_label = Tix.Label(frame, text = self.FORMAT % goal, width = 12)
     self.goal_label.pack(side = Tix.LEFT)
     frame.pack(side = Tix.TOP, expand = True, fill = Tix.X)
     self.lower = lower
     self.upper = upper
Ejemplo n.º 7
0
 def __init__(self, parent, prefixes, maxvals):
     if len(prefixes) != len(maxvals):
         raise 'you gave me %d prefixes but %d maxvals' % (len(prefixes),
                                                           len(maxvals))
     Tix.Frame.__init__(self, parent)
     self.gain_slider = []
     self.prefixes = prefixes
     self.maxvals = maxvals
     self.master_override = []
     self.master_check = []
     self.master_var = []
     self.master_scale = []
     for ii in xrange(len(prefixes)):
         mo = Tix.IntVar(self)
         mo.set(0)
         frame = Tix.Frame(self)
         frame.pack(side=Tix.TOP, expand=True, fill=Tix.X)
         mc = Tix.Checkbutton(frame,
                              text='master %s' % prefixes[ii],
                              variable=mo,
                              command=partial(self.Toggle, ii))
         mc.pack(side=Tix.LEFT)
         mv = Tix.DoubleVar(self)
         mv.set(0)
         ms = Tix.Scale(frame,
                        orient=Tix.HORIZONTAL,
                        variable=mv,
                        showvalue=0,
                        from_=0,
                        to=maxvals[ii])
         ms.pack(side=Tix.LEFT, expand=True, fill=Tix.X)
         Tix.Label(frame, textvariable=mv, width=12).pack(side=Tix.LEFT)
         self.master_override.append(mo)
         self.master_check.append(mc)
         self.master_var.append(mv)
         self.master_scale.append(ms)
     self.gframe = Tix.Frame(self)
     self.gframe.pack(side=Tix.TOP, expand=True, fill=Tix.X)
Ejemplo n.º 8
0
    def createLintWidgets(self):
        lf = Tix.LabelFrame(self)
        lf['label'] = 'Lint'
        lf.pack(side='top',fill='both',expand=1)

        oe = Tix.FileEntry(lf)
        oe['dialogtype'] = 'tixExFileSelectDialog'
        oe['label'] = 'Lint output: (.html)'
        oe.pack(side='top',fill='x',expand=1)
        self.lint_output = Tix.StringVar()
        oe['variable'] = self.lint_output
        oe['command'] = self.lintOutputChanged
        if self.conf.has_option('Lint','output'):
            self.lint_output.set(self.conf.get('Lint','output'))

        ma = Tix.LabelEntry(lf)
        ma['label'] = 'Maximum age:'
        self.max_age = Tix.DoubleVar()
        ma.entry['textvariable'] = self.max_age
        self.max_age.set(0.0)
        ma.pack(side='top')
        

        opts = Tix.Select(lf,allowzero=True)
        opts['label'] = 'Options'
        opts.add('birth',text='birth')
        opts.add('death',text='death')
        opts.pack(side='top',expand=1)
        self.lint_options = Tix.StringVar()
        opts['variable'] = self.lint_options
        
        
        lb = Tix.Button(lf)
        lb['text'] = 'Run Lint'
        lb['command'] = self.runLint
        lb.pack(side='right')
Ejemplo n.º 9
0
    def ProbFunc(self, w):
        self.f_list = Tix.ComboBox(
            w,
            label="Function List: ",
            dropdown=0,
            command=lambda w=w: self.selectFunc(w),
            editable=1,
            variable=self.func,
            options=
            'listbox.height 3 label.padY 5 label.width 10 label.anchor ne')
        self.f_list.pack(side=Tix.TOP, anchor=Tix.W)
        self.f_list.insert(Tix.END, 'y**2*sin(pi*x)')
        self.f_list.insert(Tix.END, '((x-0.5)**2 + (y-0.5)**2 +1)**(1/2.0)')
        self.f_list.insert(Tix.END, 'cos(x*2*pi)*sin(y*2*pi)')
        self.f_list.insert(Tix.END, 'exp(-x)*(x+y**3)')
        self.f_list.insert(Tix.END, 'ln(1+(x-0.5)**2 +(y-0.5)**2)')
        self.f_list.set_silent('y**2*sin(pi*x)')
        self.f_list.pack(fill=Tix.X, padx=5, pady=3)
        x_order = Tix.DoubleVar()
        y_order = Tix.IntVar()
        #radio buttons decide whether the function is assigned to solution or source
        self.func_assign_option = Tix.Select(w,
                                             label='Assign function to:',
                                             allowzero=1,
                                             radio=1)
        self.func_assign_option.add(
            'solution', text='Solution')  #command=self.setSolAssign())
        self.func_assign_option.add('source', text='Source Function')
        self.func_assign_option.subwidget_list['solution'].invoke()
        self.func_assign_opt = self.func_assign_option["value"]

        xn = Tix.Control(w,
                         label='x order: ',
                         integer=1,
                         variable=x_order,
                         min=0,
                         max=3,
                         command=lambda w=w: self.select_X_order(w),
                         options='entry.width 5 label.width 6 label.anchor e')
        yn = Tix.Control(w,
                         label='y order: ',
                         integer=1,
                         variable=y_order,
                         min=0,
                         max=3,
                         command=lambda w=w: self.select_Y_order(w),
                         options='entry.width 5 label.width 6 label.anchor e')

        xn.pack(side=Tix.LEFT, padx=5, pady=3, fill=Tix.X)
        yn.pack(side=Tix.LEFT, padx=5, pady=3, fill=Tix.X)
        box = Tix.ButtonBox(w, orientation=Tix.HORIZONTAL)
        box.add('diff',
                text='Differentiate',
                underline=0,
                width=9,
                command=self.differentiate_fn)
        box.pack(side=Tix.BOTTOM, padx=5, pady=3, fill=Tix.X)
        self.func_assign_option.pack(side=Tix.BOTTOM,
                                     padx=5,
                                     pady=3,
                                     fill=Tix.X)
Ejemplo n.º 10
0
    def __init__(self, parent=None):
        self.myparent = parent
        self.myroot = self.myparent.myparent
        self.tempomaybe = copy.deepcopy(self.myparent.tempolist)
        self.tempofr = tk.Toplevel(self.myroot, width=480, height=360)
        self.tempofr.title("Tempo Changes")
        self.tempofr.rowconfigure(0, weight=1)
        self.tempofr.rowconfigure(1, weight=0)
        self.tempofr.columnconfigure(0, weight=1)
        self.tempobuttons = tk.ButtonBox(self.tempofr, width=480, height=360)
        self.tempobuttons.add('ok', text='OK', command=self.ok)
        self.tempobuttons.add('cancel', text='Cancel', command=self.cancel)
        self.tempobuttons.add('apply', text='Apply', command=self.apply)
        self.tempobuttons.add('sort', text='Sort', command=self.reorder)
        self.tempobuttons.grid(row=1, column=0, sticky='')
        self.canvas = tk.Canvas(self.tempofr, width=480, height=360)
        self.canvas.grid(row=0, column=0, sticky='nesw')
        self.canvas.rowconfigure(2, weight=1)
        self.canvas.columnconfigure(0, weight=1)
        self.toprow = tk.Frame(self.canvas)
        self.toprowoncanvas = self.canvas.create_window(0,
                                                        0,
                                                        window=self.toprow,
                                                        anchor="nw")
        self.toprow.columnconfigure(0, weight=0)
        self.toprow.columnconfigure(1, weight=1)
        self.botrow = tk.Frame(self.canvas, bd=3, relief="ridge")
        #        self.botrow.grid(row=1, column=0, sticky='we')
        self.botrow.columnconfigure(0, weight=0)
        self.botrow.columnconfigure(1, weight=1)
        bottomy = self.toprow.winfo_reqheight()
        #        print bottomy
        self.botrowoncanvas = self.canvas.create_window(0,
                                                        bottomy,
                                                        window=self.botrow,
                                                        anchor="nw")
        self.tempolinelist = []

        #        print self.tempomaybe
        self.scroll = tk.Scrollbar(self.tempofr,
                                   orient='vertical',
                                   takefocus=0)
        self.canvas.config(yscrollcommand=self.scroll.set)
        self.canvas.config(scrollregion=self.canvas.bbox("all"))
        self.scroll.config(command=self.canvas.yview)
        self.tempofr.bind("<Button-4>",
                          lambda event, arg1="scroll", arg2=-1, arg3="units":
                          self.canvas.yview(arg1, arg2, arg3),
                          "+")
        self.tempofr.bind("<Button-5>",
                          lambda event, arg1="scroll", arg2=1, arg3="units":
                          self.canvas.yview(arg1, arg2, arg3),
                          "+")
        for tempo in self.tempomaybe:
            number = self.tempomaybe.index(tempo)
            newline = self.addtempoline(tempo, number)

        self.addbar = tk.IntVar()
        self.addbeat = tk.IntVar()
        self.addbpm = tk.DoubleVar()
        self.addunit = tk.IntVar()
        self.blankbar = tk.Entry(self.botrow,
                                 width=4,
                                 textvariable=self.addbar)
        self.blankbar.focus_set()
        self.blankbar.select_range(0, "end")
        self.blankbar.grid(padx=10, sticky='')
        self.blankbeat = tk.Entry(self.botrow,
                                  width=3,
                                  textvariable=self.addbeat)
        self.blankbeat.grid(row=0, column=1, padx=10, sticky='')
        self.blankbpm = tk.Entry(self.botrow,
                                 width=5,
                                 textvariable=self.addbpm)
        self.blankbpm.grid(row=0, column=2, padx=10, sticky='')
        self.blankunit = tk.ComboBox(self.botrow,
                                     editable=1,
                                     variable=self.addunit,
                                     listwidth=8)
        self.blankunit.entry.configure(width=3)
        self.blankunit.append_history(1)
        self.blankunit.append_history(2)
        self.blankunit.append_history(3)
        self.blankunit.append_history(4)
        self.blankunit.append_history(6)
        self.blankunit.append_history(8)
        self.blankunit.append_history(12)
        self.blankunit.append_history(16)
        self.blankunit.grid(row=0, column=3, padx=10, sticky='')

        self.blankaddtempo = tk.Button(self.botrow,
                                       text="Add Tempo",
                                       command=self.newtempo)
        self.blankaddtempo.grid(row=0, column=4, padx=10, rowspan=1)

        self.tempofr.update_idletasks()
        self.tempofr.bind("<Return>", self.ok)
        self.tempofr.bind("<Escape>", self.cancel)
Ejemplo n.º 11
0
    def __init__(self, parent, tempo, bar, beat, bpm, unit, number):
        self.myparent = parent
        self.tempo = tempo
        self.number = number
        self.frame = tk.Frame(self.myparent.toprow, bd=4, relief='ridge')
        self.frame.grid(row=self.number, column=0, sticky='ew')
        self.bar = tk.IntVar()
        self.bar.set(bar)
        self.bar.trace("w", self.barchange)
        self.barlabel = tk.Label(self.frame, text="Bar:")
        self.barlabel.grid(row=0, column=0, padx=4, sticky='e')
        self.barwidget = tk.Control(self.frame,
                                    min=1,
                                    max=99999,
                                    width=4,
                                    variable=self.bar)
        self.barwidget.grid(row=0, column=1, padx=4, sticky='')
        self.beat = tk.IntVar()
        self.beat.set(beat)
        self.beat.trace("w", self.beatchange)
        self.beatlabel = tk.Label(self.frame, text="Beat:")
        self.beatlabel.grid(row=0, column=2, padx=4, sticky='e')
        self.beatwidget = tk.Control(self.frame,
                                     min=1,
                                     max=32,
                                     width=2,
                                     variable=self.beat)
        self.beatwidget.grid(row=0, column=3, padx=4, sticky='')
        self.bpm = tk.DoubleVar()
        self.bpm.set(bpm)
        self.bpm.trace("w", self.bpmchange)
        self.bpmlabel = tk.Label(self.frame, text="BPM:")
        self.bpmlabel.grid(row=0, column=4, padx=4, sticky='e')
        self.bpmwidget = tk.Entry(self.frame, width=4, textvariable=self.bpm)
        self.bpmwidget.grid(row=0, column=5, padx=4)
        self.unit = tk.IntVar()
        self.unit.set(unit)
        self.unit.trace("w", self.unitchange)
        self.unitlabel = tk.Label(self.frame, text="Unit:")
        self.unitlabel.grid(row=0, column=6, padx=4, sticky='e')
        self.unitwidget = tk.ComboBox(self.frame,
                                      variable=self.unit,
                                      editable=0)
        self.unitwidget.entry.configure(width=3)
        self.unitwidget.append_history(1)
        self.unitwidget.append_history(2)
        self.unitwidget.append_history(3)
        self.unitwidget.append_history(4)
        self.unitwidget.append_history(6)
        self.unitwidget.append_history(8)
        self.unitwidget.append_history(12)
        self.unitwidget.append_history(16)

        self.unitwidget.entry.configure(width=3)
        #        for value in ('Sixteenth', 'Dotted Sixteenth', 'Eighth', 'Dotted Eighth', 'Quarter', 'Dotted Quarter', 'Half', 'Dotted Half', 'Whole'):
        #            self.unitwidget.append_history(value)
        self.unitwidget.grid(row=0, column=7, padx=4, sticky='')
        self.x = tk.Button(self.frame,
                           text="x",
                           padx=0,
                           pady=0,
                           command=self.remove)
        self.x.grid(row=0, column=8, sticky='e', padx=40)

        self.myparent.tempofr.update_idletasks()
        bottomy = self.myparent.toprow.winfo_reqheight()
        #        print bottomy

        self.myparent.canvas.coords(self.myparent.botrowoncanvas, 0, bottomy)
        if self.myparent.scroll.winfo_ismapped():
            #            print self.page.scroll.get()
            pass
        else:
            self.myparent.tempofr.update_idletasks()
            #            print self.page.scroll.get()
            if self.myparent.scroll.get() != (0.0, 1.0):
                self.myparent.scroll.grid(row=1, column=1, sticky='ns')

        self.myparent.canvas.config(
            scrollregion=self.myparent.canvas.bbox("all"))
        self.myparent.canvas.yview_moveto(1.0)
        if self.myparent.scroll.winfo_ismapped():
            #            print self.page.scroll.get()
            pass
        else:
            self.myparent.tempofr.update_idletasks()
            #            print self.page.scroll.get()
            if self.myparent.scroll.get() != (0.0, 1.0):
                self.myparent.scroll.grid(row=0, column=1, sticky='ns')
Ejemplo n.º 12
0
 def __init__(self, parent, out):
     self.page = parent
     self.out = out
     self.flag = 'c'
     #        self.place = len(self.page.linelist)
     self.place = self.out.instrument.outlist.index(self.out)
     self.mute = tk.BooleanVar()
     self.mute.set(self.out.mute)
     self.mute.trace("w", self.mutechange)
     self.solo = tk.BooleanVar()
     self.solo.set(self.out.solo)
     self.solo.trace("w", self.solochange)
     self.volume = tk.DoubleVar()
     self.volume.set(self.out.volume)
     self.volume.trace("w", self.volumechange)
     self.instnum = tk.StringVar()
     self.instnum.set(self.out.instnum)
     self.instnum.trace("w", self.instnumchange)
     self.csdstring = tk.StringVar()
     self.csdstring.set(self.out.pfields)
     self.csdstring.trace("w", self.csdstringchange)
     self.frame = tk.Frame(self.page.toprow, bd=5, relief="ridge")
     self.frame.grid(row=self.place, column=0, columnspan=2, sticky='ew')
     self.frame.columnconfigure(0, weight=0)
     self.frame.columnconfigure(1, weight=0)
     self.frame.columnconfigure(2, weight=0)
     self.frame.columnconfigure(3, weight=0)
     self.frame.columnconfigure(4, weight=0)
     self.frame.columnconfigure(5, weight=0)
     self.frame.columnconfigure(6, weight=0)
     self.frame.columnconfigure(7, weight=0)
     self.frame.columnconfigure(8, weight=1)
     self.field1 = tk.Entry(self.frame, width=2)
     self.field1.grid(row=0, column=0, sticky='w', pady=10, padx=20)
     self.field1.insert(0, 'c')
     self.field1.configure(state='disabled')
     self.mutewidget = tk.Checkbutton(self.frame,
                                      height=1,
                                      width=1,
                                      variable=self.mute,
                                      bg='#ffaaaa',
                                      selectcolor='#996666',
                                      padx=2,
                                      pady=0,
                                      indicatoron=0,
                                      activebackground='#ff8888')
     self.mutewidget.grid(row=0, column=1, rowspan=1)
     self.solowidget = tk.Checkbutton(self.frame,
                                      height=1,
                                      width=1,
                                      variable=self.solo,
                                      bg='#aaffaa',
                                      selectcolor='#669966',
                                      padx=2,
                                      pady=0,
                                      indicatoron=0,
                                      activebackground='#88ff88')
     self.solowidget.grid(row=0, column=2, rowspan=1)
     self.field2label = tk.Label(self.frame, text="inst")
     self.field2label.grid(row=0,
                           column=self.page.cc1,
                           rowspan=1,
                           columnspan=self.page.ccs1,
                           sticky='w')
     self.field2 = tk.Entry(self.frame, width=8, textvariable=self.instnum)
     self.field2.grid(row=0,
                      column=self.page.cc2,
                      rowspan=1,
                      columnspan=self.page.ccs2,
                      sticky='w')
     self.field2.focus_set()
     self.field2.select_range(0, "end")
     self.field2.bind("<FocusOut>", self.stringupdate)
     self.field3label = tk.Label(self.frame, text="   time dur ")
     self.field3label.grid(row=0,
                           column=self.page.cc3,
                           rowspan=1,
                           columnspan=self.page.ccs3)
     self.field3 = tk.Entry(self.frame,
                            width=30,
                            textvariable=self.csdstring)
     self.field3.grid(row=0,
                      column=self.page.cc4,
                      rowspan=1,
                      columnspan=self.page.ccs4,
                      sticky='w')
     self.field3.bind("<FocusOut>", self.stringupdate)
     self.x = tk.Button(self.frame,
                        text="x",
                        padx=0,
                        pady=0,
                        command=self.remove)
     self.x.grid(row=0, column=self.page.cc5, sticky='e', padx=40)
     self.volumewidget = tk.Scale(self.frame,
                                  orient="horizontal",
                                  width=7,
                                  fg='#552288',
                                  sliderlength=10,
                                  sliderrelief='raised',
                                  tickinterval=10,
                                  from_=-90,
                                  to=10,
                                  resolution=.1,
                                  variable=self.volume)
     self.volumewidget.set(self.out.volume)
     self.volumewidget.grid(row=1,
                            column=0,
                            columnspan=11,
                            sticky='ew',
                            pady=2)
     self.page.widget.update_idletasks()
     bottomy = self.page.toprow.winfo_reqheight()
     self.page.canvas.coords(self.page.botrowoncanvas, 0, bottomy)
     self.page.canvas.config(scrollregion=self.page.canvas.bbox("all"))
     self.page.canvas.yview_moveto(1.0)
     if self.page.scroll.winfo_ismapped():
         #            print self.page.scroll.get()
         pass
     else:
         self.page.widget.update_idletasks()
         #            print self.page.scroll.get()
         if self.page.scroll.get() != (0.0, 1.0):
             self.page.scroll.grid(row=1, column=1, sticky='ns')
Ejemplo n.º 13
0
    def __init__(self, parent, bindir):
        self.root = parent
        self.bindir = bindir
        self.choices_ts = [
            'Displacement (filtered)', 'Acceleration (filtered)',
            'Acceleration (unfiltered)'
        ]
        self.hist_old = self.choices_ts[0]
        self.spec_old = self.choices_ts[1]
        self.p = {}  # dictionary to hold all Tk variables
        self.p['pmax'] = Tk.IntVar()
        self.p['pmax'].set(0)
        self.p['fltrng'] = Tk.IntVar()
        self.p['fltrng'].set(1)
        self.p['cutrng'] = Tk.IntVar()
        self.p['cutrng'].set(1)
        self.p['pltlog2'] = Tk.IntVar()
        self.p['pltlog2'].set(0)
        self.p['pltgrid'] = Tk.IntVar()
        self.p['pltgrid'].set(1)
        if self.bindir is None:
            self.choose_bin_directory()
        if self.bindir == '':
            sys.exit()

        ### Window layout setup
        self.root = parent
        self.entry_frame = Tk.Frame(root)
        self.entry_frame.pack(side='top', pady=5)
        self.eq_frame = Tk.Frame(root, borderwidth=2, relief='sunken')
        self.eq_frame.pack(side='top', fill=Tk.BOTH, expand=0)
        self.figure_frame = Tk.Frame(root)
        self.figure_frame.pack(side='top', anchor='n', expand=1, fill=Tk.BOTH)
        self.left_frame = Tk.Frame(self.figure_frame)
        self.left_frame.pack(side='left', anchor='n', expand=1, fill=Tk.BOTH)
        self.right_frame = Tk.Frame(self.figure_frame)
        self.right_frame.pack(side='left', anchor='n', expand=1, fill=Tk.BOTH)
        self.nav_frame = Tk.Frame(self.figure_frame)
        self.nav_frame.pack(side='right',
                            anchor='center',
                            expand=0,
                            fill='none')
        self.root.wm_title("Strong motion analyser")
        self.f1 = Figure(figsize=(5., 5.), dpi=100)
        self.f2 = Figure(figsize=(6.4, 5.), dpi=100)
        self.canvas1 = FigureCanvasTkAgg(self.f1, master=self.left_frame)
        self.canvas2 = FigureCanvasTkAgg(self.f2, master=self.right_frame)
        self.canvas1.show()
        self.canvas1.get_tk_widget().pack(side='left', expand=1, fill=Tk.BOTH)
        self.canvas2.get_tk_widget().pack(side='left', expand=1, fill=Tk.BOTH)
        toolbar = NavigationToolbar2TkAgg(self.canvas1, self.left_frame)
        toolbar.update()
        self.canvas1._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
        toolbar1 = NavigationToolbar2TkAgg(self.canvas2, self.right_frame)
        toolbar1.update()
        self.canvas2._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

        DataHandler.__init__(self, self.bindir)
        PlotIterator.__init__(self)

        # Make initial plot of first record
        self.plotcanvas()

        # set line length of input file; needed to add comments to line
        # set number of points variable
        self.p['starttrim'] = Tk.IntVar()
        self.p['starttrim'].set(self.startt)
        self.p['endtrim'] = Tk.IntVar()
        self.p['endtrim'].set(self.endt)
        self.p['demean'] = Tk.IntVar()
        self.p['demean'].set(self.dmn)
        self.p['detrend'] = Tk.IntVar()
        self.p['detrend'].set(self.dtrnd)

        # set filter to default filter
        self.p['hlow'] = Tk.DoubleVar()
        self.p['hlow'].set(self.highp[0])
        self.p['hhgh'] = Tk.DoubleVar()
        self.p['hhgh'].set(self.highp[1])

        # setting up spin boxes for cutting
        trim_cntrl_st = Tk.Control(self.entry_frame,
                                   label='start',
                                   integer=True,
                                   step=1,
                                   variable=self.p['starttrim'])
        trim_cntrl_st.entry.config(font=10)
        trim_cntrl_st.label.config(font=10)
        trim_cntrl_st.pack(side='left', padx=5)

        trim_cntrl_ed = Tk.Control(self.entry_frame,
                                   label='end',
                                   integer=True,
                                   step=1,
                                   variable=self.p['endtrim'])
        trim_cntrl_ed.entry.config(font=10)
        trim_cntrl_ed.label.config(font=10)
        trim_cntrl_ed.pack(side='left', padx=5)

        # setting up trim button
        trim_button = Tk.Button(self.entry_frame,
                                text='Cut',
                                width=8,
                                command=self.recalc,
                                font=10)
        trim_button.pack(side='left', padx=10)

        # setting up spin boxes for filtering
        hp_cntrl_lw = Tk.Control(self.entry_frame,
                                 label='cutoff',
                                 max=10,
                                 min=0,
                                 integer=False,
                                 step=0.01,
                                 variable=self.p['hlow'])
        hp_cntrl_lw.entry.config(font=10)
        hp_cntrl_lw.label.config(font=10)
        hp_cntrl_lw.pack(side='left', padx=5)
        hp_cntrl_hg = Tk.Control(self.entry_frame,
                                 label='corner',
                                 max=10,
                                 min=0,
                                 integer=False,
                                 step=0.01,
                                 variable=self.p['hhgh'])
        hp_cntrl_hg.entry.config(font=10)
        hp_cntrl_hg.label.config(font=10)
        hp_cntrl_hg.pack(side='left', padx=5)

        # setting up filter button
        flt_button = Tk.Button(self.entry_frame,
                               text='Filter',
                               width=8,
                               command=self.recalc,
                               font=10)
        flt_button.pack(side='left', padx=10)

        # setting up combo box for spectra
        spec_box = Tk.ComboBox(self.entry_frame,
                               label='Spectra',
                               editable=False,
                               dropdown=True,
                               command=self.choose_spec,
                               value=self.choices_ts[1])
        spec_box.insert('end', self.choices_ts[0])
        spec_box.insert('end', self.choices_ts[1])
        spec_box.insert('end', self.choices_ts[2])
        spec_box.label.config(font=10)
        spec_box.entry.config(font=10)
        #spec_box.listbox.config(font=10)
        spec_box.pack(side='left', padx=10)

        # setting up combo box for timeseries
        hist_box = Tk.ComboBox(self.entry_frame,
                               label='Timeseries',
                               editable=False,
                               dropdown=True,
                               command=self.choose_ts,
                               value=self.choices_ts[0])
        hist_box.insert('end', self.choices_ts[0])
        hist_box.insert('end', self.choices_ts[1])
        hist_box.insert('end', self.choices_ts[2])
        hist_box.label.config(font=10)
        hist_box.entry.config(font=10)
        hist_box.pack(side='left', padx=10)

        # setting up earthquake info frame
        self.evtime = Tk.Label(self.eq_frame,
                               text='Event time: %s' % self.v2.stream[0].stats.
                               smdict.eventtime.strftime("%d/%m/%Y %H:%M:%S"),
                               font=10,
                               padx=20)
        self.evtime.pack(side='left')
        self.eqdist = Tk.Label(self.eq_frame,
                               text='Epicentral distance: %d km' %
                               self.v2.stream[0].stats.smdict.epicdist,
                               font=10,
                               padx=20)
        self.eqdist.pack(side='left')
        self.hdep = Tk.Label(self.eq_frame,
                             text='Hypocentral depth: %d km' %
                             self.v2.stream[0].stats.smdict.hypodep,
                             font=10,
                             padx=20)
        self.hdep.pack(side='left')
        self.lmag = Tk.Label(self.eq_frame,
                             text='Local magnitude: %.2f' %
                             self.v2.stream[0].stats.smdict.Ml,
                             font=10,
                             padx=20)
        self.lmag.pack(side='left')
        a = self.data[0].split()
        fname = a[0].split('_')
        if len(fname) > 3:
            # building site
            self.sensname = fname[2] + "/" + fname[3]
        else:
            # single instrument accelerometer
            self.sensname = fname[2]

        self.sens = Tk.Label(self.eq_frame,
                             text='Sensor name: %s' % self.sensname,
                             font=10,
                             padx=20)
        self.sens.pack(side='left')

        # setting up navigation and save button
        p_button = Tk.Button(self.nav_frame,
                             text='Previous',
                             width=8,
                             command=self.prev,
                             font=10)
        p_button.pack(side='top', fill='x', anchor='center')
        n_button = Tk.Button(self.nav_frame,
                             text='Next',
                             width=8,
                             command=self.next,
                             font=10)
        n_button.pack(side='top', fill='x', anchor='center')
        n_button = Tk.Button(self.nav_frame,
                             text='Save',
                             width=8,
                             command=self.savefile,
                             font=10)
        n_button.pack(side='top', fill='x', anchor='center')

        # setting up radio buttons
        detrend = Tk.Checkbutton(self.nav_frame,
                                 text='Detrend',
                                 command=self.recalc,
                                 variable=self.p['detrend'],
                                 indicatoron=0,
                                 width=4,
                                 font=10)
        detrend.pack(side='top', fill='x', anchor='center')
        baldetrend = Tk.Balloon(self.nav_frame)
        baldetrend.bind_widget(
            detrend,
            balloonmsg=
            'Choose whether to subtract linear trend from Volume 1 acceleration timeseries.'
        )

        demean = Tk.Checkbutton(self.nav_frame,
                                text='Demean',
                                command=self.recalc,
                                variable=self.p['demean'],
                                indicatoron=0,
                                width=4,
                                font=10)
        demean.pack(side='top', fill='x', anchor='center')
        baldemean = Tk.Balloon(self.nav_frame)
        baldemean.bind_widget(
            demean,
            balloonmsg=
            'Choose whether to subtract mean from Volume 1 acceleration timeseries.'
        )

        maxb = Tk.Checkbutton(self.nav_frame,
                              text='Max',
                              command=self.plotmax,
                              variable=self.p['pmax'],
                              indicatoron=0,
                              width=4,
                              font=10)
        maxb.pack(side='top', fill='x', anchor='center')
        balmaxb = Tk.Balloon(self.nav_frame)
        balmaxb.bind_widget(maxb, balloonmsg='Plot maxima of timeseries.')

        fltrng = Tk.Checkbutton(self.nav_frame,
                                text='Fltrng',
                                command=self.plotfltrng,
                                variable=self.p['fltrng'],
                                indicatoron=0,
                                width=4,
                                font=10)
        fltrng.pack(side='top', fill='x', anchor='center')
        balfltrng = Tk.Balloon(self.nav_frame)
        balfltrng.bind_widget(
            fltrng,
            balloonmsg='Plot cutoff and corner frequencies of highpass filter.'
        )

        cutrng = Tk.Checkbutton(self.nav_frame,
                                text='Cutrng',
                                command=self.plotmax,
                                variable=self.p['cutrng'],
                                indicatoron=0,
                                width=4,
                                font=10)
        cutrng.pack(side='top', fill='x', anchor='center')
        balcutrng = Tk.Balloon(self.nav_frame)
        balcutrng.bind_widget(cutrng, balloonmsg='Plot cutting window.')

        pltlog2 = Tk.Checkbutton(self.nav_frame,
                                 text='log2',
                                 command=self.plotfltrng,
                                 variable=self.p['pltlog2'],
                                 indicatoron=0,
                                 width=4,
                                 font=10)
        pltlog2.pack(side='top', fill='x', anchor='center')
        balpltlog2 = Tk.Balloon(self.nav_frame)
        balpltlog2.bind_widget(
            pltlog2,
            balloonmsg=
            'Plot line with slope 2.0 through the maximum of the power spectrum.'
        )

        pltgrid = Tk.Checkbutton(self.nav_frame,
                                 text='Grid',
                                 command=self.plotfltrng,
                                 variable=self.p['pltgrid'],
                                 indicatoron=0,
                                 width=4,
                                 font=10)
        pltgrid.pack(side='top', fill='x', anchor='center')
        balpltgrid = Tk.Balloon(self.nav_frame)
        balpltgrid.bind_widget(pltgrid, balloonmsg='Plot grid lines.')

        # setting up comment button
        self.p['comment'] = Tk.StringVar()
        cmnt_button = Tk.Button(self.nav_frame,
                                text='Comment',
                                width=8,
                                command=self.add_comment,
                                font=10)
        cmnt_button.pack(side='top', fill='x', anchor='center')
        cmnt_ent = Tk.Entry(self.nav_frame,
                            textvariable=self.p['comment'],
                            width=8)
        cmnt_ent.pack(side='top', fill='x', anchor='center')
        balcmnt = Tk.Balloon(self.nav_frame)
        balcmnt.bind_widget(
            cmnt_button,
            balloonmsg=
            'Add a comment to the corresponding line in the input file.')
Ejemplo n.º 14
0
#!/usr/local/bin/python
Ejemplo n.º 15
0
##    print "Exec: ",cmd2
##    os.system(cmd2)
##    print "Exec: ",cmd3
##    os.system(cmd3)
##    print "Exec: ",cmd5
##    os.system(cmd5)

# -- global variables
root = Tix.Tk()
receiveMode = Tix.StringVar(root)
transmitMode = Tix.StringVar(root)
oldReceiveMode = 'Hexadecimal'
oldTransmitMode = 'Hexadecimal'
transmitPacketString = Tix.StringVar(root)
maxPacketSize = Tix.IntVar(root)
packetTimeout = Tix.DoubleVar(root)
portString = Tix.StringVar(root)
baudRateString = Tix.StringVar(root)
packetHeaderString = Tix.StringVar(root)
openOrCloseString = Tix.StringVar(root)

receiveFilters = {
    "ASCII": lambda x: x,
    "Hexadecimal": binascii.b2a_hex,
    "Decimal": lambda x: string.rjust(str(ord(x)), 3)
}

transmitFilters = {
    "ASCII": lambda x: x,
    "Hexadecimal": binascii.a2b_hex,
    "Decimal": lambda x: chr(int(x))