def timeReference(self):
##        pipeInData =[]
        self.sinewave= gen_sin(F = 10.0, AMP = 0.3,  BIAS = 1.0,  T = 2.0)  #  python only
        
        pipeInData = gen_sin(F = 10.0, AMP = 0.3,  BIAS = 1.0,  T = 2.0) # pipe in to fpga
        xem_spindle_bic.SendPipe2(pipeInData)
        xem_spindle_tri.SendPipe2(pipeInData)
예제 #2
0
    def on_checkBox_clicked(self, checked):
        """
        Slot documentation goes here.
        """
  
        if (checked):
            print "waveform sine_bic fed"
    #            pipeInData = spike_train(firing_rate = 10)      
            #pipeInData = gen_sin(F = 0.5, AMP = 5000.0,  BIAS = 5001.0,  T = 2.0) 
    #            pipeInData = gen_tri(T = 2.0) 

            pipeInData_bic = gen_sin(F = 1.0, AMP = 15000.0,  BIAS = 0.0,  T = 2.0)

            pipeInDataBic=[]
            for i in xrange(0,  2048):
                pipeInDataBic.append(max(0.0,  pipeInData_bic[i]))


    #        elif choice == "middleBoard_sine_Tri":
            print "waveform sine_tri fed"

            pipeIndata_tri = -gen_sin(F = 1.0,  AMP = 15000.0,  BIAS = 0.0,  T = 2.0)

            pipeInDataTri=[]
            for i in xrange(0,  2048):
                pipeInDataTri.append(max(0.0,  pipeIndata_tri[i]))
   

            self.xemList[0].SendPipe(pipeInDataBic)
            self.xemList[1].SendPipe(pipeInDataTri)
예제 #3
0
    def on_checkBox_clicked(self, checked):
        """
        Slot documentation goes here.
        """
  
        if (checked):
            print "waveform sine_bic fed"
    #            pipeInData = spike_train(firing_rate = 10)      
            #pipeInData = gen_sin(F = 0.5, AMP = 5000.0,  BIAS = 5001.0,  T = 2.0) 
    #            pipeInData = gen_tri(T = 2.0) 

            pipeInData_bic = gen_sin(F = 0.5, AMP = 50000.0,  BIAS = 0.0,  T = 2.0) # was 150000 for CN_general
#            pipeInData_bic = gen_ramp(T = [0.0, 0.01, 0.02,  0.22, 0.23, 2.0], L = [0.0, 0.0, 120000.0, 120000.0, 0.0, 0.0], FILT = False)
            

            pipeInDataBic=[]
            for i in xrange(0,  2048):
                pipeInDataBic.append(max(0.0,  pipeInData_bic[i]))


    #        elif choice == "middleBoard_sine_Tri":
            print "waveform sine_tri fed"

            pipeIndata_tri = -gen_sin(F = 0.5,  AMP = 50000.0,  BIAS = 0.0,  T = 2.0)
#            pipeIndata_tri = gen_ramp(T = [0.0, 0.21, 0.22, 0.42, 0.43, 2.0], L = [0.0, 0.0, 120000.0, 120000.0, 0.0, 0.0], FILT = False)
            
            pipeInDataTri=[]
            for i in xrange(0,  2048):
                pipeInDataTri.append(max(0.0,  pipeIndata_tri[i]))
   

            self.xemList[0].SendPipe(pipeInDataTri)
            self.xemList[1].SendPipe(pipeInDataBic)
예제 #4
0
 def OnFeedChoice(self, evt):
     choice = evt.GetString()
     if choice == "Sine 1Hz":
         pipeInData = gen_sin(F=1.0, AMP=0.3)
     elif choice == "Sine 4Hz":
         pipeInData = gen_sin(F=2.0, AMP=0.3)
     elif choice == "Triangular":
         pipeInData = gen_tri()
     self.nerfModel.SendPipe(pipeInData)
 def OnFeedChoice(self, evt):
     choice = evt.GetString()
     if choice == "Sine 1Hz":
         pipeInData = gen_sin(F = 1.0, AMP = 0.3)
     elif choice == "Sine 4Hz":
         pipeInData = gen_sin(F = 2.0, AMP = 0.3)
     elif choice == "Triangular":
         pipeInData = gen_tri()
     self.nerfModel.SendPipe(pipeInData)
예제 #6
0
    def __init__(self, parent = None):
        """
        Constructor
        """
#        QDialog.__init__(self, parent, Qt.FramelessWindowHint)
        QDialog.__init__(self, parent)
        self.setupUi(self)
        
        self.nerfModel = Model()
        
        pipeInData = gen_sin(F = 1.0, AMP = 100.0,  T = 2.0)
        self.nerfModel.SendPipe(pipeInData)
        
        self.dispView = View(None, VIEWER_REFRESH_RATE, CHIN_PARAM)

        self.dispView.show()
        self.data = []
        self.isLogData = False
        
        # Create float_spin for each input channel
        self.ctrl_all = []
        for (trig_id, name, type, value) in CHOUT_PARAM:
            exec interp('self.ctrl_#{name} = CtrlChannel(hostDialog=self, name=name, id=trig_id, type=type, value=value)')
            exec interp('self.connect(self.ctrl_#{name}.doubleSpinBox, SIGNAL("editingFinished()"), self.onNewWireIn)')
            exec interp('self.connect(self.ctrl_#{name}.doubleSpinBox, SIGNAL("valueChanged(double)"), self.onNewWireIn)')
            exec interp('self.ctrl_all.append(self.ctrl_#{name})')        
        
        # Timer for pulling data, separated from timer_display
        self.timer = QTimer(self)
        self.connect(self.timer, SIGNAL("timeout()"), self.onSyncData)       
        self.timer.start(VIEWER_REFRESH_RATE )
        
        
        self.on_horizontalSlider_valueChanged(5)
예제 #7
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
            #            pipeInData = spike_train(firing_rate = 1)
            pipeInData = gen_sin(F=1.0, AMP=0.3)
        elif choice == "Spike Train 10Hz":
            #            pipeInData = spike_train(firing_rate = 10)
            pipeInData = gen_sin(F=4.0, AMP=0.3)

        elif choice == "Spike Train 20Hz":
            pipeInData = gen_tri()
#            pipeInData = spike_train(firing_rate = 100)

        self.nerfModel.SendPipe(pipeInData)
예제 #8
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
#            pipeInData = spike_train(firing_rate = 1) 
            pipeInData = gen_sin(F = 1.0, AMP = 0.3)
        elif choice == "Spike Train 10Hz":
#            pipeInData = spike_train(firing_rate = 10)      
            pipeInData = gen_sin(F = 4.0, AMP = 0.3)
            
        elif choice == "Spike Train 20Hz":
            pipeInData = gen_tri() 
#            pipeInData = spike_train(firing_rate = 100) 
        
        self.nerfModel.SendPipe(pipeInData)
예제 #9
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
#            pipeInData = spike_train(firing_rate = 1) 
            pipeInData = gen_sin(F = 1.0, AMP = 0.3)
        elif choice == "Spike Train 10Hz":
#            pipeInData = spike_train(firing_rate = 10)      
            pipeInData = gen_sin(F = 4.0, AMP = 0.3)
            
        elif choice == "Spike Train 20Hz":
#            pipeInData = gen_tri() 
            pipeInData = gen_seq(T =  [0.0, 0.06, 0.07,  0.24,  0.26,  0.43,  0.44,  0.5, 0.5,  0.56, 0.57,  0.74,  0.76,  0.93,  0.94,  1.0],\
                                 L = [0.0,  0.0,  1.0,  1.0,  -1.0,  -1.0,  0.0,  0.0,  0.0,  0.0,  -1.0,  -1.0,  1.0,  1.0,  0.0,  0.0], FILT = True)

#            pipeInData = spike_train(firing_rate = 100) 
        
        self.nerfModel.SendPipe(pipeInData)
예제 #10
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
            #            pipeInData = spike_train(firing_rate = 1)
            pipeInData = gen_sin(F=1.0, AMP=0.3, BIAS=1.0, T=2.0)
#           pipeInData = chirping_spike_train(coeff_a = 20)
        elif choice == "Spike Train 10Hz":
            #            pipeInData = spike_train(firing_rate = 100)
            pipeInData = gen_sin(F=4.0, AMP=0.3, BIAS=1.0, T=2.0)
#            pipeInData = chirping_spike_train(coeff_a = 40)

        elif choice == "Spike Train 20Hz":
            #            pipeInData = gen_tri()
            #            pipeInData = spike_train(firing_rate = 500)
            pipeInData = chirping_spike_train(coeff_a=60)

        #self.nerfModel.SendPipeInt(pipeInData)   # for spike_train(),  SendPipeInt, SendPipe same result.
        self.nerfModel.SendPipe(pipeInData)
예제 #11
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
#            pipeInData = spike_train(firing_rate = 1) 
            pipeInData = gen_sin(F = 1.0, AMP = 0.3,   BIAS = 1.0)
#           pipeInData = chirping_spike_train(coeff_a = 20)
        elif choice == "Spike Train 10Hz":
#            pipeInData = spike_train(firing_rate = 100)      
            pipeInData = gen_sin(F = 4.0, AMP = 0.3,  BIAS = 1.57)
#            pipeInData = chirping_spike_train(coeff_a = 40)
            
        elif choice == "Spike Train 20Hz":
#            pipeInData = gen_tri() 
#            pipeInData = spike_train(firing_rate = 500) 
            pipeInData = chirping_spike_train(coeff_a =60)
            
        #self.nerfModel.SendPipeInt(pipeInData)   # for spike_train(),  SendPipeInt, SendPipe same result.
        self.nerfModel.SendPipe(pipeInData)
예제 #12
0
파일: Controls.py 프로젝트: wonjsohn/sarcos
    def __init__(self, parent = None):
        """
        Constructor
        """
#        QDialog.__init__(self, parent, Qt.FramelessWindowHint)
        QDialog.__init__(self, parent)
        self.setupUi(self)
        
        rawxem = ok.FrontPanel()
        #count = 2
        count = rawxem.GetDeviceCount()
        print count
    
        self.xemList = []
          
        BIT_FILE_LIST = [BIT_FILE,  BIT_FILE2]
        #BIT_FILE_LIST = [BIT_FILE]
        for i in xrange(count):
            
            serX = rawxem.GetDeviceListSerial(i)
            print "serial = ",  serX    
            self.nerfModel = FpgaDevice(serX,  BIT_FILE_LIST[i])
            self.xemList.append(self.nerfModel)
      
            
        # SEND SINEWAVE ALWAYS 
        pipeInData = gen_sin(F = 1.0, AMP = 100.0,  T = 2.0)
        self.xemList[1].SendPipe(pipeInData)
        
    
        
        self.dispView = View(None, VIEWER_REFRESH_RATE, CHIN_PARAM)

        self.dispView.show()
        self.data = []
        self.isLogData = False
        
        # Create float_spin for each input channel
        self.ctrl_all = []
        for (trig_id, name, type, value) in CHOUT_PARAM:
            exec interp('self.ctrl_#{name} = CtrlChannel(hostDialog=self, name=name, id=trig_id, type=type, value=value)')
            exec interp('self.connect(self.ctrl_#{name}.doubleSpinBox, SIGNAL("editingFinished()"), self.onNewWireIn)')
            exec interp('self.connect(self.ctrl_#{name}.doubleSpinBox, SIGNAL("valueChanged(double)"), self.onNewWireIn)')
            exec interp('self.ctrl_all.append(self.ctrl_#{name})')        
        
        # Timer for pulling data, separated from timer_display
        self.timer = QTimer(self)
        self.connect(self.timer, SIGNAL("timeout()"), self.onSyncData)       
        self.timer.start(VIEWER_REFRESH_RATE )
        
        
        self.on_horizontalSlider_valueChanged(5)
예제 #13
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "waveform 1":
#            pipeInData = gen_ramp(T = [0.0, 0.1, 0.3, 1.0, 1.2, 2.0], L = [0.0, 0.0, 120000.0, 120000.0, 0.0, 0.0], FILT = False)
#            pipeInData = gen_ramp(T = [0.0, 0.1, 0.3, 1.0, 1.2, 2.0], L = [0.0, 0.0, 1.4, 1.4, 0.0, 0.0], FILT = False)
            pipeInData = gen_ramp(T = [0.0, 0.1, 0.2, 0.25, 0.3, 1.1, 1.2, 1.25,  1.3, 2.0], L = [0.8, 0.8, 1.4, 1.4, 0.8, 0.8, 1.4,  1.4,  0.8,  0.8], FILT = False)

            print "waveform 1 fed"
#            pipeInData = gen_sin(F = 1.0, AMP = 100.0,  T = 2.0) 
            
            
        elif choice == "waveform 2":
            print "waveform  fed"
#            pipeInData = spike_train(firing_rate = 10)      
#            pipeInData = gen_sin(F = 0.5, AMP = 5000.0,  BIAS = 5001.0,  T = 2.0) 
#            pipeInData = gen_tri(T = 2.0) 
            #pipeInData = gen_ramp(T = [0.0, 0.1, 0.9, 1.4, 1.9, 2.0], L = [0.5, 0.5, 1.5, 1.5, 0.5,  0.5], FILT = False)
            #pipeInData = gen_ramp(T = [0.0, 1.8, 2.0], L = [0.0, 30000.0, 0.0], FILT = False)
            
            #pipeInData = abs(gen_sin(F = 0.5, AMP = 17000.0,  BIAS = 0.0,  T = 2.0))   #big sine wave for training stdp
            #pipeInData[:] = [1 - x for x in pipeInData]  #( 1 - pipeIndata)

            pipeInData =  gen_rand(T=16.0,  BIAS = 1500.0, AMP = 4400.0) # 16 seconds
            pipeInData2 =  gen_rand(T=16.0,  BIAS = 1500.0, AMP = 4400.0) # 16 seconds
            
            #pipeInData =  gen_rand(BIAS = 3500.0, AMP = 400.0)   # also works. input current bordered around threshold
            #pipeInData2 =  gen_rand(BIAS = 3500.0, AMP = 400.0)
                
            
          
 
        elif choice == "waveform 3":
#            pipeInData = gen_tri() 

#            pipeInData = spike_train(firing_rate = 1) 
            print "waveform 3 fed"
#            pipeInData = gen_sin(F = 0.5, AMP = 0.15,  BIAS = 1.15,  T = 2.0) 
            pipeInData = abs(gen_sin(F = 0.5, AMP = 17000.0,  BIAS = 0.0,  T = 2.0))   #big sine wave for training stdp
            
            #pipeInData = gen_ramp(T = [0.0, 0.1, 0.2, 0.8, 0.9, 2.0], L = [1.0, 1.0, 1.3, 1.3, 1.0, 1.0], FILT = False)
#            pipeInData = gen_ramp(T = [0.0, 0.4, 1.5, 1.55,  1.6,  2.0], L = [0,  0,  15000, 15000, 0, 0], FILT = False)
#                pipeInData = gen_ramp(T = [0.0, 0.2, 0.25, 1.75,  1.8,  2.0], L = [1.0,  1.0,  5000.0, 5000.0, 1.0, 1.0], FILT = False)  # abrupt rise / fall
#            pipeInData = spike_train(firing_rate = 1000) 

        self.nerfModel.SendPipe(pipeInData)
        self.nerfModel.SendPipe2(pipeInData2)
예제 #14
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
#            pipeInData = spike_train(firing_rate = 1) 
            pipeInData = gen_sin(F = 1.0, AMP = 100.0,  T = 2.0)
        elif choice == "Spike Train 10Hz":
#            pipeInData = spike_train(firing_rate = 10)      
#            pipeInData = gen_sin(F = 4.0, AMP = 0.3)
            pipeInData = gen_tri(T = 2.0) 
            
        elif choice == "Spike Train 20Hz":
#            pipeInData = gen_tri() 
#            pipeInData = gen_ramp(T = [0.0, 0.1, 0.2, 0.8, 0.9, 2.0], L = [1.0, 1.0, 1.1, 1.1, 1.0, 1.0], FILT = False)
            pipeInData = gen_ramp(T = [0.0, 0.1, 1.8, 1.85,  1.9,  2.0], L = [0,  0,  15000, 15000, 0, 0], FILT = False)
#            pipeInData = spike_train(firing_rate = 100) 
        
        self.nerfModel.SendPipe(pipeInData)
예제 #15
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
#            pipeInData = spike_train(firing_rate = 1) 
            pipeInData = gen_sin(F = 1.0, AMP = 100.0,  T = 2.0)
        elif choice == "Spike Train 10Hz":
#            pipeInData = spike_train(firing_rate = 10)      
#            pipeInData = gen_sin(F = 4.0, AMP = 0.3)
            pipeInData = gen_tri(T = 2.0) 
            
        elif choice == "Spike Train 20Hz":
#            pipeInData = gen_tri() 
            pipeInData = gen_ramp(T = [0.0, 0.1, 0.2, 0.8, 0.9, 2.0], L = [1.0, 1.0, 1.3, 1.3, 1.0, 1.0], FILT = False)
#            pipeInData = gen_ramp(T = [0.0, 0.4, 1.5, 1.55,  1.6,  2.0], L = [0,  0,  15000, 15000, 0, 0], FILT = False)
#                pipeInData = gen_ramp(T = [0.0, 0.2, 0.25, 1.75,  1.8,  2.0], L = [1.0,  1.0,  5000.0, 5000.0, 1.0, 1.0], FILT = False)  # abrupt rise / fall
#            pipeInData = spike_train(firing_rate = 1000) 
        
        self.xemList[0].SendPipe(pipeInData)
예제 #16
0
    def on_comboBox_activated(self, p0):
        """
        Slot documentation goes here.
        """
        choice = p0
        if choice == "Spike Train 1Hz":
            #            pipeInData = spike_train(firing_rate = 1)
            pipeInData = gen_sin(F=1.0, AMP=0.6, T=2.0)
        elif choice == "Spike Train 10Hz":
            #            pipeInData = spike_train(firing_rate = 10)
            #            pipeInData = gen_sin(F = 4.0, AMP = 0.3)
            pipeInData = gen_tri(T=2.0)

        elif choice == "Spike Train 20Hz":
            #            pipeInData = gen_tri()
            pipeInData = gen_ramp(T=[0.0, 0.1, 0.2, 0.8, 0.9, 2.0],
                                  L=[1.0, 1.0, 1.1, 1.1, 1.0, 1.0],
                                  FILT=False)
#            pipeInData = spike_train(firing_rate = 100)

        self.nerfModel.SendPipe(pipeInData)