Ejemplo n.º 1
0
    def __init__(self, exp):
        super(Handler, self).__init__()
        self.Exp = exp
        self.setupUi(self)
        self.I = interface.Interface()
        self.splitter.setSizes([1, 0])
        self.base_current = 0
        self.base_voltage = 0
        self.seriesR = 1000.
        self.timegap = 0
        self.MAXV = 2.0
        self.MINV = 0.0
        self.transistor_type = 'NPN'
        self.looptimer = QTimer()
        self.X = []
        self.Y = []
        self.curves = []
        self.legends = []
        self.curveData = {}
        self.plot = Exp.add2DPlot()

        self.plot.setLabel('bottom', 'Voltage -->>', units='V')
        self.plot.setLabel('left', 'Current -->>', units='A')
        self.plot.showGrid(True, True)
        self.newcol = self.random_color()
        self.current_curve = Exp.addCurve(self.plot, self.IbeLabel.text(),
                                          self.newcol)
        self.setBaseCurrent(0)
        self.I.set_pvs1(0)
        self.Exp.setRange(self.plot, -5, -20e-3, 10, 40e-3)
Ejemplo n.º 2
0
	def __init__(self):
		super(Handler, self).__init__()
		self.setupUi(self)
		self.I = interface.Interface()
		self.CC = ConvenienceClass()
		#self.funcgen= agilent('192.168.1.3')
		self.I.configure_trigger(0,'CH1',0)
		self.looptimer=QtCore.QTimer()
		self.plot1 = Exp.add2DPlot()
		self.plot2 = Exp.add2DPlot()
		self.curve1 = Exp.addCurve(self.plot1,'INPUT',(255,255,255))
		self.curve2 = Exp.addCurve(self.plot1,'OUTPUT',(0,255,255))

		self.p2=Exp.enableRightAxis(self.plot2)
		self.plot2.getAxis('right').setLabel('Phase', color='#00ffff')
		self.plot2.getAxis('left').setLabel('Amplitude', color='#ffffff')
		for a in [self.plot1,self.plot2]:a.getAxis('bottom').setLabel('Frequency', color='#ffffff')
		self.p2.setYRange(-360,360)

		self.curvePhase=Exp.addCurve(self.p2)#pg.PlotCurveItem()
		#self.p2.addItem(self.curvePhase)
		self.curvePhase.setPen(color=(0,255,255), width=1)
		self.curveAmp = self.plot2.plot()
		self.curveAmp.setPen(color=(255,255,255), width=1)
		self.freqs=[]
		self.amps=[]
		self.dP=[]
		self.STARTFRQ=self.startFreq.value()		
		self.ENDFRQ=self.stopFreq.value()
		self.frq=self.STARTFRQ
		self.STEPFRQ=self.stepFreq.value()
		self.loop=None
		self.plot2.setXRange(self.STARTFRQ,self.ENDFRQ)
		self.plot2.setYRange(0,1.)
		self.active=False
Ejemplo n.º 3
0
    def __init__(self, exp):
        super(Handler, self).__init__()
        self.Exp = exp
        self.setupUi(self)
        self.I = interface.Interface(2.0)

        self.I.NRF.start_token_manager()
        print self.I.readLog()
        self.plot = self.Exp.add2DPlot()
        self.plot.setLabel('bottom', 'Datapoints -->>')
        self.plot.setYRange(-35000, 35000)
        self.curves = []
        self.nodeWidgets = []
        self.nodeList = []
        self.acquireList = []
        self.POINTS = 1000
        self.xdata = range(self.POINTS)
        self.fps = 0
        self.lastTime = time.time()
        self.updatepos = 0
        self.active_device_counter = 0
        self.right_axes = []
        self.Exp.loopTask(2, self.updatePlots)
        self.updatepos = 0
        self.refreshTimer = self.Exp.loopTask(200, self.updateLogWindow)
        self.delayedTask(0, self.logs.setMaximumWidth, 1900)
        self.deviceMenus = []
        menu = self.PermanentMenu()
        self.curveMenu = QtGui.QMenu('Active Traces')
        menu.addMenu(self.curveMenu)
        self.paramMenus.insertWidget(0, menu)
        self.deviceMenus.append(menu)
Ejemplo n.º 4
0
	def __init__(self):
		super(Handler, self).__init__()
		self.setupUi(self)
		self.I = interface.Interface()
		self.totalpoints=2000
		self.X=np.arange(self.totalpoints)
		self.Y=np.zeros(self.totalpoints)
		self.looptimer=QtCore.QTimer()
		self.plot = Exp.add2DPlot()
		self.plot.setXRange(0,self.totalpoints)
		self.plot.setYRange(-16,16)
		self.curve = Exp.addCurve(self.plot,'',(255,255,255))
		self.streamfunc="I."+self.cmdlist.currentText()
		self.start_time=time.time()
		self.num=0
		self.arrow=Exp.pg.ArrowItem(angle=90)
		self.plot.addItem(self.arrow)
		self.looptimer=Exp.loopTask(1,self.acquire)
		self.nm=0
		self.start_time=time.time()
#!/usr/bin/python


import numpy as np
from vLabtool import interface
import pymouse
from vLabtool.SENSORS.MPU6050 import MPU6050
from vLabtool.SENSORS.Kalman import KalmanFilter
P=pymouse.PyMouse()


if __name__ == "__main__":
	I=interface.Interface()
	gyro=MPU6050(I.I2C)

	noise1=[];noise2=[]
	for a in range(500):
		x,y,z=gyro.getAccel()
		noise1.append(np.arcsinh(x*np.pi))
		noise2.append(np.arcsinh(y*np.pi))
	std1 = np.std(noise1);std2 = np.std(noise2)
	var1 = 1e-7;var2=1e-7

	eVar1 = std1 ** 2  # 0.05 ** 2
	eVar2 = std2 ** 2  # 0.05 ** 2
	K1 = KalmanFilter(var1, eVar1)
	K2 = KalmanFilter(var2, eVar2)

	while 1:
		x,y,z = gyro.getAccel()
		K1.input_latest_noisy_measurement(np.arcsinh(x*np.pi))
Ejemplo n.º 6
0
    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)
        self.setupUi(self)
        if not args.DeviceNumber: args.DeviceNumber = 1
        dv = int(args.DeviceNumber)
        self.I = interface.Interface(devnum=dv)
        self.setWindowTitle('vLabtool : ' + self.I.H.version_string)

        self.dacval = 0

        #self.yaxis = pg.AxisItem('left',showValues=False,maxTickLength=-4000)
        #self.yaxis.setPen((0,45,45))
        #self.yaxis.setLabel(text='Voltage -->>', units='')
        #self.yaxis.setTicks([[(a*5,'') for a in range(-6,6)],[(a,'') for a in range(-30,30)]])
        self.plot = pg.PlotWidget()

        #cross hair
        self.vLine = pg.InfiniteLine(angle=90, movable=True)
        self.vLine.setPen(color=(135, 44, 64, 150), width=3)
        self.plot.addItem(self.vLine, ignoreBounds=False)
        #self.proxy = pg.SignalProxy(self.plot.scene().sigMouseMoved, rateLimit=60, slot=self.mouseMoved)

        self.fps = 0
        self.max_samples_per_channel = [
            0, self.I.MAX_SAMPLES / 4, self.I.MAX_SAMPLES / 4,
            self.I.MAX_SAMPLES / 4, self.I.MAX_SAMPLES / 4
        ]
        self.liss_win = None
        self.liss_ready = False
        self.liss_animate_arrow1 = None
        self.liss_animate_arrow2 = None
        self.liss_animate_arrow3 = None
        self.liss_anim1 = None
        self.liss_anim2 = None
        self.liss_anim3 = None
        self.samples = self.I.MAX_SAMPLES / 4  #self.sample_slider.value()
        self.active_channels = 1
        self.active_dchannels = 1
        self.channel_states = np.array([1, 0, 0, 0])
        self.channels_in_buffer = 1
        self.chosa = 3
        self.chan1remap = 'CH1'
        self.ch123sa = 0
        self.dtrig = 0
        self.dchan_modes = [1, 1, 1, 1]
        self.dtime = 0.001
        self.sqrDict = {
            'SQ1': [0, 0.5],
            'SQ2': [0, 0.5],
            'OD1': [0, 0.5],
            'OD2': [0, 0.5]
        }
        g = 1.75
        self.timebase = g
        self.datx = []
        self.lastTime = time.time()
        self.plot.setLabel('bottom', 'Time -->>', units='S')
        self.plot.addLegend(offset=(-10, 30))

        self.trace_colors = [(0, 255, 20), (255, 255, 0), (20, 155, 20),
                             (10, 255, 255)]
        self.plot2 = pg.ViewBox()
        self.ax2 = pg.AxisItem('right')
        self.plot.plotItem.layout.addItem(self.ax2, 2, 3)
        self.plot.plotItem.scene().addItem(self.plot2)
        self.ax2.linkToView(self.plot2)
        self.plot2.setXLink(self.plot.plotItem)
        self.ax2.setZValue(-10000)
        self.ax2.setLabel('CH2', self.trace_colors[1])

        self.plot2.setGeometry(self.plot.plotItem.vb.sceneBoundingRect())
        self.plot2.linkedViewChanged(self.plot.plotItem.vb, self.plot2.XAxis)
        ## Handle view resizing
        self.plot.getViewBox().sigStateChanged.connect(self.updateViews)

        self.curve1 = self.plot.plot(name='CH1')
        self.curve1.setPen(color=self.trace_colors[0], width=1)
        self.curve2 = self.plot.plot(name='CH2')
        self.curve2.setPen(color=self.trace_colors[1], width=1)
        self.curve3 = self.plot.plot(name='CH3')
        self.curve3.setPen(color=self.trace_colors[2], width=1)
        self.curve4 = self.plot.plot(name='CH4')
        self.curve4.setPen(color=self.trace_colors[3], width=1)
        self.curve_lis = self.plot.plot()
        self.curve_lis.setPen(color=(255, 255, 255), width=1)

        self.curve_fitL = self.plot.plot()
        self.curve_fitL.setPen(color=(255, 255, 255), width=1)

        self.curve_fitR = pg.PlotDataItem()
        self.plot2.addItem(self.curve_fitR)
        self.curve_fitR.setPen(color=(255, 255, 255), width=1)

        self.curveB = pg.PlotDataItem(name='CH2')
        self.plot2.addItem(self.curveB)
        self.curveB.setPen(color=self.trace_colors[1], width=1)
        #self.plot.sigDeviceTransformChanged.connect(self.blah)
        #self.plot.sigTransformChanged.connect(self.blah)
        #self.plot.sigRangeChanged.connect(self.blah)

        self.CH1_ENABLE.setStyleSheet('background-color:rgba' +
                                      str(self.trace_colors[0])[:-1] +
                                      ',3);color:(0,0,0);')
        self.trigger_select_box.setItemData(
            0, QtGui.QColor(*self.trace_colors[0]), QtCore.Qt.BackgroundRole)
        self.CH2_ENABLE.setStyleSheet('background-color:rgba' +
                                      str(self.trace_colors[1])[:-1] +
                                      ',3);color:(0,0,0);')
        self.trigger_select_box.setItemData(
            1, QtGui.QColor(*self.trace_colors[1]), QtCore.Qt.BackgroundRole)
        self.triggerChannelName = 'CH1'
        self.arrow = pg.ArrowItem(pos=(0, 0), angle=0)
        self.plot.addItem(self.arrow)
        #markings every 5 Volts
        self.voltsperdiv = [
            '5V/div', '3V/div', '2V/div', '1V/div', '500mV/div', '400mV/div',
            '300mV/div', '100mV/div'
        ]
        self.trigger_channel = 0
        self.trigger_level = 0
        self.trigtext = pg.TextItem(html=self.trigger_text('CH1'),
                                    anchor=(1.2, 0.5),
                                    border='w',
                                    fill=(0, 0, 255, 100),
                                    angle=0)
        self.plot.addItem(self.trigtext)
        self.plot.showGrid(True, False, 0.4)
        self.scope_type = 0
        self.plot_area.addWidget(self.plot)
        self.CH1_REMAPS.addItems(self.I.allAnalogChannels)
        self.showgrid()
        self.trigtext.setParentItem(self.arrow)
        self.I.configure_trigger(self.trigger_channel, self.triggerChannelName,
                                 0)
        #self.sqr4_continuous(10000,.5,0.1,.5,0.3,.3,0.5,.1)
        self.autoRange()
        #self.plot.setMouseEnabled(False,True)
        self.timer = QtCore.QTimer()
        print 'capturing.', self.I.capture2(4000, 3)
        self.timer.singleShot(500, self.start_capture)