Can I not assign values in a schedule loop? For instance, the following code prints out "data" correctly, but not the computed value "difference".
Code:
def CHK(err):
if err < 0:
buf_size = 100
buf = ctypes.create_string_buffer('\000' * buf_size)
nidaq.DAQmxGetErrorString(err,ctypes.byref(buf),buf_size)
raise RuntimeError('nidaq call failed with error %d: %s'%(err,repr(buf.value)))
def mapping(): #obtains data, calculates difference
while True:
yield CHK(nidaq.DAQmxReadAnalogF64(taskHandle,1,float64(-1),DAQmx_Val_GroupByChannel,data.ctypes.data,max_num_samples,ctypes.byref(read),None))# obtain DAQ data, output is data[]
print data #prints correctly
difference = yield abs(data[1]-data[0]) #find difference in voltage between first two pots
print difference #prints "None"
Thank you in advance.