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)
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
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)
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))
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)