コード例 #1
0
        public void Update()
        {
            if (m_Args == null)
            {
                return;
            }
            try
            {
                switch (m_HardwareState)
                {
                case HardwareState.None:
                    if (m_Args.Design.nNumberOfJoint <= 0 || m_Args.Design.dbRadius_Base <= 0 || m_Args.Design.dbAngleOfOffset_Base <= 0)
                    {
                        break;
                    }

                    m_Plate_Base = new Plate(Plate.PlateSettings.Base, m_Args.Design.nNumberOfJoint, m_Args.Design.dbRadius_Base, m_Args.Design.dbAngleOfOffset_Base);
                    m_Plate_Base.MakeJointVector();
                    m_HardwareState = HardwareState.Setcompleted_Base;
                    break;

                case HardwareState.Setcompleted_Base:
                    m_Plate_Upper = new Plate(Plate.PlateSettings.Upper, m_Args.Design.nNumberOfJoint, m_Args.Design.dbRadius_Upper, m_Args.Design.dbAngleOfOffset_Upper);
                    m_Plate_Upper.MakeJointVector();
                    m_HardwareState = HardwareState.SetCompleted_Upper;
                    break;

                case HardwareState.SetCompleted_Upper:
                    m_Plate_Upper.ToolOffset = m_Args.Design.ar_dbToolOffset;
                    m_HardwareState          = HardwareState.SetCompleted_Height;
                    break;

                case HardwareState.SetCompleted_Height:
                    m_Plate_Upper.Height = m_Args.Design.dbHeight;
                    m_HardwareState      = HardwareState.SetTargetPose;
                    break;

                case HardwareState.SetTargetPose:
                    if (m_Args.Target.dbTargetPosition == null || m_Args.Target.dbTargetRotation == null)
                    {
                        break;
                    }

                    m_Plate_Upper.CalculateTranslationVector(m_Args.Target.dbTargetPosition);
                    m_Plate_Upper.Rotation = m_Args.Target.dbTargetRotation;
                    m_HardwareState        = HardwareState.Actionable;
                    break;

                case HardwareState.Actionable:
                    m_Args = null;
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
コード例 #2
0
        /// <summary>
        /// 2020.04.08 by chjung [ADD] 상, 하판의 각 조인트 벡터를 설정한다.
        /// </summary>
        public void MakeHexapodPlate(int nNumOfJoint, double dbRadius_Base, double dbAngleOfOffset_Base, double dbRadius_Upper, double dbAngleOfOffset_Upper)
        {
            m_Plate_Base = new Plate(Plate.PlateSettings.Base, nNumOfJoint, dbRadius_Base, dbAngleOfOffset_Base);
            m_Plate_Base.MakeJointVector();
            m_HardwareState = HardwareState.Setcompleted_Base;

            m_Plate_Upper = new Plate(Plate.PlateSettings.Upper, nNumOfJoint, dbRadius_Upper, dbAngleOfOffset_Upper);
            m_Plate_Upper.MakeJointVector();
            m_HardwareState = HardwareState.SetCompleted_Upper;
        }
コード例 #3
0
ファイル: SqlTools.cs プロジェクト: enccdz/IT-Manager
        public static void RefreshHardwareStateList(MainForm mainForm)
        {
            if (IsConnected("SELECT id,name FROM `hardwarestates` ", false) && myDR.HasRows)
            {
                mainForm.hardwareStateList.Clear();// = new List<HardwareState>();

                while (myDR.Read())
                {
                    HardwareState hardwareState = new HardwareState();
                    hardwareState.id   = int.Parse(myDR.GetString(0));
                    hardwareState.name = myDR.GetString(1);
                    mainForm.hardwareStateList.Add(hardwareState);
                }
            }
        }
コード例 #4
0
 public void SetEventData(SetData setData, DataEventArgs args)
 {
     if (args != null)
     {
         m_Args = args;
         if (setData == SetData.HardWareData)
         {
             m_HardwareState = HardwareState.None;
         }
         else if (setData == SetData.TargetCoordinate)
         {
             m_HardwareState = HardwareState.SetTargetPose;
         }
     }
 }
コード例 #5
0
 private void TimerAlive_Tick(object sender, EventArgs e)
 {
     currentState = client.getHardwareState();
     if (currentState != null)
     {
         if (currentState.ledLight)
         {
             labelBlink.Visible = true;
         }
         else
         {
             labelBlink.Visible = false;
         }
         setCheckboxState(checkBox1, currentState.enabledF1);
         setCheckboxState(checkBox2, currentState.enabledF2);
         setCheckboxState(checkBox3, currentState.enabledF3);
         setCheckboxState(checkBox4, currentState.enabledF4);
         setCheckboxState(checkBox5, currentState.enabledF5);
         setCheckboxState(checkBox6, currentState.enabledF6);
     }
 }
コード例 #6
0
        internal void OnIncomingState(HardwareState currentState)
        {
            int theirPeriod = 0;

            if (this.featureNumber == 1)
            {
                theirPeriod = currentState.periodF1;
            }
            else if (this.featureNumber == 10)
            {
                theirPeriod = currentState.periodF10;
            }

            textBoxCurrent.Text = theirPeriod.ToString();

            if (textBoxCurrent.Text.Equals(textBoxPeriod.Text) &&
                !freqTracking)
            {
                trackBarFreq.Value = int.Parse(textBoxPeriod.Text);
                onFreqChange();
            }
        }
コード例 #7
0
        private void TimerAlive_Tick(object sender, EventArgs e)
        {
            if (client.State == System.ServiceModel.CommunicationState.Faulted)
            {
                this.Close();
                return;
            }
            if (client.State == System.ServiceModel.CommunicationState.Opened)
            {
                try
                {
                    currentState = client.getHardwareState();

                    /*
                     * if (pwmGenerating)
                     * {
                     *  int period = int.Parse(textBoxPWMGenerate.Text);
                     *  int duty = int.Parse(textBoxDuty.Text);
                     *  if (lastSentPeriod!=period ||
                     *      lastSentDuty != duty)
                     *  {
                     *      sendNewPwmPeriodAndDuty();
                     *      lastSentPeriod = period;
                     *      lastSentDuty = duty;
                     *  }
                     * }
                     */
                }
                catch (Exception)
                {
                    this.Close();
                    return;
                }


                this.Invoke(() => {
                    if (currentState != null)
                    {
                        if (currentState.ledLight)
                        {
                            labelLed.BackColor = Color.Blue;
                        }
                        else
                        {
                            labelLed.BackColor = Color.Transparent;
                        }

                        lock (checkBoxLock)
                        {
                            checkBox1.SetChecked(currentState.enabledF1);
                            checkBox2.SetChecked(currentState.enabledF2);
                            checkBox3.SetChecked(currentState.enabledF3);
                            checkBox4.SetChecked(currentState.enabledF4);
                            checkBox5.SetChecked(currentState.enabledF5);
                            checkBox6.SetChecked(currentState.enabledF6);
                            checkBox10.SetChecked(currentState.enabledF10);
                        }
                        if (currentState.currentState == HardwareState.SearchState.Searching)
                        {
                            //textBoxCurrent.Text = currentState.currentPeriod.ToString();
                        }

                        freqChanger1.OnIncomingState(currentState);
                        freqChanger10.OnIncomingState(currentState);
                    }
                });
            }
        }