コード例 #1
0
ファイル: Form1.cs プロジェクト: lvojp/bloodSugarLevelMeter
		private bool getStability() {

			if (_continuousSamplingCount == 0) {
				InitializeSamplingDatas();
			} 
            
            //オートゲインを取得
            SetLaserAutoOffsetGain(false);

			//タイムアウト用タイマースタート
			System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
			sw.Start();
					   
            List<int> SampParam =  new List<int>{1000,int.Parse(_settings._data._waitTime)};
			//サンプリング開始
			if (_machine.StartSampling(SampParam)) {
			} else {
				return false;
			}

			 //装置の応答待ち
			if (_machine.GetStatus() != true) {
				while (_machine._sampStatus != Machine.SamplingStatus.FINISH) {
					_machine.GetStatus();
					if (sw.ElapsedMilliseconds > 10000) {
						return false;
					}
				}
			}

			//データの取得
			if (_machine.GetSamplingData(0, 999)) {
				
				//sigref計算
				_dp = new DataProcessor(_machine, _settings);
				_dp.Main();

				//データ用変数確保
				//_sampDataStorageForRaw = new List<List<SamplingResult>>();

				//生データを入れる
				//_sampDataStorageBeforeAvg = _dp._allSamplingResult;
                List<List<SamplingResult>> allSamplingResult = _dp._allSamplingResult;
                List<List<double>> allGammaList = _dp._allGammaList;
                List<double> allBslList = _dp._allBslList;

                //それぞれを移動平均にかける
                MovingAverage mvAvg = new MovingAverage();
                List<List<SamplingResult>> mvAvg_samplingResult =  mvAvg.GetSamplingResult(allSamplingResult, int.Parse(_settings._data._movingAverageCount));
                List<List<double>> mvAvg_gamma = mvAvg.GetGammaResult(allGammaList,int.Parse(_settings._data._movingAverageCount));
                List<double>mvAvg_bsl = mvAvg.GetBslResult(allBslList, int.Parse(_settings._data._movingAverageCount));

                //それぞれの安定性を採る
                _stb = new Stability(_settings);
                _stb.GetSamplingResult(mvAvg_samplingResult);
                _stb.GetGammaResult(mvAvg_gamma);
                _stb.GetBslResult(mvAvg_bsl);

                //校正係数の取得
                _calib = new Calibrate(allSamplingResult, _settings);
                _stb._calib = _calib._result;

                //出力用生データのセット
                _stb.SetRawData(allSamplingResult, allGammaList, allBslList);

			} else {
				return false;
			}

			return true;
		}
コード例 #2
0
        public bool MakeCalibrationDataFile(Calibrate src, string fileName) {
            try {
                string file = "";
                System.IO.StreamWriter sw = new System.IO.StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift_jis"));

                for (int i = 0; i < src._result.Count; i++) {
                    file += src._result[i].ToString() + "\r\n";
                }

                sw.Write(file);
                sw.Close();
                return true;

            } catch (Exception) {
                return false;
            }
        }