Hello,
I want to use the FDwfDigitalOutWaitSet and FDwfDigitalOutRepeatSet functions but they seem to have no effect.
This is the code:
# init instance of Analog discovery as testDevice
testDevice = AnalogDiscovery2()
# open serial connection and print return value
retval = testDevice.open_serial_connection()
print("open device retval: " + retval[2])
testDevice.dwf.FDwfDigitalOutTriggerSourceSet(testDevice.hdwf, _ct.c_ubyte(1))
retval = testDevice.dwf.FDwfDigitalOutRunSet(testDevice.hdwf, _ct.c_float(2))
print("set run time: ", retval)
retval = testDevice.dwf.FDwfDigitalOutWaitSet(testDevice.hdwf, _ct.c_float(2))
print("set wait time: ", retval)
testDevice.dwf.FDwfDigitalOutRepeatSet(testDevice.hdwf, 1)
# set clock signal output
data = _ds.SET_SINGLE_CLOCK_STRUCT()
data.frequency = 500000
data.port = 3
retval = testDevice.set_single_clock(data) #function attached below
print("set clock retval: " + retval[2])
testDevice.dwf.FDwfDigitalOutConfigure(testDevice.hdwf, 1)
testDevice.dwf.FDwfDeviceTriggerPC(testDevice.hdwf)
# wait for input to pause program
input("Press enter to stop")
# close connection and exit program
retval = testDevice.close_connection()
print("close device retval: " + retval[2])
# retval = testDevice.close_connection()
# print(retval)
set_single_clock:
def set_single_clock(self, data: _ds.SET_SINGLE_CLOCK_STRUCT) -> (int, type(None), str):
# configure and start clock
hzSys = _ct.c_double()
if not self.dwf.FDwfDigitalOutInternalClockInfo(self.hdwf, _ct.byref(hzSys)):
return self._retval_helper(self._error_codes.NOK_FAILED_TO_GET_CLOCK_INFO[0])
# enable DIO-0
if not self.dwf.FDwfDigitalOutEnableSet(self.hdwf, data.port, 1):
return self._retval_helper(self._error_codes.NOK_FAILED_TO_ENABLE[0])
if not self.dwf.FDwfDigitalOutDividerSet(self.hdwf, data.port, int(hzSys.value/data.frequency/2)):
return self._retval_helper(self._error_codes.NOK_FAILED_TO_SET_DIVIDER[0])
# set counter info
if not self.dwf.FDwfDigitalOutCounterInitSet(self.hdwf, data.port, data.startHigh, data.offset_counter):
return self._retval_helper(self._error_codes.NOK_FAILED_TO_SET_COUNTER_INIT[0])
# 1 tick low, 1 tick high
if not self.dwf.FDwfDigitalOutCounterSet(self.hdwf, data.port, data.counter1, data.counter2):
return self._retval_helper(self._error_codes.NOK_FAILED_TO_SET_COUNTER_VALUES[0])
if not self.dwf.FDwfDigitalOutConfigure(self.hdwf, 1):
return self._retval_helper(self._error_codes.NOK_FAILED_TO_START_INSTRUMENT[0])
return self._retval_helper(self._error_codes.OK[0])