Книга: Программирование мобильных устройств на платформе .NET Compact Framework

Листинг 15.3. Тестовый код, который необходимо поместить в класс формы для тестирования передачи и приема данных посредством механизма IrDA

Листинг 15.3. Тестовый код, который необходимо поместить в класс формы для тестирования передачи и приема данных посредством механизма IrDA

//Имя, которое мы хотим присвоить сокету IrDA
const string myIrDASocketName = "IrDaTestFileTransmit";
private void buttonTestFileSend_Click(object sender, System.EventArgs e) {
 //Создать простой текстовый файл, который мы хотим передать
 const string fileName = "myTestSendFile.txt";
 System.IO.StreamWriter textFileStream;
 textFileStream = System.IO.File.CreateText(fileName);
 textFileStream.WriteLine("Today...");
 textFileStream.WriteLine("is а nice day");
 textFileStream.WriteLine("to go swim");
 textFileStream.WriteLine("in the lake");
 textFileStream.Close(); IrDAFileSend irdaFileSend;
 irdaFileSend = new IrDAFileSend(fileName, myIrDASocketName);
 //Имеется 2 режима: 1 — Sync (синхронный), 2 — Async (асинхронный)
 //1. Вызвать функцию в синхронном режиме
 //и блокировать поток выполнения до тех пор,
 //пока файл не будет передан
 //1a. Вызвать функцию в синхронном режиме
 //и блокировать поток выполнения до тех пор,
 //пока файл не будет передан
 this.Text = "Trying to send...";
 //1b. Подождать, пока клиент не будет найден, а затем передать файл
 irdaFileSend.LoopAndAttemptIRSend();
 //1c. Информировать пользователя о том, что файл передан
 System.Windows.Forms.MessageBox.Show("File sent!");
 this.Text = "IrDA: Sent!";
 //2. Вызвать функцию в асинхронном режиме и поручить
 //передачу файла фоновому потоку
 //irdaFileSend.LoopAndAttemptIRSendAsync();
 //ПРИМЕЧАНИЕ: Если мы вызываем функцию в асинхронном режиме, то должны
 //периодически проверять, не завершила ли она выполнение, путем
 //вызова метода 'irdaFileSend.Status'
}
private void buttonTestFileReceive_Click(object sender, System.EventArgs e) {
 //Если файл назначения уже существует, уничтожить его
 const string fileName = "myTestReceiveFile.txt";
 if (System.IO.File.Exists(fileName)) {
  System.IO.File.Delete(fileName);
 }
 IrDAFileReceive irdaFileReceive;
 irdaFileReceive = new IrDAFileReceive(fileName, myIrDASocketName);
 //Имеется 2 режима: 1 - Sync (синхронный), 2 — Async (асинхронный)
 //1. Вызвать функцию в синхронном режиме
 //и блокировать поток выполнения до тех пор,
 //пока файл не будет получен
 //1a. Информировать пользователя о том, что мы ожидаем получения файла
 this.Text = "Waiting to receive...";
 //1b. Ожидать, пока не будет сделана попытка установления с нами связи
 //и передачи файла
 irdaFileReceive.WaitForIRFileDownload();
 //1c. Информировать пользователя о том, что мы получили переданный файл
 this.Text = "IrDA: received!";
 System.Windows.Forms.MessageBox.Show("File received!");
 //2. Вызвать функцию в асинхронном режиме и поручить
 //получение файла фоновому потоку
 //irdaFileReceive.WaitForIRFileDownloadAsync();
 //ПРИМЕЧАНИЕ: Если мы вызываем функцию в асинхронном режиме, то должны
 //периодически проверять, не завершила ли она выполнение, путем
 //вызова метода 'irdaFileReceive.Status'
}

Оглавление книги


Генерация: 1.631. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз