Вход/Регистрация
Программирование КПК и смартфонов на .NET Compact Framework
вернуться

Климов Александр Петрович

Шрифт:

3. Нужно исследовать каждый объект

IrDADeviceInfo
из полученного массива, чтобы найти необходимое устройство для связи.

4. Если подобное устройство найдено, то при помощи метода

IrDAClient.Connect
производится соединение. При этом необходимо указать имя службы

Создание программы для работы с ИК-связью

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

IrDA_CS
. На форме надо разместить три кнопки, список и строку состояния.

Кнопка

butFindDevs
предназначена для поиска устройств, кнопка
butSend
— для отправки текстового сообщения, а кнопка
butReceive
служит для приема сообщения. В списке
listBox1
будет отображаться информация об обнаруженных устройствах, а в строке состояния будут отображаться сообщения о производимых операциях. Для передачи данных и работы с файлами нам необходимо импортировать несколько пространств имен, как это показано в листинге 12.1.

Листинг 12.1

Imports System.Net

Imports System.IO

Imports System.Net.Sockets

Для работы с инфракрасной связью необходимо подключить к проекту класс

IrDAClient
. Для этого выполним команду меню
Project►Add Reference
и в диалоговом окне выберем пункт
System.Net.IrDa
.

Теперь нужно объявить переменные на уровне класса, как показано в листинге 12.2

Листинг 12.2

private IrDAListener irListen;

private IrDAClient irClient;

private IrDAEndPoint irEndP;

private IrDADeviceInfo[] irDevices;

string fileSend;

string fileReceive;

string irServiceName;

int buffersize;

В конструкторе формы надо создать экземпляр класса

IrDAClient
, задать имена файлов для приема и отправки сообщения, указать имя службы, установить размер буфера для передаваемого файла и также временно сделать недоступными кнопки для отправки и посылки сообщения. Соответствующий код приведен в листинге 12.3.

Листинг 12.3

public Form1 {

 InitializeComponent;

 irClient = new IrDAClient;

 // Файлы, предназначенные для отправки и приема

 fileSend = ".\\My Documents\\send.txt";

 fileReceive = ".\\My Documents\\receive.txt";

 // Задаем имя для службы IrDA

 // Это может быть любое слово

 // Другие устройства для примера должны использовать это же

 // слово

 irServiceName = "IrDAFtp";

 // Устанавливаем максимальный размер буфера для передаваемого

 // файла

 buffersize = 256;

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

 // до тех пор, пока не будут обнаружены устройства

 butSend.Enabled = false;

 butReceive.Enabled = false;

}

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

Теперь надо написать код для кнопки

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

  • Читать дальше
  • 1
  • ...
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: