// Update is called once per frame void Update() { deltatime += Time.deltaTime; arPanelAngle = arPanel.transform.localEulerAngles; /* * if (deltatime > 1.0f) { * //StartCoroutine (GetSensorData ()); * setTarget (axisdata); * * deltatime -= 1.0f; * } */ if (isCalibrate) { //キャリブレーション中 3秒 if (deltatime > 3.0f) { //終了 CaliburationEnd(); } } if (eulerdata != null) { SetTargetEuler(eulerdata); } //MqttTest(); mqttController.OnMessageReceived.Subscribe(message => { //データ成型 string json = ""; string[] arr = message.Split('{'); json = string.Join("{\"", arr); string[] semiArr = json.Split(':'); json = string.Join("\":", semiArr); string[] comArr = json.Split(','); json = string.Join(",\"", comArr); NineAxis list = JsonUtility.FromJson <NineAxis> (json); axisdata = list; }); mqttEuler.OnMessageReceived.Subscribe(message => { //データ成型 string json = ""; string[] arr = message.Split('{'); json = string.Join("{\"", arr); string[] semiArr = json.Split(':'); json = string.Join("\":", semiArr); string[] comArr = json.Split(','); json = string.Join(",\"", comArr); Euler data = JsonUtility.FromJson <Euler> (json); eulerdata = data; if (isCalibrate) { calEulerList.Add(data); } }); }
// Update is called once per frame void Update() { deltatime += Time.deltaTime; if (deltatime > 1.0f) { //StartCoroutine (GetSensorData ()); setTarget(axisdata); deltatime -= 1.0f; } if (eulerdata != null) { SetTargetEuler(eulerdata); } //MqttTest(); mqttController.OnMessageReceived.Subscribe(message => { //データ成型 string json = ""; string[] arr = message.Split('{'); json = string.Join("{\"", arr); string[] semiArr = json.Split(':'); json = string.Join("\":", semiArr); string[] comArr = json.Split(','); json = string.Join(",\"", comArr); NineAxis list = JsonUtility.FromJson <NineAxis> (json); axisdata = list; }); mqttEuler.OnMessageReceived.Subscribe(message => { //データ成型 string json = ""; string[] arr = message.Split('{'); json = string.Join("{\"", arr); string[] semiArr = json.Split(':'); json = string.Join("\":", semiArr); string[] comArr = json.Split(','); json = string.Join(",\"", comArr); Euler data = JsonUtility.FromJson <Euler> (json); eulerdata = data; }); }
//9軸オブジェクトへ適用 void setTarget(NineAxis data) { //ax 0-10を想定 float AX = (data.ax * 18) - 90.0f; //ay 0-10を想定 float AY = (data.ay * 18) + 90.0f; //az 0-10を想定 float AZ = -((data.az * 18) - 90.0f); //gx -1-1を想定 float GX = ((data.gx + 1.0f) * 180) - 90.0f; //gy -1-1を想定 float GY = ((data.gy + 1.0f) * 180); //gz -1-1を想定 float GZ = ((data.gz + 1.0f) * 180); //Debug.Log ($"{data.ax:F3}"); //target.transform.rotation = Quaternion.Euler (90, 180, 0) * (new Quaternion (-data.gx, -data.gy, data.gz, 0));; string datastr = "AX:" + $"{data.ax:F3}" + " AY:" + $"{data.ay:F3}" + " AZ:" + $"{data.az:F3}" + "\n"; datastr += "LX:" + $"{data.lx:F3}" + " LY:" + $"{data.ly:F3}" + " LZ:" + $"{data.lz:F3}" + "\n"; datastr += "GX:" + $"{data.gx:F3}" + " GY:" + $"{data.gy:F3}" + " GZ:" + $"{data.gz:F3}" + "\n"; //dataText.text = datastr; }