Чтение онлайн

на главную

Жанры

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

Салмре Иво

Шрифт:

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ

 '==========================================

 setStatus(ReceiveStatus.NotDone_WaitingForSender)

 '---------------------------------

 'Открыть прослушивающее устройство

 '---------------------------------

 Try

m_wasListenerStopped = False

m_irListener = _

New System.Net.Sockets.IrDAListener(m_IrDAServiceName)

m_irListener.Start

 Catch eListener As System.Exception

m_errorDuringTransfer = "Error creating listener - " + _

eListener.Message

GoTo exit_sub_with_error

 End Try

 'Проверить,
не поступила ли команда отменить выполнение

 If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

 End If

 '------------------

 'Принять соединение

 '------------------

 Try

'--------------------------------------------------------------------

'Выполнение будет приостановлено здесь до тех пор, пока устройство не

'начнет передавать информацию, или не будет остановлен объект

'прослушивания, выполняющийся в другом потоке)

'--------------------------------------------------------------------

irdaClient = m_irListener.AcceptIrDAClient

 Catch eClientAccept As System.Exception

'Если прослушивание остановлено другим потоком, инициировавшим отмену

'выполнения, будет сгенерировано исключение и управление будет

'передано сюда.

If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

End If

'Если прослушивание не было прекращено,

'то произошло иное исключение. Обработать его.

m_errorDuringTransfer = "Error accepting connection - " + _

eClientAccept.Message

GoTo exit_sub_with_error

 End Try

 'В этом месте возможны два состояния:

 '#1: Мы получили соединение от передающего устройства IR

 '#2: IR-запрос был отменен (кто-то вызвал функцию STOP)

 ' (в этом случае приведенный ниже код сгенерирует исключение)

 'Проверить, не было ли отменено выполнение

 If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

 End If

 '==========================================

 'ОБНОВЛЕНИЕ
СОСТОЯНИЯ

 '==========================================

 setStatus(ReceiveStatus.NotDone_Receiving)

 '-------------------------

 'Открыть принимающий поток

 '-------------------------

 Try

irStreamIn = irdaClient.GetStream

 Catch exGetInputStream As System.Exception

m_errorDuringTransfer = "Error getting input stream - " + _

exGetInputStream.Message

GoTo exit_sub_with_error

 End Try

 'Приготовиться к получению данных!

 Const BUFFER_SIZE As Integer = 1024

 Dim inBuffer As Byte

 ReDim inBuffer(BUFFER_SIZE)

 Dim bytesRead As Integer

 Do

'Считать байты из порта IR

bytesRead = irStreamIn.Read(inBuffer, 0, BUFFER_SIZE)

'Записать байты в наш выходной поток

If (bytesRead > 0) Then

outputStream.Write(inBuffer, 0, bytesRead)

End If

 Loop While (bytesRead > 0)

 outputStream.Flush 'Закончить запись любых выходных данных

 '==========================================

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ: УСПЕШНО ВЫПОЛНЕНО

 '==========================================

 setStatus(ReceiveStatus.Done_Success)

 Return 'No errors

 '==========================================

 'ОШИБКА.

 '==========================================

exit_sub_with_abort:

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ: Отменено (но не из-за ошибки)

 setStatus(ReceiveStatus.Done_Aborted)

 Return

exit_sub_with_error:

 'ОБНОВЛЕНИЕ СОСТОЯНИЯ: ОШИБКА!!!!

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

Live-rpg. эволюция-3

Кронос Александр
3. Эволюция. Live-RPG
Фантастика:
боевая фантастика
6.59
рейтинг книги
Live-rpg. эволюция-3

Я – Орк

Лисицин Евгений
1. Я — Орк
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я – Орк

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.35
рейтинг книги
Князь Мещерский

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Делегат

Астахов Евгений Евгеньевич
6. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Делегат

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Возвышение Меркурия. Книга 17

Кронос Александр
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 17

Курсант: Назад в СССР 11

Дамиров Рафаэль
11. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 11

Я – Орк. Том 4

Лисицин Евгений
4. Я — Орк
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 4

Восход. Солнцев. Книга XI

Скабер Артемий
11. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга XI

Мимик нового Мира 4

Северный Лис
3. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 4