I think that we can consider any system that use “inputs” (involving sensors) to drive “outputs” (involving actuators) as a “control/command system”. Sure, there are several levels there, but we can find similarities…In general, such systems control costly machines (see e.g. robotic systems, flexible manufacturing systems, complex heating systems…etc…), that are connected to an environment (e.g. a human operator).

Such systems are often critical systems and errors occurring during their execution may have economical or human consequences.
Control/Command systems have been used for decades to manage industrial processes and manufacturing environments. With the introduction of new intelligent systems in our lives, it’s important that we find ways to keep these systems software development effective.

We’re looking to develop a software foundation that can help “control/command systems” become more reliable, efficient and flexible, with a smooth development process, by applying software engineering principles and techniques like:

  • SOLID / Component based architectures
  • Domain-Driven-Design
  • Clean architecture (The system purpose is clear. No framework marriage.)
  • Constant refactoring
  • High code coverage by tests (~90%)
  • CI/CD – DevOps Workflow

This will help us create a system that is both easy to use and reliable, which will allow us to scale up without any major technical obstacle. One long term benefit is the ease to change technologies and platform of the systems, without starting our software “from scratch” (e.g: Converting a well-designed C++ application to Rust sounds really realistic). A software application deserves a language that fit well its needs 😉

We’re excited about this project because we believe it could be a game-changer in the way companies keep the control of their software, as they continue to evolve into the future.

On following diagrams, the green parts are the ones where we can bring our knowledge and skills. Mostly the core heart of our jobs…The yellow ones are those were we can help, but where we have still to learn. Our current staff does not allow pretending being expert at that level…
The orange/red parts are out of scope for us. The software will evolve to fit as many hardware as possible, as better as possible 🙂 We do not choose hardware for you…but we are open to help and brainstorm on that subjects.

Embedded System Example

Control/Command System Example

Control/Command System Example

Find other details here:
  • CPU Board Software Layers (Software Level)
  • Supervision Softwares
  • Electronic Boards Responsabilities (Firmware Level)
  • COTS equipments (Firmware and/or Drivers)
  • Automation
  • Peripherals (Drivers)