Technologies: C++, Direct3D, COM, ActiveX, MS Access (DAO)
Workload: 120 man/months
ProblemOur customer proposed development of software application for analysis of infrared images' sequences. The program was intended to receive images from infrared camera, display them and perform their real-time processing. Received sequence of infrared images could be stored and then played back. For analysis purposes, application user had to select area(s) and/or spot(s) on the image, and then observe time alteration of selected parameters of interest.
SolutionOur customer provided us with a prototype, which showed general functionality of the software application to be developed. Our specialists implemented the first functioning version of the application according to the ideas of the prototype and customer's requirements. When potential consumers showed their interest in the application, we decided to continue development. During that stage our specialists together with the customer repeated clarification and analysis of the project requirements. That caused refactoring of the existing system, and new architecture was developed, which allowed implementation of new functionality. As range of real consumers grew, we received feedback and new requirements. According to consumer's requests we either adopted the base-line version of the system for this specific consumer, or added new functionality into coming release.
We designed unit for communication with infrared cameras with special care. The application is able to communicate with more than 30 types of cameras produced by a dozen of manufacturers. We designed a universal interface that hides from programmer special features of hardware device drivers of different cameras. Now we possess vast know-how in programming of communication with such devices. We totally redeveloped GUI of the application. The first version was implemented using MDI MFC architecture. That GUI was user-friendly. But it contained complex graphical elements (infrared movie player, visualization of diagrams closely connected to internal data received from hardware devices, etc.) Standard implementation of MDI has some limitations that prevent development of the desired functionality. So we developed our own version of MDI and message dispatching sub-system.
Our specialists implemented components that display infrared movies, diagrams and graphs, and 3D image of infrared picture with use of Direct3D. User may store the results of analysis in a report created according to the designed MS Word template. Due to high popularity of the program, we localized it for several national languages.