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

6. Установите для свойства MinimizeBox формы значение false. Благодаря этому во время выполнения в верхней правой части формы появится кнопка OK, с помощью которой вы легко сможете закрыть форму и выйти из приложения. Эта возможность оказывается очень полезной при многократном тестировании приложения.

7. Добавьте в проект новый класс, присвойте ему имя IrDAFileSend и введите в новый класс код из листинга 15.4. 

8. Добавьте в проект новый класс, присвойте ему имя IrDAFileReceive и введите в новый класс код из листинга 15.5.

9. Разверните и запустите приложение на двух различных устройствах Pocket PC (или смартфонах).

10. Щелкните на первом устройстве Pocket PC на кнопке TestFileReceive. Вы должны увидеть в заголовке окна приложения текст, говорящий о том, что ожидается поступление файла.

11. Щелкните на втором устройстве Pocket PC на кнопке TestFileSend. Вы должны увидеть в заголовке окна приложения текст, говорящий о том, что ожидается устройство, которому следует переслать файл.

12. Направьте IrDA-порты двух устройств друг на друга. Файл должен передаться с одного устройства на другое, а на обоих устройствах должны отобразиться окна сообщений, тексты которых указывают на успешное завершение передачи данных.

Результат: файл, находящийся на втором устройстве Pocket PC, передается на первое устройство. Чтобы это проверить, запустите на Pocket PC приложение File Explorer, перейдите в корневой каталог My Device и щелкните на имени файла myTestReceiveFile; это приведет к открытию и отображению файла в приложении PocketWord. После успешного тестирования приложения в синхронном режиме, попробуйте вызвать функции IrDA, обеспечивающие передачу и прием файла в асинхронном режиме. Вам придется написать код для потоков пользовательского интерфейса обоих устройств, который будет периодически опрашивать состояние классов IrDAFileSend или IrDAFileReceive, чтобы определить момент завершения пересылки файла. 

В настоящее время код, использующий сокеты IrDA .NET Compact Framework, будет выполняться на таких физических устройствах, оборудованных аппаратурой IrDA, как Pocket PC и смартфоны, но не будет правильно выполняться на эмуляторах

Если вы попытаетесь создать сокет IrDA или соединиться с ним при помощи кода, выполняющегося на эмуляторах Pocket PC, смартфона или Windows СЕ, то, вероятнее всего, в процессе выполнения вашего приложения сгенерируется исключение. Это означает, что, в отличие от большинства других средств .NET Compact Framework, проектировать и тестировать код для IrDA следует с использованием реального физического устройства. Хотя эта трудность и не является непреодолимой, процесс проектирования и тестирования приложения из-за этого усложняется, поскольку для тестирования кода, обеспечивающего работу с IrDA, вам потребуется два физических устройства, одно из которых действует в качестве IrDA-сервера, а второе — IrDA-клиента. Вследствие этой дополнительной сложности код для обмена данными через IrDA рекомендуется писать и тестировать отдельно от остальной части приложения с использованием максимально упрощенной модели приложения, чтобы исключить любые возможные просчеты в организации процесса передачи данных. После устранения всех возможных неполадок из кода, обеспечивающего работу с 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. Вызвать функцию в синхронном режиме

Перейти на страницу:

Похожие книги

Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

Эндрю Хант , Дэвид Томас , А. Алексашин

Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT