When samples are all the same, min = max, which PyDAQmx does not like.
This avoids the following crash reported by Kathie:
C:\Users\rabi\artiq\artiq\frontend [master]> python .\artiq_rpctool.py ::1 3256
call load_sample_values 100000 'np.array([0.0,0.0],dtype=float)'
Traceback (most recent call last):
File ".\artiq_rpctool.py", line 112, in <module>
main()
File ".\artiq_rpctool.py", line 107, in main
call_method(remote, args.method, args.args)
File ".\artiq_rpctool.py", line 79, in call_method
ret = method(*[eval(arg) for arg in args])
File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 142, in proxy
return self.__do_rpc(name, args, kwargs)
File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 134, in __do_rpc
return self.__do_action(obj)
File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 128, in __do_action
raise RemoteError(obj["message"])
artiq.protocols.pc_rpc.RemoteError: Traceback (most recent call last):
File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 476, in _handle_connection_cr
ret = method(*obj["args"], **obj["kwargs"])
File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\devices\pxi6733\driver.py", line 117, in load_sample_val
ues
byref(num_samps_written), None)
File "<string>", line 3, in WriteAnalogF64
File "<string>", line 2, in function
File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\pydaqm
x-1.3.1-py3.4.egg\PyDAQmx\DAQmxFunctions.py", line 28, in mafunction
raise DAQError(error,errBuff.value.decode("utf-8"), f.__name__)
PyDAQmx.DAQmxFunctions.DAQError: Minimum is greater than or equal to the maximum
. Ensure the maximum value is greater than the minimum value. If using a custom
scale, ensure that the scaled maximum is greater than the scaled minimum.
Property: DAQmx_AO_Min
Corresponding Value: 0.0
Property: DAQmx_AO_Max
Corresponding Value: 0.0
Channel Name: Dev1/ao1
Task Name: _unnamedTask<4>
Status Code: -200082
in function DAQmxWriteAnalogF64
This function has the typical side effect of clearing the result. When happening in build(), this caused minor trouble when using pipelined scheduling (no result displayed at all until run() proceeds).