private void updatePID(string a) { Debug.Log(a); float[] farr = new float[12]; for (int i = 0; i < 6; i++) { float.TryParse(pnlOuterLoop.GetComponentsInChildren <InputField>()[i].text, out farr[i]); } for (int i = 6; i < 12; i++) { float.TryParse(pnlInnerLoop.GetComponentsInChildren <InputField>()[i - 6].text, out farr[i]); } bpsSocketSendData sendData = new bpsSocketSendData((Int16)bpsCommandTypeDef.BPS_UPDATE_PID, farr[0], farr[3], farr[6], farr[9], farr[1], farr[4], farr[7], farr[10], farr[2], farr[5], farr[8], farr[11]); client.SendAsync(sendData.data, sendData.data.Length); PlayerPrefs.SetFloat("KpxInner", farr[6]); PlayerPrefs.SetFloat("KixInner", farr[7]); PlayerPrefs.SetFloat("KdxInner", farr[8]); PlayerPrefs.SetFloat("KpyInner", farr[9]); PlayerPrefs.SetFloat("KiyInner", farr[10]); PlayerPrefs.SetFloat("KdyInner", farr[11]); PlayerPrefs.SetFloat("KpxOuter", farr[0]); PlayerPrefs.SetFloat("KixOuter", farr[1]); PlayerPrefs.SetFloat("KdxOuter", farr[2]); PlayerPrefs.SetFloat("KpyOuter", farr[3]); PlayerPrefs.SetFloat("KiyOuter", farr[4]); PlayerPrefs.SetFloat("KdyOuter", farr[5]); }
private void Update() { if (logined) { if (cameraDesiredLookAt != null) { cameraTransform.rotation = Quaternion.Slerp (cameraTransform.rotation, cameraDesiredLookAt.rotation, CAMERA_TRANSITION_SPEED * Time.deltaTime); } Transform pin = GameObject.Find("pin").GetComponent <Transform>().transform; Transform pin1 = GameObject.Find("pin1").GetComponent <Transform>().transform; Transform pin2 = GameObject.Find("pin2").GetComponent <Transform>().transform; Transform pin3 = GameObject.Find("pin3").GetComponent <Transform>().transform; Transform pin4 = GameObject.Find("pin4").GetComponent <Transform>().transform; if (GameObject.Find("tglGroup").GetComponent <ToggleGroup>().GetComponentsInChildren <Toggle>()[0].isOn) // setpoint { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (hit.transform.name == "Plane") { if (Mathf.Abs(hit.point.x) < ACTIVE_REGION) { if (Mathf.Abs(hit.point.z - Z_OFFSET) < ACTIVE_REGION) { GameObject.Find("pin").GetComponent <Transform>().transform.position = hit.point + pinOffset; bpsSocketSendData sendData = new bpsSocketSendData((Int16)bpsCommandTypeDef.BPS_MODE_SETPOINT, (Int16)(hit.point.x + BALL_OFFSET), (Int16)(hit.point.z - Z_OFFSET + BALL_OFFSET)); client.SendAsync(sendData.data, sendData.data.Length); } } } } } Vector3 newPinDragPosition = GameObject.Find("pin").GetComponent <bpsPinMove>().position; if (newPinDragPosition != pinDragPosition || mode == 1) { pinDragPosition = newPinDragPosition; bpsSocketSendData sendData = new bpsSocketSendData((Int16)bpsCommandTypeDef.BPS_MODE_SETPOINT, (Int16)(pinDragPosition.x + BALL_OFFSET), (Int16)(pinDragPosition.z - Z_OFFSET + BALL_OFFSET)); client.SendAsync(sendData.data, sendData.data.Length); mode = 0; } PointWithinActiveregion(pin, 0); } else if (GameObject.Find("tglGroup").GetComponent <ToggleGroup>().GetComponentsInChildren <Toggle>()[1].isOn) // circle { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input. mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (hit.transform.name == "Plane") { radius = Vector3.Distance(hit.point, pin.position); } } } PointWithinActiveregion(pin, radius); if (pin.position.x < pin.position.z - Z_OFFSET) { if (Mathf.Abs(pin.position.x) + radius > ACTIVE_REGION) { radius = ACTIVE_REGION - Mathf.Abs(pin.position.x); } else if (Mathf.Abs(pin.position.z - Z_OFFSET) + radius > ACTIVE_REGION) { radius = ACTIVE_REGION - Mathf.Abs(pin.position.z - Z_OFFSET); } } if (radius < RADIUS_MIN) { radius = RADIUS_MIN; } GameObject.Find("circle").GetComponent <bpsCircle>().SetupCirlce(radius, pin.position); Vector3 newPinDragPosition = GameObject.Find("pin").GetComponent <bpsPinMove>().position; if (newPinDragPosition != pinDragPosition || oldRadius != radius || mode == 2) { pinDragPosition = newPinDragPosition; bpsSocketSendData sendData = new bpsSocketSendData((Int16)bpsCommandTypeDef.BPS_MODE_CIRCLE, (Int16)(pinDragPosition.x + BALL_OFFSET), (Int16)(pinDragPosition.z - Z_OFFSET + BALL_OFFSET), (UInt16)radius, (UInt16)1); client.SendAsync(sendData.data, sendData.data.Length); oldRadius = radius; mode = 0; } } else // rectangle { if (DistanceFromPointToLine(pin1.position, pin2.position, pin3.position) < DISTANCE_MIN) { pin1.position = pin1OldPosition; } else if (pin1.position != pin1OldPosition) { pin1OldPosition = pin1.position; isDataToSend = true; } PointWithinActiveregion(pin1, 0); if (DistanceFromPointToLine(pin2.position, pin1.position, pin4.position) > -DISTANCE_MIN) { pin2.position = pin2OldPosition; } else if (pin2.position != pin2OldPosition) { pin2OldPosition = pin2.position; isDataToSend |= true; } PointWithinActiveregion(pin2, 0); if (DistanceFromPointToLine(pin3.position, pin1.position, pin4.position) < DISTANCE_MIN) { pin3.position = pin3OldPosition; } else if (pin3.position != pin3OldPosition) { pin3OldPosition = pin3.position; isDataToSend |= true; } PointWithinActiveregion(pin3, 0); if (DistanceFromPointToLine(pin4.position, pin2.position, pin3.position) > -DISTANCE_MIN) { pin4.position = pin4OldPosition; } else if (pin4.position != pin4OldPosition) { pin4OldPosition = pin4.position; isDataToSend |= true; } PointWithinActiveregion(pin4, 0); if (isDataToSend) { bpsSocketSendData sendData = new bpsSocketSendData((Int16)bpsCommandTypeDef.BPS_MODE_RECTANGLE, (Int16)(pin1.position.x + BALL_OFFSET), (Int16)(pin1.position.z - Z_OFFSET + BALL_OFFSET), (Int16)(pin2.position.x + BALL_OFFSET), (Int16)(pin2.position.z - Z_OFFSET + BALL_OFFSET), (Int16)(pin3.position.x + BALL_OFFSET), (Int16)(pin3.position.z - Z_OFFSET + BALL_OFFSET), (Int16)(pin4.position.x + BALL_OFFSET), (Int16)(pin4.position.z - Z_OFFSET + BALL_OFFSET)); client.SendAsync(sendData.data, sendData.data.Length); isDataToSend = false; } } } }