2011 Embedded Systems Software Training Center BluRapport SDK.

Slides:



Advertisements
Similar presentations
Chapter 6 Server-side Programming: Java Servlets
Advertisements

Introduction to Sockets Jan Why do we need sockets? Provides an abstraction for interprocess communication.
CSE 333 – SECTION 8 Networking and sockets. Overview Network Sockets IP addresses and IP address structures in C/C++ DNS – Resolving DNS names Demos.
Chapter 17 Networking Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Module R2 Overview. Process queues As processes enter the system and transition from state to state, they are stored queues. There may be many different.
Remote Procedure Call Design issues Implementation RPC programming
2011 Embedded Systems Software Training Center BluRapport SDK.
Sattam Al-Sahli – Emad Al-Hemyari –
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 13 Introduction to SQL Programming Techniques.
CPET 260 Bluetooth. What is Bluetooth? Not IEEE (Wi-Fi) or HomeRF Originally designed to replace wires Short-range, lower-power wireless technology.
OSI Model.
Client Server Model The client machine (or the client process) makes the request for some resource or service, and the server machine (the server process)
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
® The Bluetooth Architecture APIs, L2CAP, Link Management, Baseband, and the Radio.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
The OSI Model A layered framework for the design of network systems that allows communication across all types of computer systems regardless of their.
I NTRODUCTION OF S OCKET P ROGRAMMING L.Aseel AlTurki King Saud University.
 The Open Systems Interconnection model (OSI model) is a product of the Open Systems Interconnection effort at the International Organization for Standardization.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
Hacking the Bluetooth Pairing Authentication Process Graduate Operating System Mini Project Siyuan Jiang and Haipeng Cai.
BLUETOOTH. Introduction Bluetooth technology discussed here aims at so-called ad- hoc piconets, which are local area networks with a very limited coverage.
Distributed systems – Part 2  Bluetooth – 2 nd set of slides Anila Mjeda.
2011 Embedded Systems Software Training Center BluRapport SDK.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Bluetooth Kirthika Parmeswaran Telcordia Technologies OOPSLA’2000.
Enabling Embedded Systems to access Internet Resources.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
LWIP TCP/IP Stack 김백규.
Lecture Set 14 B new Introduction to Databases - Database Processing: The Connected Model (Using DataReaders)
Distributed systems – Part 2  Bluetooth 4 Anila Mjeda.
Bluetooth Techniques ECE 591. Overview  Universal short-range wireless capability  Uses 2.4-GHz band  Available globally for unlicensed users  Devices.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
10/15/ Short-Range Radio Frequency Networking B. Ramamuthy.
An Investigation of Bluetooth Application Program Interface Layer Development Sam Knights Rhodes University Supervisors: Dr G. Foster and Prof P. Clayton.
OS2014 PROJECT 2 Supplemental Information. Outline Sequence Diagram of Project 2 Kernel Modules Kernel Sockets Work Queues Synchronization.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Bluetooth on CE. Mid - Presentation Roman Zoltsman & Oren Haggai Group /2001 Instructor: Nir Borenshtein HSDSL Lab. Technion.
Team Topic Presentation Team 6 BLUETOOTH What is Bluetooth? Cable Replacement Automatic Connectivity Hidden Computing Few Examples: 1.Automatic Door.
Socket Programming Tutorial Department of Computer Science Southern Illinois University Edwardsville Fall, 2015 Dr. Hiroshi Fujinoki
Socket Programming Lab 1 1CS Computer Networks.
UNIT III - JDBC JDBC Overview – JDBC implementation – Connection class – Statements - Catching Database Results, handling database Queries. Networking–
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Part 4: Network Applications Client-server interaction, example applications.
Lectured By: Vivek Dimri Asst Professor CSE Deptt. SET.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Mapping Salutation to Bluetooth 4 Overview 4 Bluetooth Summary 4 Salutation Architecture Summary 4 Mapping Bluetooth SDP to Salutation APIs 4 Mapping Bluetooth.
JPMA PROJECT PRESENTATION (ITU) 1 INTRODUCTION BLUETOOTH CHAT DESIGN JAVA ON MOBILE DEVICE Presenters Benjamin Boateng Abass Omer Venkateshwar Rao Namilakonda.
Sairajiv Burugapalli. This chapter covers three main categories of classic software vulnerability: Buffer overflows Integer vulnerabilities Format string.
FTP Client API FTP in embedded devices Implementing an FTP Client FTP Command APIs Other FTP Client APIs.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe.
CH9. HOST CONTROLLER INTERFACE AND COMMANDS CH10. LOGICAL LINK AND ADAPTATION PROTOCOL(L2CAP) RTLAB YuJin Park.
OSI Model OSI MODEL. Communication Architecture Strategy for connecting host computers and other communicating equipment. Defines necessary elements for.
OSI Model OSI MODEL.
BLUETOOTH THE STANDARD & ISSUES.
Channel Control Interim substates for adding new slaves
A Wireless LAN technologies IEEE
Understanding the OSI Reference Model
Socket Programming in C
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Bluetooth Profiles.
Lecture Set 14 B new Introduction to Databases - Database Processing: The Connected Model (Using DataReaders)
Process-to-Process Delivery:
BLUETOOTH Personal Area Networking [ PAN ] over Bluetooth
Bluetooth HCI Terminal
OSI Model OSI MODEL.
Short-Range Radio Frequency Networking
Short-Range Radio Frequency Networking
Process-to-Process Delivery: UDP, TCP
Presentation transcript:

2011 Embedded Systems Software Training Center BluRapport SDK

Agenda BluRapport SDK basic Learn how to work with SDK, referring to the demo project Implement Inquire request using the Demo project's functions l Implement additional Inquiry functions

BluRapport SDK basics SDK provides API procedures which are used for management BluRapport Bluetooth stack kernel. SDK contains functions for working with following protocols: -HCI (Host Controller Interface) -L2CAP (Logical Link Control and Adaptation Protocol) -GAP (SDK for access to Generic Access Profile)

BluRapport SDK basics Generic Access Profile The main purpose of this profile is to describe the use of the lower layers of the Bluetooth protocol stack (LC and LMP). To describe security related alternatives, also higher layers (L2CAP, RFCOMM and OBEX) are included.

BluRapport SDK basics SDK contains functions for all profiles and protocols in BluRapport. For each layer is used special prefixes: HCI – prefix `rx_hci_` L2CAP – prefix `rx_l2cap_` RFCOM – prefix `rx_rfcom_` SDP – prefix `rx_sdp_` OBEX – prefix `rx_obex_` etc

BluRapport SDK basics SDK structure: rxbt/SDK/include – contains list of headers. These headers describes all API functions and required structures (i.e. rx_errors and etc) of BluRapport SDK rxbt/SDK/lib – compiled static and dynamic libraries rxbt/bin – kernel of BluRapport Bluetooth stack rxbt/samples – samples of applications

Common RXBT SDK API Common procedures and structures in RXBT API: rx_ret_t rx_sdk_init() - function initializes conection between your application and BluRapport Kernel int rx_socket(rx_socktype_t sock_type, rx_sockproto_t proto) - function creates socket for required type and protocol and returns error code or created socket -sock_type – determinate type of socket. See structure rx_socktype_t in rx_sdk.h -proto – type of protocol. See structure rx_sockproto_t in rx_sdk.h rx_ret_t rx_close(int sock) — close socket. -sock - socket created by rx_socket() call rx_string_to_sockaddr_no_type(TRS_CALL &serv_addr, in_buf, RX_PF_HCI);

Demo of Inquiry process Main Functions that are used to work with HCI Inquiry: rx_ret_t rx_start_inquiry(int sock, hci_access_code_t LAP, unsigned duration_ms, ex_uint8_t num_resp, rx_bool_t purge_list_before_inquiry) — function starts inquiry process for HCI socket. -sock : HCI socket identifier -LAP: either General or Limited Inquiry -num_resp: max # of responses, 0 means infinite -purge_list_before_inquiry – if true, clear devices list before inquiry rx_renew_remote_names(TRS_CALL sock) – perform inquiry request and getting symbolic name of devices rx_ret_t rx_get_next_inquiry_result(int sock, rx_remote_device_user_t *info) — get next Discovery iteration results. -sock : HCI socket identifier -info: remote device info see structure rx_remote_device_user_t in rx_sdk.h

SDP common Service Discovery Protocol (SDP) is the layer in the Bluetooth protocol stack where programs query for device information, the services those devices provide, and their characteristics (or attributes). The querying unit then uses this information to establish connections between devices, and ad-hoc networking gets underway. SDP enables network devices, applications, and services to seek out and find other complementary network devices, applications, and services needed to properly complete specified tasks. SDP allows developers to: -query a Bluetooth device for the services hosted by this device -browse the services hosted by a Bluetooth device -advertise the availability of a service -provide self service information.

Demo of SDP process Main Functions that are used to work with SDP: rx_ret_t rx_sdp_create_connection_handle(rx_sdp_handle_t *sdp_handle, rx_sockaddr_t *addr) - Create a handle of a remote SDP database -sdp_handle - pointer to a place to put the handle. -serv_addr - remote SDP server address. See rx_sdp_sdk.h Types of services (full list see in rx_sdp_sdk.h), we use it for create SDP request to remote side RX_SDP_UUID16_PUBLIC_BROWSE_ROOT RX_SDP_UUID16_SERIAL_PORT RX_SDP_UUID16_LAN_ACCESS_USING_PPP RX_SDP_UUID16_NAP RX_SDP_UUID16_PANU RX_SDP_UUID16_OBEX_OBJECT_PUSH RX_SDP_UUID16_OBEX_FILE_TRANSFER RX_SDP_UUID16_HEADSET RX_SDP_UUID16_HEADSET_AUDIO_GATEWAY RX_SDP_UUID16_HCR_PRINT RX_SDP_UUID16_HUMAN_INTERFACE_DEVICE_SERVICE

Demo of SDP process Main Functions that are used to work with SDP: rx_ret_t rx_sdp_service_search_attribute_request(rx_sdp_handle_t sdp_handle, rx_sdp_iterator_t *sdp_iterator, rx_sdp_uuid_t search_pattern[], rx_uint32_t search_pattern_element_count, rx_uint32_t attribute_id_list[], rx_uint32_t attribute_id_list_element_count) - Generates an SDP_ServiceSearchAttributeRequest to retrieve specified attribute values from a service records that match the service search pattern given in the parameters of function. If request successfully executed then ServiceIterator will be created and pointered on first service. (see rx_sdp_sdk.h) -sdp_handle - connection handle. -sdp_iterator - pointer to a place to put the ServiceIterator. -search_pattern –UUID of requested service. -search_pattern_element_count - count of elemens in search_pattern. -attribute_id_list - list of desired attribute IDs ( see next slide ). -attribute_id_list_element_count - count elements in list. NOTE: rx_sdp_delete_iterator() should be called to free the ServiceIterator handle, when it is no longer needed.

Demo of SDP process Main Functions that are used to work with SDP: NOTE: The AttributeIDList is a data element sequence where each element in the list is either an attribute ID or a range of attribute IDs. Each attribute ID is encoded as a 16-bit unsigned integer data element. Each attribute ID range is encoded as a 32-bit unsigned integer data element, where the high order 16 bits are interpreted as the beginning attribute ID of the range and the low order 16 bits are interpreted as the ending attribute ID of the range. The attribute IDs contained in the AttributeIDList must be listed in ascending order without duplication of any attribute ID values. rx_ret_t rx_sdp_create_attribute_iterator(rx_sdp_iterator_t service_iterator, rx_sdp_iterator_t *attribute_iterator) - Create AttributeIterator from ServiceIterator and point it to first attribute for Service on which currently pointered ServiceIterator -service_iterator - ServiceIterator handle (see sdp_iterator from rx_sdp_service_search_attribute_request). -attribute_iterator - pointer to a place to put the AttributeIterator.

Demo of SDP process Main Functions that are used to work with SDP: rx_ret_t rx_sdp_next(rx_sdp_iterator_t iterator) - Put iterator to next element (record, attribute, service or element in list). -iterator - iterator which should be changed. rx_ret_t rx_sdp_delete_iterator(rx_sdp_iterator_t iterator) - Delete the existing iterator. -iterator - iterator which should be deleted. -serv_addr - remote SDP server address. See rx_sdp_sdk.h rx_ret_t rx_sdp_close_handle(rx_sdp_handle_t sdp_handle) - Close SDP handle created earlier in rx_sdp_create_connection_handle() or in rx_sdp_create_database_handle(). See rx_sdp_sdk.h -sdp_handle - handle which should be closed.

Demo of SDP process Main Functions that are used to work with SDP: rx_ret_t rx_sdp_goto_attribute_by_id(rx_sdp_iterator_t iterator, rx_sdp_attribute_id_t attribute_id) - Put AttributeIterator on attribute with desired ID. -iterator - AttributeIterator handle. -attribute_id - desired attribute ID. rx_ret_t rx_sdp_get_value_as_string(rx_sdp_iterator_t iterator, char *string, rx_uint32_t max_string_size) - Get STRING value. -iterator - either AttributeIterator or ListIterator handle. -string - pointer to a place to put the STRING value. -max_string_size - buffer size, if string is more than the size of buffer string will be cut down. NOTE: -This function accept AttributeIterator or ListIterator. -String will be returned without Null terminate character.

Your Task 1 Use Demo project functions to create simple scan application (Inquiry) to getting remote devices info. So you must sending inquire request and create list with information about devices.

Your Task 2 Use SDP and HCI API procedures for searching OBEX File Transport Server. Getting RFCOMM channel for OBEX File Transport rx_uint32_t range = RX_SDP_BUILD_ATTRIBUTE_RANGE(0, RX_SDP_ATTRIBUTE_ID_PROTOCOL_DESCRIPTOR_LIST); ret = rx_sdp_create_connection_handle(TRS_CALL &sdp_handle, &address); ret = rx_sdp_service_search_attribute_request(TRS_CALL sdp_handle, &service_iterator, RX_SDP_BUILD_UUID16(&uuid, service), 1, &range, 1); ret = rx_sdp_get_pdl_parameter_by_protocol_as_integer(TRS_CALL service_iterator, &ch, 0, RX_SDP_BUILD_UUID16(&uuid, RX_SDP_UUID16_RFCOMM_PROTOCOL), 0); if (ret == RET_OK) *channel = ch; rx_sdp_delete_iterator(TRS_CALL service_iterator); rx_sdp_close_handle(TRS_CALL sdp_handle);

THANK YOU