Пример #1
0
    // Update is called once per frame

    /*
     * データのサンプリングを行い、データ数が十分であれば座標系同士のズレを計算する
     */
    void Update()
    {
        if (ab != null)
        {
            pData.AddRange(ab.getTAPLDataFromAndroid());                                                                                                                          //Bluetooth通信でPULLDOGの時間・Location情報を取得
            if (pData.Count != 0)                                                                                                                                                 //返値がNullでなければ
            {
                if (pData.Count > CALCULATE_POSITION_NUMBER + 10)                                                                                                                 //サンプリングを行うときにデータをpDataのデータ数を10個余分に見ておくことで、一回のサンプリングで完了できるようにしている(10個は適当)
                {
                    List <List <JsonTimeAndPositionLog> > listForCalGap = samplingFromHoloLensLogList(tsl.getJsonTimeAndPositionLogByBaseTime(ab.getBluetoothBaseTime()), pData); //参照する数だけHoloLensの時間・Location情報を取得
                    if (listForCalGap != null)
                    {                                                                                                                                                             //返値がNullでなければ
                        cordinateGap = calculateGap(listForCalGap);                                                                                                               //Gapを計算
                        for (int i = 0; i < listForCalGap[1].Count || i < listForCalGap[0].Count; i++)                                                                            //データの表示
                        {
                            if (i < listForCalGap[1].Count)
                            {
                                ol.writeMessage_trajectory("HoloLens,Time," + listForCalGap[1][i].mTime.Minutes + ";" + listForCalGap[1][i].mTime.Seconds + ";" + listForCalGap[1][i].mTime.Milliseconds + ",x," + listForCalGap[1][i].location.x + ",y," + listForCalGap[1][i].location.y);
                            }
                            if (i < listForCalGap[0].Count)
                            {
                                ol.writeMessage_trajectory("PullDog,Time," + listForCalGap[0][i].mTime.Minutes + ";" + listForCalGap[0][i].mTime.Seconds + ";" + listForCalGap[0][i].mTime.Milliseconds + ",x," + listForCalGap[0][i].location.x + ",y," + listForCalGap[0][i].location.y);
                            }
                        }
                        ol.writeMessage_trajectory("Gap,x," + cordinateGap.gapX + ",y," + cordinateGap.gapY + ",Angle," + cordinateGap.gapAngle); //データの表示
                        //cordinateGap = new Gap();
                        pData = new List <JsonTimeAndPositionLog>();
                        tsl.clearjTAPLList();
                        //CALCULATE_POSITION_NUMBER += 10;
                    }
                }
            }
        }
    }