Hi.
Several comments: first, when you do a hardware-timed acquisition, by setting the sampling rate and number of samples to read, as you have done, you do not need to include the "Wait Until Next ms Multiple" since the loop rate is determined by sampling rate divided by number of samples to read.
Second, with the modification of the parameters the DAQ Assistant node is now outputting 100 samples each time it iterates, but your code contains a "Convert from Dynamic Data" terminal that converts this into a single sample. So, only the first sample is taken, and the other 99 are discarded.
If you want to process ONE SAMPLE AT A TIME, you need to set the number of samples to read to 1 in the DAQ Assistant, and hope that your computer can do all the processing you have in the loop in 1ms. Applications that typically require you to process one sample at a time, are those in which you have a control loop, and you have to set an output depending on some processing of one or several inputs. This seems to be the case in your program.
To ensure that your computer is being able to keep up with the loop rate you are trying to achieve, you should monitor the error output of all of your DAQ nodes, and probably stop the loop if there has been an error (by getting the boolean element of the error cluster, and connecting it to an OR terminal to stop the loop). If it is too slow, you must try to make the code inside the loop as efficient as possible. If you cannot get it to be fast enough, then you may need to use LabVIEW Real-Time, which executes LabVIEW code on computer processors without the Windows operating system.
If your application allows processing of several samples at a time, then you must set the "Convert from Dynamic Data" terminal to output a 1-D array, and modify your code to process an array instead of a single sample.
Good luck with your application. It seems interesting.
Alejandro