Running rpcd locally for SiL

Hi there,

In my company, we are using OpenWRT 21 as base Image for our controllers.

Our daemons are organized in a modern microservice architecture. Each service has got its own ubus interface. Over a call&response mechanism some daemons are connected to synchronise them.

Only our HMI is not a directly part of our architecture. It uses the rpcd and a own written jsonrpc API (JavaScript) to connect to the system.

With getter/setter ubus methods, it is possible to change the working process of our system by some specific settings, even during runtime.

So far, certainly a widespread system setup among all who use OpenWRT industrially.

In order to improve the quality of our products, we started to write a mock/fake for each service that relies on external hardware (e.g. network devices).

This allows us so far to run all services, or their mock, in our development environment, so we can build an SiL, not need real hardware.

The only problem with this is that we haven't written a mock for the HMI yet. Since user input can also only be simulated to a limited extent, I refuse to do that either.

For the HMI development, however, we went the opposite way. We have built a mock of the entire system, which of course only relatively poorly replicates the runtime of the system or simulates the system only to a limited extent.

Now I would like to bring both worlds together, our real HMI without hardware and without system mock with the previous SiL, which had no HMI so far.

Our HMI does not need to be controlled via a display. It can be started on a node server on a development computer. Just like the whole SiL of our system in an IDE.

We can already operate the Ubus through our pipeline. So far only via the command line.

What is missing now, the rpcd, which operates the Ubus like on our real system, so that the jsonrpc calls of the locally running HMI can unite with the locally running SiL.

Actually a simple solution. But unfortunately I can't get the rpcd to work in CLion.

Does anyone have any ideas? Ubus Environment is set. Environment variables seem to be correct. Could this be due to the compilation of the rpcd service? Or any settings?

Kind regards
Matthias