示例#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");
        }
    }
 //HoloLensから送信されてきたデータを設定に反映
 public static void HoloLensParameterUpdate(SettingSender setting)
 {
     colormapID      = setting.colorMapID;
     lvMax           = setting.lvMax;
     lvMin           = setting.lvMin;
     setting.objSize = objSize;
 }
示例#3
0
    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");
        }
    }
示例#4
0
    /// <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));
    }
示例#5
0
    /// <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);
    }
示例#6
0
    /// <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);
    }