/// <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"); } }
//HoloLensから送信されてきたデータを設定に反映 public static void HoloLensParameterUpdate(SettingSender setting) { colormapID = setting.colorMapID; lvMax = setting.lvMax; lvMin = setting.lvMin; setting.objSize = objSize; }
async Task AsyncLoadBin() { if (initialLoad) { //録音&マイク位置バイナリファイル保存 for (int dataIndex = 0; dataIndex < MeasurementParameter.plotNumber; dataIndex++) { string pathName = MeasurementParameter.SaveDir + @"\measurepoint_" + dataIndex.ToString() + ".bytes"; DataStorage data = new DataStorage(); if (File.Exists(pathName)) { await Task.Run(() => { using (BinaryReader br = new BinaryReader(File.Open(pathName, FileMode.Open))) { data.soundSignal = new double[4][]; for (int micID = 0; micID < 4; micID++) { data.soundSignal[micID] = new double[MeasurementParameter.SampleNum]; for (int sample = 0; sample < MeasurementParameter.SampleNum; sample++) { data.soundSignal[micID][sample] = br.ReadDouble(); } } float vx = (float)br.ReadDouble(); float vy = (float)br.ReadDouble(); float vz = (float)br.ReadDouble(); data.micLocalPos = new Vector3(vx, vy, vz); float rx = (float)br.ReadDouble(); float ry = (float)br.ReadDouble(); float rz = (float)br.ReadDouble(); float rw = (float)br.ReadDouble(); data.micLocalRot = new Quaternion(rx, ry, rz, rw); br.Close(); } data.measureNo = dataIndex; data.intensityDir = AcousticMathNew.CrossSpectrumMethod(data.soundSignal, MeasurementParameter.Fs, length_bit, MeasurementParameter.FreqMin, MeasurementParameter.FreqMax, MeasurementParameter.AtmDensity, MeasurementParameter.MInterval); var level = AcousticMathNew.CalcuIntensityLevel(data.intensityDir); dataStorages.Add(data); logQueue.Enqueue($"loading num is {data.measureNo}"); }); } } logQueue.Enqueue("Data Loading is finished!"); initialLoad = false; 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); } else { logQueue.Enqueue("already read data"); } }
/// <summary> /// 接続OKイベント /// </summary> /// <param name="e"></param> void tServer_OnConnected(EventArgs e, string log) { Debug.Log("Clientと接続完了"); logQueue.Enqueue(log + " is connected."); How2Measure measureType = new How2Measure(MeasurementType.Standard, MeasurementParameter.i_block); tServer.SendAllClient(transferData.SerializeJson <How2Measure>(measureType)); //共有された方のアプリケーションでもsettingパラメータを共有 var holoSetting = new SettingSender("ForSharing", MeasurementParameter.colormapID, MeasurementParameter.MaxIntensity, MeasurementParameter.MinIntensity, MeasurementParameter.objSize); tServer.SendAllClient(transferData.SerializeJson <SettingSender>(holoSetting)); }
/// <summary> /// 接続OKイベント /// </summary> /// <param name="e"></param> void tServer_OnConnected(EventArgs e, string log) { Debug.Log("Clientと接続完了"); logQueue.Enqueue(log + " is connected."); How2Measure measureType = new How2Measure(nowMeasurementType, MeasurementParameter.i_block); tServer.SendAllClient(transferData.SerializeJson <How2Measure>(measureType)); 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); }
/// <summary> /// Updateボタンに紐づけ /// 条件を変え再計算をし表示を更新する /// </summary> public async void UpdateTransientData() { settingManager.InitParam(); SettingSender ud_setting = new SettingSender("NewSetting", MeasurementParameter.colormapID, MeasurementParameter.MaxIntensity, MeasurementParameter.MinIntensity, MeasurementParameter.objSize); //設定データをHoloLens2に送信 string json = transferData.SerializeJson <SettingSender>(ud_setting); tServer.SendAllClient(json); //再計算を実行 ReCalcTransientDataPackage reCalcTransientDataPackage = await tIntensityManager.RecalcTransientIntensity(); string json2 = transferData.SerializeJson <ReCalcTransientDataPackage>(reCalcTransientDataPackage); tServer.SendAllClient(json2); }