コード例 #1
0
ファイル: Form1.cs プロジェクト: lvojp/bloodSugarLevelMeter
		private bool getMeasure(int samplingCount,bool forStability) {
			bool result = false;

			if (_continuousSamplingCount == 0) {
				InitializeSamplingDatas();

				//データ件数表示の初期化
				samplingCount_lbl.Text = _continuousSamplingCount.ToString();
				samplingCount_lbl.Refresh();
			} 

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

            long time = 0;

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

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

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

                //それぞれの平均結果を取得
                _md = new MeasureData(_settings);
                _md.GetSamplingResult(allSamplingResult,samplingCount);
                _md.GetGammaResult(allGammaList,samplingCount);
                //GetBslResult() -> BSLは平均されたガンマデータを元に作成するので、引数は必要ないけど、生データはほしい
                _md.GetBslResult(allBslList);

                //測定の付随データの整理
                //現在の温度情報
                _md.SetTemp(GetTempDisplay());


                ////最終フォーマットのデータ生成
                //ProductDataFormat pdf = new ProductDataFormat(_settings, _temp_tbx);
                //pdf.SetDatas(_dp._avgSamplingList, _dp._avgGammaList, estimateData);
                //_pdfList.Add(pdf);

				result = true;

			} else {
				result = false;
			}

            //飽和チェック
            string overflowMessage = CheckOverFlow(45000, 55000);
            if (overflowMessage.IndexOf("飽和") != -1) {
                log_tbx.Text = "入力が飽和したため、測定は正しく終了しませんでした。";
                log_tbx.Refresh();
                MessageBox.Show(overflowMessage);
                result = false;
            }


			//データの取得が問題なければ、かつ安定性測定でなければ
			if (result == true) {
				if (!forStability) {
                    //_continuousSamplingCount++;
                    //samplingCount_lbl.Text = (_continuousSamplingCount).ToString();

                    //ファイル出力
                    CsvMaker csv = new CsvMaker();
                    //string filename = OpenFileSetDialog("MeasureData.csv");

                    if (csv.MakeMeasureDataFile(_md, _user._fileDirectory, _user.GetMeasureDataCount()) == false) {
                        MessageBox.Show("結果をファイルに書き込む事ができませんでした。\r\nファイルが開かれていないか確認してください。");
                    }
                }
			}
			return result;
		}
コード例 #2
0
ファイル: Form1.cs プロジェクト: lvojp/bloodSugarLevelMeter
		private void addResultToFile1shot_btn_Click(object sender, EventArgs e) {

			int idx = GetOneshotResultFilesRow(_samplingResult1shotFileName);
			CsvMaker cm = new CsvMaker();
			if (idx == 0) {
				cm.Make1shotCsv(_oneshotResult, idx, _samplingResult1shotFileName);
			} else {
				cm.Make1shotCsv(_oneshotResult, idx - 2, _samplingResult1shotFileName);
			}
			SwitchButtonEnable((Button)sender);

		}
コード例 #3
0
ファイル: Form1.cs プロジェクト: lvojp/bloodSugarLevelMeter
		//安定性測定の終了時終端処理
		private void GetStabilityTerminationProcess(bool isSuccess) {
			operationChecker_tim.Enabled = false;
			stab_prb.Value = 0;
			
			//gui
			NormalUiPosition();

            //現在温度の取得
            CheckTemp();

            //ファンと温度制御の再開
            TempAndFanControl(true);

			_isErrorOperation = false;
			_isSuccessOperation = false;

			//成功時
			if (isSuccess) {
                bool isCancel = false;
				Display disp = new Display();
				//移動平均の安定性を表示
				log_tbx.Text = "";
				log_tbx.Text += disp.Stability(_stb._mvAvg_R_stability,false);
				//生データの安定性を表示
				//log_tbx.Text += disp.Stability(_stb._raw_stability,true);

				//飽和チェック
				string overflowMessage = CheckOverFlow(45000,55000);
				if (overflowMessage.IndexOf("飽和") != -1) {
					log_tbx.Text = "入力が飽和したため、測定は正しく終了しませんでした。";
					log_tbx.Refresh();
					MessageBox.Show(overflowMessage);
                    return;
				}

				//ファイル出力
				if (_settings._data._saveStabilityResult) {
					CsvMaker csv = new CsvMaker();
                    string filename = OpenFileSetDialog("Stability.csv");
                    
                    if (filename == "") {
                        isCancel = true;
                    }
                    //現在温度の取得
                    _stb.SetTemp(GetTempDisplay());

					if (csv.MakeStabilityDataFile(_stb, filename) == false && isCancel == false) {
						MessageBox.Show("結果をファイルに書き込む事ができませんでした。\r\nファイルが開かれていないか確認してください。");
					}
				}

                //isCancel = false;

                ////ファイル出力
                //if (_settings._saveStabilityResult) {
                //    CsvMaker csv = new CsvMaker();
                //    string filename = OpenFileSetDialog("calibration.dat");

                //    if (filename == "") {
                //        isCancel = true;
                //    }
                    
                //    if (csv.MakeCalibrationDataFile(_calib, filename) == false && isCancel == false) {
                //        MessageBox.Show("結果をファイルに書き込む事ができませんでした。\r\nファイルが開かれていないか確認してください。");
                //    }
                //}

			//エラー時
			} else {
				log_tbx.Text = "error";
			}
		}