Ejemplo n.º 1
0
    /// <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");
        }
    }
Ejemplo n.º 2
0
    public async Task <ReCalcDataPackage> RecalcIntensity()
    {
        //データの更新
        ReCalcDataPackage recalcIntensity = await Task.Run(() => AsyncReCalc());

        //送信データの更新
        StartCoroutine("UpdateEditor", recalcIntensity);

        return(recalcIntensity);
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    /// <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);
    }
Ejemplo n.º 5
0
 /// <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);
 }