/// <summary> /// 条件を変更して再計算 /// </summary> public async void UpdateData() { settingManager.InitParam4Repro(); SettingSender ud_setting = new SettingSender("NewSetting", MeasurementParameter.colormapID, MeasurementParameter.MaxIntensity, MeasurementParameter.MinIntensity, MeasurementParameter.objSize); How2Measure measureType = new How2Measure(nowMeasurementType, MeasurementParameter.i_block); tServer.SendAllClient(transferData.SerializeJson <How2Measure>(measureType)); //更新データをHololensに送信 string json = transferData.SerializeJson <SettingSender>(ud_setting); tServer.SendAllClient(json); UpdateSTFTParam(); //再計算を実行 if (nowAlogrithm == AlgorithmPattern.CrossSpectrum) { ReCalcDataPackage recalcIntensity = await Task.Run(() => AsyncReCalc()); string json2 = transferData.SerializeJson <ReCalcDataPackage>(recalcIntensity); tServer.SendAllClient(json2); logQueue.Enqueue("Update data"); } else { ReCalcTransientDataPackage recalcTransIntensity = await Task.Run(() => AsyncReCalcTrans()); string json2 = transferData.SerializeJson <ReCalcTransientDataPackage>(recalcTransIntensity); tServer.SendAllClient(json2); logQueue.Enqueue("Update data"); } }
public async Task <ReCalcDataPackage> RecalcIntensity() { //データの更新 ReCalcDataPackage recalcIntensity = await Task.Run(() => AsyncReCalc()); //送信データの更新 StartCoroutine("UpdateEditor", recalcIntensity); return(recalcIntensity); }
private ReCalcDataPackage AsyncReCalc() { //送信データの作成 ReCalcDataPackage data = new ReCalcDataPackage(dataStorages.Count); foreach (DataStorage dataStorage in dataStorages) { Vector3 intensity = AcousticMathNew.CrossSpectrumMethod(dataStorage.soundSignal, MeasurementParameter.Fs, length_bit, MeasurementParameter.FreqMin, MeasurementParameter.FreqMax, MeasurementParameter.AtmDensity, MeasurementParameter.MInterval); data.intensities.Add(intensity); data.sendNums.Add(dataStorage.measureNo); } return(data); }
/// <summary> /// /// </summary> public async void UpdateData() { settingManager.InitParam(); SettingSender ud_setting = new SettingSender("NewSetting", MeasurementParameter.colormapID, MeasurementParameter.MaxIntensity, MeasurementParameter.MinIntensity, MeasurementParameter.objSize); //更新データをHololensに送信 string json = transferData.SerializeJson <SettingSender>(ud_setting); tServer.SendAllClient(json); //再計算を実行 ReCalcDataPackage reCalcDataPackage = await intensityManager.RecalcIntensity(); string json2 = transferData.SerializeJson <ReCalcDataPackage>(reCalcDataPackage); tServer.SendAllClient(json2); }
/// <summary> /// 更新インテンシティデータをエディタ上でも反映させていくようにする /// </summary> /// <param name="reCalcDataPackage">更新データ</param> /// <returns></returns> private IEnumerator UpdateEditor(ReCalcDataPackage reCalcDataPackage) { for (int i = 0; i < reCalcDataPackage.storageNum; i++) { if (intensities.ContainsKey(reCalcDataPackage.sendNums[i])) { var pushObj = intensities[reCalcDataPackage.sendNums[i]]; //色変更を行う pushObj.transform.localRotation = Quaternion.LookRotation(10000000000 * reCalcDataPackage.intensities[i]); var lv = AcousticMathNew.CalcuIntensityLevel(reCalcDataPackage.intensities[i]); pushObj.transform.GetComponent <Renderer>().material.color = ColorBar.DefineColor(MeasurementParameter.colormapID, lv, MeasurementParameter.MinIntensity, MeasurementParameter.MaxIntensity); yield return(null); } } yield return(null); }