Example #1
0
        private void JoystickTimer_Tick(object sender, EventArgs e)
        {
            int[] xy = jsio.getXY();
            if (xy[0] == -1)
            {
                JoystickTimer.Enabled = false; jsStatusPanel.BackColor = Color.Red; SendEStop(); MessageBox.Show("Joystick error!!!");
            }
            else
            {
                XBar.Value = xy[0] - 32768;
                YBar.Value = -1 * (xy[1] - 32768);

                if (xy[1] > 32767)
                {
                    BrakeLabel.ForeColor    = Color.Red;
                    BrakeLabel.Text         = "Brake " + Math.Round((double)(xy[1] - 32767) / 327.68, 1) + "%";
                    ThrottleLabel.ForeColor = Color.Gray;
                    ThrottleLabel.Text      = "Throttle 0%";
                }
                else if (xy[1] < 32767)
                {
                    ThrottleLabel.ForeColor = Color.Green;
                    ThrottleLabel.Text      = "Throttle " + Math.Round((double)(32768 - xy[1]) / 327.68, 1) + "%";
                    BrakeLabel.ForeColor    = Color.Gray;
                    BrakeLabel.Text         = "Brake 0%";
                }
                else
                {
                    ThrottleLabel.ForeColor = Color.Gray;
                    BrakeLabel.ForeColor    = Color.Gray;
                    BrakeLabel.Text         = "Brake 0%";
                    ThrottleLabel.Text      = "Throttle 0%";
                }

                if ((Network != null) && Network.Connected)
                {
                    Network.Send("ACL " + ((32767 - xy[1]) / 128).ToString());
                    Network.Send("STR " + ((xy[0] - 32768) / 256).ToString());
                }
            }

            bool[] Buttons = jsio.getButtons();

            if (Buttons == null)
            {
                JoystickTimer.Enabled = false; jsStatusPanel.BackColor = Color.Red;
            }

            try
            {
                if (Buttons[2])
                {
                    SendEStop();
                    EStopButton.BackColor = Color.Yellow;
                }
                else
                {
                    EStopButton.BackColor = Color.Red;
                }



                if (Buttons[6] || Buttons[7])
                {
                    if ((Network != null) && Network.Connected)
                    {
                        Network.Send("ALM");
                        AlarmPanel.BackColor = Color.Red;
                    }
                }
                else
                {
                    AlarmPanel.BackColor = Color.Gray;
                }
            }
            catch { SendEStop(); MessageBox.Show("Joystick error!!!"); }
        }