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; }
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); }
//安定性測定の終了時終端処理 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"; } }