Обнаружение устройств

Обнаружение устройств

Теперь надо написать код для кнопки butFindDevs, предназначенной для обнаружения устройств. При тестировании примера необходимо направить инфракрасные порты устройств друг на друга. Код, ответственный за выполнение этой задачи, приведен в листинге 12.4.

Листинг 12.4

private void butFindDevs_Click(object sender, EventArgs e) {

 // Ищем доступные устройства с инфракрасной связью

 // и помещаем их в список

 // Поиск не более трех доступных устройств

 irDevices = irClient.DiscoverDevices(2);

 // Если устройства не найдены, то выводим сообщение

 if (irDevices.Length == 0) {

  MessageBox.Show("Устройства с ИК-портами не обнаружены!");

  return;

 }

 // Перечисляем массив IrDADeviceInfo

 // и выводим информацию о каждом устройстве в список

 string device;

 int ID;

 listBox1.Items.Clear();

 foreach (IrDADeviceInfo irDevice in irDevices) {

  ID = BitConverter.ToInt32(irDevice.DeviceID, 0);

  device =

   ID.ToString() + " " + irDevice.DeviceName + " " + irDevice.CharacterSet +

   " " + irDevice.Hints;

  listBox1.Items.Add(device);

 }

 listBox1.SelectedIndex = 0;

 if (irDevices.Length > 0)

  statusBar1.Text = irDevices.Length.ToString() + " устройств(а)";

 // Делаем доступными кнопки для отправки и посылки сообщения

 butSend.Enabled = true;

 butReceive.Enabled = true;

}