DMC worked closely with the Client to establish the requirements for the software. It was then developed and tested while working closely with the Client's internal team of engineers.
Two applications were developed for this system which includes the primary server application and a client application. Here, the server program runs the actual tests and the client is used for test monitoring, configuring, starting and stopping the tests.
The procedure for data acquisition and test execution uses a highly parallelized architecture to maximize efficiency of the program. This allows for a high device and test count in the system. The server also has the option to operate in a 'Stand-alone' mode without clients to allow tests to run at faster sampling rates. Another key feature is that the hardware configuration can change while the application is running such that devices can easily be added and removed.
Channel configuration is also highly customizable. Depending on the device, channels can be configured for various parameters such as thermocouple type, and current/voltage ranges. Each test channel can also be set up for data monitoring by setting alarms if readings reach a specified threshold. Any particular channel or hardware configuration can also be saved for later use. There is also the capability for customizable test scheduling. A unique start time and test duration can be specified for each test that is run. Email notifications can also be enabled for delivering the test results. In addition to these channel configuration features, a tree based point and click UI was developed for easily viewing and editing large channel lists over multiple devices.
With the client application all that is needed is the server hostname or ip address to establish a connection. Once connected, a list of all active tests is displayed for viewing. Test protection is in place by binding tests to a userID for the corresponding remote client that started them. Thus, a test can only be stopped by the user who started it.
Extensive system logging was also included. A console based logger was implemented on the server with configurable levels of logging verbosity. A physical log file also exists to track test creation, start, stopping, alarms, events, and errors.