Ejemplo n.º 1
0
    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]);
    }
Ejemplo n.º 2
0
    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;
                }
            }
        }
    }