Presentation is loading. Please wait.

Presentation is loading. Please wait.

Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Gaurav Khanna Developer Evangelist Microsoft.

Similar presentations


Presentation on theme: "Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Gaurav Khanna Developer Evangelist Microsoft."— Presentation transcript:

1

2 Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Gaurav Khanna Developer Evangelist Microsoft India

3 M anagement T ools C ommunications & M essaging Device Update Agent Software Update Services Live Communications Server Exchange Server Internet Security and Acceleration Server Speech Server Image Update L ocation S ervices M ultimedia MapPoint DirectX Windows Media Visual Studio 2005 D evelopment T ools Win32 MFC 8.0, ATL 8.0 N ative M anaged S erver S ide L ightweight R elational SQL Server 2005 Express EditionEDB D ata P rogramming M odel D evice B uilding T ools D evice B uilding T ools H ardware/ D rivers Windows XP DDK Windows Embedded Studio Platform Builder OEM/IHV Supplied BSP (ARM, SH4, MIPS) OEM Hardware and Standard Drivers Standard PC Hardware and Drivers SQL Server 2005SQL Server 2005 Mobile Edition ASP.NET Mobile ControlsASP.NET.NET Compact Framework.NET Framework Microsoft Operations Manager Systems Management Server

4 Agenda Technology Overview Bluetooth Application Concepts Windows CE Development Windows Mobile Development DemoQ&A

5 Technology Overview A short range wireless communication technology meter range Operates in 2.4 GHz band using frequency hopping Ad-Hoc network topology Supports voice and data through separate channels Support for device discovery Devices can be queried for capabilities Standardized services

6 Typical Usage Scenarios Audio Services Hands Free devices Wireless Stereo Headsets Wireless Data services Share Internet Connections Ad-Hoc Data Exchange Business card transfer File exchange Printing Cable Replacement Keyboard, Mouse, Printer

7 Agenda Technology Overview Bluetooth Application Concepts Windows CE Development Windows Mobile Development DemoQ&A

8 Bluetooth Devices Identified by unique address Advertise to others in discoverable mode Class of device field Devices maintain list of supported services Use Service Discovery for querying list on other devices

9 Bluetooth Services Describe data exchange protocols Identified by a unique GUID Standardized services called “profiles” for common use cases File Transfer (FTP) Dial-Up networking (DUN) Stereo Audio (A2DP)

10 General Tips Keep users informed Use OS UI for device discovery, pairing Application should handle latency Don’t block UI threads Handle errors gracefully Conserve the juice Limit time in discoverable mode Keep Bluetooth Off when not in use 5 step process for application development

11 The 5 Step Process Find devices in range Choose a device to connect with Establish a secure connection (pairing) Choose a service Transfer Data

12 Step 1: Find Devices In Range Target devices must be in discoverable mode Client device listens to broadcasts from discoverable devices

13 Step 2: Choose A Device To Connect With OS usually provides GUI to connect with another device Each device identified by a unique address

14 Step 3: Establish A Secure Connection Process called “pairing” Requires both end points to use the same pin key Usually part of connecting UI

15 Step 4: Choose A Service Each service identified by unique GUID Set of “standard” services for well- known profiles New applications can publish own GUID Services usually chosen through device UI

16 Step 5: Transfer Data Point to point style 2-way communication Applications use service/profile protocols to communicate effectively

17 Agenda Technology Overview Bluetooth Application Concepts Windows CE Development Windows Mobile Development DemoQ&A

18 Bluetooth Application Programming Winsock API is extended to support Bluetooth New Protocol Family for Bluetooth AF_BTH New Protocol Option BTPROTO_RFCOMM New socket options for Bluetooth Enable/disable encryption Control send/receive buffer size Set power level

19 Bluetooth Creating a socket SOCKET s = socket (AF_BT, SOCK_STREAM, BTHPROTO_RFCOMM);

20 Windows CE: Native Approach Windows Sockets APIs Device and Service Discovery: WSALookupServiceBegin(), WSALookupServiceNext(), WSALookupServiceEnd() Use standard socket connection APIs bind(), listen(), accept(), connect() Data Transfer APIs send(), recv()

21 Bluetooth Connecting a socket SOCKADDR_BTH sa; memset (&sa, 0, sizeof(sa)); sa.addressFamily = AF_BT; sa.btAddr = b; sa.port = channel; connect (s, (SOCKADDR*)&sa, sizeof(sa));

22 Bluetooth Listening on a socket SOCKADDR_BTH sa; memset (&sa, 0, sizeof(sa)); sa.addressFamily = AF_BT; sa.port = BT_PORT_ANY; bind (server, (SOCKADDR *)&sa, sizeof(sa); getsockname(server, (SOCKADDR *)&sa, &namelen); listen (server, 5); SOCKET s2 = accept (server, (SOCKADDR *)&sa2, &size);

23 Bluetooth getsockname Use getsockname to retrieve server channel allocated to socket by a call to bind and Bluetooth address of local device. SOCKADDR_BTH sab; int len = sizeof(sab); if (0 == getsockname (s, &sab, &len)) { wprintf (L”Local Bluetooth device is %04x%08x, server channel = %d\n”, GET_NAP(sab.btAddr), GET_SAP(sab.btAddr), sab.port); }

24 Bluetooth getpeername Use getpeername on connected socket to retrieve Bluetooth address of peer Bluetooth device. SOCKADDR_BTH sab; int len = sizeof(sab); if (0 == getpeername (s, &sab, &len)) { wprintf (L”Remote Bluetooth device is %04x%08x, connected to %d\n”, GET_NAP(sab.btAddr), GET_SAP(sab.btAddr), sab.port); }

25 Bluetooth getsockopt Queries various parameters associated with server channel or connection. The parameters are as follows: s must be Bluetooth socket level must be SOL_RFCOMM SO_BTH_GET_MTU_MAX,…

26 Bluetooth setsockopt Configures various parameters associated with server channel or connection. The parameters are as follows: s must be Bluetooth socket level must be SOL_RFCOMM SO_BTH_AUTHENTICATE, SO_BTH_ENCRYPT, …

27 Bluetooth Discovering Devices WSAQUERYSETwsaq; wsaq.dwNameSpace = NS_BTH; WSALookupServiceBegin (&wsaq, LUP_CONTAINERS, &hLookup); WSALookupServiceNext (hLookup, LUP_RETURN_ADDR, &dwSize, pwsaResults); pNew->b = ((SOCKADDR_BTH *)pwsaResults- >lpcsaBuffer->RemoteAddr.lpSockaddr)- >btAddr

28 Bluetooth Querying for names Change WSALookupServiceNext to WSALookupServiceNext (hLookup, LUP_RETURN_NAME | LUP_RETURN_ADDR, &dwSize, pwsaResults) … wcscpy (pRes->szName, pwsaResults- >lpszServiceInstanceName);

29 Bluetooth Enabling Legacy Applications: Registering COM ports PORTEMUPortParams pp; memset( &pp, 0, sizeof( pp ) ); // connect to serial port profile on device identified by // remoteDeviceAddr pp.device = remoteDeviceAddr; pp.uuidService = SerialPortServiceClass_UUID; pp.uiportflags = RFCOMM_PORT_FLAGS_REMOTE_DCB; HANDLE h = RegisterDevice (L"COM", index, L"btd.dll", (DWORD)&pp);

30 Bluetooth Enabling Legacy Applications: Serial Data Transfer WCHAR szComPort[30]; // open previously registered COM port for reading and writing wsprintf( szComPort, L"COM%d:", index ); HANDLE hCommPort = CreateFile( szComPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL ); WriteFile( hCommPort, …); ReadFile( hCommPort, …); // cleanup CloseHandle( hCommPort ); DeregisterDevice( h );

31 Agenda Technology Overview Bluetooth Application Concepts Windows CE Development Windows Mobile Development DemoQ&A

32 Bluetooth Application Development On Windows Mobile Native Can leverage WinCE Winsock APIs Windows Mobile specific utility methods BthGetMode()/BthSetMode() Managed Code Bluetooth Class Library

33 Windows Mobile: Managed Approach Use UI for pairing Publish Service new BluetoothService( GUID ) List of Paired Devices BluetoothRadio.PairedDevices Connect to a service BluetoothDevice.Connect( GUID ) Use NetworkStream objects for data transfer

34 Windows Mobile Managed Approach Benefits Simplicity Intuitive class interface for all levels of managed developers Focus on the application, not on the technology Easy to build custom services Leverage NETCF APIs for object serialization Flexible, high level networking APIs Powerful NetworkStream class Rich threading support Shared Source Add and change under the hood

35 Agenda Technology Overview Bluetooth Application Concepts Windows CE Development Windows Mobile Development DemoQ&A

36 Inside the Managed Bluetooth Library

37 Enumerating Paired Devices

38 Windows Mobile Managed Library Download edded/usewinemb/ce/shareds rccode/west/default.aspx

39 Conclusion Bluetooth is a ubiquitous, powerful ad- hoc networking technology Rich support on Windows CE and Windows Mobile Windows Sockets API Managed Class Library for Windows Mobile Leverage Visual Studio 2005 for native and managed development

40 Tools & Resources msdn.microsoft.com/ embedded microsoft.public. windowsxp.embedded windowsce.platbuilder windowsce.platbuilder windowsce.embedded.vc windowsce.embedded.vc blogs.msdn.com/ mikehall Windows CE 5.0 Eval Kit Windows XP Embedded Eval Kit msdn.microsoft.com/ mobility microsoft.public. pocketpc.developer smartphone.developer dotnet.framework.compactframework blogs.msdn.com/ windowsmobile vsdteam netcfteam Windows Mobile 5.0 Eval Kit Websites Newsgroups Blogs Tools Build Develop

41 Your Feedback is Important! Please Fill Out the feedback form Questions?

42 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Download ppt "Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Gaurav Khanna Developer Evangelist Microsoft."

Similar presentations


Ads by Google