-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add CACAO streams alongside data streams. #264
base: develop
Are you sure you want to change the base?
Conversation
Thanks for clarifying no impact on performance of the streams. |
Do you also want to handle milk's semaphores to wait and publish new data ? |
Right now, this PR aims for very loose coupling: just distributing ImageStreamIO streams alongside proprerties, methods and data streams already in catkit2 services. Interacting with that ImageStreamIO stream would be purely via their library, so via the ImageStreamIO library itself (for C++ compatibility) or via ImageStreamIOWrap or pyMilk (for Python compatibility). On the C++ side, the All of this to say: CACAO would still own its image streams. Catkit2 would just simplify connecting to them inside a service, since you only need to write the filenames inside the service itself, and that attribute would be available to all of catkit2, already opened and ready. I'm not burning my hands yet on full integration of CACAO streams into catkit2 via the same interface as DataStreams. It feels like they are too dissimilar to make that easy.
Yes. I'm still confused by what CACAO is using. I was under the impression that CACAO used ring buffers for all image streams too. But after talking to Vincent and Olivier, it seems that is not the case? While that gives obvious advantages in cache usage (the reason I was told/remember from our conversation), data corruption seems a real issue with that imo. Catkit2 uses ring buffers by default to avoid data corruption (unless the reader is so slow that the writer catches up to it in the ring buffer). |
7fc0fac
to
ae80cfb
Compare
OK ! Thanks for the clarification |
This PR makes it possible to use CACAO streams as part of the service, natively distributed alongside catkit2 data streams. This simplifies the interface and makes cacao streams easier to access.
It makes data on CACAO processes visible on catkit2 services with a minimal interface. This allows catkit2 services to control a CACAO RTC. It does not however make catkit2 data streams available to CACAO processes.
There is no impact on the performance of catkit2 streams. @RemiSoummer
Todo: