예제 #1
0
        // #{id}P{PWM}T{Time}\r\n
        private void GoMoveAngle(int id)
        {
            if (((txtMoveAngle.Text == null) || (txtMoveAngle.Text.Trim() == "")) ||
                ((txtMoveAngleTime.Text == null) || (txtMoveAngleTime.Text.Trim() == "")))
            {
                AppendLog("\n請先設定要移動的目標角度及移動時間");
                return;
            }
            try
            {
                int angle = Convert.ToInt32(txtMoveAngle.Text.Trim(), 10);
                int time  = Convert.ToInt32(txtMoveAngleTime.Text.Trim(), 10);

                if ((angle < 0) || (angle > 270))
                {
                    UpdateInfo("請輸入 0 - 270 之間 的 角度.", UTIL.InfoType.error);
                    return;
                }

                movePosReturn mar = MoveAngle(id, angle, time);
                if (mar == movePosReturn.success)
                {
                    AppendLog(String.Format("舵機移動到 {0}度 的位置", angle));
                }
                else
                {
                    AppendLog(GetErrorMsg(mar));
                }
            }
            catch (Exception ex)
            {
                AppendLog("\nERR: " + ex.Message);
            }
        }
        private string GetErrorMsg(movePosReturn code)
        {
            string msg = "";

            switch (code)
            {
            case movePosReturn.success:
                break;

            case movePosReturn.invalidPWM:
                msg = "位置不正確";
                break;

            case movePosReturn.invalidAngle:
                msg = "輸入角度不正確";
                break;

            case movePosReturn.unknownMode:
                msg = "舵機模式不明";
                break;

            case movePosReturn.unsupportedMode:
                msg = "舵機模式不支援";
                break;

            default:
                msg = "不明錯誤: " + code.ToString();
                break;
            }
            return(msg);
        }