testing.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:pslab-desktop-apps 作者: fossasia 项目源码 文件源码
def calFinished(self,items):
        ADC,DAC,correct = items
        CHAN = self.I.DAC.CHANS[DAC]
        X= np.linspace(CHAN.range[0],CHAN.range[1],4096)

        fitvals = np.polyfit(X,correct,3)
        fitfn = np.poly1d(fitvals)
        DIFF = (fitfn(X)-correct)
        intercept = DIFF.min()
        slope = (DIFF.max()-DIFF.min())/255.
        OFF = np.int16((( DIFF-intercept)/slope)) # compress the errors into an unsigned BYTE each
        print (min(OFF),max(OFF),len(OFF))

        self.p1.setData(X,correct-X)
        self.DACPLOT.enableAutoRange(axis = self.DACPLOT.plotItem.vb.YAxis)
        reply = QtGui.QMessageBox.question(self, 'Cross Check','Does the plot look okay? proceed with writing to flash?', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.No:
            return False

        self.DAC_CALS[DAC]=struct.pack('6f',slope,intercept,fitvals[0],fitvals[1],fitvals[2],fitvals[3])
        self.DAC_RELOADS[DAC] = OFF
        print( '\n','>'*20,DAC,'<'*20)
        print('Offsets :',OFF[:20],'...')
        fitfn = np.poly1d(fitvals)
        YDATA = fitfn(X) - (OFF*slope+intercept)
        LOOKBEHIND = 100;LOOKAHEAD=100                      
        OFF=np.array([np.argmin(np.fabs(YDATA[max(B-LOOKBEHIND,0):min(4095,B+LOOKAHEAD)]-X[B]) )- (B-max(B-LOOKBEHIND,0)) for B in range(0,4096)])
        CHAN.load_calibration_table(OFF)
        self.tabs.setEnabled(True)

        self.__PVCH__(DAC,ADC,self.curdacrow,[CHAN.CodeToV(100),CHAN.CodeToV(4000),200]) #Check if fixed
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号