Need some work done? Post a Project Today
A java application is needed (J2SE 1.6.x) which synchronizes the content of an Blackberry with a windows-based PC.
The content of this mobile phone consists of:
· Basic Phone Data (Manufacturer, Model, IMSI, IMEI, HW Revision, SW Revision, Battery Strength, GSM Signal Strength, Phonebook capabilities, File System structure, Organizer capabilities and structure, SMS capabilities and structure)
· SIM and Memory Phonebook entries (Read, Write, Delete)
· File and Folder Content (Read, Write, Delete)
The first phase is required (basic phone data and phonebook handling) whereas the second phase (files handling) will be delivered upon the completion and the approval of the first phase.
Microsoft Windows -- versions: XP, 2000, VISTA, 7
Swing-based GUI application
The role of this layer is for testing reasons only. No need to perform extra component design or use a nice LAF, except of these contained in the core J2SE release. Additional info and examples can be given upon request.
The middle layer consists of a set of classes that perform the required business logic. As business logic consists of all the functions and methods that perform the reading, writing and deleting of phone content. For example, in order to read the phonebook entries of a phone, proper protocol should be used (OBEX, AT, etc) to read in a lower level the content and convert this content into higher level phonebook entities.
Thus, it is required, for each phone, to have a set of classes that each one represent one functional aspect. PhonebookHandler, FileSystemHandler, SMSHandler, OrganizerHandler, BasicDataHandler and ConnectionContinuationHandler.
The basic data handler entity class is responsible for reading generic data from a mobile phone. Generic data refers to Manufacturer Name, Model Name, IMSI, IMEI, Phone HW Revision, Phone SW Revision, Phone Battery Strength and Phone Signal Strength.
ReadGenericPhoneData(int phoneid) -> GenericPhoneData
The connection continuation handler entity class is responsible for sending, in a predefined period of time, a certain request in order to ensure the continuation of connection with the mobile phone. There are cases where a mobile phone detects a lack of data exchange, thus it assumes that the connection is down and stops responding.
This class will send, after 30 seconds for example, a request for a battery status or signal etc, thus the communication with the phone will be always up. Furthermore the data for battery status and strength will be always updated.
ReadContinuationData(int phoneid) -> ContinuationData object
The phonebook handler entity class is responsible for reading writing and deleting phonebook entries in a phone.
readMEMPhonebook(int phoneid) -> List of PhonebookEntry objects
readSIMPhonebook(int phoneid) -> List of PhonebookEntry objects
writeMEMPhonebook(int phoneid, List(phonebookentries)) -> success/not
writeSIMPhonebook(int phoneid, List(phonebookentries)) -> success/not
deleteMEMPhonebook(int phoneid) -> success/not
deleteSIMPhonebook(int phoneid) -> success/not
The FileSystem handler class entity is responsible for reading the folder and files structure of a phone. It is also capable to read, write and delete files on these folders. Folders can be also created by this class. The protocols to be used can be either AT, OBEX etc depending on the phone specification.
ReadFileSystem(phoneid) -> FileSystem, success/not
CreateFolder(phoneid, folderpath, foldername) -> success/not
ReadFile(phoneid, folderpath, filename) -> byte , success/not
WriteFile(phoneid, folderpath, byte) -> success/not
DeleteFile(phoneid, folderpath, filename) -> success/not
DeleteFolder(phoneid, folderpath, foldername) -> success/not
OrganizerHandler, SMSHandler, JavaLoaderHandler
For these entities, requirements will be given in the third phase.
The lower layer is just a set of functional components written in .NET or Java language that are responsible only for the communication of the phone with the middle layer. This layer has no specific logic (the AT, OBEX or other protocol logic is not stated here), it just connect or disconnect to the Serial Port and transfer the request provided from the middle layer and back.
The final functionality should be provided by a set of methods and functions that send and receive the proper protocol byte array from and to the Blackberry.
Functions / Methods
- Connect(int portid) -> int phoneid
- Disconnect(int phoneid)
- Request(int phoneid, byte content) -> byte reply
- ReadPortCharacteristics(int portid) -> PortCharacteristics object (type, name, prop.baud rate etc)
- PortFound(int portid)
- PortLost(int portid)