I wrote a quick program in C++ to verify operation of the Analog Discovery2 A/D acquisition for a project starting up. It seem to work correctly and the results are what I expect.
I then wrote that same code flow in a C# application. The C++ to C# conversion was simple and the program compiled and ran. Unfortunately, the FDwfAnalogInStatusData16 function did not fill the ushort array that was passed it as it did in the C++ flow. The c# ushort array to be filled that passed to the function was not touched. I then changed the code to retrieve doubles rather than the raw ushorts and it works as expected.
n = dwf.FDwfAnalogInStatusData16(hdwf, 0, m_ushort_buf, 0, NUMSAMPLES); <-- This does not work
n = dwf.FDwfAnalogInStatusData(hdwf, 0, m_double_buf, NUMSAMPLES); <-- This does work
So, it appears to me that the C# wrapper provided in the SDK does not work for the FDwfAnalogInStatusData16 function call. Has anyone encountered this? Is there an updated dwf.cs file that remedies this bug?
I'm running version 3.10.9 of the Waveforms program.