This book will teach you what Bluetooth technology is all about and show you how to write Bluetooth applications for several popular operating systems. This is a technical book, and it assumes that the reader has a solid background in application development and a reasonable understanding of the issues involved in creating communications applications. Topics covered include: - Analyzing your application to determine whether Bluetooth adds end-user value
- Learning how to quantify connection times, Quality of Service, and interference issues
- Assessing security features
- Learning how to discover and connect to another Bluetooth device
- Connecting to and using Bluetooth services
- Determining how and when to use power management
- Mastering Service Discovery to make a zero-configuration network
- Implementing Bluetooth in Java, C, and SDP
- Embedding Bluetooth applications
Table of Contents Foreword Introducing Bluetooth Applications Introduction Why Throw Away Wires? Adding Usability to Products Allowing for Interference Considering Connection Times Coping with Limited Bandwidth Considering Power and Range Deciding on Acceptable Range Recognizing Candidate Bluetooth Products Considering Product Design Are You Adding End User Value? - Investigating Convenience
- Enhancing Functionality
Do You Have Time? Investigating Product Performance Evaluating Connection Times - Discovering Devices
- Connecting Devices
- Quantifying Connection Times
- Performing Service Discovery
Quality of Service in Connections Delivering Voice Communications Investigating Interference - Interfering with Other Technologies
- Coexisting Piconets
- Using Power Control
- Aircraft Safety
Assessing Required Features Enabling Security Using Low Power Modes - Hold Mode
- Sniff Mode
- Park Mode
- Unparking
- Which Devices Need Low Power Modes?
Providing Channel Quality Driven Data Rate Deciding How to Implement Choosing a System Software Architecture - Constraining Implementation Options with Profiles
Choosing a Hardware Implementation Option Design Bluetooth Directly Onto the PCB - Design Verification
- Manufacturing
Using a Prequalified Complete Bluetooth Module - Firmware Versions
- Dependant for Functionality
Considering Battery Limitations - Adding Batteries
- Using Power Saving Modes to Extend Battery Life
- Assessing Battery Life
Summary Solutions Fast Track Frequently Asked Questions Exploring the Foundations of Bluetooth Introduction Reviewing the Protocol Stack L2CAP RFCOMM OBEX PPP TCS Binary SDP Management Entities HCI Lower Layers Why Unconnected Devices Need to Talk Discovering Neighboring Devices Inquiring and Inquiry Scanning Timing When to Stop Connecting to a Device Paging and Page Scanning Timing Who Calls Who? Finding Information on Services a Device Offers Connecting to and Using Bluetooth Services Summary Solutions Fast Track Frequently Asked Questions Power Management Introduction Using Power Management: When and Why Is It Necessary? Investigating Bluetooth Power Modes Active Mode Hold Mode Sniff Mode Park Mode Evaluating Consumption Levels Summary Solutions Fast Track Frequently Asked Questions Security Management Introduction Deciding When to Secure Outfitting Your Security Toolbox Authentication - Pairing
- Link Keys
- Bonding
- Application Involvement
Authorization: How and Why? - Using the Trust Attribute
Enabling Encryption - Point-to-Point Encryption
- Broadcasting
- Application Involvement
Understanding Security Architecture The Role of the Security Manager Mode 1 Role Mode 2 Role Mode 3 Role Mode Unknown The Role of Security Databases - Service Database Content
- Service Database Operations
Role of Device Databases - Device Database Content
- Device Database Operations
- Managing the Device Database for Your Applications
Working with Protocols and Security Interfaces Mode 2 Operation Mode 3 Operation - Application---API Structure
Exploring Other Routes to Extra Security Invisibility Application Level Security Implementing Security Profiles - SDP
- Cordless Telephony and Intercom
- Serial Port Profile
- Headset Profile
- Dial-Up Network and FAX
- LAN Access
- OBEX
Case Study Summary Solutions Fast Track Frequently Asked Questions Service Discovery Introduction Introduction to Service Discovery Service Discovery Protocols Architecture of Bluetooth Service Discovery The Structure of Service Records The Service Discovery Protocol - Developing an Abstract C API for SDP
Discovering Services Short-Circuiting the Service Discovery Process Creating and Advertising a Service Discovering Specific Services Browsing for Services Service Discovery Application Profile Service Discovery Non-Application Profile Java, C, and SDP Other Service Discovery Protocols Salutation Service Location Protocol Jini Universal Plug and Play (UPnP) The Future of SDP Summary Solutions Fast Track Frequently Asked Questions Linux Bluetooth Development Introduction Assessing Linux Bluetooth Protocol Stacks Comparing BlueDrekar with OpenBT by Features - Kernel Versions
- Hardware Platforms
- Bluetooth Protocols
- SDP Support
- API
- License Terms
Other Considerations Understanding the Linux Bluetooth Driver Learning about the Kernel Driver - Investigating the Kernel Module
- What Exactly Is a TTY?
- So What's an Idisc?
- Building Driver Stacks in the Linux Kernel
Understanding the Bluetooth Driver Interface - Investigating the Bluetooth Device Files
- Using the RFCOMM TTY Drivers
- Using the Control Driver
Using Open Source Development Applications Ivestigating the OpenBT Applications - Understanding the btd and btduser Applications
- Understanding the sdp_Server Application
- Understanding the BluetoothPN Application
Establishing a PPP Connection Using the btd Application Writing Your Own Minimal Application Connecting to a Bluetooth Device Initializing the Bluetooth Stack - Preparing the Serial Driver
- Stacking the Drivers
- Starting Communication between the PC and the Card
- Switching to a Higher Baud Rate
Finding Neighboring Devices - Letting Other Bluetooth Devices Discover Us
- Sending an HCI Inquiry
Using Service Discovery - Connecting to a Remote SDP Server
- Sending an SDP Request
- Processing an SDP Response
- Adding a Service to the Local Database
- Querying the Local Database
Connecting to a Bluetooth Service - Using a Data Device
- Creating a Connection
- Accepting a Connection
Transferring Data Disconnecting Controlling a Bluetooth Device Distinguishing between Control and Data Applications Using ioctls to Control the Device Covering Basic Scenarios - Example: Startup
- Example: Link Loss
- Example: User-Initiated and Automated Shutdown
- Example: Idle Operation
Summary Solutions Fast Track Frequently Asked Questions Embedding Bluetooth Applications Introduction Understanding Embedded Systems Understanding Tasks, Timers, and Schedulers Understanding Messaging and Queues Using Interrupts Getting Started Installing the Tool Set Building a Sample Application Running an Application under the Debugger Using Plug-Ins Debugging under BlueLab Running an Application on BlueCore Debugging Using VM Spy - Using VM Packets
- Packing Format in Messages
Using the BlueLab Libraries Basic Libraries CSR Library Application Libraries Using Tasks and Messages - Tasks and Message Queues
- Creating and Destroying Messages
- Using the MAKE_MSG Macro
Connection Manager - Initializing and Opening the Connection Manager
- Inquiry
- Pairing
- Connecting
- Sending Data
- Using Other Messages and Events
Deploying Applications Summary Solutions Fast Track Frequently Asked Questions Using the Palm OS for Bluetooth Applications Introduction What You Need to Get Started Understanding Palm OS Profiles Choosing Services through the Service Discovery Protocol Updating Palm OS Applications Using the Bluetooth Virtual Serial Driver Creating a VDRV Client-Only Application Creating a VDRV Server-Only Application Using Bluetooth Technology with Exchange Manager Creating Bluetooth-Aware Palm OS Applications Using Basic ACL Links Creating L2CAP and RFCOMM Connections Using the Service Discovery Protocol - Advertising a Basic Service Record for an RFCOMM or L2CAP Listener Socket
- Retrieving Connection Information about L2CAP and RFCOMM Listeners on a Remote Device
Using Bluetooth Security on Palm OS Writing Persistent Bluetooth Services for Palm OS The Future of Palm OS Bluetooth Support Summary Solutions Fast Track Frequently Asked Questions Designing an Audio Application Introduction Choosing a Codec Pulse Code Modulation Continuous Variable Slope Delta Modulation Configuring Voice Links Choosing an HV Packet Type Sending Data and Voice Simultaneously Using ACL Links for High-Quality Audio Choosing an Audio Interface Selecting an Audio Profile Applications Not Covered by Profiles New Audio Profiles Writing Audio Applications Discovering Devices Using Service Discovery Connecting to a Service Using Power Saving with Audio Connections Differentiating Your Audio Application Physical Design Designing the User Interface Enabling Upgrades Improving the Audio Path Summary Solutions Fast Track Frequently Asked Questions Personal Information Base Case Study Introduction Why Choose Bluetooth Technology? Requirements for PIB Devices - Implementing Optional Extra Features
Choosing a Wireless Technology for the PIB Device Considering the Cost of the PIB Exploring the Safety and Security Concerns of a Personal Information Base - Enabling Data Duplication
- Ensuring Data Integrity
- Providing Security
- Meeting Medical Requirements
Using Bluetooth Protocols to Implement a PIB Understanding the Bluetooth Specification Hierarchy Initializing the PIB - Understanding User Interactions
Sending and Receiving Information - Selecting a Device
- Using the Service Discovery Application Profile
- Using the Serial Port Profile
- Using the Generic Object Exchange Profile
- Using the Object Push Profile
- Using the File Transfer Profile
Considering the User's View Identifying the System's Users Identifying System Use Cases Identifying Barriers to Adoption Managing Personal Information Base Performance Summary Solutions Fast Track Frequently Asked Questions Appendix: Bluetooth Application Developer's Guide Fast Track Glossary Index Paperback; 556 pages
|