About ADI Practice Areas Service Offerings Technology Careers Home
Case Study
Search  
 
 
You are here :: Home : Case Study - KeyTrapper
   
Go back
KeyTrapper

Background and Business Requirement
KeyTrapper, as its name suggests, is an interesting key trap utility that is designed to capture the key press events off a mobile phone and transmit them over to a desktop PC running Windows NT. KeyTrapper was intended to be used as a part of a larger mobile application being developed at the customers end. ADI’s Mobile-Wireless and Embedded expertise were engaged in the development and deployment of this crucial component of the parent application.

Solution
Based on the requirements, we worked out an efficient design which matched the performance expectations from the solution. According to our design, the asynchronous connectivity between the phone and the PC is through Bluetooth technology. The solution setup required that the PC and the phone first be paired using to Bluetooth standard protocols. Once captured, the key press event from the phone is transmitted and then translated on the PC based on a pre-configured key mapping. The process of key capture and transmission was under tight performance requirements of latency times – less than 1/24th of a second.

This solution was designed and developed as a 2 part application – one running over the phone for key trapping and transmission, and the other executing over the PC for key receiving and translation. This solution was targeted at Symbian based smart phones which are the current rage in mobile information devices. The key trapping routine for the phone was developed under the VC++ environment coupled with the Symbian SDK. The smart phones involved in the process of development were Nokia 6600 and Nokia 3650. This Symbian application running on the phone would transmits Key events – KeyUp or KeyDown, along with the key scan code to the desktop PC. The transmission was in the form of strings, and was handeled by the Bluetooth Client Controller interface. The application running on the phone would also transmit PING commands at regular intervals such that the service running on the PC would discover if a connection was lost.

The desktop counterpart of the solution was developed as an NT service that could execute over Windows XP and Windows 2000. This NT service was made available as a desktop tray icon and once started, the service would maintain an asynchronous Bluetooth connection with the phone, generating keyboard events over the PC in reaction to key press events received from the phone. According to the requirements, the key mappings between the phone and the PC were user-configurable where the user could define custom key mappings in a configuration file.

The service application listens on a virtual Serial COM port (created by the Bluetooth device driver) for any incoming data. On receiving the data, the service checks the type of key event received (KeyDown or KeyUp) and based on the received key scan code it retrieves the corresponding mapped key value from the configuration file. The retrieved key code for the PC is then posted into the system keyboard buffer in the form of a Key event (KeyDown or KeyUp).

An interesting scenario handled here was that of a continuous key press on the phone. This would generate a single KeyDown event for the entire duration of key press, and a single KeyUp event once the key was released. In order to interpret the continuous key press over the PC, on receipt of the first KeyDown a thread is spawned that repeatedly generates KeyDown events, of the last received key code; over the PC, and this continues till the arrival of the corresponding KeyUp event from the phone. An event timeout would be registered if the spawned thread does not receive a corresponding KeyUp event or a PING command.

The development phase was followed by a detailed testing cycle. Since KeyTrapper was to be used as a key component for its parent application, it was expected to offer robust and error free operations. The testing phase included elaborate Installation, UI, Unit, Functionality, and Regression Testing modules.

KeyTrapper designed and developed for a small feature set involved a short development period of 2 weeks and engaged a team of one manager, one developer and a QA. Within this short time span, an application prototype was developed aggressively over 4 days, with the final tested stable solution delivered in the next week. We also offered a support period of one calendar month during which minor functionality changes were carried out. Our timely quality deliveries of the prototype and the final solution helped the customer meet his schedules thus adding another feather to our customer satisfaction levels and opening up future business prospects for us.

   
Technology Used
  Symbian SDK
  VC 6.0
   
 
Contact Us | ADI Products | Sitemap | Privacy Policy Copyright © 2004-5 Amiga Development India. | All Rights Reserved.
  Site best viewed at 1024 X 768 monitor resolution.