|
@@
-21,7
+21,26
import numpy as np
|
|
21
|
|
|
21
|
|
|
22
|
|
|
22
|
|
|
23
|
nodev = c_int(0)
|
|
23
|
nodev = c_int(0)
|
|
24
|
DwfStateDone = c_int(2)
|
|
24
|
|
|
|
|
|
25
|
DwfStateReady = c_byte(0)
|
|
|
|
|
26
|
DwfStateConfig = c_byte(4)
|
|
|
|
|
27
|
DwfStatePrefill = c_byte(5)
|
|
|
|
|
28
|
DwfStateArmed = c_byte(1)
|
|
|
|
|
29
|
DwfStateWait = c_byte(7)
|
|
|
|
|
30
|
DwfStateTriggered = c_byte(3)
|
|
|
|
|
31
|
DwfStateRunning = c_byte(3)
|
|
|
|
|
32
|
DwfStateDone = c_byte(2)
|
|
|
|
|
33
|
|
|
|
|
|
34
|
DwfStateDict={
|
|
|
|
|
35
|
DwfStateReady.value:"Ready",
|
|
|
|
|
36
|
DwfStateConfig.value:"Config",
|
|
|
|
|
37
|
DwfStatePrefill.value:"Prefill",
|
|
|
|
|
38
|
DwfStateArmed.value:"Armed",
|
|
|
|
|
39
|
DwfStateWait.value:"Wait",
|
|
|
|
|
40
|
DwfStateTriggered.value:"Triggered",
|
|
|
|
|
41
|
DwfStateRunning.value:"Running",
|
|
|
|
|
42
|
DwfStateDone.value:"Done"
|
|
|
|
|
43
|
}
|
|
25
|
|
|
44
|
|
|
26
|
DECIAnalogInChannelCount = c_int(1)
|
|
45
|
DECIAnalogInChannelCount = c_int(1)
|
|
27
|
DECIAnalogOutChannelCount = c_int(2)
|
|
46
|
DECIAnalogOutChannelCount = c_int(2)
|
|
@@
-308,10
+327,11
class Discovery(object):
|
|
308
|
#############################################################
|
|
327
|
#############################################################
|
|
309
|
# AnalogOut
|
|
328
|
# AnalogOut
|
|
310
|
#############################################################
|
|
329
|
#############################################################
|
|
311
|
def analog_out_gen(self,frequency=1000, shape='Sine', channel=0, amplitude=1.0, offset=0.0,phase=0.0, syncOnTrigger=False, triggerFrq=1.0):
|
|
330
|
def analog_out_gen(self,frequency=1000, symmetry=50.0, shape='Sine', channel=0, amplitude=1.0, offset=0.0,phase=0.0, syncOnTrigger=False, triggerFrq=1.0, wait=0.0, runDuration=None):
|
|
312
|
self.__libdwf.FDwfAnalogOutConfigure(self.__hdwf, c_int(channel), c_bool(False))
|
|
331
|
self.__libdwf.FDwfAnalogOutConfigure(self.__hdwf, c_int(channel), c_bool(False))
|
|
313
|
self.__libdwf.FDwfAnalogOutNodeEnableSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_bool(True))
|
|
332
|
self.__libdwf.FDwfAnalogOutNodeEnableSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_bool(True))
|
|
314
|
self.__libdwf.FDwfAnalogOutNodeFunctionSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_int(shapes.get(shape)))
|
|
333
|
self.__libdwf.FDwfAnalogOutNodeFunctionSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_int(shapes.get(shape)))
|
|
|
|
|
334
|
self.__libdwf.FDwfAnalogOutNodeSymmetrySet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(symmetry))
|
|
315
|
if shape!="DC":
|
|
335
|
if shape!="DC":
|
|
316
|
self.__libdwf.FDwfAnalogOutNodeFrequencySet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genFreq(frequency)))
|
|
336
|
self.__libdwf.FDwfAnalogOutNodeFrequencySet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genFreq(frequency)))
|
|
317
|
self.__libdwf.FDwfAnalogOutNodeAmplitudeSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genAmplitude(amplitude)))
|
|
337
|
self.__libdwf.FDwfAnalogOutNodeAmplitudeSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genAmplitude(amplitude)))
|
|
@@
-320,12
+340,10
class Discovery(object):
|
|
320
|
if syncOnTrigger:
|
|
340
|
if syncOnTrigger:
|
|
321
|
self.analog_out_set_trigger(channel)
|
|
341
|
self.analog_out_set_trigger(channel)
|
|
322
|
self.__libdwf.FDwfAnalogOutRepeatSet(self.__hdwf, c_int(channel),c_int(0))
|
|
342
|
self.__libdwf.FDwfAnalogOutRepeatSet(self.__hdwf, c_int(channel),c_int(0))
|
|
323
|
# if frequency >= triggerFrq:
|
|
343
|
if runDuration is None:
|
|
324
|
runDuration = triggerFrq
|
|
344
|
runDuration = triggerFrq
|
|
325
|
# Doesn't work! try with triggerFrq=1 and frequency=0.8
|
|
|
|
|
326
|
# else:
|
|
|
|
|
327
|
# runDuration = triggerFrq/frequency
|
|
|
|
|
328
|
self.__libdwf.FDwfAnalogOutRunSet(self.__hdwf, c_int(channel),c_double(runDuration))
|
|
345
|
self.__libdwf.FDwfAnalogOutRunSet(self.__hdwf, c_int(channel),c_double(runDuration))
|
|
|
|
|
346
|
self.__libdwf.FDwfAnalogOutWaitSet(self.__hdwf, c_int(channel), c_double(wait))
|
|
329
|
self.__libdwf.FDwfAnalogOutConfigure(self.__hdwf, c_int(channel), c_bool(True))
|
|
347
|
self.__libdwf.FDwfAnalogOutConfigure(self.__hdwf, c_int(channel), c_bool(True))
|
|
330
|
|
|
348
|
|
|
331
|
def analog_out_gen_arbit(self,samplesBuffer ,repeatingFrequency=100, channel=0, amplitude=1.0, offset=0.0):
|
|
349
|
def analog_out_gen_arbit(self,samplesBuffer ,repeatingFrequency=100, channel=0, amplitude=1.0, offset=0.0):
|
|
@@
-346,6
+364,45
class Discovery(object):
|
|
346
|
self.__libdwf.FDwfAnalogOutTriggerSourceSet(self.__hdwf, c_int(channel), trigSrc)
|
|
364
|
self.__libdwf.FDwfAnalogOutTriggerSourceSet(self.__hdwf, c_int(channel), trigSrc)
|
|
347
|
self.__libdwf.FDwfAnalogOutRepeatTriggerSet(self.__hdwf, c_int(channel), c_bool(trigRepeat))
|
|
365
|
self.__libdwf.FDwfAnalogOutRepeatTriggerSet(self.__hdwf, c_int(channel), c_bool(trigRepeat))
|
|
348
|
|
|
366
|
|
|
|
|
|
367
|
|
|
|
|
|
368
|
def analog_out_status(self, channel=0):
|
|
|
|
|
369
|
status = c_byte(DwfStateDone.value)
|
|
|
|
|
370
|
self.__libdwf.FDwfAnalogOutStatus(self.__hdwf, c_int(channel), byref(status))
|
|
|
|
|
371
|
return status
|
|
|
|
|
372
|
# def analog_out_modulation(self, channel=0,
|
|
|
|
|
373
|
# carrier_frequency=10, carrier_shape='Sine', carrier_amplitude=1.0, carrier_offset=0.0, carrier_phase=0.0, carrier_symmetry=0.5,
|
|
|
|
|
374
|
# AM_frequency=0.2857, AM_shape='Square', AM_amplitude=100.0, AM_offset=0.0, AM_phase=0.0, AM_percentageSymmetry=0.2857,
|
|
|
|
|
375
|
# syncOnTrigger=trigsrcExternal1, triggerFrq=1.0, wait=0.0, runDuration=None):
|
|
|
|
|
376
|
# self.__libdwf.FDwfAnalogOutConfigure(self.__hdwf, c_int(channel), c_bool(False))
|
|
|
|
|
377
|
# self.__libdwf.FDwfAnalogOutNodeEnableSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_bool(True))
|
|
|
|
|
378
|
#
|
|
|
|
|
379
|
# self.__libdwf.FDwfAnalogOutNodeFunctionSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_int(shapes.get(carrier_shape)))
|
|
|
|
|
380
|
# self.__libdwf.FDwfAnalogOutNodeFrequencySet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genFreq(carrier_frequency)))
|
|
|
|
|
381
|
# self.__libdwf.FDwfAnalogOutNodeAmplitudeSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genAmplitude(carrier_amplitude)))
|
|
|
|
|
382
|
# self.__libdwf.FDwfAnalogOutNodeOffsetSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(self.__limits.genOffset(carrier_offset)))
|
|
|
|
|
383
|
# self.__libdwf.FDwfAnalogOutNodePhaseSet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(carrier_phase))
|
|
|
|
|
384
|
# self.__libdwf.FDwfAnalogOutNodeSymmetrySet(self.__hdwf, c_int(channel), AnalogOutNodeCarrier, c_double(carrier_percentageSymmetry))
|
|
|
|
|
385
|
#
|
|
|
|
|
386
|
# self.__libdwf.FDwfAnalogOutNodeEnableSet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_bool(True))
|
|
|
|
|
387
|
# self.__libdwf.FDwfAnalogOutNodeFunctionSet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_int(shapes.get(AM_shape)))
|
|
|
|
|
388
|
# self.__libdwf.FDwfAnalogOutNodeFrequencySet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_double(self.__limits.genFreqAM_frequency)))
|
|
|
|
|
389
|
# self.__libdwf.FDwfAnalogOutNodeAmplitudeSet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_double(self.__limits.genAmplitude(AM_amplitude)))
|
|
|
|
|
390
|
# self.__libdwf.FDwfAnalogOutNodeOffsetSet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_double(self.__limits.genOffset(AM_offset)))
|
|
|
|
|
391
|
# self.__libdwf.FDwfAnalogOutNodePhaseSet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_double(AM_phase))
|
|
|
|
|
392
|
# self.__libdwf.FDwfAnalogOutNodeSymmetrySet(self.__hdwf, c_int(channel), AnalogOutNodeAM, c_double(AM_percentageSymmetry))
|
|
|
|
|
393
|
#
|
|
|
|
|
394
|
# if syncOnTrigger:
|
|
|
|
|
395
|
# self.analog_out_set_trigger(channel)
|
|
|
|
|
396
|
# self.__libdwf.FDwfAnalogOutRepeatSet(self.__hdwf, c_int(channel),c_int(0))
|
|
|
|
|
397
|
# if runDuration is None:
|
|
|
|
|
398
|
# runDuration = triggerFrq
|
|
|
|
|
399
|
# self.__libdwf.FDwfAnalogOutRunSet(self.__hdwf, c_int(channel),c_double(runDuration))
|
|
|
|
|
400
|
# self.__libdwf.FDwfAnalogOutWaitSet(self.__hdwf, c_int(channel), c_double(wait))
|
|
|
|
|
401
|
# self.__libdwf.FDwfAnalogOutConfigure(self.__hdwf, c_int(channel), c_bool(True))
|
|
|
|
|
402
|
|
|
|
|
|
403
|
|
|
|
|
|
404
|
|
|
|
|
|
405
|
|
|
349
|
def __del__(self):
|
|
406
|
def __del__(self):
|
|
350
|
if self.__opened:
|
|
407
|
if self.__opened:
|
|
351
|
self.__libdwf.FDwfDeviceClose(self.__hdwf)
|
|
408
|
self.__libdwf.FDwfDeviceClose(self.__hdwf)
|