Exemple #1
0
        public static PointPairList Waveform(this ElectricalStimulationDevice device, int _)
        {
            var phaseOneCurrent    = device.PhaseOneCurrent;
            var interPhaseCurrent  = device.InterPhaseCurrent;
            var phaseTwoCurrent    = device.PhaseTwoCurrent;
            var phaseOneDuration   = device.PhaseOneDuration;
            var interPhaseDuration = device.InterPhaseDuration;
            var phaseTwoDuration   = device.PhaseTwoDuration;
            var pulsePeriod        = device.PulsePeriod;
            var interBurstInterval = device.InterBurstInterval;
            var burstPulseCount    = device.BurstPulseCount;
            var trainBurstCount    = device.TrainBurstCount;

            var waveform = new PointPairList {
                new PointPair(0, 0), new PointPair(device.TrainDelay, 0)
            };

            for (int i = 0; i < trainBurstCount; i++)
            {
                for (int j = 0; j < burstPulseCount; j++)
                {
                    waveform.Add(new PointPair(waveform.Last().X, phaseOneCurrent));
                    waveform.Add(new PointPair(waveform.Last().X + phaseOneDuration, phaseOneCurrent));
                    waveform.Add(new PointPair(waveform.Last().X, interPhaseCurrent));
                    waveform.Add(new PointPair(waveform.Last().X + interPhaseDuration, interPhaseCurrent));
                    waveform.Add(new PointPair(waveform.Last().X, phaseTwoCurrent));
                    waveform.Add(new PointPair(waveform.Last().X + phaseTwoDuration, phaseTwoCurrent));
                    waveform.Add(new PointPair(waveform.Last().X, 0));

                    if (j != device.BurstPulseCount - 1)
                    {
                        waveform.Add(new PointPair(waveform.Last().X + pulsePeriod - (phaseOneDuration + interPhaseDuration + phaseTwoDuration), 0));
                    }
                }

                if (i != device.TrainBurstCount - 1)
                {
                    waveform.Add(new PointPair(waveform.Last().X + interBurstInterval, 0));
                }
            }

            return(waveform);
        }
Exemple #2
0
 public static string[] WaveformAxisLabels(this ElectricalStimulationDevice _)
 {
     return(new[] { "Time (msec)", "Current (uA)" });
 }
Exemple #3
0
 public static int NumberOfChannels(this ElectricalStimulationDevice _)
 {
     return(1);
 }