12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- __author__ = 'RoGeorge'
-
- import time
-
-
- def get_memory_depth(tn):
- # Define number of horizontal grid divisions for DS1054Z
- h_grid = 12
-
- # ACQuire:MDEPth
- tn.write("ACQ:MDEP?")
- mdep = tn.read_until("\n", 1)
-
- # if mdep is "AUTO"
- if mdep == "AUTO\n":
- # ACQuire:SRATe
- tn.write("ACQ:SRAT?")
- srate = tn.read_until("\n", 1)
-
- # TIMebase[:MAIN]:SCALe
- tn.write("TIM:SCAL?")
- scal = tn.read_until("\n", 1)
-
- # mdep = h_grid * scal * srate
- mdep = h_grid * float(scal) * float(srate)
-
- # return mdep
- return float(mdep)
-
-
- # return maximum achieved stop point, or 0 for wrong input parameters
- # if achieved == requested, then set the start and stop waveform as n1_d and n2_d
- def is_waveform_from_to(tn, n1_d, n2_d):
- # read current
- # WAVeform:STARt
- tn.write("WAV:STAR?")
- n1_c = float(tn.read_until("\n", 1))
-
- # WAVeform:STOP
- tn.write("WAV:STOP?")
- n2_c = float(tn.read_until("\n", 1))
-
- if (n1_d > n2_d) or (n1_d < 1) or (n2_d < 1):
- # wrong parameters
- return 0
-
- elif n2_d < n1_c:
- # first set n1_d then set n2_d
- tn.write("WAV:STAR " + str(n1_d))
- time.sleep(1)
- tn.write("WAV:STOP " + str(n2_d))
- time.sleep(1)
-
- else:
- # first set n2_d then set n1_d
- tn.write("WAV:STOP " + str(n2_d))
- time.sleep(1)
- tn.write("WAV:STAR " + str(n1_d))
- time.sleep(1)
-
- # read achieved n2
- tn.write("WAV:STOP?")
- n2_a = float(tn.read_until("\n", 1))
-
- if n2_a < n2_d:
- # restore n1_c, n2_c
- is_waveform_from_to(tn, n1_c, n2_c)
-
- # return n2_a
- return n2_a
|