Example #1
0
 void OnDestroy()
 {
     Debug.Log("PrintOnDestroy");
     LpSensorManager.disconnectLpms(lpmsSensor);
     // Destroy sensor manager and free up memory
     LpSensorManager.deinitSensorManager();
 }
Example #2
0
 // Update is called once per frame
 void Update()
 {
     if (LpSensorManager.getConnectionStatus(lpmsSensor) == LpSensorManager.SENSOR_CONNECTION_CONNECTED)
     {
         SensorData sd;
         Vector3    current_rot = transform.rotation.eulerAngles;
         unsafe
         {
             sd = *((SensorData *)LpSensorManager.getSensorData(lpmsSensor));
         }
         if (Input.GetButtonDown("Fire1"))
         {
             tracking = !tracking;
             Debug.Log("Tracking:" + tracking);
             last_sensor = new Vector3(-sd.ry, -sd.rz, sd.rx);
             //transform.rotation = virtualcube.transform.rotation;
         }
         //Debug.Log("Timestamp: " + sd.timeStamp + " q: " + sd.qw + " " + sd.qx + " " + sd.qy + " " + sd.qz);
         //Quaternion q = new Quaternion(sd.qx - offset.x, sd.qz - offset.y, sd.qy - offset.z, sd.qw - offset.w);
         if (tracking)
         {
             current_sensor = new Vector3(-sd.ry, -sd.rz, sd.rx);
             //Debug.Log("OFFSET:" + offset);
         }
         offset             = current_sensor - last_sensor;
         transform.rotation = Quaternion.Euler(current_rot + offset);
         last_sensor        = current_sensor;
         if (Input.GetKeyDown("space"))
         {
             transform.rotation = new Quaternion(0, 0, 0, 0);
             //transform.rotation = virtualcube.transform.rotation;
         }
     }
 }
Example #3
0
    // Start is called before the first frame update
    void Start()

    {
        Application.targetFrameRate = 20;
        // Initialize sensor manager
        LpSensorManager.initSensorManager();

        // connects to sensor
        LpSensorManager.connectToLpms(LpSensorManager.DEVICE_LPMS_B2, lpmsSensor);

        // Wait for establishment of sensor1 connection
        while (LpSensorManager.getConnectionStatus(lpmsSensor) != 1)
        {
            //System.Threading.Thread.Sleep(100);
        }
        Debug.Log("Sensor connected");

        // Sets sensor offset
        LpSensorManager.setOrientationOffset(lpmsSensor, LpSensorManager.LPMS_OFFSET_MODE_HEADING);
        Debug.Log("Offset set");
        tracking = false;
        if (LpSensorManager.getConnectionStatus(lpmsSensor) == LpSensorManager.SENSOR_CONNECTION_CONNECTED)
        {
            SensorData sd;
            unsafe
            {
                sd = *((SensorData *)LpSensorManager.getSensorData(lpmsSensor));
            }
            last_sensor    = new Vector3(0, 0, 0);
            current_sensor = last_sensor;
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (LpSensorManager.getConnectionStatus(lpmsSensor) == LpSensorManager.SENSOR_CONNECTION_CONNECTED)
        {
            SensorData sd;
            Vector3    current_rot = transform.rotation.eulerAngles;

            unsafe
            {
                sd = *((SensorData *)LpSensorManager.getSensorData(lpmsSensor));
            }
            this.transform.rotation = new Quaternion(sd.qx, sd.qz, sd.qy, sd.qw);
            if (first_time)
            {
                created = (GameObject)Instantiate(cube);
                created.transform.rotation = Quaternion.Euler(new Vector3(0, 0, 0));
                //created.GetComponent<MeshRenderer>().enabled = false;
                created.transform.parent = this.transform;
                last_sensor = created.transform.rotation.eulerAngles;
                first_time  = !first_time;
            }
            //Debug.Log("Timestamp: " + sd.timeStamp + " q: " + sd.qw + " " + sd.qx + " " + sd.qy + " " + sd.qz);
            //Quaternion q = new Quaternion(sd.qx - offset.x, sd.qz - offset.y, sd.qy - offset.z, sd.qw - offset.w);
            current_sensor = created.transform.rotation.eulerAngles;
            error          = current_sensor - last_sensor;
            datamanager.GetComponent <DataManager>().set_Iniertial(this.transform.localRotation);
            last_sensor = current_sensor;
        }
    }
    // Start is called before the first frame update
    void Start()

    {
        //default_rot = new Vector3((float)0.01, (float)0.01, (float)0.01);
        //transform.rotation = Quaternion.Euler(default_rot);
        Application.targetFrameRate = 20;
        // Initialize sensor manager
        LpSensorManager.initSensorManager();
        // connects to sensor
        LpSensorManager.connectToLpms(LpSensorManager.DEVICE_LPMS_B2, lpmsSensor);
        // Wait for establishment of sensor1 connection
        while (LpSensorManager.getConnectionStatus(lpmsSensor) != 1)
        {
            //System.Threading.Thread.Sleep(100);
        }
        if (LpSensorManager.getConnectionStatus(lpmsSensor) == 1)
        {
            Debug.Log("Sensor connected");
        }

        // Sets sensor offset
        LpSensorManager.setOrientationOffset(lpmsSensor, LpSensorManager.LPMS_OFFSET_MODE_HEADING);
        first_time     = true;
        last_sensor    = new Vector3(0, 0, 0);
        current_sensor = last_sensor;
    }
Example #6
0
 // Update is called once per frame
 void Update()
 {
     if (LpSensorManager.getConnectionStatus(lpmsSensor) == LpSensorManager.SENSOR_CONNECTION_CONNECTED)
     {
         SensorData sd;
         unsafe
         {
             sd = *((SensorData *)LpSensorManager.getSensorData(lpmsSensor));
         }
         //Debug.Log("Timestamp: " + sd.timeStamp + " q: " + sd.qw + " " + sd.qx + " " + sd.qy + " " + sd.qz);
         Quaternion q = new Quaternion(sd.qx, sd.qz, sd.qy, sd.qw);
         transform.rotation = q;
         if (dm != null)
         {
             dm.GetComponent <DataManager>().set_Iniertial(this.transform.rotation);
         }
     }
 }
Example #7
0
    // Use this for initialization
    void Start()
    {
        offset = new Quaternion(0, 0, 0, 0);
        // Initialize sensor manager
        LpSensorManager.initSensorManager();

        // connects to sensor
        LpSensorManager.connectToLpms(LpSensorManager.DEVICE_LPMS_B2, lpmsSensor);

        // Wait for establishment of sensor1 connection
        while (LpSensorManager.getConnectionStatus(lpmsSensor) != 1)
        {
            //System.Threading.Thread.Sleep(100);
        }
        Debug.Log("Sensor connected");

        // Sets sensor offset
        LpSensorManager.setOrientationOffset(lpmsSensor, LpSensorManager.LPMS_OFFSET_MODE_HEADING);
        Debug.Log("Offset set");
    }
Example #8
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetButtonDown("Fire1"))
     {
         Debug.Log("Doing The Calibration");
         offset      = transform.rotation;
         offsetEuler = offset.eulerAngles;
         Debug.Log("OFFSET: X:" + offsetEuler.x + "Y:" + offsetEuler.z + "Z:" + offsetEuler.y);
     }
     if (LpSensorManager.getConnectionStatus(lpmsSensor) == LpSensorManager.SENSOR_CONNECTION_CONNECTED)
     {
         SensorData sd;
         unsafe
         {
             sd = *((SensorData *)LpSensorManager.getSensorData(lpmsSensor));
         }
         //Debug.Log("Timestamp: " + sd.timeStamp + " q: " + sd.qw + " " + sd.qx + " " + sd.qy + " " + sd.qz);
         //Quaternion q = new Quaternion(sd.qx - offset.x, sd.qz - offset.y, sd.qy - offset.z, sd.qw - offset.w);
         Quaternion q = new Quaternion(sd.qx, sd.qz, sd.qy, sd.qw);
     }
 }
    //初始化设备
    public bool InitDevice()
    {
        // Get the KinectManager instance
        if (kinectManager == null)
        {
            kinectManager = KinectManager.Instance;
        }

        if (gloveManager == null)
        {
            gloveManager = DTGloveManager.instance;
        }

        if (lpSensorManager == null)
        {
            lpSensorManager = new LpSensorManager(ref test_data, ref cur_ModelCtrlData.wristCtrlData, 23333, "00:04:3E:9E:00:C5", 20);

            if (lpSensorManager.Init())
            {
                lpThread = new Thread(new ThreadStart(lpSensorManager.receiveData));
                lpThread.Start();
            }
        }

        if (!KinectManager.IsKinectInitialized())
        {
            Debug.Log("Kinect 未初始化");
            return(false);
        }
        if (!DTGloveManager.instance.glove.IsOpen())
        {
            Debug.Log("5DT 未初始化");
            return(false);
        }

        return(true);
    }
Example #10
0
    // Use this for initialization
    void Start()
    {
        // Initialize sensor manager
        dm = GameObject.Find("DataManager");
        if (dm != null)
        {
            Debug.Log("DataManager found!\n");
        }
        LpSensorManager.initSensorManager();

        // connects to sensor
        LpSensorManager.connectToLpms(LpSensorManager.DEVICE_LPMS_B2, lpmsSensor);

        // Wait for establishment of sensor1 connection
        while (LpSensorManager.getConnectionStatus(lpmsSensor) != 1)
        {
            System.Threading.Thread.Sleep(100);
        }
        Debug.Log("Sensor connected");

        // Sets sensor offset
        LpSensorManager.setOrientationOffset(lpmsSensor, LpSensorManager.LPMS_OFFSET_MODE_HEADING);
        Debug.Log("Offset set");
    }