def do_get_nop(self):
		'''
		Get Number of Points (nop) for sweep

		Input:
			None
		Output:
			nop (int)
		'''
		logging.debug(__name__ + ' : getting Number of Points')
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		return nop 
	def do_get_startfreq(self):
		'''
		Get Start frequency
		
		Input:
			None

		Output:
			span (float) : Start Frequency in Hz
		'''
		logging.debug(__name__ + ' : getting start frequency')
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		return start_freq
	def do_get_centerfreq(self):
		'''
		Get the center frequency

		Input:
			None

		Output:
			cf (float) :Center Frequency in Hz
		'''
		logging.debug(__name__ + ' : getting center frequency')
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		return start_freq+(nop-1)*bin_size/2.
	def do_get_span(self):
		'''
		Get Span
		
		Input:
			None

		Output:
			span (float) : Span in Hz
		'''
		#logging.debug(__name__ + ' : getting center frequency')
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		span = (nop-1)*bin_size #float( self.ask('SENS1:FREQ:SPAN?'))
		return span
	def do_set_span(self,span):
		'''
		Set Span

		Input:
			span (float) : Span in KHz

		Output:
			None
		'''
		logging.debug(__name__ + ' : setting span to %s Hz' % span)
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		start = start_freq
		if nop<2: nop = 2
		stop = start_freq + (nop-1)*bin_size
		
		_signal_hound.config_center_span(self._device, (start+stop)*0.5, span)
		
		self.get_startfreq();
		self.get_stopfreq();
		self.get_centerfreq(); 
	def get_tracedata(self):
		'''
		Get the data of the current trace in dBm

		Output:
			'AmpPha':_ Amplitude and Phase
		'''
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		min = (ctypes.c_float*nop)()
		max = (ctypes.c_float*nop)()
		end = 0
		
		while end < nop:
			begin, end = _signal_hound.get_partial_sweep_32f(self._device, min, max)
			plt.pause(0.05)
			
		datax = np.linspace(start_freq, start_freq+bin_size*(nop-1), nop)
		datamin = 10**(np.asarray(max, dtype=np.float)/10)
		datamax = 10**(np.asarray(min, dtype=np.float)/10)
		
		return [datax, datamin, datamax]
	def do_set_video_bw(self, video_bw):
		vbw_max = 250e3
		vbw_min = 0.1
		
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		span = (nop-1)*bin_size
		
		res_bw = self.get_res_bw()
		reject_if = self.get_reject_if()
		if not res_bw: 
			res_bw = 250e3
		if video_bw > res_bw:
			video_bw = res_bw
			self.set_video_bw(video_bw)
			return
		vbw_6MHz_allowed = False
		
		if span > 100e6:
			vbw_min = 6.5e3
		if span > 200e3 and start_freq < 16e6:
			vbw_min = 6.5e3
		if start_freq > 200e6 and span > 200e6:
			vbw_6MHz_allowed = True
			
		if video_bw > vbw_max:
			if vbw_6MHz_allowed and video_bw>3e6:
				video_wb = 6e6
			else:
				video_bw = vbw_max
			self.set_video_bw(video_bw)
			return
		if video_bw < vbw_min:
			video_bw = vbw_min
			self.set_video_bw(video_bw)
			return
			
		_signal_hound.config_sweep_coupling(self._device, res_bw, video_bw, reject_if)
	def do_set_stopfreq(self,val):
		'''
		Set STop frequency

		Input:
			val (float) : Stop Frequency in Hz

		Output:
			None
		'''
		logging.debug(__name__ + ' : setting start freq to %s Hz' % val)
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		if nop<2: nop = 1
		#stop = start_freq + (nop-1)*bin_size 
		new_center = (val+start_freq)*0.5
		new_span = val - start_freq
		
		_signal_hound.config_center_span(self._device, new_center, new_span)
		
		self.get_centerfreq();
		self.get_stopfreq();
		self.get_span();
	def do_set_centerfreq(self,cf):
		'''
		Set the center frequency

		Input:
			cf (float) :Center Frequency in Hz

		Output:
			None
		'''
		logging.debug(__name__ + ' : setting center frequency to %s' % cf)
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		if nop<2: nop = 2
		start = start_freq
		stop = start_freq + (nop-1)*bin_size
		span = stop-start
		
		_signal_hound.config_center_span(self._device, cf, span)
		
		self.get_startfreq();
		self.get_stopfreq();
		self.get_span();
	def get_xlim(self):
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		start = start_freq
		stop = start_freq + (nop-1)*bin_size
		return start, stop
	def get_freqpoints(self, query = False):      
		_signal_hound.initiate(self._device, _signal_hound.sweeping, 0)
		nop, start_freq, bin_size = _signal_hound.query_sweep_info(self._device)
		return np.linspace(start_freq, start_freq+bin_size*(nop-1), nop)