Skip to content

Commit e24f28f

Browse files
author
neil.hamilton
committed
Complete ps6000aExamples/ps6000aSigGenExample.py
1 parent 4dbb1b7 commit e24f28f

File tree

1 file changed

+73
-1
lines changed

1 file changed

+73
-1
lines changed

ps6000aExamples/ps6000aSigGenExample.py

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import numpy as np
1313
from picosdk.ps6000a import ps6000a as ps
1414
from picosdk.PicoDeviceEnums import picoEnum as enums
15-
import matplotlib.pyplot as plt
1615
from picosdk.functions import adc2mV, assert_pico_ok
16+
import time
1717

1818
# Create chandle and status ready for use
1919
chandle = ctypes.c_int16()
@@ -25,6 +25,78 @@
2525
status["openunit"] = ps.ps6000aOpenUnit(ctypes.byref(chandle), None, resolution)
2626
assert_pico_ok(status["openunit"])
2727

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+
28100
# Close the scope
29101
status["closeunit"] = ps.ps6000aCloseUnit(chandle)
30102
assert_pico_ok(status["closeunit"])

0 commit comments

Comments
 (0)