Basics About Microservices
Episode 59
Applications and services mediate between users and machines. They represent the core business. Embedded systems often start out as a single application, but typically end up as multiple applications and services. Our experience lead us to the adoption of a winning strategy. We organise applications and services as microservices and design them according to the ports-and-adapters architecture.
Episode 59
When developing the operator terminals for their machines, OEMs must reinvent the wheel over and again. Each OEM implements home-grown solutions for standard features like OTA updates, user authentication, factory installation, machine gateways and IoT gateways. None of these features
How hard can it be to write a Yocto recipe for building a Qt application with CMake? Actually, it turns out to be pretty hard. I have seen my fair share of slow-and-dirty workarounds (nothing is ever quick with Yocto,
The ports-and-adapters architecture should be the standard architecture for HMI applications. Its parts are loosely coupled, cohesive, easy to test and easy to extend. We can apply the reverse Conway manoeuvre to create self-dependent teams with minimal dependencies on other
Qt for Memory-Constrained Devices
I gave a talk at Meeting Embedded 2021 on 4 November 2021. First, I introduced the hexagonal architecture (a.k.a. ports-and-adapters architecture) in general. Then, I showed a walking skeleton of the architecture for a harvester terminal. Here is
Creating an architecture means answering many questions about the ecosystem, in which the Qt embedded system operates. While the questions are very similar for all Qt embedded systems, the answers and their priorities differ. So, you should be able to
Our quest for a successful architecture of a harvester terminal continues. In this episode, we discuss when a system with a single application is good enough and when a system with multiple applications and a window manager is the better
Our Qt embedded system is displayed on a monitor mounted in portrait orientation. The system runs the Wayland compositor Weston as a window manager. HMI applications are shown rotated by 90 degrees - in landscape orientation. The system toolbar of
A fairly common anti-pattern found in Qt applications is to derive a class MyApplication from QApplication and to have it hand out pointers to a dozen or more major components of the application. Similar to Qt's qApp macro,
The screenshot above shows the home screen of a sugar beet harvester. The home screen receives roughly 50 CAN messages per second and displays the contents of the CAN messages numerically or graphically. Every number on the home screen is
Recently, I brought up Qt 5.5 on a Freescale i.MX35, which has an ARM11 CPU but no OpenGL support. Despite the missing OpenGL, I wanted to write the HMI with QML. The additional challenge was that the cross-compilation