Что такое эхо
 
 
MyKod Информатика Курсовые Удаленное управление компьютером с использованием мобильного телефона

Авторизация







Удаленное управление компьютером с использованием мобильного телефона
Автор: Administrator   
23.09.2009 12:53

Удаленное управление компьютером с использованием мобильного телефона (кпк)

Введение

На текущем рынке ИТ продуктов существует не мало различной периферии, используемой для беспроводного управления компьютером. Но у данной периферии есть несколько значительных минусов. Один из них – это отсутствие общих стандартов. То есть нет возможности управляя компьютером с одного устройства, переключится на управление другого компьютера с того же устройства, без переподключения.

Вторым минусом можно считать узкую специализированность данных устройств.

Для решения данных проблем можно использовать мобильный телефон. Сейчас на рынке, практически все мобильные телефоны имеют возможность расширения функциональности посредством возможности исполнения Java-программ, а значит, появляется возможность реализовать  приложение для телефона, реализующее удаленное управление персональным компьютером, которое будет работать на все телефонах, оснащенных Java-машиной.

Мобильный телефон предоставляет следующие беспроводные соединения: IrDA и Bluetooth (gprs является надстройкой над сетями gsm). В качестве беспроводного соединения предпочтительным является использование радиоканала Bluetooth, по следующим причинам: в отличие от IrDA, не обязательно работает в зоне прямой видимости, то есть, между соединяемыми устройствами могут быть различные препятствия или даже стены.

Bluetooth дает следующие возможности: обмениваться информацией, синхронизировать различные устройства, выходить в Интернет, присоединяться к локальным сетям, управлять бытовой техникой и даже автомобилем, используя только устройство, оснащённое Bluetooth (например, мобильный телефон или карманный персональный компьютер).

В данной работе, использовалась технология Bluetooth для решения задачи удаленного управления компьютером, с использованием мобильного телефона. И телефон, и компьютер должны поддерживать технологию Bluetooth.


1.  Использование технологий Bluetooth и J2ME

1.1. Технология Bluetooth

Bluetooth - это современная технология беспроводной передачи данных, позволяющая соединять друг с другом практически любые устройства: мобильные телефоны, ноутбуки, принтеры, цифровые фотоаппараты и даже холодильники, микроволновые печи, кондиционеры. Соединить можно все, что соединяется (то есть имеет встроенный микрочип Bluetooth). Технология стандартизирована, следовательно, проблемы несовместимости устройств от конкурирующих фирм быть не должно.

Bluetooth - это маленький чип, представляющий собой высокочастотный (2.4 - 2.48 ГГц) приёмопередатчик, работающий в диапазоне ISM (Industry, Science and Medicine; промышленный, научный и медицинский). Для использования этих частот не требуется лицензия. Как радиотехнология, Bluetooth способна "обходить" препятствия, поэтому соединяемые устройства могут находиться вне зоны прямой видимости. Соединение происходит автоматически, как только Bluetooth-устройства оказываются в пределах досягаемости, причем не только по принципу точка - точка (два устройства), но и по принципу точка - много точек (одно устройство работает с несколькими другими). Естественно, для реализации технологии Bluetooth на практике необходимо определенное программное обеспечение (ПО).

1.2. Механизм работы Bluetooth

Технология использует небольшие приемопередатчики малого радиуса действия, либо непосредственно встроенные в устройство, либо подключаемые через свободный порт или PC-карту. Адаптеры работают в радиусе 10 метров и, в отличие от IrDA, не обязательно в зоне прямой видимости, то есть, между соединяемыми устройствами могут быть различные препятствия, или стены.

Устройства, использующие стандарт Bluetooth, функционируют в диапазоне 2,45 ГГц ISM (Industrial, Scientific, Medical - промышленный, научный и медицинский диапазон) и способны передавать данные со скоростью до 720 кбит/с на расстояние до 10 метров и передачу 3 голосовых каналов. Такие показатели достигаются при использовании мощности передачи 1 мВт и задействованном механизме переключения частоты, предотвращающем интерференцию. Если принимающее устройство определяет, что расстояние до передающего устройства менее 10 м, оно автоматически изменяет мощность передачи до уровня, необходимого при данном расположении устройств. Устройство переключается в режим экономии энергии в том случае, когда объем передаваемых данных становится мал или передача прекращается.

Технология использует FHSS - скачкообразную перестройку частоты (1600 скачков/с) с расширением спектра. При работе передатчик переходит с одной рабочей частоты на другую по псевдослучайному алгоритму. Для полнодуплексной передачи используется дуплексный режим с временным разделением (TDD). Поддерживается изохронная и асинхронная передача данных и обеспечивается простая интеграция с TCP/IP. Временные интервалы (Time Slots) развертываются для синхронных пакетов, каждый из которых передается на своей частоте радиосигнала.

Энергопотребление устройств Bluetooth должно быть в пределах 0.1 Вт. Каждое устройство имеет уникальный 48-битовый сетевой адрес, совместимый с форматом стандарта локальных сетей IEEE 802.

В диапазоне 2.45 ГГц, беспроводных устройств, стало очень много - начиная от беспроводных сетей, поддерживающих стандарты 802.11 и 802.11b и устройств Bluetooth и вплоть до микроволновых печей!

Устройства стандарта Bluetooth способны соединяться друг с другом, формируя пикосети, в каждую из которых может входить до 256 устройств. При этом одно из устройств является ведущим (Master), еще семь - ведомыми (Slave), остальные находятся в дежурном режиме. Пикосети могут перекрываться, а к ресурсам ведомых устройств может быть организован доступ. Перекрывающиеся пикосети могут образовать распределенную сеть, по которой могут мигрировать данные.

1.3. Стек протоколов Bluetooth

Стек Bluetooth протоколов состоит из двух частей: контроллера, который, как правило, имеет аппаратную реализацию, и on-host стека с которым, собственно, и взаимодействуют приложения. На рисунке 1 показан стек протокола Bluetooth.

Рис 1. Стек протоколов Bluetooth

Уровни стека программных протоколов:

-      Host Controller Interface (HCI) - это самый низкий уровень стека программных протоколов. Он непосредственно взаимодействует с Bluetooth контроллером.

-      Logical Link Control and Adaptation Layer (L2CAP) - на этом уровне происходит сегментация и сборка пакетов, мультиплексирование протокола, обеспечивается качество управляющей информации.

-      Service Discovery Protocols (SDP) - этот протокол используется для поиска доступных Bluetooth устройств.

-      Radio Frequency Communication (RFCOMM) - обеспечивает последовательную передачу данных через Bluetooth, другими словами, ведет себя аналогично обычному последовательному порту (COM).

-      Object Exchange Protocol - протокол позаимствован у Infrared Data Association (IrDA). Он позволяет легко обмениваться такими объектами, как vCard и vCalendar, выполнять синхронизацию данных.

1.4.              Профили

Чтобы обеспечить совместимость между устройствами, Bluetooth профили определяют возможность некого нейтрального устройства. Сам по себе термин профиль означает набор функций и возможностей, которые использует Bluetooth в качестве механизма транспортировки. Профили гарантируют возможность обмена информацией между устройствами разных производителей. Bluetooth SIG определяет несколько стандартных профилей:

-      Generic Access Profile (GAP) - определяет использование стека протоколов нижнего уровня, включая функции управления устройством. Все реализации Bluetooth осуществляют GAP.

-      Service Discover Application Profile (SDAP) - описывает специфические приложения и использование SDP, доступность и аспекты пользовательского интерфейса процесса поиска других устройств, использование L2CAP и низких слоев для обеспечения режима поиска.

-      Serial Port Profile (SPP) - определяет для RFCOMM, L2CAP, SDP, и других слоев низкого уровня, требования взаимодействия и возможности для эмуляции последовательного кабеля.

-      Dial-up Networking Profile (DUNP) - определяет требования обеспечения взаимодействия для GAP и SPP, а также для телефонных звонков, контролирует возможность устройства работать в режиме телефона.

-      Generic Object Exchange Profile (GOEP) - определяет для OBEX, SPP и GAP требования к взаимодействию и способности OBEX для передачи файлов, размещения объектов и синхронизации.

-      Object Push Profile (OPP) - определяет требования к пользовательскому интерфейсу, использование OBEX, SDP и способности размещать объекты для контента в форматах vCard, vCalendar, vNote и vMessage.

File Transfer Profile (FTP) - определяет требования к пользовательскому интерфейсу, а также взаимодействие и использование GOEP, OBEX и SDP.

-      Synchronization Profile (SP) - определяет требования к пользовательскому интерфейсу, а также взаимодействие и использование GOEP, OBEX и SDP в режиме, аналогичном IrMC синхронизации.

1.5. Bluetooth устройства и сети

Для адресации Bluetooth устройств используются уникальные IEEE 802 48-bit адреса.

При соединении двух или более Bluetooth устройств, образуется структура, известная под названием Piconet. Это динамическая сеть, в которой одно из устройств выступает в роли мастера (Master), а все другие (до семи устройств) в роли клиентов (Slave). Клиенты могут участвовать в различных Piconet сетях. Если два мастера соединяются, они образуют перекрывающийся Piconet, известный как Scatternet. На представленном рисунке 2 Piconet мастер одной сети подключился к клиенту другой Piconet сети.

 

Рис 2 Piconet сети

Bluetooth поддерживает один канал данных и три (максимум) голосовых канала. Максимальная скорость передачи данных составляет 720 килобит в секунду. Теоретически, радиус действия Bluetooth устройств составляет около 100 метров. Радиус обычного телефона примерно 10 метров.

1.6.  Java 2 Micro Edition

Для дальнейшей реализации поставленной задачи, в частности реализации клиента, необходимо рассмотреть технологию, способную взаимодействовать с Bluetooth и пользовательским интерфейсом.

В 1999 году Sun Microsystems представила всему миру новую программную технологию, предназначенную для создания приложений, работающих на мобильных устройствах — сотовых телефонах, КПК и др. J2ME (Java 2 Micro Edition) - это не отдельная спецификация конкретного программного обеспечения. Это набор технологий и спецификаций, предназначенных для различных частей рынка небольших пользовательских электронных устройств. Основная часть платформысостоит из двух конфигураций: Connected Device Configuration (CDC) и Connected Limited Device Configuration (CLDC). Конфигурация определяет центральные библиотеки технологии Java и возможности Java Virtual Machine. Конфигурация CDChigh-end, например, коммуникаторов. Конфигурация CLDC создана для недорогих портативных устройств, таких как популярные модели мобильных телефонов. Специальные режимы позволяют определять функциональность конфигураций для различных типов устройств. Режим Mobile Information Device Profile (MIDP) предназначен для основанных на CLDCMIDP определяет функциональность - работу пользовательского интерфейса, сохранение настроек, работу в сети и модель приложения. CLDC и MIDP закладывают основу реализации J2ME. J2ME предназначена для портативных устройств типа портативных устройств с возможностью коммуницировать - к таким устройствам относятся мобильные телефоны. Режим

1.7. MIDlet модель Java приложения

MIDlet – это разновидность MIDP (Mobile Information Device Profile) JavaMIDlet-а является возможность вмешательства операционной системы в ход выполнения программы. То есть работа приложения может быть прервана в любой момент каким-нибудь внешним событием, например входящим телефонным звонком. Это обстоятельство требует постоянного контроля системы над ходом выполнения программы. Реализуется этот контроль с помощью специального, встроенного в телефон, управляющего программного обеспечения, называемого AMS (Application-Management Software) - программа управления приложениями. AMS контролирует весь жизненный цикл приложения: от установки и обновления до удаления программного обеспечения. приложения, предназначенное для работы на различных мобильных устройствах. Особенностью программной модели

1.8.  Жизненый цикл MIDlet-а

MIDlet имеет свои особенности. Он обязательно должен содержать три метода: startApp(), pauseApp() и destroyApp(). Запущенное MIDlet приложение может находиться в трех возможных состояниях:

-       paused: MIDlet запущен, но не активен.

-       active: MIDlet активен.

-       destroyed: MIDlet был остановлен, и он готов к запуску уборщика мусора.

Рассмотрим жизненный цикл MIDlet-а. AMS запускает его в ответ на команду пользователя. На практике это обычно выглядит как выбор пользователем одного из установленных на телефоне приложений.

Первоначально, MIDlet находится в соостоянии paused. Прежде чем перейти в активный режим, он должен выполнить инициализацию. MIDlet не имеет специального инициализационного метода, поэтому все необходимые для нее действия выполняются внутри startApp(). Таким образом, через некоторое время после создания, AMS активизирует MIDlet и вызывает метод startApp(), который создает и выводит на экран пользовательский интерфейс приложения. MIDlet переходит из состояния paused в active. Если при запуске возникли какие-нибудь ошибки, управление передается методу javax.microedition.midlet.MIDletStateChangeException, который непосредственно переключает MIDlet в состояние destroyed.

Если произошла деактивация и переход в состояние paused, MIDlet не уничтожается, однако он должен освободить как можно больше системных ресурсов. Если деактивация явилась результатом работы AMS, вызывается метод pauseApp(). Если MIDlet деактивирует сам себя, то есть пользователь завершает работу приложения, то pauseApp() не вызывается.

Уничтожение происходит, когда MIDlet переходит в состояние destroyed. Если причиной послужила работа AMS, то вызывается метод destroyApp(). Метод имеет необязательный параметр типа boolean, который определяет, является ли уничтожение безусловным или необязательным. Если MIDlet уничтожает сам себя, destroyApp() не вызывается.

Ниже приведен код каркаса MIDlet-a.

 import javax.microedition.midlet.*;

public class BasicMIDlet extends MIDlet {

public BasicMIDlet(){

// Конструктор

}

protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException {

// Вызывается когда система уничтожает MIDlet

}

protected void pauseApp(){

// Вызывается при переводе приложения в режим паузы.

}

protected void startApp() throws MIDletStateChangeException {

// Вызывается, когда приложение переводится в активный режим.

}

}

1.9. Контекст MIDlet-а

Класс java.microedition.midlet.MIDlet определяет методы, которые позволяют MIDlet-у взаимодействовать с операциональным контекстом: getAppProperty() возвращает значения инициализационных свойств; resumeRequest() просит AMSMIDlet; notifyPaused() переводит MIDlet в состояние paused; notifyDestroyed() переводит MIDlet в состояние destroyed. реактивировать

Для правильного управления ресурсами, телефону необходима некоторая инициализационная информация о приложении. Она должна быть представлена в дескрипторе приложения (application descriptor текстовый файл с расширением jad) или его манифесте (файл Manifest.MF). Метод getAppProperty(), позволяет получить доступ к этой информации, причем сначала опрашивается дескриптор, и если информация не найдена, просматривается манифест. (MIDP 2.0 использует концепцию доверенных (trusted) приложений, согласно которой метод getAppProparty() ищет только манифест).

Остальные методы прямо затрагивают жизненный цикл MIDlet-а. Переведенный в режим паузы MIDlet вызывает метод resumeRequest() для реактивации. Активный MIDlet вызывает notifyPaused(), чтобы деактивироваться. Активный или находящийся в состоянии паузы MIDlet вызывает метод notifyDestroyed() для самоуничтожения. Необходимо помнить, что resumeRequest() просто посылает запрос AMS реактивировать MIDlet; AMS решает надо ли это делать и если надо, то когда. Реактивация вызывает метод startApp(). Методы notifyPaused() и notifyDestroyed() непосредственно осуществляют перевод MIDlet-а в новое состояние; как следствие ни pauseApp() ни destroyApp не вызываются.

Ниже приведен более полный код каркаса MIDlet-а.

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class BetterMIDlet extends MIDlet {

private Display display;

public BetterMIDlet(){ }

protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException {

exitApp(); // вызывает уборщик мусора

}

protected void pauseApp(){

/*Сюда следует добавить код, который надо выполнять непосредственно перед переводом приложения в режим паузы.*/

}

protected void startApp() throws MIDletStateChangeException {

if( display == null ){

initApp();// Определяет первоначальную инициализацию

}

/*Сюда следует добавить код, который надо выполнять непосредственно перед переводом приложения в активный режим*/

}

private void initApp(){

display = Display.getDisplay(this);

//Сюда добавляется код инициализации приложения

}

public void exitApp(){

//добавит код "уборки мусора"

notifyDestroyed();

// уничтожение MIDlet-а

}

}

BetterMidlet определяет initApp() - метод для первой инициализации и exitApp() - метод для централизованного освобождения ресурсов.

Для удобства восприятия, все методы объединены в таблицу 1.

 

Таблица 1. Методы, которые вызываются при изменении состояния MIDlet-а

startApp()

Переводит приложение в активное состояние.

pauseApp()

Переводит приложение в состояние паузы.

destroyApp()

Завершает работу приложения.

 

Методы управления состоянием MIDlet-а.

notifyDestroyed()

Запрос на завершение работы.

notifyPaused()

Запрос на дезактивацию и переход в состояние паузы.

resumeRequest()

Запрос на реактивацию и переход в активное состояние.

 

1.10.  Организация и пакеты

Java API for Bluetooth представляет собой дополнительный пакет для Java Community ProcessJSR-82). Этот дополнительный пакет предоставляет разработчику общий API для работы с Bluetooth. На рисунке 3 показано отношение между Java API for Bluetooth и платформой J2ME, использующей Mobile Information Device Profile (MIDP) и Connected Limited Device Configuration (CLDC). (

Рис. 3 Отношение между Java API for Bluetooth и J2ME

Из рисунка 3 видно, что внизу расположены hardware, operating system и Bluetooth stack; выше находятся конфигурация (в нашем случае это CLDC) и профиль (MIDP), а также дополнительные пакеты. В самом верху располагается собственно MIDP приложение (MIDlet).

Таблица 2. Java APIs for Bluetooth

Пакет

Описание

javax.microedition.io

Ядро CLDC Generic Connection Framework.

javax.Bluetooth

Ядро BluetoothAPI, включающее в себя Discovery, L2CAP, а также интерфейсы и классы устройства и данных.

javax.obex

Ядро Object Exchange (OBEX) API. Этот пакет является дополнительным и поддерживается не всеми устройствами.

 

В рамках Java APIs for Bluetooth определяется новый протокол соединения для GCF и ObjectExchange (OBEX) API на основе спецификации IrDA Data Association.

1.11.       Анатомия MIDlet-ов, использующих JSR 82

На рисунке 4 показаны все интерфейсы и классы, которые можно использовать в JSR-82 MIDlet-те.

Рис. 4 Доступные классы и интерфейсы пакета JSR 82

1.12.  Использование Java APIs for Bluetooth

Использование Java APIs for Bluetooth состоит из нескольких отдельных этапов:

-       инициализация Bluetooth стека;

-       поиск устройств;

-       поиск сервисов;

-       открытие соединения;

-       закрытие соединения;

-       ожидание соединения;

-       инициализация соединения;

-       выполнение операций ввода-вывода.

На рисунке 5 схематично показано приложение, использующее Bluetooth.

Рис. 5 Схема Bluetooth приложения

1.13.   WidComm драйвер для USB Bluetooth adapter

Сейчас на рынке существуют два основных драйвера для USB Bluetooth адаптера [7]:

-    Драйвер компания Microsoft, который включается в семействе WindowsXP. Этот драйвер поддерживает мало возможностей и не достаточно гибкий; 2000/

-    Драйвер компания WIDCOMM, который обеспечивает значительно больше возможностей, чем драйвер компании Microsoft ;

1.14.  абор для разработки Bluetooth for Windows Software Development Kit

Набор для разработки Bluetooth for Windows Software Development Kit (BTW)состоит из:

-       Динамической библиотеки WidCommSDK.dll

-       Статической библиотеки WidCommSDK.lib

-       Заголовочных файлов C++: BtIfClasses.h , BtIfDefinitions.h

Этот набор разработчика (DK) обеспечивает разработку Bluetooth приложений с возможностью доступа к уровням:

-       L2CAP;

-       RFCOMM;

-       OPP;

-       FTP;

-       SDP;

-       SPP;

-       LAP;

-       OBEX;

На рисунке 6 представлен обзор взаимодействия технологии Bluetooth на платформе Windows.

Рис. 6 Обзор Bluetooth на Windows

1.15.  Решения Sony Ericsson

На текущий момент, разработки рабочего комплекса, способного управлять компьютером через Bluetooth занимается компания Sony Ericsson. Подход этой компании заключается в следующем: на большинство телефонов, своей марки, установлено специализированное приложение-клиент, которое использует возможности Bluetooth драйверов – инициилизировать устройство, как мышь компьютера.

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

-      специализированное программное обеспечение телефонов, работает только на телефонах тех марок, для которого оно создавалось. Это означает, что для других телефонов Sony Ericsson, необходимо разрабатывать отдельное приложение, как и для телефонов других брендовых компаний.

-      Подход Sony Ericsson: инициализировать телефон, как мышь компьютера, накладывает некоторые ограничения, например отсутствие возможности расширить функционал устройства. Например, во время управления презентацией возникает ситуция, которая требует возврата к предыдущему слайду, поскольку телефон выступает в качестве мыши компьютера, тогда, необходимо вызвать контекстное меня (эмулируется как нажатие правой кнопки мыши) и в нем выбрать пункт “Возврат к предыдущему”, что в свою очередь иногда затруднительно.

Одним из плюсов является отсутствие каких - либо дополнительных сервисов на стороне компьютера для управления мыши, поскольку засчет комплектации стандартных драйверов телефон инициализируется как мышь компьютера.

 

2.Требования к программной системе и проектирование системы

2.1. Постановка задачи

Необходимо реализовать удаленное управление компьютером посредством мобильного телефона или коммуникатора.

2.2.Описание оболочки сервера

Исходя из объектов исследования, для реализации поставленной задачи необходимо реализовать 2 приложения: клиент и сервер.

Серверу необходимо обладать графической оболочкой, уметь принимать сигналы от клиента, распознавать пришедшие сигналы и реагировать на них должным образом.

Графическая оболочка сервера будет обладать формой и диалоговым окном. На форме должны содержаться несколько компонент: три кнопки и несколько статичных текстов.

Один из статичных текстов будет называться: “Status:”, а справа от него будет располагаться другой статичный переменный текст, принимающий следующие значения: “Session stopped by user.” (означает, что сервер не запущен и не готов принимать сигналы от клиента), “Session is started. Ready for a connection.” (означает, что сервер запущен и готов принимать сигналы от клиента) и текст, отображающий MACBluetooth ­ адаптера телефона и время текущего соединения (появляется при соединении с клиентом). – адрес

При нажатии на первую кнопку будет происходить запуск сервера, это означает, что сервер будет готов принимать соединения по Bluetooth, при этом меняется значение переменного статичного текста на “Session is started. Ready for aconnection”. При нажатии на вторую кнопку будет, появляется диалоговое окно, содержащее информацию о соединении. При нажатии на третью кнопку будет происходить завершение работы приложения.

Диалоговое окно серверного приложения будет содержать подробную информацию о соединении: статус (активно ли текущее соединение), время соединения с клиентом за одну сессию, количество переданной и принятой информации, измеряющейся в байтах.

2.3.Протокол общения сервера и клиента

Серверу необходимо эмулировать управление мышью и презентациями.

При установлении соединения, сервер ожидает команды от клиента в виде массива данных, содержащего номер команды и некоторую дополнительную информацию.

Управление мышью компьютера происходит следующим образом: если пришла команда номер 1, то сервер перемещает курсор мыши влево на определенное количество пикселей (здесь и далее, это и есть дополнительная информация, пришедшая в массиве команды), 2 ­ вверх, 3 ­ вправо, 4  ­ вниз, 5 – сервер эмулирует нажатие левой кнопки мыши.

Управление показом презентации происходит следующим образом: если пришла команда 6 (сигнализирующая о показе следующего слайда) ­ сервер эмулирует нажатие кнопки вправо (стрелочка) на клавиатуре, 7 (необходимо показать предыдущий слайд) ­ кнопки влево.

2.4. Описание оболочки клиента телефона

Приложение  на телефоне (или коммуникаторе) будет обладать графической оболочкой, содержащей различные компоненты.

При запуске приложения, будет появляться диалоговое окно («Devices», отвечающее за отображение найденных Bluetooth устройств), содержащее 3 команды: «Refresh», «Connect», «Exit» и компонет List (для построения списка найденных устройств).

При нажатии на кнопку «Refresh» будет происходить поиск Bluetooth – устройств, а по завершении поиска будет строится список из имен найденных устройств. При нажатии на кнопку «Connect» будет  происходить попытка установить соединение с выбранным из списка Bluetooth – устройством и в случае успешного соединения должен происходить переход на форму меню, иначе, пользователь будет оповещен сообщением об ошибке.

Форма меню будет содержить 2 кнопки: «back», «Preferences» и список из двух элементов: «Mouse» и «Presentation».

При нажатии на кнопку «back» будет происходить переход на предыдущую форму (форму поиска Bluetooth – устройств – «Devices»). При нажатии на кнопку «Preferences» будет происходить переход на форму настроек (форму «Preferences»). При выборе из списка элемента «Mouse» - пользователь будет переключаться на форму управления мышью компьютера, «Presenatation» - на управление презентацией.

Форма настроек («Preferences») будет содержать кнопку назад («back») и ползунок, содержаций значения от 0 до 255. Значение ползунка будет отвечать за количество пикселей, которые будет перескакивать мышь на дисплее компьютера. По нажатию на кнопку «back» будет происходить переход на форму меню.

Форма «Mouse» (управление мышью) будет осуществлять управление мышью на компьютере, содержать описание комбинаций клавиш и действия на них на компьютере и кнопку назад («back»), по нажатии которой будет происходить, переходит на форму меню.

Форма «Presentation» будет осуществлять управление показом презентации на компьютере. Форма будет содержать описание комбинаций клавиш и действия на них на компьютере и кнопку назад («back»), по нажатии которой происходит переход на форму меню.

На рисунке 7 схематично изображена логика, описанная выше.

Рис. 7 Обзор клиентского приложения

Общение клиента с сервером происходит по протоколу описанному выше.

3.  Реализация

3.1.  Описание классов сервера и основных методов

BlueServer.h – описывает класс CBlueServerApp, наследующий класс CWinApp(базовый класс для создания объектов приложений Windows).

BlueServerDlg.h – описывает класс CBlueServerDlg, наследующий классы CDialog(базовый класс для отображений на экране окон) и CL2CapConn (класс отвечающий за управление соединениями CL2CAP).

BtIfClasses.h – заголовочный файл из комплектации BTW, описывает классы SDK.

BtIfDefinitions.h – файл из BTW, описывает константы и структуры SDK.

BtwLib.h – заголовочный файл, содержащий файлы BtIfClasses.h, BtIfDefinitions.hи подключающий правильную библиотеку интерфейсов (в зависимости от платформы).

consts.h – заголовочный файл, содежащий константы команд.

BlueServer.cpp – файл, описывающий инициализацию приложения.

BlueServerDlg.cpp – файл, описывающий логику сервера: события на кнопки, входящие соединения, команды и т.п. (реализует классы CBlueServerApp и CBlueServerDlg).

Реализованное приложение сервера приведено в приложении 1.

3.2. Описание классов клиента

Все классы из пакета com.asu.plotnikov.bluetooth.

Consts.java – файл – класс, содержащий номера команд.

MainMIDlet.java – мидлет класс. Этот класс является основным классом приложения, отвечает за инициализацию, прорисовку, уничтожение приложения.

MouseCanvas.java – файл – класс, отвечает за управление мышью на компьютере: обработку событий пользователя, анализ событий и отправку данных на сервер (команд на компьютер).

PresentationCanvas.java – файл – класс, отвечает за управление показом презентации на компьютере: обработку событий пользователя, анализ событий и отправку данных на сервер (команд на компьютер).


Заключение

В данной работе были рассмотрены различные технологии, такие как Bluetooth и J2ME. Был рассмотрен основной каркас, для написания мобильных приложений.

В ходе работы была поставлена задача: реализовать приложение, способное удаленно управлять компьютером.

Был рассмотрен подход к реализации данной задачи брендовой компании Sony Ericsson. Данный подход был проанализирован и был выявлен ряд недостатков.

Результатом работы стал программный комплекс, учитывающий недостатки брендовой компапии Sony Ericsson, состоящий из двух приложений: клиента и сервера. Приложения были реализованы на разных языках

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

Обновлено 13.10.2009 10:52