Bluetooth Remote for PC

download Bluetooth Remote for PC

of 21

Transcript of Bluetooth Remote for PC

  • 8/2/2019 Bluetooth Remote for PC

    1/21

    Bluetooth Remote for PC

    Aby Jacob

    2008HZ12317

  • 8/2/2019 Bluetooth Remote for PC

    2/21

    Bluetooth is unlicensed and globally available.

    Made impacts in different markets, mainly mobiles.

    Future expected in Remote Control market

    Advantages over standard IR remotes

    Bluetooth is non-directional

    Two-way communication possible in remotes, making

    possible intelligent remotes

    PC Remotes presently are dedicated devices with limited

    functionality.

    Java and Bluetooth enables mobiles are now very

    common

    Introduction

  • 8/2/2019 Bluetooth Remote for PC

    3/21

    Bluetooth(Hardware)

    PC & Mobile

    2.45 GHz ISM frequency band

    RFCOMM Service Discovery Database (SDDB)

    J2ME(software)

    Java Micro Edition

    2 concepts

    Configurations (CDC and CLDC)

    Profiles( eg:- MIDP) - set of APIs which reside on top of a configuration

    Midlet

    Technology

  • 8/2/2019 Bluetooth Remote for PC

    4/21

    Microsoft Bluetooth Stack

    Desktop (PC) Functionalities

    Controls

    Media Players(Windows, VLC, Winamp) PowerPoint

    Browsers( IE, Firefox)

    Simulate

    Mouse

    Keyboard

    Utilities

    Command Line

    Send Message

    Methodology

  • 8/2/2019 Bluetooth Remote for PC

    5/21

    JSR 82 API

    Bluetooth Discovery APIs

    APIs for Device Discovery

    APIs for Service Discovery

    The UUID Class

    The SDDB and the ServiceRecord Interface

    The DataElement Class

    APIs for Device Management

    The LocalDevice Class

    The RemoteDevice Class

    The DeviceClass Class

    Bluetooth Communication

    Methodology

  • 8/2/2019 Bluetooth Remote for PC

    6/21

    Server Connections and Client Connections

    Initializing the Bluetooth Application

    Dealing with Connections

    Setting up a Bluetooth Server

    Creating a Service Record

    Registering the Service and Waiting for Incoming Connections

    Updating the Service Record

    Closing the Connection and Removing the Service Record

    Discovering Nearby Devices and Services Connecting to a Service

    Methodology

  • 8/2/2019 Bluetooth Remote for PC

    7/21

    Server (Java) Package remoteserver

    RemoteServer.java

    main() function in the Server component

    Package system Bluetooth.java

    Class responsible for enabling the Bluetooth stack in the server

    PC/laptop

    Package keyboardcontrol

    KeyboardControl.java This class takes care of the implementing the virtual key presses

    Package mouse

    MouseCursor.java

    This class is used to keep a track of the mouse cursor

    Implementation - Server(I)

  • 8/2/2019 Bluetooth Remote for PC

    8/21

    Package mousecontrol

    MouseControl.java

    This class implements the actions to be taken when data is received

    from the client which is in Mouse mode

    Package util

    SendAppList.java

    In the class, basically a XML parser is implemented.

    Package gui

    RemoteServerGUI.java The UI part of the server is handled by this class

    About.java

    This class displays the details of the application version and

    developers.

    Implementation - Server(II)

  • 8/2/2019 Bluetooth Remote for PC

    9/21

    Client (J2ME) Package device

    Bluetooth.java

    Class responsible for enabling the Bluetooth stack in the client

    mobile device

    Package gui

    AppList.java

    lists the set of available applications

    Helpform.java

    Returns the appropriate help text DevList.java

    Lists out the server devices found out

    MainCanvas.java

    Gets an instance of the display unit in the mobile device

    Implementation - Client (I)

  • 8/2/2019 Bluetooth Remote for PC

    10/21

    MainList.java

    Implements RecordStore

    ModeList.java

    lists down the different modes in the application

    SendMessage.java

    Takes the message to be send to the server as input from the user

    SplashScreen.java

    Displays info or error message to user

    RunCommand.java Takes the name of the executable to be run in the server

    UtilList.java

    Lists the options available in Utilities mode (i) Run Command and (ii)

    Send Message

    Implementation - Client (II)

  • 8/2/2019 Bluetooth Remote for PC

    11/21

    Package remoteclient

    Remote.java

    Main class in the client side implementation

    Package util CommandsTable.java

    Holds an instance of the list of applications

    Implementation - Client (III)

  • 8/2/2019 Bluetooth Remote for PC

    12/21

    Server Application(I)

    Waiting for client to connect Once client is connected

  • 8/2/2019 Bluetooth Remote for PC

    13/21

    Server Application(II)

    Once a client is disconnected, waiting

    from new connection

    Help Menu

  • 8/2/2019 Bluetooth Remote for PC

    14/21

    Server Application(III)

    Help Page 1 Help Page 2

  • 8/2/2019 Bluetooth Remote for PC

    15/21

    Client Application (I)

    Server SearchingMain Screen Choose Mode

  • 8/2/2019 Bluetooth Remote for PC

    16/21

    Client Application(II)

    Mouse Mode HelpMouse Mode Keyboard Mode Help

  • 8/2/2019 Bluetooth Remote for PC

    17/21

    Client Application(III)

    Select ApplicationApplication ModeHelp Media Player

  • 8/2/2019 Bluetooth Remote for PC

    18/21

    Client Application(IV)

    PowerPointFirefox Utilities

  • 8/2/2019 Bluetooth Remote for PC

    19/21

    Client Application(V)

    Application Opened in ServerCommand Screen

  • 8/2/2019 Bluetooth Remote for PC

    20/21

    Client Application(VI)

    Message in ServerMessage Screen

  • 8/2/2019 Bluetooth Remote for PC

    21/21

    Bluetooth Remote for PC implemented Controls

    Media Players(Windows, VLC, Winamp)

    PowerPoint

    Browsers( IE, Firefox)

    Simulate Mouse

    Keyboard

    Utilities

    Command Line

    Send Message

    Application List & Shortcuts are customisable.

    Can be enhanced for greater usability in touch phones.

    Summary