示例#1
0
        private void RelayBtn_Click(object sender, RoutedEventArgs e)
        {
            int relay_index = -1;

            for (int i = 0; i < RelayBtns.Count(); ++i)
            {
                if (RelayBtns[i] == sender)
                {
                    relay_index = i;
                    break;
                }
            }

            if (relay_index == -1)
            {
                throw new Exception();
            }

            //if the relay is currently off, the pre-charge box must be checked. lets automatically clear it here.
            if (BatteryWriteData.GetRelayState(relay_index) == false)
            {
                BatteryWriteData.SetRelayPrechargeState(relay_index, false);

                BatteryWriteData.SetRelayState(relay_index, true);
                RelayPrechargeCheckboxes[relay_index].IsChecked = false;
            }
            else
            {
                //if the relay is currently on, turn it off.
                BatteryWriteData.SetRelayState(relay_index, false);
                if ((RelayPrechargeCheckboxes[relay_index].IsChecked.Value == false) && (relay_index != 1))
                {
                    RelayBtns[relay_index].IsEnabled = false;
                }
            }

            UpdateRelayBtnText();
        }