+ if (options.basic_complex or options.basic_dualchan ):
+ if ((self.subdev.dbid()==usrp_dbid.BASIC_RX) or (self.subdev.dbid()==usrp_dbid.LF_RX)):
+ side = options.rx_subdev_spec[0] # side A = 0, side B = 1
+ if options.basic_complex:
+ #force Basic_RX and LF_RX in complex mode (use both I and Q channel)
+ print "Receiver daughterboard forced in complex mode. Both inputs will combined to form a single complex channel."
+ self.dualchan=False
+ if side==0:
+ self.u.set_mux(0x00000010) #enable adc 0 and 1 to form a single complex input on side A
+ else: #side ==1
+ self.u.set_mux(0x00000032) #enable adc 3 and 2 to form a single complex input on side B
+ elif options.basic_dualchan:
+ #force Basic_RX and LF_RX in dualchan mode (use input A for channel 0 and input B for channel 1)
+ print "Receiver daughterboard forced in dualchannel mode. Each input will be used to form a seperate channel."
+ self.dualchan=True
+ if side==0:
+ self.u.set_mux(gru.hexint(0xf0f0f1f0)) #enable adc 0, side A to form a real input on channel 0 and adc1,side A to form a real input on channel 1
+ else: #side ==1
+ self.u.set_mux(0xf0f0f3f2) #enable adc 2, side B to form a real input on channel 0 and adc3,side B to form a real input on channel 1
+ else:
+ sys.stderr.write('options basic_dualchan or basic_complex is only supported for Basic Rx or LFRX at the moment\n')
+ sys.exit(1)
+ else:
+ self.dualchan=False
+ self.u.set_mux(usrp.determine_rx_mux_value(self.u, options.rx_subdev_spec))