public void RoundTripWithContinuousAcquisition()
        {
            var       io       = new IOBridge(IntPtr.Zero, ITCMM.ITC18_NUMBEROFINPUTS, ITCMM.ITC18_NUMBEROFOUTPUTS);
            const int nsamples = 5000;
            var       output   = new short[nsamples];

            for (int i = 0; i < nsamples; i++)
            {
                output[i] = (short)(i % 1000 * 100);
            }

            short[] input = io.RunTestMain(output, nsamples);

            int          failures         = 0;
            const double MAX_VOLTAGE_DIFF = 0.05;

            for (int i = 0; i < input.Length - 3; i++)
            {
                //+ITC18_PIPELINE_SAMPLES
                int dif = input[i + 3] - output[i];

                if (Math.Abs(dif) > MAX_VOLTAGE_DIFF * ITCMM.ANALOGVOLT)
                {
                    failures++;
                }
            }

            Assert.That(failures, Is.LessThanOrEqualTo(4));
        }
        public QueuedHekaHardwareDevice(IntPtr dev, uint maxInputStreams, uint maxOutputStreams)
        {
            ItcmmReturnCodeTaskFactory = new TaskFactory <uint>(_cts.Token, TaskCreationOptions.None, TaskContinuationOptions.None, _scheduler);
            ItcmmReadWriteTaskFactory  = new TaskFactory <IEnumerable <KeyValuePair <ChannelIdentifier, short[]> > >(_cts.Token, TaskCreationOptions.None, TaskContinuationOptions.None, _scheduler);

            DevicePtr   = dev;
            Bridge      = new IOBridge(DevicePtr, maxInputStreams, maxOutputStreams);
            StartupTime = DateTimeOffset.Now - new TimeSpan((long)Math.Floor(ITCClock * TimeSpan.TicksPerSecond));
        }
        public QueuedHekaHardwareDevice(IntPtr dev, uint maxInputStreams, uint maxOutputStreams)
        {
            ItcmmReturnCodeTaskFactory = new TaskFactory<uint>(_cts.Token, TaskCreationOptions.None, TaskContinuationOptions.None, _scheduler);
            ItcmmReadWriteTaskFactory = new TaskFactory<IEnumerable<KeyValuePair<ChannelIdentifier, short[]>>>(_cts.Token, TaskCreationOptions.None, TaskContinuationOptions.None, _scheduler);

            DevicePtr = dev;
            Bridge = new IOBridge(DevicePtr, maxInputStreams, maxOutputStreams);
            StartupTime = DateTimeOffset.Now - new TimeSpan((long)Math.Floor(ITCClock * TimeSpan.TicksPerSecond));
        }
示例#4
0
        static void Main(string[] args)
        {
            Logging.ConfigureConsole();

            var outSamples = Enumerable.Range(0, 30 * 10000).Select(i => (short)i).ToArray();

            var result = new IOBridge(IntPtr.Zero, 1, 1).RunTestMain(outSamples, outSamples.Length);

            Console.WriteLine("Read {0} samples.", result.Length);
            Console.WriteLine("Press any key to eixt...");
            Console.ReadKey();
        }
示例#5
0
        static void Main(string[] args)
        {
            Logging.ConfigureConsole();

            var outSamples = Enumerable.Range(0, 30 * 10000).Select(i => (short)i).ToArray();

            var result = new IOBridge(IntPtr.Zero, 1, 1).RunTestMain(outSamples, outSamples.Length);

            Console.WriteLine("Read {0} samples.", result.Length);
            Console.WriteLine("Press any key to eixt...");
            Console.ReadKey();
        }
        public void RoundTripWithContinuousAcquisition()
        {
            var io = new IOBridge(IntPtr.Zero, ITCMM.ITC18_NUMBEROFINPUTS, ITCMM.ITC18_NUMBEROFOUTPUTS);
            const int nsamples = 5000;
            var output = new short[nsamples];
            for (int i = 0; i < nsamples; i++)
            {
                output[i] = (short)(i % 1000 * 100);
            }

            short[] input = io.RunTestMain(output, nsamples);

            int failures = 0;
            const double MAX_VOLTAGE_DIFF = 0.05;
            for (int i = 0; i < input.Length - 3; i++)
            {
                //+ITC18_PIPELINE_SAMPLES
                int dif = input[i + 3] - output[i];

                if (Math.Abs(dif) > MAX_VOLTAGE_DIFF * ITCMM.ANALOGVOLT)
                {
                    failures++;
                }
            }

            Assert.That(failures, Is.LessThanOrEqualTo(4));
        }