private void collectSignalSamples(int[] voltageSignal, int[] currentSignal) { sbyte[] values = new sbyte[32]; bool bLastChunk = false; for (uint pass = 0; pass < 2; pass++) { int[] signal = (pass == 0) ? voltageSignal : currentSignal; if (signal == null) { continue; } uint sampleIndex = 0; while (sampleIndex < signal.Length) { if (sampleIndex + values.Length >= signal.Length) { bLastChunk = (pass == 1) || (currentSignal == null); } // Request the carrier voltage/current signal. bool bGetVoltage = (pass == 0); if (!deviceBoard.getCarrierSignal((ushort)sampleIndex, !bLastChunk, pass == 0, values)) { MyDebug.Fail("Response failed."); } for (uint i = 0; i < 32; i++) { signal[sampleIndex++] = values[i]; if (sampleIndex >= signal.Length) { break; } } } } }