The expected minimum transfer speed for the CyDAQ platform is 10 megasamples per second, or 10,000,000 samples per second. Each sample is 2 bytes in size, so that is 10mb per second of transfer.
Because the transfer speed required is so high, it's important to test the baseline platform (in our case, Python), to ensure that such speeds can be achieved. This has been done and verified with the following:
A script was created in [serial_testing.py](https://git.ece.iastate.edu/sd/sdmay23-47/-/blob/master/serial_testing.py) that mocks a serial connection with a pseudoterminal, and responds to sampling commands just like the CyDAQ would.
> Note: This script can only be ran in Unix platforms, as pseudoterminals are not supported on windows
The above test was ran with 100,000,000 samples saved to a file, and it took under 5 seconds to complete!
The script can be ran again, but with ```datafile.write(...)``` commented out, just to see how fast it can process the data without writing. This would resemble live-plotting of data for example, where nothing needs to be saved permanently.
Because both examples were well above 10msps, it's safe to assume that Python itself will not be a bottleneck in getting transfer speeds to the expected value.