F' Scheduler or Priority Queue #756
-
Hello, I have a lot components in my Top design and most components wants to talk to more than 2 components so I don't see the point of creating send and receive port. It can easily make my design complex. So I wanted to take the publish and subscribe approach, where each component sends the data to the hub with the sender's address/name and then the hub can take care of the rest. For this I have to add one send and receive port. (which makes life a lot easier) |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
fprime uses a point-to-point communication architecture because it tends to be easier to reason about and autocoding can make up for the added boilerplate code. Since embedded systems' architecture tend to be static, the flexibility of a messaging bus architecture doesn't provide a lot over and autocoded point-to-point system. That being said, there is nothing wrong with messaging buses, publish-subscribe, or any other more dynamic messaging schemes. These can work well and can allow dynamic registration of clients. However, it comes at the cost of message collisions, filtering/routing of messages, and a lot of connections to the hub or bus module. You could architect a Hub/Router component taking in an array of send/receives from everyone and it could perform the message routing. If it is an active component, it would have its own thread to run on....otherwise drive it with a rate group or something. Os::Queue has priority to it, but I don't know if this will work for your prioritization needed or not. |
Beta Was this translation helpful? Give feedback.
fprime uses a point-to-point communication architecture because it tends to be easier to reason about and autocoding can make up for the added boilerplate code. Since embedded systems' architecture tend to be static, the flexibility of a messaging bus architecture doesn't provide a lot over and autocoded point-to-point system.
That being said, there is nothing wrong with messaging buses, publish-subscribe, or any other more dynamic messaging schemes. These can work well and can allow dynamic registration of clients. However, it comes at the cost of message collisions, filtering/routing of messages, and a lot of connections to the hub or bus module.
You could architect a Hub/Router compone…