private void SetFrameParam(motor_frame_class frame_class, motor_frame_type frame_type)
 {
     try
     {
         MainV2.comPort.setParam("FRAME_CLASS", (int)frame_class);
         MainV2.comPort.setParam("FRAME_TYPE", (int)frame_type);
     }
     catch
     {
         CustomMessageBox.Show(string.Format(Strings.ErrorSetValueFailed, "FRAME_CLASS OR FRAME_TYPE"), Strings.ERROR,
                               MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
        public void Activate()
        {
            if (!MainV2.comPort.MAV.param.ContainsKey("FRAME_CLASS") || !MainV2.comPort.MAV.param.ContainsKey("FRAME_TYPE"))
            {
                Enabled = false;
                return;
            }

            // pre seed the correct values
            work_frame_class = (motor_frame_class)
                               Enum.Parse(typeof(motor_frame_class), MainV2.comPort.MAV.param["FRAME_CLASS"].ToString());
            work_frame_type = (motor_frame_type)
                              Enum.Parse(typeof(motor_frame_type), MainV2.comPort.MAV.param["FRAME_TYPE"].ToString());

            this.LogInfoFormat("Existing Class: {0} Type: {1}", work_frame_class, work_frame_type);

            DoClass(work_frame_class);
            DoType(work_frame_type);
        }
        private void DoType(motor_frame_type frame_type)
        {
            if (inDoType)
            {
                return;
            }

            // prevent recursive calls because we modify radiobuttons
            inDoType        = true;
            work_frame_type = frame_type;

            switch (frame_type)
            {
            case motor_frame_type.MOTOR_FRAME_TYPE_PLUS:
                FadePicBoxes(pictureBoxPlus, EnabledOpacity);
                FadePicBoxes(pictureBoxX, DisabledOpacity);
                FadePicBoxes(pictureBoxV, DisabledOpacity);
                FadePicBoxes(pictureBoxH, DisabledOpacity);
                FadePicBoxes(pictureBoxY, DisabledOpacity);
                FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                radioButton_VTail.Checked = false;
                radioButton_Plus.Checked  = true;
                radioButton_V.Checked     = false;
                radioButton_X.Checked     = false;
                radioButton_H.Checked     = false;
                radioButton_Y.Checked     = false;
                SetFrameParam(work_frame_class, frame_type);
                break;

            case motor_frame_type.MOTOR_FRAME_TYPE_X:
                FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                FadePicBoxes(pictureBoxX, EnabledOpacity);
                FadePicBoxes(pictureBoxV, DisabledOpacity);
                FadePicBoxes(pictureBoxH, DisabledOpacity);
                FadePicBoxes(pictureBoxY, DisabledOpacity);
                FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                radioButton_VTail.Checked = false;
                radioButton_Plus.Checked  = false;
                radioButton_V.Checked     = false;
                radioButton_X.Checked     = true;
                radioButton_H.Checked     = false;
                radioButton_Y.Checked     = false;
                SetFrameParam(work_frame_class, frame_type);
                break;

            case motor_frame_type.MOTOR_FRAME_TYPE_V:
                FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                FadePicBoxes(pictureBoxX, DisabledOpacity);
                FadePicBoxes(pictureBoxV, EnabledOpacity);
                FadePicBoxes(pictureBoxH, DisabledOpacity);
                FadePicBoxes(pictureBoxY, DisabledOpacity);
                FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                radioButton_VTail.Checked = false;
                radioButton_Plus.Checked  = false;
                radioButton_V.Checked     = true;
                radioButton_X.Checked     = false;
                radioButton_H.Checked     = false;
                radioButton_Y.Checked     = false;
                SetFrameParam(work_frame_class, frame_type);
                break;

            case motor_frame_type.MOTOR_FRAME_TYPE_H:
                FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                FadePicBoxes(pictureBoxX, DisabledOpacity);
                FadePicBoxes(pictureBoxV, DisabledOpacity);
                FadePicBoxes(pictureBoxH, EnabledOpacity);
                FadePicBoxes(pictureBoxY, DisabledOpacity);
                FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                radioButton_VTail.Checked = false;
                radioButton_Plus.Checked  = false;
                radioButton_V.Checked     = false;
                radioButton_X.Checked     = false;
                radioButton_H.Checked     = true;
                radioButton_Y.Checked     = false;
                SetFrameParam(work_frame_class, frame_type);
                break;

            case motor_frame_type.MOTOR_FRAME_TYPE_Y6B:
                FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                FadePicBoxes(pictureBoxX, DisabledOpacity);
                FadePicBoxes(pictureBoxV, DisabledOpacity);
                FadePicBoxes(pictureBoxH, DisabledOpacity);
                FadePicBoxes(pictureBoxY, EnabledOpacity);
                FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                radioButton_VTail.Checked = false;
                radioButton_Plus.Checked  = false;
                radioButton_V.Checked     = false;
                radioButton_X.Checked     = false;
                radioButton_H.Checked     = false;
                radioButton_Y.Checked     = true;
                SetFrameParam(work_frame_class, frame_type);
                break;

            case motor_frame_type.MOTOR_FRAME_TYPE_VTAIL:
                FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                FadePicBoxes(pictureBoxX, DisabledOpacity);
                FadePicBoxes(pictureBoxV, DisabledOpacity);
                FadePicBoxes(pictureBoxH, DisabledOpacity);
                FadePicBoxes(pictureBoxY, DisabledOpacity);
                FadePicBoxes(pictureBoxVTail, EnabledOpacity);
                radioButton_VTail.Checked = true;
                radioButton_Plus.Checked  = false;
                radioButton_V.Checked     = false;
                radioButton_X.Checked     = false;
                radioButton_H.Checked     = false;
                radioButton_Y.Checked     = false;
                SetFrameParam(work_frame_class, frame_type);
                break;

            default:
                radioButton_Plus.Checked = false;
                radioButton_V.Checked    = false;
                radioButton_X.Checked    = false;
                radioButton_H.Checked    = false;
                radioButton_Y.Checked    = false;
                break;
            }
            inDoType = false;
        }
 private void SetFrameParam(motor_frame_class frame_class, motor_frame_type frame_type)
 {
     try
     {
         MainV2.comPort.setParam("FRAME_CLASS", (int)frame_class);
         MainV2.comPort.setParam("FRAME_TYPE", (int)frame_type);
     }
     catch
     {
         CustomMessageBox.Show(string.Format(Strings.ErrorSetValueFailed, "FRAME_CLASS OR FRAME_TYPE"), Strings.ERROR,
             MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
        private void DoType(motor_frame_type frame_type)
        {
            if (inDoType)
                return;

            // prevent recursive calls because we modify radiobuttons
            inDoType = true;
            work_frame_type = frame_type;

            switch (frame_type)
            {
                case motor_frame_type.MOTOR_FRAME_TYPE_PLUS:
                    FadePicBoxes(pictureBoxPlus, EnabledOpacity);
                    FadePicBoxes(pictureBoxX, DisabledOpacity);
                    FadePicBoxes(pictureBoxV, DisabledOpacity);
                    FadePicBoxes(pictureBoxH, DisabledOpacity);
                    FadePicBoxes(pictureBoxY, DisabledOpacity);
                    FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                    radioButton_VTail.Checked = false;
                    radioButton_Plus.Checked = true;
                    radioButton_V.Checked = false;
                    radioButton_X.Checked = false;
                    radioButton_H.Checked = false;
                    radioButton_Y.Checked = false;
                    SetFrameParam(work_frame_class, frame_type);
                    break;
                case motor_frame_type.MOTOR_FRAME_TYPE_X:
                    FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                    FadePicBoxes(pictureBoxX, EnabledOpacity);
                    FadePicBoxes(pictureBoxV, DisabledOpacity);
                    FadePicBoxes(pictureBoxH, DisabledOpacity);
                    FadePicBoxes(pictureBoxY, DisabledOpacity);
                    FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                    radioButton_VTail.Checked = false;
                    radioButton_Plus.Checked = false;
                    radioButton_V.Checked = false;
                    radioButton_X.Checked = true;
                    radioButton_H.Checked = false;
                    radioButton_Y.Checked = false;
                    SetFrameParam(work_frame_class, frame_type);
                    break;
                case motor_frame_type.MOTOR_FRAME_TYPE_V:
                    FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                    FadePicBoxes(pictureBoxX, DisabledOpacity);
                    FadePicBoxes(pictureBoxV, EnabledOpacity);
                    FadePicBoxes(pictureBoxH, DisabledOpacity);
                    FadePicBoxes(pictureBoxY, DisabledOpacity);
                    FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                    radioButton_VTail.Checked = false;
                    radioButton_Plus.Checked = false;
                    radioButton_V.Checked = true;
                    radioButton_X.Checked = false;
                    radioButton_H.Checked = false;
                    radioButton_Y.Checked = false;
                    SetFrameParam(work_frame_class, frame_type);
                    break;
                case motor_frame_type.MOTOR_FRAME_TYPE_H:
                    FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                    FadePicBoxes(pictureBoxX, DisabledOpacity);
                    FadePicBoxes(pictureBoxV, DisabledOpacity);
                    FadePicBoxes(pictureBoxH, EnabledOpacity);
                    FadePicBoxes(pictureBoxY, DisabledOpacity);
                    FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                    radioButton_VTail.Checked = false;
                    radioButton_Plus.Checked = false;
                    radioButton_V.Checked = false;
                    radioButton_X.Checked = false;
                    radioButton_H.Checked = true;
                    radioButton_Y.Checked = false;
                    SetFrameParam(work_frame_class, frame_type);
                    break;
                case motor_frame_type.MOTOR_FRAME_TYPE_Y6B:
                    FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                    FadePicBoxes(pictureBoxX, DisabledOpacity);
                    FadePicBoxes(pictureBoxV, DisabledOpacity);
                    FadePicBoxes(pictureBoxH, DisabledOpacity);
                    FadePicBoxes(pictureBoxY, EnabledOpacity);
                    FadePicBoxes(pictureBoxVTail, DisabledOpacity);
                    radioButton_VTail.Checked = false;
                    radioButton_Plus.Checked = false;
                    radioButton_V.Checked = false;
                    radioButton_X.Checked = false;
                    radioButton_H.Checked = false;
                    radioButton_Y.Checked = true;
                    SetFrameParam(work_frame_class, frame_type);
                    break;
                case motor_frame_type.MOTOR_FRAME_TYPE_VTAIL:
                    FadePicBoxes(pictureBoxPlus, DisabledOpacity);
                    FadePicBoxes(pictureBoxX, DisabledOpacity);
                    FadePicBoxes(pictureBoxV, DisabledOpacity);
                    FadePicBoxes(pictureBoxH, DisabledOpacity);
                    FadePicBoxes(pictureBoxY, DisabledOpacity);
                    FadePicBoxes(pictureBoxVTail, EnabledOpacity);
                    radioButton_VTail.Checked = true;
                    radioButton_Plus.Checked = false;
                    radioButton_V.Checked = false;
                    radioButton_X.Checked = false;
                    radioButton_H.Checked = false;
                    radioButton_Y.Checked = false;
                    SetFrameParam(work_frame_class, frame_type);
                    break;
                default:
                    radioButton_Plus.Checked = false;
                    radioButton_V.Checked = false;
                    radioButton_X.Checked = false;
                    radioButton_H.Checked = false;
                    radioButton_Y.Checked = false;
                    break;
            }
            inDoType = false;
        }
        public void Activate()
        {
            if (!MainV2.comPort.MAV.param.ContainsKey("FRAME_CLASS") || !MainV2.comPort.MAV.param.ContainsKey("FRAME_TYPE"))
            {
                Enabled = false;
                return;
            }

            // pre seed the correct values
            work_frame_class = (motor_frame_class)
                Enum.Parse(typeof (motor_frame_class), MainV2.comPort.MAV.param["FRAME_CLASS"].ToString());
            work_frame_type = (motor_frame_type)
                Enum.Parse(typeof (motor_frame_type), MainV2.comPort.MAV.param["FRAME_TYPE"].ToString());

            this.LogInfoFormat("Existing Class: {0} Type: {1}", work_frame_class, work_frame_type);

            DoClass(work_frame_class);
            DoType(work_frame_type);
        }