Best way to handle multiple derived driver components? #4094
-
|
Hi, I'm new to F after being interested in using it for quite a while. I'm working on a project that will use multiple cameras with different interfaces in various hardware deployments. I want to develop a single CameraManager that implements command handlers, compression, and writing data to a file, and then create multiple instances of the manager, each with its own driver. The drivers would then handle a given camera vendor's specific interface, such as GigE or a custom TCP stream. As extra credit, I'd like to have one of the vendors write and test their driver, but not expose them to any F prime framework code. I'm considering several approaches to this using F prime components, all of which assume that CameraManager is an active F prime component with command handling, telemetry ports, etc.
I'm currently working on implementing option 2, and I'm able to instantiate a CameraManager and CameraDriver, and connect their ports. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
|
I am a fan of option 2. Multiple camera manager instances, controlling instances of camera drivers that are unique. You can bring-in the spirit of option 1 by defining a generic set of ports using a component interface, then have multiple camera driver components that use that interface alongside anything specific they need. Here is an example:
In item 1 we define a generic I2C interface that will be used by any I2C driver, and in item 2 we use it for a specific Linux I2C driver. |
Beta Was this translation helpful? Give feedback.
I am a fan of option 2. Multiple camera manager instances, controlling instances of camera drivers that are unique. You can bring-in the spirit of option 1 by defining a generic set of ports using a component interface, then have multiple camera driver components that use that interface alongside anything specific they need.
Here is an example:
In item 1 we define a generic I2C interface that will be used by any I2C driver, and in item 2 we use it for a specific Linux I2C driver.