http://argos.vu/ArgosVu_VR_AudioSensors.apk
using UnityEngine; using System.Collections; using UnityEngine.UI; using Vectrosity; using System.Collections.Generic; using Vuforia; public class GF_Manager : MonoBehaviour { public GameObject[] GO_panels; public int PStart_Focus_Idx; public Text Dubug_Txt; private Transform camTrans; private Vector2 v2ForwdPrj_Curr; private Vector2 v2ForwdPrj_Prev; private int maxEntries = 100000; private List<InputData>[] IDT;//IDT Input Data Table - Lists of all Sensor Data private float fElapsedTime; private float fRendTime; public enum FT { Accel_X, Accel_Y, Accel_Z, Gyro_Att_qX, Gyro_Att_qY, Gyro_Att_qZ, Gyro_Att_qW, Gyro_Att_euX, Gyro_Att_euY, Gyro_Att_euZ, Gyro_Grav_X, Gyro_Grav_Y, Gyro_Grav_Z, Gyro_Rota_Rate_X, //* Gyro_Rota_Rate_Y, Gyro_Rota_Rate_Z, Gyro_Rota_Rate_UB_X, Gyro_Rota_Rate_UB_Y, Gyro_Rota_Rate_UB_Z, Gyro_Accel_X, Gyro_Accel_Y, Gyro_Accel_Z, Mag_Heading_Accuracy,//degrees Mag_Heading, //degrees Mag_Raw_Vec_X,//* Mag_Raw_Vec_Y, Mag_Raw_Vec_Z, Mag_True_Heading, NUM_FT, }; public enum Panel_State { OFF, LOW, MID, FOCUS, XXX, }; //RENDERING SEQUENCE 0 Low 1 Mid 2 Focus 3 Mid 4 Low // // 1 3 0 1 3 4 1 3 0 1 3 4 1 3 0 1 3 4 private GraphFloat[] gfRender_Group; private int[] rSequence; private int rSeq_Curr_Idx; private float degrees_prev; void Start () { Input.gyro.enabled = true; Input.compass.enabled = true; //camTrans = Camera.main.transform; //v2ForwdPrj_Curr = new Vector2(); //v2ForwdPrj_Prev = new Vector2(); //v2ForwdPrj_Prev.x = camTrans.forward.x; //v2ForwdPrj_Prev.y = camTrans.forward.y; //v2ForwdPrj_Prev.Normalize(); degrees_prev = Mathf.Atan2(v2ForwdPrj_Prev.x, v2ForwdPrj_Prev.y) * 360.0f / (2.0f * Mathf.PI); gfRender_Group = new GraphFloat[5]; //Set_Panel_States(PStart_Focus_Idx); rSequence = new int[] { 1, 3, 0, 1, 3, 4 }; rSeq_Curr_Idx = 0; fRendTime = 0.0f; fElapsedTime = 0.0f; //Set GF_Ids for (int i = 0; i< GO_panels.Length;i++) { GO_panels[i].GetComponentInChildren<GraphFloat>().Gf_Id = i; } //INPUT DATA TABLE Init IDT = new List<InputData>[(int)FT.NUM_FT]; for (int i = 0; i< (int)FT.NUM_FT; i++) { IDT[i] = new List<InputData>(); } } public List<InputData> Get_List(int ListNo) { return IDT[ListNo]; } private void Set_Panel_States(int focus_panel) { int numPanels = GO_panels.Length; GraphFloat gf = new GraphFloat(); Panel_State[] p_stamp = new Panel_State[5]; p_stamp[0] = Panel_State.LOW; p_stamp[1] = Panel_State.MID; p_stamp[2] = Panel_State.FOCUS; p_stamp[3] = Panel_State.MID; p_stamp[4] = Panel_State.LOW; for(int i = 0; i<numPanels; i++) { gf = GO_panels[i].GetComponentInChildren<GraphFloat>(); gf.Panel_State = Panel_State.OFF; } int pNO = focus_panel - 2; if (pNO < 0) pNO = numPanels + pNO; for (int i = 0; i < 5; i++) { gfRender_Group[i] = GO_panels[pNO].GetComponentInChildren<GraphFloat>(); gfRender_Group[i].Panel_State = p_stamp[i]; pNO++; if (pNO > (numPanels - 1)) pNO = 0; } } Vector3 testAccel; private void Set_InputData() { fElapsedTime += Time.deltaTime; Vector3 iAccel = new Vector3(); Vector3 iMagRawVec = new Vector3(); Quaternion iqGyroAtt = new Quaternion(); Vector3 iGyroGravity = new Vector3(); Vector3 iGyroRotaRate = new Vector3(); Vector3 iGyroRotaRate_UB = new Vector3(); Vector3 iGyroAccel = new Vector3(); float iMagHeadingAccuracy; float iMagHeading; float iTrueHeading; InputData[] id = new InputData[(int)FT.NUM_FT]; int i; for (i = 0; i< (int)FT.NUM_FT; i++) { id[i] = new InputData(); } //testAccel.x = Mathf.Sin(2f * Mathf.PI * fElapsedTime); //testAccel.y = Mathf.Cos(2f * Mathf.PI * fElapsedTime); //testAccel.z = 0.707f; iAccel = Input.acceleration;//testAccel;// iGyroRotaRate = Input.gyro.rotationRate; iqGyroAtt = Input.gyro.attitude; iGyroGravity = Input.gyro.gravity; iGyroRotaRate_UB = Input.gyro.rotationRateUnbiased; iGyroAccel = Input.gyro.userAcceleration; iMagHeadingAccuracy = Input.compass.headingAccuracy; iMagHeading = Input.compass.magneticHeading; iMagRawVec = Input.compass.rawVector; iTrueHeading = Input.compass.trueHeading; i = 0; //Accelerometer id[i].fTime = fElapsedTime; id[i].fVal = iAccel.x; IDT[(int)FT.Accel_X].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iAccel.y; IDT[(int)FT.Accel_Y].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iAccel.z; IDT[(int)FT.Accel_Z].Add(id[i]); i++; //Gyro //Gyro Attitude Quat id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.x; IDT[(int)FT.Gyro_Att_qX].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.y; IDT[(int)FT.Gyro_Att_qY].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.z; IDT[(int)FT.Gyro_Att_qZ].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.w; IDT[(int)FT.Gyro_Att_qW].Add(id[i]); i++; //Gyro Attitude Quat Euler Angles id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.eulerAngles.x; IDT[(int)FT.Gyro_Att_euX].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.eulerAngles.y; IDT[(int)FT.Gyro_Att_euY].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iqGyroAtt.eulerAngles.z; IDT[(int)FT.Gyro_Att_euZ].Add(id[i]); i++; //Gyro Gravity id[i].fTime = fElapsedTime; id[i].fVal = iGyroGravity.x; IDT[(int)FT.Gyro_Grav_X].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroGravity.y; IDT[(int)FT.Gyro_Grav_Y].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroGravity.z; IDT[(int)FT.Gyro_Grav_Z].Add(id[i]); i++; //Gyroscope Rota Rate id[i].fTime = fElapsedTime; id[i].fVal = iGyroRotaRate.x; IDT[(int)FT.Gyro_Rota_Rate_X].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroRotaRate.y; IDT[(int)FT.Gyro_Rota_Rate_Y].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroRotaRate.z; IDT[(int)FT.Gyro_Rota_Rate_Z].Add(id[i]); i++; //Gyro_Rota_Rate_UnBiased id[i].fTime = fElapsedTime; id[i].fVal = iGyroRotaRate_UB.x; IDT[(int)FT.Gyro_Rota_Rate_UB_X].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroRotaRate_UB.y; IDT[(int)FT.Gyro_Rota_Rate_UB_Y].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroRotaRate_UB.z; IDT[(int)FT.Gyro_Rota_Rate_UB_Z].Add(id[i]); i++; //Gyro_Accel, id[i].fTime = fElapsedTime; id[i].fVal = iGyroAccel.x; IDT[(int)FT.Gyro_Accel_X].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroAccel.y; IDT[(int)FT.Gyro_Accel_Y].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iGyroAccel.z; IDT[(int)FT.Gyro_Accel_Z].Add(id[i]); i++; //Mag_Heading_Accuracy id[i].fTime = fElapsedTime; id[i].fVal = iMagHeadingAccuracy; IDT[(int)FT.Mag_Heading_Accuracy].Add(id[i]); i++; //Mag_Heading id[i].fTime = fElapsedTime; id[i].fVal = iMagHeading; IDT[(int)FT.Mag_Heading].Add(id[i]); i++; //Raw Magnetic Vector id[i].fTime = fElapsedTime; id[i].fVal = iMagRawVec.x; IDT[(int)FT.Mag_Raw_Vec_X].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iMagRawVec.y; IDT[(int)FT.Mag_Raw_Vec_Y].Add(id[i]); i++; id[i].fTime = fElapsedTime; id[i].fVal = iMagRawVec.z; IDT[(int)FT.Mag_Raw_Vec_Z].Add(id[i]); //Mag_True_Heading id[i].fTime = fElapsedTime; id[i].fVal = iTrueHeading; IDT[(int)FT.Mag_True_Heading].Add(id[i]); i++; } private void Rotate_Displays() { v2ForwdPrj_Curr.x = camTrans.forward.x; v2ForwdPrj_Curr.y = camTrans.forward.z; v2ForwdPrj_Curr.Normalize(); if (v2ForwdPrj_Curr != v2ForwdPrj_Prev) { float degrees = Mathf.Atan2(v2ForwdPrj_Curr.x, v2ForwdPrj_Curr.y) * 360.0f / (2.0f * Mathf.PI); float thisRota = Mathf.Lerp(degrees_prev, degrees, 0.05f); //Dubug_Txt.text = thisRota.ToString(); degrees_prev = thisRota; transform.eulerAngles = new Vector3(0, thisRota, 0); v2ForwdPrj_Prev = v2ForwdPrj_Curr; } } // Update is called once per frame void Update () { fElapsedTime += Time.deltaTime; fRendTime += Time.deltaTime; if (IDT.Length < maxEntries) { Set_InputData(); } //Rotate_Displays(); //Distribute Drawing of Graphs if (fRendTime > 0.03f) { //foreach(GraphFloat gf in gfRender_Group) //{ // gf.bCan_Render = false; //} //gfRender_Group[rSequence[rSeq_Curr_Idx]].bCan_Render = true; //rSeq_Curr_Idx++; //if (rSeq_Curr_Idx > 5) rSeq_Curr_Idx = 0; //fRendTime = 0.0f; } } } public class InputData { private float _fVal; private float _fTime; public float fVal { set { _fVal = value;} get { return _fVal; } } public float fTime { set{ _fTime = value;} get{return _fTime;} } }
using UnityEngine; using System.Collections; using UnityEngine.UI; using Vectrosity; using System.Collections.Generic; using Vuforia; public class GraphFloat : MonoBehaviour { public Camera vectrocity3DCamera; [System.Serializable] public class Inputs { public enum Input : byte { Accel_X, Accel_Y, Accel_Z, Gyro_Att_qX, Gyro_Att_qY, Gyro_Att_qZ, Gyro_Att_qW, Gyro_Att_euX, Gyro_Att_euY, Gyro_Att_euZ, Gyro_Grav_X, Gyro_Grav_Y, Gyro_Grav_Z, Gyro_Rota_Rate_X, Gyro_Rota_Rate_Y, Gyro_Rota_Rate_Z, Gyro_Rota_Rate_UB_X, Gyro_Rota_Rate_UB_Y, Gyro_Rota_Rate_UB_Z, Gyro_Accel_X, Gyro_Accel_Y, Gyro_Accel_Z, Mag_Heading_Accuracy,//degrees Mag_Heading, //degrees Mag_Raw_Vec_X, Mag_Raw_Vec_Y, Mag_Raw_Vec_Z, Mag_True_Heading, } public Input input; public enum ColorGF : byte { Red, Green, Blue, Violet } public ColorGF colorGF; } public Inputs[] SensInput;//Check Max private int iSens_Cnt; private List<InputData>[] IDLists; public GF_Manager gf_Manager; public Text Title; public Text prefabText;//time numbers along x axis public Text txMax_y; public Text txMin_y; public Text tx_YPos; public Texture tex; VectorLine Border_Points; //VectorLine //GraphAxis; VectorLine TickMarks; VectorLine[] GraphTrace; //public DefaultTrackableEventHandler AR_Track; private bool bTracking = false; private Vector3[] vCorners; private Vector3[] vBoxOutline; private Vector3 vCenter; private float Width; private float Height; private float pWidth; //past width private float pHeight;//past height private Vector3 vx; private Vector3 vy; private float fElapsedTime; private Text[] OrdNums; private float MX_Accum; private float MY_Accum; private GF_Manager.Panel_State _panel_state; private int _gf_id; private bool _bcan_render; private int curr_display; private bool buttonDownPrev = false; public int Gf_Id { set { _gf_id = value;} get { return _gf_id; } } public GF_Manager.Panel_State Panel_State { set { _panel_state = value; } get { return _panel_state; } } public bool bCan_Render { set { _bcan_render = value; } get { return _bcan_render; } } public MenuManager menuManager; void Start() { VectorLine.SetCamera3D(vectrocity3DCamera); iSens_Cnt = SensInput.Length; IDLists = new List<InputData>[iSens_Cnt]; curr_display = 0; vCorners = new Vector3[4]; vBoxOutline = new Vector3[4]; vCenter = new Vector3(); Vector3 vx = new Vector3(); Vector3 vy = new Vector3(); MX_Accum = 0.0f; MY_Accum = 0.0f; fElapsedTime = 0.0f; GetComponent<RectTransform>().GetWorldCorners(vCorners); vx = vCorners[3] - vCorners[0]; vy = vCorners[1] - vCorners[0]; pWidth = vx.magnitude; pHeight = vy.magnitude; vx.Normalize(); vy.Normalize(); //Panel Border //Border_Points = new VectorLine("Border_Points", new List<Vector3>(), tex, 5.0f, LineType.Continuous); //Border_Points.points3.Add(vCorners[0]); //Border_Points.points3.Add(vCorners[1]); //Border_Points.points3.Add(vCorners[2]); //Border_Points.points3.Add(vCorners[3]); //Border_Points.points3.Add(vCorners[0]); vCenter = Vector3.zero; for(int i = 0; i<4; i++) { vCenter += vCorners[i]; } vCenter /= 4.0f; //Border_Points.Draw3DAuto(); //Axis //GraphAxis = new VectorLine("Axis", new List<Vector3>(), tex, 3.0f, LineType.Discrete); //GraphAxis.points3.Add(vCenter - vx * pWidth/2.0f); //GraphAxis.points3.Add(vCenter + vx * pWidth/2.0f); //GraphAxis.Draw3DAuto(); //Tick Marks TickMarks = new VectorLine("TickMarks", new List<Vector3>(), 3.0f, LineType.Discrete); TickMarks.Draw3DAuto(); //Graph Input Data List GraphTrace = new VectorLine[iSens_Cnt]; for (int i = 0; i < iSens_Cnt; i++) { GraphTrace[i] = new VectorLine("GraphTrace_" + i.ToString(), new List<Vector3>(), 3.0f, LineType.Continuous, Joins.Fill); GraphTrace[i].Draw3DAuto(); if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Red) { GraphTrace[i].color = Color.red; } else if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Green) { GraphTrace[i].color = Color.green; } else if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Blue) { GraphTrace[i].color = Color.blue; } else if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Violet) { GraphTrace[i].color = Color.magenta; } } //OrdNums - Numbers along x axis OrdNums = new Text[10]; for (int i = 0; i<10; i++) { OrdNums[i] = Instantiate<Text>(prefabText); OrdNums[i].gameObject.transform.parent = this.gameObject.transform; OrdNums[i].gameObject.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); } } private float FindMax() { float maxVal = 0.0f; for (int i = 0; i < iSens_Cnt; i++) { if (IDLists[i] == null) break; int cnt = IDLists[i].Count; if (cnt > 2) { float fBaseTime = IDLists[i][cnt - 1].fTime; float delT; for (int k = cnt - 1; k > 0; k--) { delT = fBaseTime - IDLists[i][k].fTime; float fAbs = Mathf.Abs(IDLists[i][k].fVal); if (delT > 10.0f) break; if (fAbs > maxVal) { maxVal = fAbs; } } } } return maxVal; } void OnEnable() { StartCoroutine(OnEnableCoroutine()); } IEnumerator OnEnableCoroutine() { yield return new WaitForSeconds(0.2f); curr_display = 0; vCorners = new Vector3[4]; vBoxOutline = new Vector3[4]; vCenter = new Vector3(); Vector3 vx = new Vector3(); Vector3 vy = new Vector3(); MX_Accum = 0.0f; MY_Accum = 0.0f; fElapsedTime = 0.0f; GetComponent<RectTransform>().GetWorldCorners(vCorners); vx = vCorners[3] - vCorners[0]; vy = vCorners[1] - vCorners[0]; pWidth = vx.magnitude; pHeight = vy.magnitude; vx.Normalize(); vy.Normalize(); //Panel Border //Border_Points.points3.Add(vCorners[0]); //Border_Points.points3.Add(vCorners[1]); //Border_Points.points3.Add(vCorners[2]); //Border_Points.points3.Add(vCorners[3]); //Border_Points.points3.Add(vCorners[0]); vCenter = Vector3.zero; for (int i = 0; i < 4; i++) { vCenter += vCorners[i]; } vCenter /= 4.0f; //Border_Points.Draw3DAuto(); //Axis //GraphAxis.points3.Add(vCenter - vx * pWidth / 2.0f); //GraphAxis.points3.Add(vCenter + vx * pWidth / 2.0f); //GraphAxis.Draw3DAuto(); //Tick Marks TickMarks.Draw3DAuto(); //Graph Input Data List for (int i = 0; i < iSens_Cnt; i++) { GraphTrace[i].Draw3DAuto(); if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Red) { GraphTrace[i].color = Color.red; } else if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Green) { GraphTrace[i].color = Color.green; } else if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Blue) { GraphTrace[i].color = Color.blue; } else if (SensInput[i].colorGF == GraphFloat.Inputs.ColorGF.Violet) { GraphTrace[i].color = Color.magenta; } } } void OnDisable() { //Border_Points.points3.Clear(); //GraphAxis.points3.Clear(); TickMarks.points3.Clear(); foreach (VectorLine v in GraphTrace) { v.points3.Clear(); } } private void DrawTrace() { float max = FindMax(); txMax_y.text = max.ToString("F2"); txMin_y.text = (-max).ToString("F2"); int cnt = IDLists[0].Count; foreach(VectorLine v in GraphTrace) { v.points3.Clear(); } TickMarks.points3.Clear(); Vector3 vOrigin = vCorners[2] - vy * Height / 2.0f; Vector3 vTop = vCorners[2]; Vector3 vBot = vCorners[3]; float yC = (Height / 2.0f) / max; float xC = Width / 10.0f; float yCNorm = Height / 2.0f; if (cnt > 2) { Vector3 vtimeX = new Vector3(); Vector3 vvalY = new Vector3(); float fBaseTime = IDLists[0][cnt - 1].fTime; float rem05 = fBaseTime % 0.5f; float rem1 = fBaseTime % 1.0f; float big_tic = 0.08f; float sml_tic = 0.04f; vtimeX = vx * xC * rem05; int fliptic = 0; vvalY = vy * yCNorm * sml_tic; if (rem1 > rem05) { fliptic = 1; vvalY = vy * yCNorm * big_tic; } TickMarks.points3.Add(vOrigin - vtimeX + vvalY); TickMarks.points3.Add(vOrigin - vtimeX - vvalY); float half_acm = -0.5f; int txI = 0; int t1; for (int i = 0; i<20; i++) { half_acm += 0.5f; vtimeX = vx * xC * (rem05 + half_acm); if ((i + fliptic) % 2 == 0) { vvalY = vy * yCNorm * sml_tic; } else { vvalY = vy * yCNorm * big_tic; OrdNums[txI].gameObject.transform.position = vBot - vtimeX - vvalY; t1 = (int)(fBaseTime - half_acm); OrdNums[txI].text = ((float)t1).ToString("F1"); txI++; } TickMarks.points3.Add(vOrigin - vtimeX + vvalY); TickMarks.points3.Add(vOrigin - vtimeX - vvalY); TickMarks.points3.Add(vTop - vtimeX); TickMarks.points3.Add(vTop - vtimeX - vvalY); TickMarks.points3.Add(vBot - vtimeX); TickMarks.points3.Add(vBot - vtimeX + vvalY); } float fv; float delT; for (int j = 0; j < iSens_Cnt; j++) { cnt = IDLists[j].Count; if (cnt < 2) break; for (int i = cnt - 1; i > 0; i--) { fv = IDLists[j][i].fVal; delT = fBaseTime - IDLists[j][i].fTime; if (delT > 10.0f) break; vtimeX = vx * xC * delT; vvalY = vy * yC * fv; GraphTrace[j].points3.Add(vOrigin - vtimeX + vvalY); } } } } private void Get_Lists() { int numTraces = SensInput.Length; for(int i = 0; i< numTraces; i++) { IDLists[i] = gf_Manager.Get_List((int)SensInput[i].input); } } float accumTime = 0; private void CheckGearVR_Button() { accumTime += Time.deltaTime; if (Input.GetMouseButton(0)) { if (menuManager.demoState == MenuManager.DemoState.MOVEMENT_SENSORS) { //float fIny = Input.GetAxis("Mouse Y"); tx_YPos.text = GearVRInput.GetAxisX.ToString("F2"); buttonDownPrev = true; if (accumTime > 0.4f) { if (GearVRInput.GetAxisX < -0.9f) { if (--curr_display < 0) curr_display = 35;//EDIT HERE } else if (GearVRInput.GetAxisX > 0.9f) { if (++curr_display > 35) curr_display = 0; } accumTime = 0; } switch (curr_display) { case 0: { Title.text = "0) Accelerometer XYZ"; SensInput[0].input = Inputs.Input.Accel_X; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Accel_Y; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Accel_Z; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 1: { Title.text = "1) Accelerometer X"; SensInput[0].input = Inputs.Input.Accel_X; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 2: { Title.text = "2) Accelerometer Y"; SensInput[0].input = Inputs.Input.Accel_Y; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 3: { Title.text = "3) Accelerometer Z"; SensInput[0].input = Inputs.Input.Accel_Z; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 4: { Title.text = "4) Gyro Attitude Quaternion"; SensInput[0].input = Inputs.Input.Gyro_Att_qX; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Gyro_Att_qY; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Gyro_Att_qZ; GraphTrace[2].color = Color.blue; //SensInput[3].input = Inputs.Input.Gyro_Att_qZ; //GraphTrace[3].color = Color.magenta; iSens_Cnt = 3; break; } case 5: { Title.text = "5) Gyro Attitude Quat X"; SensInput[0].input = Inputs.Input.Gyro_Att_qX; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 6: { Title.text = "6) Gyro Attitude Quat Y"; SensInput[0].input = Inputs.Input.Gyro_Att_qY; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 7: { Title.text = "7) Gyro Attitude Quat Z"; SensInput[0].input = Inputs.Input.Gyro_Att_qZ; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 8: { Title.text = "8) Gyro Attitude Quat W"; SensInput[0].input = Inputs.Input.Gyro_Att_qW; GraphTrace[0].color = Color.magenta; iSens_Cnt = 1; break; } case 9: { Title.text = "9) Gyro Attitude Euler"; SensInput[0].input = Inputs.Input.Gyro_Att_euX; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Gyro_Att_euY; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Gyro_Att_euZ; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 10: { Title.text = "10) Gyro Attitude Euler X"; SensInput[0].input = Inputs.Input.Gyro_Att_euX; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 11: { Title.text = "11) Gyro Attitude Euler Y"; SensInput[0].input = Inputs.Input.Gyro_Att_euY; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 12: { Title.text = "12) Gyro Attitude Euler Z"; SensInput[0].input = Inputs.Input.Gyro_Att_euZ; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 13: { Title.text = "13) Gyro Gravity"; SensInput[0].input = Inputs.Input.Gyro_Grav_X; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Gyro_Grav_Y; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Gyro_Grav_Z; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 14: { Title.text = "14) Gyro Gravity X"; SensInput[0].input = Inputs.Input.Gyro_Grav_X; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 15: { Title.text = "15) Gyro Gravity Y"; SensInput[0].input = Inputs.Input.Gyro_Grav_Y; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 16: { Title.text = "16) Gyro Gravity Z"; SensInput[0].input = Inputs.Input.Gyro_Grav_Z; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 17: { Title.text = "17) Gyro Rotation Rate"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_X; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Gyro_Rota_Rate_Y; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Gyro_Rota_Rate_Z; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 18: { Title.text = "18) Gyro Rotation Rate X"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_X; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 19: { Title.text = "19) Gyro Rotation Rate Y"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_Y; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 20: { Title.text = "20) Gyro Rotation Rate Z"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_Z; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 21: { Title.text = "21) Gyro Rotation Rate UnBiased"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_UB_X; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Gyro_Rota_Rate_UB_Y; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Gyro_Rota_Rate_UB_Z; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 22: { Title.text = "22) Gyro Rotation Rate UnBiased X"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_UB_X; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 23: { Title.text = "23) Gyro Rotation Rate UnBiased Y"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_UB_Y; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 24: { Title.text = "24) Gyro Rotation Rate UnBiased Z"; SensInput[0].input = Inputs.Input.Gyro_Rota_Rate_UB_Z; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 25: { Title.text = "25) Gyro Acceleration"; SensInput[0].input = Inputs.Input.Gyro_Accel_X; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Gyro_Accel_Y; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Gyro_Accel_Z; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 26: { Title.text = "26) Gyro Acceleration X"; SensInput[0].input = Inputs.Input.Gyro_Accel_X; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 27: { Title.text = "27) Gyro Acceleration Y"; SensInput[0].input = Inputs.Input.Gyro_Accel_Y; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 28: { Title.text = "28) Gyro Acceleration Z"; SensInput[0].input = Inputs.Input.Gyro_Accel_Z; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 29: { Title.text = "29) Magnetic Heading Accuracy"; SensInput[0].input = Inputs.Input.Mag_Heading_Accuracy; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 30: { Title.text = "30) Magnetic Heading"; SensInput[0].input = Inputs.Input.Mag_Heading; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 31: { Title.text = "31) Magnetic Raw Vector XYZ"; SensInput[0].input = Inputs.Input.Mag_Raw_Vec_X; GraphTrace[0].color = Color.red; SensInput[1].input = Inputs.Input.Mag_Raw_Vec_Y; GraphTrace[1].color = Color.green; SensInput[2].input = Inputs.Input.Mag_Raw_Vec_Z; GraphTrace[2].color = Color.blue; iSens_Cnt = 3; break; } case 32: { Title.text = "32) Magnetic Raw Vector X"; SensInput[0].input = Inputs.Input.Mag_Raw_Vec_X; GraphTrace[0].color = Color.red; iSens_Cnt = 1; break; } case 33: { Title.text = "33) Magnetic Raw Vector Y"; SensInput[0].input = Inputs.Input.Mag_Raw_Vec_Y; GraphTrace[0].color = Color.green; iSens_Cnt = 1; break; } case 34: { Title.text = "34) Magnetic Raw Vector Z"; SensInput[0].input = Inputs.Input.Mag_Raw_Vec_Z; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } case 35: { Title.text = "35) Magnetic True Heading"; SensInput[0].input = Inputs.Input.Mag_True_Heading; GraphTrace[0].color = Color.blue; iSens_Cnt = 1; break; } } } } //} //else //{ // buttonDownPrev = false; //} } // Update is called once per frame void Update () { CheckGearVR_Button(); Get_Lists(); fElapsedTime += Time.deltaTime; GetComponent<RectTransform>().GetWorldCorners(vCorners); vx = vCorners[3] - vCorners[0]; vy = vCorners[1] - vCorners[0]; Width = vx.magnitude; Height = vy.magnitude; vx.Normalize(); vy.Normalize(); //if(bCan_Render || Panel_State == GF_Manager.Panel_State.FOCUS) //{ DrawTrace(); //bCan_Render = false; //} if (pHeight != Height || pWidth != Width) { vx.Normalize(); vy.Normalize(); //Panel Border //Border_Points.points3[0] = vCorners[0]; //Border_Points.points3[1] = vCorners[1]; //Border_Points.points3[2] = vCorners[2]; //Border_Points.points3[3] = vCorners[3]; //Border_Points.points3[4] = vCorners[0]; vCenter = Vector3.zero; for (int i = 0; i < 4; i++) { vCenter += vCorners[i]; } vCenter /= 4.0f; //Graph Axis //GraphAxis.points3[0] = vCenter - vx * Width/2.0f; //GraphAxis.points3[1] = vCenter + vx * Width/2.0f; pWidth = Width; pHeight = Height; } } } //float x = GetComponent<RectTransform>().rect.x; //float y = GetComponent<RectTransform>().rect.y; //float xMax = GetComponent<RectTransform>().rect.xMax; //float yMax = GetComponent<RectTransform>().rect.yMax; //float xMin = GetComponent<RectTransform>().rect.xMin; //float yMin = GetComponent<RectTransform>().rect.yMin; //float width = GetComponent<RectTransform>().rect.width; //float height = GetComponent<RectTransform>().rect.height;
Issuing Shell Commands You can use the shell command to issue commands, with or without entering the adb remote shell on the emulator/device. To issue a single command without entering a remote shell, use the shell command like this: adb [-d|-e|-s <serialNumber>] shell <shell_command> Or enter a remote shell on an emulator/device like this: adb [-d|-e|-s <serialNumber>] shell