/// <summary> /// 保存済みのマイクセットデータをデシリアライズし、UI,MeasurementParameterに反映 /// ボタンに紐づけ /// </summary> public void LoadMicSet() { var datapath = files[mSetList.value].FullName; Debug.Log("Selected Mic set is" + datapath); var bf = new BinaryFormatter(); FileStream fileStream = null; try { //ファイル読み込み fileStream = File.Open(datapath, FileMode.Open); //読み込んだデータをデシリアライズ MicSetClass loadMSet = bf.Deserialize(fileStream) as MicSetClass; UpdateMeasurementParameter(loadMSet); UpdateParameter(); } catch (Exception e) when(e is FileNotFoundException) { Debug.Log(datapath + "がありません" + e); } catch (Exception e2) when(e2 is IOException) { Debug.Log("ファイルオープンエラー" + e2); } }
/// <summary> /// 画面入力されたマイクセットのデータ(名前+マイクロホン間隔+キャリブレーションデータ)を.datにシリアライズして保存する /// ボタンに紐づけ /// </summary> public void SaveMicSet() { var bf = new BinaryFormatter(); FileStream fileStream = null; var currentCalib = new double[4]; try { //マイクセットの保存係数をセット //マイクの数だけ for (int i = 0; i < 4; i++) { currentCalib[i] = double.Parse(calibs[i].text); } var mInterval = float.Parse(in_mInterval.text); var setName = SetName.text; MicSetClass newSet = new MicSetClass(mInterval, currentCalib, setName); //フォルダにMicset.datを作成 if (SetName.text == "") { fileStream = File.Create(DATA_SAVED_FOLDER + "/dafault.dat"); } else if (SetName.text.Contains(".dat")) { fileStream = File.Create(DATA_SAVED_FOLDER + "/" + setName); } else { fileStream = File.Create(DATA_SAVED_FOLDER + "/" + setName + ".dat"); } //ファイルにクラスを保存 bf.Serialize(fileStream, newSet); UpdateMeasurementParameter(newSet); Debug.Log("新しいマイクセットを登録した"); } catch (FormatException e) { Debug.Log("CalibrationSetの入力形式が間違えています" + e); } catch (IOException el) { Debug.Log("ファイルオープンエラー" + el); } finally { if (fileStream != null) { fileStream.Close(); } } //DropDownの表示を更新 UpdateMicSetList(); }
private void UpdateMeasurementParameter(MicSetClass micSet) { MeasurementParameter.mSetName = micSet.name; MeasurementParameter.MInterval = micSet.micInterval; for (int i = 0; i < MeasurementParameter.CalibSize; i++) { MeasurementParameter.CalibValue[i] = micSet.calibData[i]; } }