A leading US based pharmaceutical instrument manufacturer needed to develop a new Tablet Dissolution instrument. The instrument would have multiple vessels. The instrument could work in stand-alone mode or in conjunction with other systems.
The instrument would have an on board Windows CE powered embedded microcontroller featuring a color LCD with touch screen. The microcontroller controlled the motor for the rotating shaft , interfaced with the temperature sensor and heaters for each vessel. This instrument required an attractive and easy-to-use Graphical User Interface (GUI) driven application to match its ultra-modern exterior / mechanical design. The goal of the project was to design, develop and test the Windows CE based Embedded Software application. The application would provide support for device communication, configuration, control and support for data access and analysis.
The application was conceived and designed to provide a rich experience to users. The back end code was written in C#. Most of the UI elements were created as images to create high tech look and feel to the application than that was possible using the controls provided by .NET Compact Framework on Windows CE. Custom UI controls were developed for scrollable tables, buttons, custom labels, pop-up menus, information display tables, tabs, date and time picker, check boxes and radio buttons. Custom controls included three types of virtual numeric keypads, an alpha-numeric keypad and a multiple-option selector for data input.
Since the application was intended to run in kiosk mode, some of the operating system level functions/services had to be implemented in the application. The user has the ability to view and input system parameters like IP address, subnet mask, default gateway, system date, including support for US and EURO formats and time. The user can specify a sleep time for the LCD display and can enable/disable a customized touch tone.
Encrypted files were used to store data generated from the application. Settings, user created Methods, reports of the different test runs, audit trail etc. formed the contents of the encrypted data storage.
The application required an authentication mechanism to login. This was accomplished by allowing User creation and modification along with their passwords and privilege levels. User credentials were retrieved at login to ensure that the users gain access only to functionality that their privilege levels entitled them to.
One of the constraints on the software was the low memory availability. This was solved by creating objects on the fly, especially that of the different screens, only when required (for the first time) during the application. Once created the objects are stored in memory to avoid re-recreating them when they are required again.
During dissolution test runs, the application is required to display run-time information. This is achieved with the help of a timer that refreshes the displayed information on the screen periodically. This process involves fetching the current temperature and RPM information of each of the shafts along with the test run specific information like elapsed/remaining times and updating the screen with this new information periodically. This goal was accomplished in a manner where no delays are noticeable and the UI retains its responsiveness. The performance does not degrade even when test runs go on for days at a stretch.