Beispiel #1
0
        /// <summary>
        /// Gets the TDSampleRate for the TimeDomain Channel
        /// Calls TD SampleRateConvert from ConfigConversions class
        /// Checks for disabled time domain channels and returns proper sample rate or disabled for disabled channels
        /// </summary>
        /// <param name="sampleRateIsEnabled">Either true or false depending on value for Time Domain Channel IsEnabled value from config file</param>
        /// <param name="localModel">Sense model</param>
        /// <returns>If the sampleRateIsEnabled variable is set to false, then it returns the TdSampleRates.Disabled. Otherwise it returns the correct TdSampleRates variable for the corresponding TD sample rate from the config file</returns>
        private TdSampleRates GetTDSampleRate(bool sampleRateIsEnabled, SenseModel localModel)
        {
            TdSampleRates the_sample_rate = ConfigConversions.TDSampleRateConvert(localModel.Sense.TDSampleRate);

            if (!sampleRateIsEnabled)
            {
                the_sample_rate = TdSampleRates.Disabled;
            }
            return(the_sample_rate);
        }
Beispiel #2
0
        /// <summary>
        /// Calculates the fft bins.
        /// This code is taken from the config ui training code to calculate fft bins
        /// </summary>
        /// <param name="fftSize">Size of the FFT.</param>
        /// <param name="timeRate">The time rate.</param>
        /// <returns>a list of fft bin boundaries</returns>
        public List <double> CalculateFFTBins(FftSizes fftSize, TdSampleRates timeRate)
        {
            int numBins = 0;

            switch (fftSize)
            {
            case FftSizes.Size0064:
                numBins = 64 / 2;
                break;

            case FftSizes.Size0256:
                numBins = 256 / 2;
                break;

            case FftSizes.Size1024:
                numBins = 1024 / 2;
                break;

            default:
                ConfigConversions.DisplayErrorMessageAndClose("Could not convert FFT Size for FFT bins");
                break;
            }
            int rate = 0;

            switch (timeRate)
            {
            case TdSampleRates.Sample0250Hz:
                rate = 250;
                break;

            case TdSampleRates.Sample0500Hz:
                rate = 500;
                break;

            case TdSampleRates.Sample1000Hz:
                rate = 1000;
                break;

            default:
                ConfigConversions.DisplayErrorMessageAndClose("Could not convert TDSampleRate for FFT bins");
                break;
            }

            double binWidth = rate / 2.0 / numBins;

            for (int i = 0; i < numBins; i++)
            {
                bins.Add(i * binWidth);
            }
            return(bins);
        }
Beispiel #3
0
        /// <summary>
        /// Converts the Time domain sample rate from config file to correct api call format
        /// Doesn't allow incorrect format to be input
        /// </summary>
        /// <param name="sampleRateToConvert">integer value of 250, 500 or 1000</param>
        /// <returns>Medtronic api format or displays error and closes program if incorrect</returns>
        public static TdSampleRates TDSampleRateConvert(int sampleRateToConvert)
        {
            TdSampleRates sampleRates = 0;

            switch (sampleRateToConvert)
            {
            case 250:
                sampleRates = TdSampleRates.Sample0250Hz;
                break;

            case 500:
                sampleRates = TdSampleRates.Sample0500Hz;
                break;

            case 1000:
                sampleRates = TdSampleRates.Sample1000Hz;
                break;

            default:
                DisplayErrorMessageAndClose("Couldn't convert Sample Rate");
                break;
            }
            return(sampleRates);
        }