Adds the final layer of the pipeline: a minimal Qt5 GUI that displays integers received from the ConsumerThread in real time.
Changes
MainWindow.hpp: declares MainWindow, a QWidget subclass with an onValueReceived(int) slot and a lastDisplayedText() accessor for testing
MainWindow.cxx: implements the widget: two labels, a bold 24pt value display, updates driven by Qt's queued signal/slot mechanism (GUI thread never blocked)
main.cxx: wires the full pipeline: ConsumerThread → MainWindow slot, - Producer → UnixIpcBridge; graceful shutdown on QApplication::exec() return
test_main_window.cxx: headless GTest suite (offscreen Qt platform) covering label update on single/multiple values and non-empty window title
CMakeLists.txt / CMakeLists.txt: test_main_window and app build targets respectively
Notes
Producer logs to producer.log to keep stdout clean for the consumer
All tests pass (ctest exit 0)
Test project /workspaces/azkoyentechnicaltest/build
Start 1: test_sysfs_reader
1/5 Test #1: test_sysfs_reader ................ Passed 0.00 sec
Start 2: test_producer
2/5 Test #2: test_producer .................... Passed 1.01 sec
Start 3: test_ipc
3/5 Test #3: test_ipc ......................... Passed 0.01 sec
Start 4: test_consumer
4/5 Test #4: test_consumer .................... Passed 0.05 sec
Start 5: test_main_window
5/5 Test #5: test_main_window ................. Passed 0.01 sec
100% tests passed, 0 tests failed out of 5
Total Test time (real) = 1.09 sec
No new runtime dependencies beyond Qt5 Widgets/Test already in the project
Adds the final layer of the pipeline: a minimal Qt5 GUI that displays integers received from the ConsumerThread in real time.
## Changes
- MainWindow.hpp: declares MainWindow, a QWidget subclass with an onValueReceived(int) slot and a lastDisplayedText() accessor for testing
- MainWindow.cxx: implements the widget: two labels, a bold 24pt value display, updates driven by Qt's queued signal/slot mechanism (GUI thread never blocked)
- main.cxx: wires the full pipeline: ConsumerThread → MainWindow slot, - Producer → UnixIpcBridge; graceful shutdown on QApplication::exec() return
- test_main_window.cxx: headless GTest suite (offscreen Qt platform) covering label update on single/multiple values and non-empty window title
- CMakeLists.txt / CMakeLists.txt: test_main_window and app build targets respectively
Notes
Producer logs to producer.log to keep stdout clean for the consumer
All tests pass (ctest exit 0)
```ctest
Test project /workspaces/azkoyentechnicaltest/build
Start 1: test_sysfs_reader
1/5 Test #1: test_sysfs_reader ................ Passed 0.00 sec
Start 2: test_producer
2/5 Test #2: test_producer .................... Passed 1.01 sec
Start 3: test_ipc
3/5 Test #3: test_ipc ......................... Passed 0.01 sec
Start 4: test_consumer
4/5 Test #4: test_consumer .................... Passed 0.05 sec
Start 5: test_main_window
5/5 Test #5: test_main_window ................. Passed 0.01 sec
100% tests passed, 0 tests failed out of 5
Total Test time (real) = 1.09 sec
```
No new runtime dependencies beyond Qt5 Widgets/Test already in the project
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds the final layer of the pipeline: a minimal Qt5 GUI that displays integers received from the ConsumerThread in real time.
Changes
Notes
Producer logs to producer.log to keep stdout clean for the consumer
All tests pass (ctest exit 0)
No new runtime dependencies beyond Qt5 Widgets/Test already in the project