This document is a project report submitted by two students for their CSE 2200 software development project on creating a wireless application to control a PC using Bluetooth from a mobile device. The project aims to allow basic PC controlling operations and external device control. The report includes an introduction, objectives, descriptions of Bluetooth technology and protocols involved, the Java Bluetooth API, an overview of the client and receiver programs, and sections on device discovery, service discovery and communication.
Abstract Enhance Data Rate (EDR) in Bluetooth 2.0 specifications provide condition for Bluetooth multi-point communication. Aiming at application requirements of Bluetooth technique in wireless communication, Embedded Bluetooth Information Broadcast System (EBIBS) based on ARM9 microprocessor S3C2440 was designed and implemented. The system runs on ARM-Linux operation system and achieves single point transmission, multi-point transmission and information update based on Bluetooth 2.0 specifications. BlueZ protocol stacks and object exchange (OBEX) were utilized to complete multi-point transmission. Device driver technique was used to switch core functions and retransmission mechanism to ensure reliability of information broadcast. The system has been verified at broad-level and practical application. The result was also provided. Index Terms: ARM, Bluetooth, embedded, information broadcast
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
Interface method and system for accessing inner layers of a network protocolTal Lavian Ph.D.
A method of performing network communications includes receiving a datagram for transmitting information over a network, selecting a layer in a network protocol stack to establish communication over the network using an inner layer application programming interface (IL API), establishing an inner layer socket at the selected network layer using the IL API without accessing other layers in the layered network protocol stack, and transmitting the datagram packet over the selected layer using the inner layer socket.
https://www.google.com/patents/US6845397?dq=US+6845397&hl=en&sa=X&ei=zrxTVJv8C-GsmAXaoYLwCQ&ved=0CB0Q6AEwAA
Smart Garage Implementation and Design Using Whatsapp Communication MediaTELKOMNIKA JOURNAL
WhatsApp is a social networking app that serves as a communication medium. According to the
Online Audience Measurement Standards named comScore, in 2017, WhatsApp application users in
Indonesia amounted to 35.8 million people. As the most popular mobile application with the most users in
the country, in this research the authors chose Whatsapp as a communication medium that will be
integrated into one application of Internet of Things (IoT), that is Smart Garage. Smart Garage is a
combination of information technology and computing technology that is applied to a house by relying on
efficiency and device automation. The results of this research shows that it is better to use mobile data
networks than using the wireless networks. The maximum delay when using mobile data is 7.5 s and 7.7 s
when using wireless networks. The research using WhatsApp application still rare especially in the
field of IoT.
Wifi Direct Based Chat And File Transfer Android ApplicationNitin Bhasin
This App allows you to share any kind of file present in SD card to other mobile phone directly at speed of 5+MBps. It even allows to click images shoot videos and directly dend to other device.It also allows to send drawings by having drawing pad in it in various colours and various brush sizes. Web-View is also implemented in it.
Link Of App At Amazon Store: http://www.amazon.com/Wifi-Direct-Chat-Transfer-Application/dp/B00TKFFMZO/ref=sr_1_1?s=mobile-apps&ie=UTF8&qid=1424009545&sr=1-1&keywords=Wifi+Direct+Chat+and+File+Transfer+Application
Abstract Enhance Data Rate (EDR) in Bluetooth 2.0 specifications provide condition for Bluetooth multi-point communication. Aiming at application requirements of Bluetooth technique in wireless communication, Embedded Bluetooth Information Broadcast System (EBIBS) based on ARM9 microprocessor S3C2440 was designed and implemented. The system runs on ARM-Linux operation system and achieves single point transmission, multi-point transmission and information update based on Bluetooth 2.0 specifications. BlueZ protocol stacks and object exchange (OBEX) were utilized to complete multi-point transmission. Device driver technique was used to switch core functions and retransmission mechanism to ensure reliability of information broadcast. The system has been verified at broad-level and practical application. The result was also provided. Index Terms: ARM, Bluetooth, embedded, information broadcast
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
Interface method and system for accessing inner layers of a network protocolTal Lavian Ph.D.
A method of performing network communications includes receiving a datagram for transmitting information over a network, selecting a layer in a network protocol stack to establish communication over the network using an inner layer application programming interface (IL API), establishing an inner layer socket at the selected network layer using the IL API without accessing other layers in the layered network protocol stack, and transmitting the datagram packet over the selected layer using the inner layer socket.
https://www.google.com/patents/US6845397?dq=US+6845397&hl=en&sa=X&ei=zrxTVJv8C-GsmAXaoYLwCQ&ved=0CB0Q6AEwAA
Smart Garage Implementation and Design Using Whatsapp Communication MediaTELKOMNIKA JOURNAL
WhatsApp is a social networking app that serves as a communication medium. According to the
Online Audience Measurement Standards named comScore, in 2017, WhatsApp application users in
Indonesia amounted to 35.8 million people. As the most popular mobile application with the most users in
the country, in this research the authors chose Whatsapp as a communication medium that will be
integrated into one application of Internet of Things (IoT), that is Smart Garage. Smart Garage is a
combination of information technology and computing technology that is applied to a house by relying on
efficiency and device automation. The results of this research shows that it is better to use mobile data
networks than using the wireless networks. The maximum delay when using mobile data is 7.5 s and 7.7 s
when using wireless networks. The research using WhatsApp application still rare especially in the
field of IoT.
Wifi Direct Based Chat And File Transfer Android ApplicationNitin Bhasin
This App allows you to share any kind of file present in SD card to other mobile phone directly at speed of 5+MBps. It even allows to click images shoot videos and directly dend to other device.It also allows to send drawings by having drawing pad in it in various colours and various brush sizes. Web-View is also implemented in it.
Link Of App At Amazon Store: http://www.amazon.com/Wifi-Direct-Chat-Transfer-Application/dp/B00TKFFMZO/ref=sr_1_1?s=mobile-apps&ie=UTF8&qid=1424009545&sr=1-1&keywords=Wifi+Direct+Chat+and+File+Transfer+Application
International Journal of Engineering and Science Invention (IJESI) is an international journal intended for professionals and researchers in all fields of computer science and electronics. IJESI publishes research articles and reviews within the whole field Engineering Science and Technology, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online.
Developed a Multicast Chat application with file and desktop sharing features among its users into java and submitted in college as final year major project.
complete Lab manual as Per AKTU syllabus that file contains Internet of Things they contains following topic
1. Familiarization with concept of IoT,
Arduino/Raspberry Pi and perform necessary
software installation.
Will be able to understand IoT,
Arduino/Raspberry Pi, and also able to
install software setup of Arduino/
Respberry Pi
2
To interface motor using relay with
Arduino/Raspberry Pi and write a program to
turn ON/OFF motor.
Able to use relay to control motor and
other mechanical devices
3
To interface sensors* with Arduino/Raspberry Pi
and write a program to displaysensors data on
the computer screen.
Able to retrieve data from sensors and to
display it on computer screen
4 To interface OLED with Arduino/Raspberry Pi
and write a program to display sensor data on it.
Able to retrieve data from sensors and to
display it on OLED
5
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Relay when
sensor data is detected.
Able to control relay with help of
microcontroller and sensors
6
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Solenoid
valve when sensor data is detected.
Able to control Solenoid valve with help of
microcontroller and sensors
7
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Linear
Actuator when sensor data is detected.
Able to control linear actuator with help
of microcontroller and sensors
8
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Starter
Motor when sensor data is detected.
Able to control Starter Motor with help of
microcontroller and sensors
9
To interface Bluetooth with Arduino/Raspberry
Pi and write a program to send sensor data to
smart phone using Bluetooth.
Able to communicate sensor data from
microcontroller to smart phone
10
To interface Bluetooth with Arduino/Raspberry
Pi and write a program to turn Actuators*
ON/OFF when message is received from smart
phone using Bluetooth.
Able to control actuators using mobile
phone through Bluetoth
11 Write a program on Arduino/Raspberry Pi to
upload Sensor data to thingspeak cloud.
Internet of things protocols for resource constrained applications Pokala Sai
A detailed documentation on internet protocols at present happening of internet of things applications and a bit comparison of protocols using basic requirements
International Journal of Engineering and Science Invention (IJESI) is an international journal intended for professionals and researchers in all fields of computer science and electronics. IJESI publishes research articles and reviews within the whole field Engineering Science and Technology, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online.
Developed a Multicast Chat application with file and desktop sharing features among its users into java and submitted in college as final year major project.
complete Lab manual as Per AKTU syllabus that file contains Internet of Things they contains following topic
1. Familiarization with concept of IoT,
Arduino/Raspberry Pi and perform necessary
software installation.
Will be able to understand IoT,
Arduino/Raspberry Pi, and also able to
install software setup of Arduino/
Respberry Pi
2
To interface motor using relay with
Arduino/Raspberry Pi and write a program to
turn ON/OFF motor.
Able to use relay to control motor and
other mechanical devices
3
To interface sensors* with Arduino/Raspberry Pi
and write a program to displaysensors data on
the computer screen.
Able to retrieve data from sensors and to
display it on computer screen
4 To interface OLED with Arduino/Raspberry Pi
and write a program to display sensor data on it.
Able to retrieve data from sensors and to
display it on OLED
5
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Relay when
sensor data is detected.
Able to control relay with help of
microcontroller and sensors
6
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Solenoid
valve when sensor data is detected.
Able to control Solenoid valve with help of
microcontroller and sensors
7
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Linear
Actuator when sensor data is detected.
Able to control linear actuator with help
of microcontroller and sensors
8
To interface sensor with Arduino/Raspberry Pi
and write a program to turn ON/OFF Starter
Motor when sensor data is detected.
Able to control Starter Motor with help of
microcontroller and sensors
9
To interface Bluetooth with Arduino/Raspberry
Pi and write a program to send sensor data to
smart phone using Bluetooth.
Able to communicate sensor data from
microcontroller to smart phone
10
To interface Bluetooth with Arduino/Raspberry
Pi and write a program to turn Actuators*
ON/OFF when message is received from smart
phone using Bluetooth.
Able to control actuators using mobile
phone through Bluetoth
11 Write a program on Arduino/Raspberry Pi to
upload Sensor data to thingspeak cloud.
Internet of things protocols for resource constrained applications Pokala Sai
A detailed documentation on internet protocols at present happening of internet of things applications and a bit comparison of protocols using basic requirements
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
1. CSE 2200- SOFTWARE DEVELOPMENT PROJECT
Name of the project: Wireless controlling pc by using
Bluetooth supported mobile.
Project supervisor
Mr. Sheikh Md. Masudul Ahsan
Assistant Professor
Department of Computer Science and Engineering
Khulna University of Engineering and Technology
Khulna-9203
Project submitted by
Samiul hoque Prosenjit Shaha
Roll: 0507035 Roll:0507012
2. ACKNOWLEDGEMENTS
First of all we acknowledge to almighty ALLAH for completing this project successfully.
Then we are grateful to our project supervisor whose intelligent direction has made the task easier
to accomplish. A special thanks to the Head of the Department of Computer science & Engineering
to allow us to take several components from the Hardware and Interfacing Lab as also to the teacher
who has assigned us this project.
3. INDEX
1. Objectives
2. What is Bluetooth
3. The Bluetooth Protocol Stack
4. RFCOMM
5. Profiles
6. Java Bluetooth API
7. The Basic components of a Bluetooth Application
8. How to make connection between mobile and a PC
9.The Client Program
10. Basic Parts of the Client Program
11.The Java Communication API
12.The Receiver Program
13. The Basic Parts of the Receiver Program
14. Limitations
15. Conclusion
16. Resources
17. Installation Process:
4. Objectives
The objective of this project is to a develop software that will
perform basic PC controlling operations and some external device
controlling operation using Bluetooth radio signal. Java™.
5. Software advantages
1. We can explore all the drives and it’s subfolders and files.
2.We can see Text file and image file in mobile and play and control song in pc.
3. This software enables user to control various windows applications (ex: Restart ,
Log off , Turn off) from a remote place and no need to use keyboard or mouse.
What is Bluetooth?
Bluetooth is a wireless communication protocol mainly used for short distance and in
devices with low power consumption. Because Bluetooth is capable of communicating in an
omni-directional manner of up to 30 feet at 1 Mb/s it is far superior to infrared. Where
infrared requires a distance of a few feet or less and requires a direct line of site for
transmissions. The Bluetooth core system consists of a radio frequency (RF) transceiver,
baseband, and protocol stack. The system offers services that enable the connection of
devices and the exchange of a variety of classes of data between these devices. Actually it's
a wireless communication protocol that, like HTTP or FTP, operates in a client/server
architecture. It uses the 2.4 GHz band. If there are multiple
peripherals to be connected to a computer using RS-232 or USB, then Bluetooth is the ideal
solution to use those devices wirelessly.
The Basic features of Bluetooth:
1. 100 Feet Range (Exception Bluetooth Class 1 has 300 feet range).
2. Data transfer speed 1 MB/s.
3. Low power consumption.
4. Omni-directional radio signa
5. Uses 2.4 Ghz-2.482 Ghz radio frequency band
6. The Bluetooth protocol stack
The Bluetooth stack and Bluetooth hardware has close relationship. It works as the driver
for the Bluetooth hardware. The Bluetooth stack is a controlling agent (it could be software,
firmware, hardware, or a combination of all three) that implements the Bluetooth protocol
and also allows you to control your Bluetooth device programmatically. The Bluetooth stack
allows to do these two things:
1. Communicate with other Bluetooth devices
2. Control host Bluetooth device
For example the Bluetooth protocol stack similar with the HTTP protocol stack . A Web
browser uses an HTTP protocol stack so that it can receive Web content like HTML pages,
images, files, and best of all, Java applets. A Web server also uses an HTTP protocol stack
to send out Web content to Web browsers over the network. So, like the HTTP protocol
stack, a Bluetooth protocol stack will allow Bluetooth clients and servers to send and receive
data over a wireless network.
Layers of the Protocol Stack:
1. Host Controller Interface (HCI)
2. Logical Link Control and Adaptation Protocol (L2CAP) Ø (packet data)
3. Service Discovery Protocol (SDP)
4. RFCOMM Ø (stream data)
5. Wireless Access Protocol (WAP)
6. Object Exchange (OBEX) Ø (object data)
7. Bluetooth Network Encapsulation Protocol (BNEP)
8 . Human Interface Device Protocol (HID)
RFCOMM
RFCOMM is commonly known as the wireless serial port, or the cable replacement
protocol. The name is derived from the fact that the serial ports are called COMM1, COMM2,
etc. RFCOMM simulates the functionality of a standard serial port. For instance, a Bluetooth-
enabled mobile would use the RFCOMM
7. layer to synchronize its data to a Bluetooth-enabled PC as if they were physically connected
by a cable.
Profiles
Bluetooth profile is a designed set of functionality for Bluetooth devices. This enables two
Bluetooth devices to interact properly. To interact Bluetooth-enabled devices , having a
Bluetooth stack is not good enough. Those devices also need to implement the same profile.
We used the Serial Port Profile that interacts directly with the RFCOMM layer in the
Bluetooth protocol stack. This profile is used to create a virtual serial port on Bluetooth-
enabled device. For instance,
some Bluetooth kits come with a driver that will allow the operating system to communicate
over the virtual serial port as if it were an actual serial port. By using the serial port profile we
were able to send stream data to PC. The Bluetooth device in PC receives the stream data
through virtual com port. There are many profiles such as:
1. Generic Access Profile
2. Service Discovery Application Profile
3. Serial Port profile
4. Headset profile
5. Object Push profile
6. File Transfer profile
The Java Bluetooth API
To control the Bluetooth device programmatically, we need J2ME optional package JSR
82. JSR-82 can only be implemented on the J2ME platform. JSR-82 cannot be
implemented on the J2SE because the J2SE does not support the generic connection
framework. The JSR-82 actually consists of two independent packages:
1. javax.bluetooth (the 13 classes and interfaces that are needed to perform wireless
communication with the Bluetooth protocol)
2. javax.obex (the 8 classes that are needed to send objects between devices,
independent of the transport mechanism between them)
8. Device Management
LocalDevice, RemoteDevice, and DeviceClass are the classes in the Java Bluetooth
specification that form the Generic Access Profile and allow you to perform device
management. These classes allow you to query some statistical information about your own
Bluetooth device (LocalDevice) and also some information on the devices in the area
(RemoteDevice). The DeviceClass object gives you information about the official class of
device (CoD) as defined in the Bluetooth specification.
A device class is simply a classification of Bluetooth devices. By simply calling the
methods of this class, it can be determined what kind of devices are in the area, like
computers, laptops, phones, PDAs, access points, etc. The methods
provided to accomplish this task are getMinorDeviceClass() and getMajorDeviceClass(),
both of which return an int. The following table shows some common major and minor device
classes.
Major Minor Major class Minor class
Class class Description Description
256 4 Computer Desktop
256 8 Computer Server
256 12 Computer Laptop
256 20 Computer PDA
512 4 Phone Cellular
9. Device Discovery
The Bluetooth device has no idea of what other Bluetooth devices are in the area. Perhaps
there are laptops, desktops, printers, mobile phones, or PDAs in the area. The possibilities
are endless. In order to find out, the Bluetooth device will use the device discovery classes
that are provided in the Java Bluetooth API.
The two classes needed in order for your Bluetooth device to discover remote Bluetooth
devices in the area: DiscoveryAgent and DiscoveryListener.
The method DiscoveryAgent is used to make the Bluetooth device search for other devices
in the area. The length of the inquiry is totally dependent upon the implementation of the
Java Bluetooth specification. The accessCode can be one of the following DiscoveryAgent
constants:
NOT_DISCOVERABLE, LIAC, or GIAC.
A reference to a class that implements the DiscoveryListener interface is also passed. When
new devices are discovered, event callbacks are passed back to this object. This method will
return true if the device successfully went into discovery mode. The startInquiry() method is
the only way to perform device discovery without blocking the current thread.
Service Discovery
After locating devices in the area, it would be really nice to see what services those devices
offer. The service discovery-related classes in the Java Bluetooth specification implement
the Service Discovery Application Profile. The Service Discovery Application Profile, in turn,
uses the Service Discovery Protocol (SDP) layer in your Bluetooth stack to find services on
remote Bluetooth devices.
The following classes are provided in the Java Bluetooth specification for service discovery:
Discovery Agent, Discovery Listener, Service Record, Data Element, and UUID.
The Service Discovery Database (SDDB) is the central repository for all service records. If a
particular JSR-82 implementation does not store
Service records in the SDDB as Java objects, then it must convert them into Service Record
objects when a client performs a search for services and a match is found.
10. Communication
As Bluetooth is a communication protocol the official Java Bluetooth API gives three ways
to send and receive data. Here two of them are: RFCOMM for stream data and L2CAP for
packet data.
RFCOMM is the protocol layer that the serial port profile uses in order to communicate.
How to make connection between a mobile and a PC?
We used a Bluetooth dongle to make a connection between a Bluetooth enabled mobile
and a PC. Unfortunately J2SE doesn’t support the java Bluetooth API JSR-82. So we
couldn’t initialize the Bluetooth stack of the dongle in our way. To make the dongle work we
used its driver CD to initialize the stack. We send stream data to PC using its serial port
profile over the RFCOMM protocol layer.
The Bluetooth dongle works as a receiver or a server and we developed a program for
the mobile which works as the client. The client first discovers the Bluetooth devices around
it. Then it discovers what services they contain. If the device is a desktop and supports the
serial port profile, out client can interact with it over its RFCOMM protocol layer. The client
program sends some stream data as command to PC’s virtual communication port. There is
a server program in the PC which reads stream data from the communication port and
executes those commands.
The client program
We developed a MIDLET for our mobile phone which will work as the client. We gave the
name of our client program “MOBILE MANIA”. Our client program contains all the basic
components of a Bluetooth application. It can perform the following tasks:
1. Device Discovery
2. Service Discovery
11. 3. Communication with a Desktop computer
4. Can gain the Bluetooth address of the server to connect
5. Can gain the Bluetooth information about the host micro device
This is the basic interface of our client program. From its menu we can choose to discover
any Bluetooth device around the host mobile phone or can view the Bluetooth information
about the mobile phone. It can discover any device around its Bluetooth range and can show
its friendly name.
Basic Parts of the Client program:
Basic components of the client program are
a. Device Discovery
b. Service Discovery
c. Controlling the whole pc
Device Dicovery
Our client program can discover any Bluetooth devices around it. Whenever the Device
discovery option is pressed it starts the discovery agent to discover any remote device.
12. DiscoveryAgent agent = device.getDiscoveryAgent();
agent.startInquiry( DiscoveryAgent.GIAC, new Listener() );
Our client device starts in GIAC mode, which means other remote device also can discover
our device. Whenever a device is discovered a discovery Listener shows the friendly name
of the Bluetooth device.
Service Dicovery
Our client program is also capable of Discovering Services offered by the remote device.
Our program search services with the UUID 0x0003 which is the UUID for RFCOMM.
agent.searchServices( null, // attributes to retrieve from remote device
new UUID[]{ new UUID( 0x0003) }, /* search criteria,
0x0003 = RFCOMM*/
remote,
new Listener());
Whenever a service is found our program stores the service records in a service array. Then
our program retrieves the service name from a user defined function uuidToName and
shows the list of services in the MIDLET screen.
ServiceRecord rec = (ServiceRecord)bluetooth.services.elementAt(i);
DataElement e = rec.getAttributeValue( 0x0001 ); //
ServiceClassIDList
Enumeration en = (Enumeration)e.getValue();
DataElement e2 = (DataElement)en.nextElement();
Object v = e2.getValue();
Controlling The PC
13. The PC controlling part of our program can send command to a connected PC to control
some basic component of it. The mobile connects with the PC by obtaining the url String
that is needed to connect to the device from the ServiceRecord object that we get from
service discovery. Our program generates the connecting string automatically by comparing
the UUID of Serial Port profile with the UUID of discovered service record objects in the
current inquiry. If there is a match then our program saves the connecting string to connect
with the remote device.
if ( u.equals( new UUID( 0x1105 ) )){ //0x1105 UUID for serial port profile
remote=(RemoteDevice)bluetooth.devices.elementAt(deviceDiscoveryUI.getSelected
Index());
URL="btspp://"+remote.getBluetoothAddress()+":"+i+";master=false;encrypt
=false;authenticate=false";
}
In the connecting string the part “btspp:” means Bluetooth serial port profile, the next
number is the Bluetooth address of the remote device which is found by
getBluetoothAddress() method. The next digit will be the channel number which will be the
index number of the matching UUID in the Service Record. Here master is false which
means that the client can only request for data transferring operation. Encrypt and
Authenticate is also false.
If there is no matching UUID found then our program rejects to be connected. Our
program also checks the characteristics of the remote device. If the remote device is a
computer and a desktop then it gives permission to be connected.
DeviceClass cls = (DeviceClass) bluetooth.deviceClasses.elementAt( selectedDevice );
if((cls.getMajorDeviceClass())!=256&&(cls.getMinorDeviceClass())!=4)
alert( "This Device can't perform PC controlling Operation", deviceDiscoveryUI );
The PC Controlling interface
If all the requirements were fulfilled then our PC controlling interface appears. Through this
interface we can perform the whole PC controlling operation or can connected to our PC.
con = (OutputConnection) Connector.open( url2,Connector.WRITE );
out = con.openOutputStream();
byte[] data1 = new byte[]{ (byte)nam};
out.write( data1 );
out.flush();
out.close();
14. The Java communications API:
The Java communications API is a package that can be used to write platform-
independent communications applications for technologies such as voice mail, fax, and smartcards.
This Java communications API contains support for RS232 serial ports. Using this
API one can:
1. Enumerate ports available on the system.
2. Open and claim ownership of ports.
3. Resolve port ownership contention between multiple applications.
4. Perform asynchronous and synchronous I/O on ports.
5. Receive Beans-style events describing communication port state changes.
The Java communications API does not support unsigned applet access to ports.
15. The Receiver Program:
The receiver program is used in the computer which receives command from the client’s
mobile through serial port and takes necessary steps to perform different actions. İt contains all the
necessary informations to receive command from the client and to contrtol computer as well as
external electric devices.
When the receiver program is run it always waits for a connection from any bluetooth remote
device within it’s range.
The receiver is waiting
for connection from any
Bluetooth enable
Basic Parts of the Receiver Program
The receiver program in the computer can be discussed according to its basic parts.
It has the following basic parts:
i. Creating the Graphical User Interface(GUI)
ii. Adding action Listener to the buttons
iii. Writing the current parameters of the port to a configuration file
16. iv. Creating properties object from configuration file
v. Setting parameters to the property object
vi. Handling the exception of opening more than one port at a time
vii. Receiving data sent from the client
viii. Comparing string and generating commands
ix. Showing the current status of the receiver.
Creating the Graphical User Interface (GUI):
The GUI part of the receiver program contains several labels, buttons, panels, textarea of
javax.awt class. The buttons and textareas are added in panels. The whole GUI part is placed in a
constructor. The components are placed to their absolute position by using the function
setBound( ).As the GUI part is placed in the constructor, whenever the receiver program is run the
GUI part becomes visible.
Adding action listener to the buttons:
Here three buttons are used: “Open Port”, ”Close Port” and “EXIT”
The actions to be performed by these buttons are specified in this part of the receiver program. Any
exception in performing the specified action is handled here.
Now let us discuss about the actions performed by these three buttons
Open Port:
Once the program is started, the appropriate communication port to receive the data from
client is selected from the list of available communication ports. Then the button “Open Port”
is pressed to open the selected port. After the port is successfully opened, it becomes ready to
receive data sent from mobile by the client.
Close Port:
When the function of the opened port come to an end, that port should be closed so that another
ports can be opened further. Because in case of serial port only port can be accessed at a time. So
after performing action the port should be closed.
EXIT:
If the receiver wishes to be disconnected from client, then the receiver program should be closed.
This is done by pressing the “EXIT” button. After pressing the “EXIT” button if any port remains
opened at that time, then that port is closed and after this the program terminates.
17. Showing the current status of the receiver:
In the text area the current status of the receiver remains shown. When the client send new
commands status of the receiver becomes changed. This help anyone near the receiver to know the
command that is currently being processed by the computer
Confirmation Message after
successful connection to a remote
device.
Bluetooth Serial port B is now being
open
Limitations
Though we have developed our software using the platform independent programming
language Java but our software is not totally platform independent at all.Our soft ware can
only read data from the serial port. It can generate signal from the PC. So we can perform
18. two way operation. Our software also can’t initialize the Bluetooth stack for dongle. It needs
a matching driver for the dongle.
Conclusion
This software is very much user-friendly. To use it one needs just to press button to control
pc operation. User don’t have to know the Bluetooth address of the server PC. It can
discover any Bluetooth device and there services around it.
This software is applicable for all versions of WINDOWS operating system. As maximum
computer users feel comfort to use this operating system. We are looking forward to improve
our software to make it truly platform independent and to implement the software in two way
communication.
Future plan
1.Our future plan is to stream music files and video files (.3gp,mp4,avi) from pc.
2. Accessing the internet via pc.
Resources:
1. Jdk 5.5
2. Net Beans IDE 5.5
3. Java how to program 6th edition
- Deitel & Deitel
4. The Complete Reference J2ME
-Herbert Schildt
7 . Bluetooth For Java
-Bruce Hopkins
8 . javax.comm package
19. Installation Process:
There are two parts of our software. One is developed for the mobile phone (client sided)
which must be installed in appropriate mobile phone. To do so,
1. Transfer the .JAR and .JAD file to the mobile phone provided in the CD.(recommended
to Bluetooth Serial port enable mobile)
2. Install it.
The other part is developed for the personal computer (server sided) which processes the
upcoming command and takes actions.This software is bundled with JRE-1.6 and does not requires
pre-installation of JAVA. It is also required to attach a blue tooth receiver to your computer if it is
not capable of receiving blue tooth signal. It is suggested to use a Bluetooth dongle. Now,
1. Install driver for your Bluetooth receiver device.
2. Install the Receiver software. To do that just double click the “Receiver.msi” file and the
software will be automatically installed.
3. See (Bluetooth driver software >My Service> Properties>Serial port B )
4. Select the port which is used by the Bluetooth receiver from the port list and open it
(suggest to select the Bluetooth serial port B).