/// <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); }
/// <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); }
/// <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); }