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

We use cookies. Read the Privacy and Cookie Policy

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

В этом разделе будет создано приложение, которое будет соединяться с другим устройством и пересылать ему текстовый файл. Прежде всего нужно создать новый проект 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;

}