Пример #1
0
        private void refreshList()
        {
            listBox1.Items.Clear();
            if (RelayDeviceWrapper.usb_relay_init() != 0)
            {
                Console.WriteLine("Couldn't initialize!");
                MessageBox.Show("Couldn't initialize!");
                return;
            }
            else
            {
                Console.WriteLine("Initialized successfully!");
            }

            List <usb_relay_device_info> devicesInfos = new List <usb_relay_device_info>();
            usb_relay_device_info        deviceInfo   = RelayDeviceWrapper.usb_relay_device_enumerate();

            devicesInfos.Add(deviceInfo);

            while (deviceInfo.next.ToInt32() > 0)
            {
                deviceInfo = (usb_relay_device_info)Marshal.PtrToStructure(deviceInfo.next, typeof(usb_relay_device_info));
                devicesInfos.Add(deviceInfo);
            }

            foreach (var device in devicesInfos)
            {
                listBox1.Items.Add(device);
            }
        }
        public static usb_relay_device_info usb_relay_device_enumerate()
        {
            IntPtr x = RelayDeviceWrapper.Pusb_relay_device_enumerate();
            usb_relay_device_info a = (usb_relay_device_info)Marshal.PtrToStructure(x, typeof(usb_relay_device_info));

            return(a);
        }
Пример #3
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (_deviceHandle > 0)
            {
                RelayDeviceWrapper.usb_relay_device_close(_deviceHandle);
                _deviceHandle = 0;
            }

            for (int i = 0; i < _buttonList.Count; i++)
            {
                _buttonList[i].BackColor = BackColor;
                _buttonList[i].Enabled   = false;
            }

            var lb = (ListBox)sender;
            usb_relay_device_info device = (usb_relay_device_info)lb.SelectedItem;

            _deviceHandle = RelayDeviceWrapper.usb_relay_device_open(ref device);
            int numberOfRelays = (int)device.type;

            uint status = 0;

            RelayDeviceWrapper.usb_relay_device_get_status(_deviceHandle, ref status);

            for (int i = 0; i < numberOfRelays; i++)
            {
                _buttonList[i].Enabled = true;
                if (status > numberOfRelays)
                {
                    _buttonList[i].BackColor = Color.Red;
                }
                else if (i + 1 == status)
                {
                    _buttonList[i].BackColor = Color.Red;
                }
            }
        }
 public static extern int usb_relay_device_open(ref usb_relay_device_info device_info);