A leader in non-destructive testing, inspection and process controls needed assistance testing a powerful but malfunctioning embedded imaging system that includes a portable eddy current sensing device, which measures impedance changes in the test material. Results indicate presences of a flaw of some sort, such as scratches, corrosion, nicks, cuts or thermal damage.
Designed using OpenGL visual data displays, the system had several performance problems. Most worrisome, the system would periodically stop working for no apparent reason, which prevented product shipment. Since the issue was only occurring on the device and not in the development environment, finding these problems was quite difficult with limited debugging and profiling tools.
The ICS team took an investigative, problem-solving approach leveraging its extensive OpenGL knowledge. ICS initially researched debugging and profiling tools requiring third-party support but determined that traditional debugging methods using code analysis and debug print statements would be as effective and more budget friendly. Through painstaking code review, ICS’ engineers identified several OpenGL driver bugs that caused the device to crash or lock up, and created workarounds that stabilized and improved the system so it could be delivered to customers. For instance, ICS identified an issue where too many OpenGL contexts were created which eventually locked up the system. The ICS team’s solution was to limit the number of contexts by using a pool that recycled resources.
By identifying critical glitches and implementing well-researched solutions, ICS enabled the customer to confidently release its new product, which has met with great success. The customer is currently working on a new release that integrates the now-smoothly-operating system with other industrial equipment, such as that found in a production-line environment.