
Jr C++ Developer
DTM TECNOLOGIAS S.A. de C.V – www.gatsimed.com
02/2024 – 08/2024
In this role, I was responsible for software maintenance and development using Qt C++ and QML (JavaScript) to create and enhance the user interface of Gätsimed's volumetric fan. I integrated specific modules into biomedical applications, such as a capnograph sensor for data reading and sharing between the UI and the electronic control system, and identified and resolved bugs to ensure the smooth implementation and operation of software systems.



Qt is a cross-platform framework used to build GUI applications in C++. In this project, it was used to create a responsive user interface for an embedded biomedical system by combining a C++ backend with a QML frontend. As a Jr. Developer the main project was the volumetric fan user interface:
-
Frontend: Originally implemented using Qt Widgets, the UI was later migrated to QML (Qt Modeling Language) for better performance on embedded devices. QML uses a declarative, JavaScript-like syntax to define visual components and behaviors.
-
Backend: Written in Qt C++, The entire code was written in a single script running on a Lenovo computer for each volumetric fan. During the migration process the Qt C++ code was divided into classes as well.
Due to confidentiality, I’m unable to share the original code.
However, the following is an example that I am permitted to share, since it was a prototype implementation developed before being integrated into the main codebase.
In this capnograph project, the QML layout for the user interface is defined in the corresponding file, allowing real-time visualization of the respiratory waveform.
The C++ implementation is split between capnograph.cpp and capnograph.h, which together handle serial communication with the capnograph sensor. The system reads and processes incoming data packets, extracts relevant information, and ensures data integrity. It identifies two main packet types: one containing real-time respiratory gas concentrations and another with calculated parameters such as EtCO₂. The data is then interpolated to create a smooth curve, and Qt signals are emitted to update the UI dynamically.
📁 Files
→It handles serial communication with the capnograph sensor, parses incoming data packets, and manage signal emission to the frontend to update the UI in real time.
→ Handle serial communication with the capnograph sensor, manage data parsing, and emit Qt signals. The system identifies two types of data packets: real-time gas concentrations and calculated respiratory parameters such as EtCO₂.
→ Sets up the application and bridges C++ logic with the QML UI.
→ Defines the main user interface layout and interactions.
I really liked this project because working with communication protocols is always interesting. For example, a logic signal analyzer was used to identify the frame, but all the data parsing and checksum calculation were done directly in C++ code. One important thing to mention is that in embedded applications, memory management is crucial. So, even though the documentation includes several references to filters for improving the curve, ideally they shouldn’t be used due to computational cost.