Converting your code from Matlab or Python to use TDTPy¶
Connecting to a device and loading a circuit¶
Matlab:
iface = actxserver('RPco.X');
if iface.ConnectRZ6('GB', 1) == 0
disp 'connect error';
end
if iface.ClearCOF == 0
disp 'clear error';
end
if iface.LoadCOF('record_microphone.rcx') == 0
disp 'load error';
end
if iface.Run == 0
disp 'run error';
end
Python:
from win32com.client import Dispatch
try:
pass
iface = Dispatch('RPco.X')
if not iface.ConnectRZ6('GB', 1):
raise SystemError, 'connect error'
if not iface.ClearCOF():
raise SystemError, 'clear error'
if not iface.LoadCOF('record_microphone.rcx'):
raise SystemError, 'load error'
if not iface.Run():
raise SystemError, 'run error'
except SystemError, e:
print "Error: {}".format(e)
TDTPy:
from tdt import DSPCircuit
try:
circuit = DSPCircuit('record_microphone', 'RZ6')
circuit.start()
circuit.stop()
except DSPError, e:
print "Error: {}".format(e)
Getting/Setting a tag value¶
Matlab:
iface.SetTagVal('nHi', 5);
fs = iface.GetSFreq();
delay = 25/1000*fs;
iface.SetTagVal('record_del_n', delay);
duration = iface.GetTagVal('record_dur_n')/fs;
Python:
iface.SetTagVal('nHi', 5)
fs = iface.GetSFreq()
delay = 25e-3*fs
iface.SetTagVal('record_del_n', delay)
duration = iface.GetTagVal('record_dur_n')/fs
TDTPy:
circuit.set_tag('nHi', 5)
circuit.cset_tag('record_del_n', 25, 's', 'n')
duration = circuit.cget_tag('record_dur_n', 'n', 's')
Writing data to a buffer¶
Matlab:
iface.WriteTagV('speaker', 0, data);
Python:
iface.WriteTagV('speaker', 0, data)
TDTPy:
speaker = iface.get_buffer('speaker', 'w')
speaker.write(data)
Reading data from a buffer¶
Matlab:
size = iface.GetTagV('mic_i');
data = iface.ReadTagV('speaker', 0, size);
Python:
size = iface.GetTagV('mic_i')
data = iface.ReadTagV('speaker', 0, size)
TDTPy:
mic = iface.get_buffer('mic', 'r')
data = mic.read()