Ejemplo n.º 1
0
    void Update()
    {
        SelectCamera cg = GetComponent <SelectCamera>();

        if (cg.CamNum == 2)
        {
            Ctrlstatus = true;
        }
        else
        {
            Ctrlstatus = false;
        }

        if (Ctrlstatus == true)
        {
            if (OVRInput.GetDown(OVRInput.Button.Two, OVRInput.Controller.RTouch))
            {
                Debug.Log("exit scene");
                SceneManager.LoadScene("TestScene1");
            }
            tr.Rotate(Vector3.up * Time.deltaTime * rotSpeed * Input.GetAxis("Mouse X"));
        }
    }
Ejemplo n.º 2
0
        /// <summary>
        /// AlignmentSensor校正
        /// </summary>
        /// <param name="selectCamera"></param>
        /// <param name="nowX"></param>
        /// <param name="nowY"></param>
        /// <param name="nowθ"></param>
        /// <param name="point"></param>
        /// <param name="Action"></param>
        /// <param name="CheckAlarm"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public ushort AlignmentCalibration_ChkRet(SelectCamera selectCamera, double nowX, double nowY, double nowθ, ushort point, bool Action = true, bool CheckAlarm = true, double timeOut = 3000)
        {
            lock (Lock_AlignmentCalibration_ChkRet)
            {
                ushort nValue   = conProg.process.Busy;
                string strError = string.Empty;

                if (RunMode.Pause_f == true || AlarmMessage.Alarm_SW)
                {
                    return(nValue);
                }

                if (Action == false)
                {
                    AlignmentCalibration_ChkRet_p = 9999;
                }

                SelectFeature         selectFeature   = SelectFeature.Feature_1;
                CognexAS200Coordinate inputCoordinate = new CognexAS200Coordinate();
                inputCoordinate.X = nowX;
                inputCoordinate.Y = nowY;
                inputCoordinate.Z = 0;
                inputCoordinate.A = nowθ;
                inputCoordinate.B = 0;
                inputCoordinate.C = 0;

                switch (AlignmentCalibration_ChkRet_p)
                {
                case 0:
                    nValue = conProg.process.Busy;
                    calibrationTable.Clear();
                    if (GoToAbsPosition(inputCoordinate.X, inputCoordinate.Y, inputCoordinate.A, point, false) == conProg.process.Success)
                    {
                        AlignmentCalibration_ChkRet_p = 10;
                    }
                    break;

                case 10:
                    if (GoToAbsPosition(inputCoordinate.X, inputCoordinate.Y, inputCoordinate.A, point) == conProg.process.Success)
                    {
                        calibrationTable.Rows.Add(inputCoordinate.X, inputCoordinate.Y, inputCoordinate.A);
                        AlignmentCalibration_ChkRet_p = 20;
                    }
                    break;

                case 20:
                    if (alignmentSensor.Functions.AutoCalibrationBegin_ChkRet(selectCamera, selectFeature, inputCoordinate, ref status, ref outputCoordinate, false) == conProg.process.Success)
                    {
                        AlignmentCalibration_ChkRet_p = 30;
                    }
                    break;

                case 30:
                    if (alignmentSensor.Functions.AutoCalibrationBegin_ChkRet(selectCamera, selectFeature, inputCoordinate, ref status, ref outputCoordinate) == conProg.process.Success)
                    {
                        if (status == CognexAS200CommandStatus.Fail)
                        {
                            strError = "AutoCalibrationBegin_失敗";
                            AlignmentCalibration_ChkRet_p = 8000;
                        }
                        else
                        {
                            AlignmentCalibration_ChkRet_p = 40;
                        }
                    }
                    break;

                case 40:
                    if (GoToAbsPosition(outputCoordinate.X, outputCoordinate.Y, outputCoordinate.A, point, false) == conProg.process.Success)
                    {
                        AlignmentCalibration_ChkRet_p = 50;
                    }
                    break;

                case 50:
                    if (GoToAbsPosition(outputCoordinate.X, outputCoordinate.Y, outputCoordinate.A, point) == conProg.process.Success)
                    {
                        calibrationTable.Rows.Add(outputCoordinate.X, outputCoordinate.Y, outputCoordinate.A);
                        AlignmentCalibration_ChkRet_p = 60;
                    }
                    break;

                case 60:
                    if (alignmentSensor.Functions.AutoCalibration_ChkRet(selectCamera, selectFeature, outputCoordinate, ref status, ref outputCoordinate, false) == conProg.process.Success)
                    {
                        AlignmentCalibration_ChkRet_p = 70;
                    }
                    break;

                case 70:
                    if (alignmentSensor.Functions.AutoCalibration_ChkRet(selectCamera, selectFeature, outputCoordinate, ref status, ref outputCoordinate) == conProg.process.Success)
                    {
                        switch (status)
                        {
                        case CognexAS200CommandStatus.Fail:
                            strError = "AutoCalibration_失敗";
                            AlignmentCalibration_ChkRet_p = 8000;
                            break;

                        case CognexAS200CommandStatus.Success:
                            AlignmentCalibration_ChkRet_p = 9999;
                            break;

                        case CognexAS200CommandStatus.KeepExecution:
                            AlignmentCalibration_ChkRet_p = 40;
                            break;
                        }
                    }
                    break;

                case 8000:     //報警流程選擇
                    nValue = conProg.process.Fail;
                    if (AlarmMessage.Alarm_ButtonSelection == conProg.btnRetry)
                    {
                        AlignmentCalibration_ChkRet_p = 0;
                    }
                    else if (AlarmMessage.Alarm_ButtonSelection == conProg.btnIgnore)
                    {
                        AlignmentCalibration_ChkRet_p = 9999;
                    }
                    break;

                case 9999:     //流程初始化
                    nValue = conProg.process.Success;
                    if (Action == false)
                    {
                        AlignmentCalibration_ChkRet_p = 0;
                    }
                    break;
                }

                if (strError != string.Empty) //顯示報警
                {
                    AlignmentCalibration_ChkRet_p = CheckAlarm == true ? 8000 : 9999;
                    DeviceAlarmMessage(MethodBase.GetCurrentMethod().Name, strError, false, CheckAlarm);
                }
                return(nValue);
            }
        }
Ejemplo n.º 3
0
 // Start is called before the first frame update
 void Start()
 {
     CameraSelect = GameObject.Find("CameraSelect").GetComponent <SelectCamera>();
 }