References
This page shortly describes the references of Robot Control Software Ltd. from the point of view of the Custom Software Development.
1. Products
The best references are our own software products: the Speech Corrector (or "Varazsdoboz") and some software library we have developed in C/C++.
- Speech Corrector helps children to practice the proper pronaunciation of words and sentences. It is running under Microsoft Windows 95/98. Its previous DOS version was written in Borland Pascal. Speech Corrector processes the recorded sound real-time and displays something similar to the spectrum of the sound. It uses DirectX to provide fast response. The program uses sophisticated digital signal processing algorithms like IIR filtering and speech processing. These algorithms (written in assembly) are running on the Pentium processor, but the earlier versions used a DSP processor (ADSP2105).
- We developed a lot of small program components, test tools and a library for multi-platform software development. The most interesting product however is the Property Library, where we implemented the well-known "properties" in C++. With this library programmers can easily define and use properties of any C++ class. The library uses only features of the programming language, so it can be ported easily to any platform or compiler.
2. Programs Developed for Third Parties
The other group of references are programs developed for other companies.
- Integration test of an embedded ADA system. In this project we worked for the Hungarian office of ALSTOM, a huge international company dealing with train control systems. We took part in the integration test of an embedded software running on a tripicated Motorola (68025) computer board. The software is written in ADA language and designed according to the highest safety regulation for trains (CELENEC EN 50128). Our task was:
- to read all documentation
- understand how the system works
- build test cases for integrating the software
- execute the tests both in host and target environment
- check and review the documentation
The program supervises how the train is tilted in a turn of the rail. A lot of information is collected and processed real-time. The system measures the speed and acceleration of the train and receive messages from transmitters sitting along the rail. These messages describe the position of the train, the allowed speed and the distance of the next transmitter. Based on these information the systems calculates if the speed of the train is correct or not, and takes the appropriate actions, if necessary. This task seems to be simple, but the system forcasts, if the train is able to slow down until the point of the next limitation of speed. The major action is activating the emergency brake. All hardware components of the system is triplicated. The most difficult part of the software is the managment of the triplicated system. All inputs and outputs are changed and voted between the CPU boards and the faulty board is isolated by the others.
This project was very instructive for us. We learned how this company tries to follow the strict regulations of the standard, what kind of tools they are using and how the real task disappears in bureaucracy. Some software tools were used for developing ADA programs (ObjectADA, ADAworld) and a tool for generating test programs (VectorCast). Some other tools also were used for better navigation in the source code (UnderstandADA). No tools were used nor any efficient instruction was developed for managing the software development process, wich is very complicated in the case of high safety systems.
ALSTOM wanted us to use VectorCast for generating test programs and test cases, but we decided to develop our own test environment, because VectorCast was not good enough for our purposes. At the end, our decission was proved, because the other testers, who had to use VectorCast, failded running the tests in the target environment.
Another lesson is, that there is no support for multi-platform development in the ADA language. ADA is designed for embedded systems, where running the programs in host and target environment is a must, as it was required in the case of this project as well. Unfortunatelly the compilers for the host and target were different and there is no way to eliminate the differences. Two independent versions of the source must be handled and developed in parallel.
- QuickBell, an Internet Server application.We worked together with Lufthansa Systems Hungaria Ltd. on this relatively big project (10,000 man-hour). It is a client-server architecture, but the client program is able to provide most of the server's task locally, when the server is not available. The server runs on a powerfull Sun machine, while the client runs under Microsoft Windows. Both programs are written in C++ using our multi platform programming know-how and libraries (rMPL and rLib). The object oriented data structure is stored in Oracle database on the server side while ADO is used on the client side. A simplified version of Property Library was used and adopted to store the class hierarchy in database tables.
The application downloads information from the internet with several protocolls (HTTP, FTP, POP3, IMAP). The server and client program communicate through the internet using both UDP and TCP/IP protocoll. The multi-threaded architecture makes the situation even more difficult in multi-platfrom environment.
- Mason, a small utility program for processing Bison input files.This utility was developed for Ericcson and it is used in the development of TTCNv3 compiler. The program reads and analyzes Bison input files, creates the necessary data structures and actions (C codes in the Bison input file) for preparing the compiler generated by Bison to build the Abstract Syntax Tree of the TTCNv3 input file. Some additional function is also generated for constructing, destroying and dumping the Abstract Syntax Tree.
- Brake designer application for Continental-Teves. The data of vehicles, brakes and their components (booster, main cylinder, regulator, ABS, EBV) are stored in an Oracle database. The user can set all input data through input masks or forms, start a calculation and display the results graphically or in tabular form. The computations are fairly simple, but the whole application contains a lot of different calculation. A server application provides access to the database through the company's Intranet network. The client program is a standard internet browser. The calculations are done by a C++ program, which is executed on the server. The reports are displayed on the client side by the internet browser again. The diagrams are displayed by Java applets. This is a very complicated application, where a lot of different tools are used: C/C++, Java, HTML, server and client side java-scripts, ODBC, SQL, various Oracle tools.
- Freezer Control Program for Sy-Lab, Austria. The user interface and control program of the freezer are developed for Microsoft Windows NT, in Delphi 5. The user can define a "program" to control the temperature of the chamber. When the "program" is running, the software controls the temperature of the chamber while it monitors both the sample and chamber temperature. The program has an old version running under DOS. The user interface is completely redesigned in the new Windows version.
An Inventory Control System was also developed for manage the inventory of frozen samples. All information of samples and the hierarhical structure of the inventory is stored in database. The samples can be stored, moved and get, while the storing positions can be selected graphically. The program is very flexible and configurable for different requirements.
- Industrial data acquisition system collecting measurement data in heating centers for Procom GmbH., Germany. This program was written in C and it is running under QNX. The program originally was developed by another software team and we took over the development and maintainance of the system later. Some communication modules were developed (P90, K-Bus) and some changes were made in the system as it was required by new customers.
- Automatic warehousing system for a German company. This program is developed by another Hungarian software team. We developed the graphical user interface and we also took part in the development of the real-time simulator software. This program was developed in C/C++ and it is running under the QNX operating system. The graphical user interface is running under Photon, the state of the art graphical windowing environment of QNX. (QNX is a real-time UNIX designed for IBM PCs and embedded applications, the API of Photon looks very similar to X Window.)
- Special printer drivers for barcode printers for Episys Ltd., United Kingdom. Episys provides an MS Windows program for designing and printing bar-code labels. Bar-code printers have special commands to print the bar-codes quickly and efficiency. A special DLL was developed to transform the label designed by WYSWYG program to printer specific commands. The drivers were written in C++, but the setup program was developed by Delphi.
- Development and port of QDiagem from QNX to UNIX, X Window running on workstations (DEC Alfa, Sun) for Ask Ltd, Hungary. QDiagem is a SCADA (Supervisory Control And Data Acquisition) program originally developed for QNX and QNX Windows. This was a C/C++ project.
3. Experiences
- Building and designing a FFT processor, a digital hardware for very fast calculation of Fast Fourier Transform.
- Development of Speech Recognition System and integrate it to the DOS operating system.
- Development of SIGNAL*MATH, an interactive digital signal processing program. The user can collect some signals by data acquisition cards and perform FFT, spectrum analyzes, digital filtering, Wigner distribution and a lot of other mathematical algorithms. (SIGNAL*MATH was sold by Real Time Devices Inc., USA)
- Development of SIGNAL*VIEW, and interactive data acquisition and monitoring program. (SIGNAL*VIEW was developed for and sold by Real Time Devices Inc., USA)
- Development of device drivers for data acquisition boards of Real Time Devices Inc.
- Haemo Dynamic Monitoring system. Both the hardware and the software of this PC based measurement system was developed. It was collecting samples of the ECG and blood pressure and computes the patient's important physiological values. The program has alarm, monitor and backup features and an easy-to-use graphical interface. (Omikron Ltd., Hungary)
[ Home
| RCS
| rIDE
| SIMM-Sys
| SC
| Site-map
| Help
| Feedback
]
Robot Control Software Ltd.
Úrbéres u. 62/A., Budapest, 1028 Hungary; Tel:+36-1 398-0200 Fax:+36-1 398-0202