|
12 | 12 | import numpy as np |
13 | 13 | from picosdk.ps6000a import ps6000a as ps |
14 | 14 | from picosdk.PicoDeviceEnums import picoEnum as enums |
15 | | -import matplotlib.pyplot as plt |
16 | 15 | from picosdk.functions import adc2mV, assert_pico_ok |
| 16 | +import time |
17 | 17 |
|
18 | 18 | # Create chandle and status ready for use |
19 | 19 | chandle = ctypes.c_int16() |
|
25 | 25 | status["openunit"] = ps.ps6000aOpenUnit(ctypes.byref(chandle), None, resolution) |
26 | 26 | assert_pico_ok(status["openunit"]) |
27 | 27 |
|
| 28 | +# Set signal generator waveform |
| 29 | +# handle = chandle |
| 30 | +wavetype = enums.PICO_WAVE_TYPE["PICO_SINE"] |
| 31 | +bufferlength = 1000 |
| 32 | +buffer = (ctypes.c_int16 * bufferlength)() |
| 33 | +status["sigGenWaveform"] = ps.ps6000aSigGenWaveform(chandle, wavetype, ctypes.byref(buffer), bufferlength) |
| 34 | +assert_pico_ok(status["sigGenWaveform"]) |
| 35 | + |
| 36 | +# Set signal generator range |
| 37 | +# handle = chandle |
| 38 | +peakToPeakVolts = 2 |
| 39 | +offsetVolts = 0 |
| 40 | +status["sigGenRange"] = ps.ps6000aSigGenRange(chandle, peakToPeakVolts, offsetVolts) |
| 41 | +assert_pico_ok(status["sigGenRange"]) |
| 42 | + |
| 43 | +# Set signal generator duty cycle |
| 44 | +# handle = chandle |
| 45 | +dutyCyclePercent = 50 |
| 46 | +status["sigGenDutyCycle"] = ps.ps6000aSigGenWaveformDutyCycle(chandle, dutyCyclePercent) |
| 47 | +assert_pico_ok(status["sigGenDutyCycle"]) |
| 48 | + |
| 49 | +# Set signal generator frequency |
| 50 | +# handle = chandle |
| 51 | +frequencyHz = 1000 |
| 52 | +status["sigGenFreq"] = ps.ps6000aSigGenFrequency(chandle, frequencyHz) |
| 53 | +assert_pico_ok(status["sigGenFreq"]) |
| 54 | + |
| 55 | +# Apply signal generator settings |
| 56 | +# handle = chandle |
| 57 | +sigGenEnabled = 1 |
| 58 | +sweepEnabled = 0 |
| 59 | +triggerEnabled = 0 |
| 60 | +automaticClockOptimisationEnabled = 0 |
| 61 | +overrideAutomaticClockAndPrescale = 0 |
| 62 | +frequency = ctypes.c_int16(frequencyHz) |
| 63 | +#stopFrequency = None |
| 64 | +#frequencyIncrement = None |
| 65 | +#dwellTime = None |
| 66 | +status["sigGenApply"] = ps.ps6000aSigGenApply(chandle, |
| 67 | + sigGenEnabled, |
| 68 | + sweepEnabled, |
| 69 | + triggerEnabled, |
| 70 | + automaticClockOptimisationEnabled, |
| 71 | + overrideAutomaticClockAndPrescale, |
| 72 | + ctypes.byref(frequency), |
| 73 | + None, |
| 74 | + None, |
| 75 | + None |
| 76 | + ) |
| 77 | +assert_pico_ok(status["sigGenApply"]) |
| 78 | + |
| 79 | +time.sleep(5) |
| 80 | + |
| 81 | +# Pause signal generator |
| 82 | +# handle = chandle |
| 83 | +status["sigGenPause"] = ps.ps6000aSigGenPause(chandle) |
| 84 | +assert_pico_ok(status["sigGenPause"]) |
| 85 | + |
| 86 | +time.sleep(5) |
| 87 | + |
| 88 | +# Resume signal generator |
| 89 | +# handle = chandle |
| 90 | +status["sigGenRestart"] = ps.ps6000aSigGenRestart(chandle) |
| 91 | +assert_pico_ok(status["sigGenRestart"]) |
| 92 | + |
| 93 | +time.sleep(5) |
| 94 | + |
| 95 | +# Pause signal generator |
| 96 | +# handle = chandle |
| 97 | +status["sigGenPause"] = ps.ps6000aSigGenPause(chandle) |
| 98 | +assert_pico_ok(status["sigGenPause"]) |
| 99 | + |
28 | 100 | # Close the scope |
29 | 101 | status["closeunit"] = ps.ps6000aCloseUnit(chandle) |
30 | 102 | assert_pico_ok(status["closeunit"]) |
|
0 commit comments