The project target is building an electronic PC Remote Control, having Bluetooth as the primary network communication protocol. Our first aim is the study of the Bluetooth standards and specifications and second aim it is the development of an application, a multi-platform, multi-system, universal PC remote controller.
How it all started
The motivation for this project arose back in 2006, when we took part at the National Student Symposium. Our problem was in advancing and describing the presentation slides as we had to move from the PC to the front of our audience and back. This movement was a waste of time but we had no other solution. In order to decrease this time we saw the need to have a PC remote. A remote that will work on any operating system and on any platform. In order to grow our motivation we have made a study through our teachers and colleges on our idea. The results where in our favor. Many of the questioned persons have sustained that a universal remote for PCs will be very useful software and a gladly received product.
What is so special about Bluetooth PC Remote
BPCR (which stands for Bluetooth PC Remote) is a program – a personal project, made in our free time – that enables remote controlling of a computer using as controlling device a Java based phone or PDA, and the connectivity medium, Bluetooth.
There are only a few other computer remote control applications on the software market and most of them are created for Windows based phones or PDA and the important thing is that none of these applications was created in Romania or have a Romanian programmer involved in it.
This application implements the server-client architecture because naturally our system comprised of two components, which are the computer (server), and the phone or PDA (client). Most of similar applications are created using C# so they only work on Windows based phones or PDA.
The great benefit of this application is that it can be used with all mobile devices because the remote control’s operating system, which is in many cases Symbian for phones or Windows CE for PDAs, has built in Bluetooth libraries that are available to programmers and also a java virtual machine to run any Java based application on it. The client side uses these libraries to perform Bluetooth operations.
So, in our aim to realize a universal, in the good way, PC remote we have choose as language the Java language – the only language that it is platform – independent, device independent, more reliable and used almost in everything in our daily life.
In order to realize the connection between PC and a mobile phone we use the Bluetooth, which improves our universal concept, because in our day’s more mobile phones supports Bluetooth connection.
Our application describes the functionality of a remote controller and its basic common actions; the basic actions such as moving the mouse cursor on the PC screen, execute a mouse click/double click or a key stroke, are implemented for the project first version; for the second version the highly used application are implemented for a full control – here I talk about Microsoft Power Point, Winamp and Microsoft Media Player. The project it is divide into two parts: the server – a J2SE based implementation using as network and communication protocol the Bluetooth and the client – a J2ME based implementation using the newest supported libraries for the mobile devices.
The server functionality it is complex but we try to presents it in a summary way:
- discovers the client who – is a Bluetooth-enabled mobile phone – sends request to server (conform to the BPCR Protocol)
- listen the client request
- interprets them and executes the corresponding action.<.li>
Being a application based on XML, the server configuration, defined actions are described in an external XML file.
At the startup the application initialize itself :
public BPCRServer() {
// --------
synchronized (this) {
// read the previous saved settings
initializeConfiguration(configFile);
// initialize the OS native controller
initializeControl();
// initialize and opens the communication channel
initializeCommunication();
}
// The Java Tray Icon it is supported only for JDK 1.6.0
// If you OS have not implemented a tray section
// the application will not run
initializeTray();
// -----------
}
After initialization the server listens to the client request (if any) and responds with a success / error message and executes the specified action :
public synchronized void processRemoteMessage(Message msg) {
// evaluateType
if (msg.getType() == Message.REQUEST_PC_REMOTE_ACTION){
handleRequestMouseAction(msg);
} else {
// process an unknown action request message
}
}
Any message received it is analyzed and interpreted by the MessageInterpreter which decides which action , according to the message should be executed.
public class MessageInterpreter implements BPCRListener {
// ----------------
public void readAndExecute(String message){
if (isKeyAction(message)){
String command = KEY_PREFIX + message;
listener.executeAction(new BPCREvent(command));
}
}
// ----------------
public void executeAction(BPCREvent event) {
RobotActionLuncher.executeAction(event.getEvent());
}
// ----------------
}
The Server Robot check and retrieves the action definitions from the XML file and according with the received event executes the action – defined in settings.
The client functionality it is simpler: discover the blue server, connects to it and send the user request to server in order to be executed.
// device discovery
private void searchForDevices() throws IOException {
// -------------------------
try {
final LocalDevice localDevice = LocalDevice.getLocalDevice();
localDevice.setDiscoverable(DiscoveryAgent.NOT_DISCOVERABLE);
// this is non-blocking
DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent();
discoveryAgent.startInquiry(INQUIRY_ACCESS_TYPE, this);
} catch (IOException e) {
// process exception – if any
}
}
// for the selected device – the service discovery
private void searchForService(final RemoteDevice device) {
final String deviceName = getDeviceName(device);
UUID[] uuids = new UUID[1];
uuids[0] = uuid;
try {
int[] attrSet = null; // default attrSet
DiscoveryAgent discoveryAgent = LocalDevice.getLocalDevice().getDiscoveryAgent();
int transactionId = discoveryAgent.searchServices(attrSet, uuids, device, this);
} catch (BluetoothStateException e) {
// process any exception
}
}
If the services are discovered then the client connects to the server and request a application confirmation. After the server communication it is established then the client can start sending actions request to server in order to be executed.
At its second version the application runs only on Microsoft Windows platform. The Linux support is scheduled for the third version.
The project team is made from:
- Gabriel Sofonea (project coordonator)
- Laurentiu Ciovica (server-side programmer)
- Eugen Cojocaru (client-side programmer)
- Liviu Ciovica( interface designer )
Finally, there’s another very important peculiarity of what does Cialis that brings it so high above its alternatives. It is the only med that is available in two versions – one intended for use on as-needed basis and one intended for daily use. As you might know, Viagra and Levitra only come in the latter of these two forms and should be consumed shortly before expected sexual activity to ensure best effect. Daily Cialis, in its turn, contains low doses of Tadalafil, which allows to build its concentration up in your system gradually over time and maintain it on acceptable levels, which, consequently, makes it possible for you to enjoy sex at any moment without having to time it.
Can i download the full script?
October 31, 2007 at 1:35 pmBecause i want to learn about it.
Thank you very-very much before.
Could I also have a look at the code?
November 26, 2007 at 1:30 amThanks in advance
November 26, 2007 at 1:30 amthanks for the information….am looking for a similar project for my final year engineering….. can i get some extra information on how to implement it?? about the hardware to use…i need your help..
December 13, 2007 at 11:41 pmthank you
I am a computer engineering student
and have a graduation project which
is remote control pc application
with mobile phone using bluetooth technology.
there are some programs on the internet but
i need to source code and documantations,
totarials, example videos about
remote control with mobile phone software.
My phone is NOKIA N72 and i use the
java programming language or c#
developer interface.
please help me in this situation.
thank you very much…
take care…
December 25, 2007 at 6:30 pmI am a computer engineering student
and have a graduation project which
is remote control pc application
with mobile phone using bluetooth technology.
there are some programs on the internet but
i need to source code and documantations,
totarials, example videos about
remote control with mobile phone software.
My phone is NOKIA N72 and i use the
java programming language or c#
developer interface.
please help me in this situation.
thank you very much…
take care…
December 25, 2007 at 6:31 pmsend me : tanquy2003@yahoo.com
Hello…
I am very much interested in the Bluetooth based remote. I wanted to know if it was possible for me to see the entire code. Will it be compatible with Sony Ericson W700i..??
Thank You
January 7, 2008 at 11:15 amHi,
I am doing a project on this software too, and i am really do not know how to start. Are you able to send me the whole software??
Is it freeware?
Thanks!
January 20, 2008 at 8:26 pmPlease reply soon.. =)
Hi people …im doing bluetooth remote control for pc as my final year project ….i had only little success with it now am stuck so if any one has the code could u pleaseeeee send it …I would be really greatful if anyone could send it…
thanking u in advance :-
February 26, 2008 at 10:02 amcan i have a full detail and the source code???
because im very interest in this…..even i finish my fyp already….
thank u very much….
April 16, 2008 at 10:14 amhae even i m final year BE student….can i plz get the code n the documentation ….it will b a great help…
April 21, 2008 at 10:42 amThe code will not be made public, yet!
April 21, 2008 at 3:17 pmAnswers for your comments will be send from my personal email address .. Thank you!
Hello, could i possibly get the full source code?
May 10, 2008 at 9:10 amThank you.
Hello, may i get the full source code and documentation?
Actually I’m a Mobile Computing student, and i have one project also need to develop the program almost similar above program and i have face some problem on it, so i need some example source code and documentation to refer on it. so i hope you can give me some helping on it.
Thanks.
dennis_mgtf@hotmail.com
June 20, 2008 at 8:21 pmHello
May I please get the full source code of this project as i am stuck with a problem in my project which is used to develop same kind of application.
Hoping a positive response
Thanks
June 20, 2010 at 5:48 pmparab.ruchika@gmail.com
Hello,
As i said in a previous comment the code is not available for download.
Thank you for your understanding.
Please write me an email with your problem and we can find a solution.
Thank you!
June 22, 2010 at 8:12 amLaurentiu
can i get more projects
June 28, 2010 at 8:50 amPlease send me anyone if you have got the code for this project in either java or .net
on my below id , I require it for my M.Sc CS Last year.
rajkumarpomaji@gmail.com or rajpomaji@yahoo.com
December 20, 2011 at 10:06 pm