-
Notifications
You must be signed in to change notification settings - Fork 22
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
How to create an OCA device containing such as ”ocagain” object #31
Comments
Please have a look at OcaToolsAndDemos/OCAMicro/OCAMicro/Src/app/Stm32CortexM3/OCALitePrototype/OCALitePrototype.cpp Line 157 in 9ab9d46
This shows how to instantiate object and ensure they are available over the network by adding it to the rootblock. |
Thank you very much for your reply. I will try it. Another issue: If multicast streams are transmitted between devices
|
-> There is no default class as far as I know; also I would believe this is always a result of something. Say you want to receive an multicast audio stream. You would start receiving that audio (which would be more or an OCA action). The platform layer then detects, this is a multicast address so I would need to do an IGMP join. That aside, you can make a proprietary class for your own functionality influence IGMP (e.g. to leave / join a multicast group).
Hope this helps. |
Thank you very much for your answer. |
Please have a look at the code in https://github.com/OCAAlliance/OcaToolsAndDemos/tree/main/OCAMicro/OCAMicro/Src/app/OCALiteDante This has a Dante one, which is different (as it's subscription based), but you might get some hints about how to do the media clock etc. I do need to note here that you might not find the relevant base classes in the current opensource code. There have been a few iterations of the connect management, and the opensource side is not up-to-date with the latest specifications. PR's are always much appreciated here! |
Tom is correct, the ocaLite code does not reflect the current version of OCA. The current version of OCA is standardized in AES70-2024. In particular, the connection management part of the specification has changed a lot. The current connection management feature set is called "CM4", and was first specified in AES70-2023 (the version in AES70-2024 is virtually the same). ocaLite, on the other hand, is based on AES70-2015, which specifies version "CM2" of connection management. The differences between CM2, CM3, and CM4 are considerable. Here is a presentation I gave at AES New York 2024 that summarizes the use of CM4 to make AES67 connections. It's for a general audience, not programmers, so you'll want to skip over a lot of OCA tutorial stuff, but the slides toward the end give you an idea of how CM4 works. The scheme described is the subject of an upcoming standard, AES70-21, which should be published for comment by the end of 2024. Regarding your question on multicast groups: like the previous CM versions, CM4 does not provide primitives for controlling IP services like IGMP. However, it does have a nice base class named OcaNetworkInterface that could very appropriately be subclassed to offer methods for multicast group control. Or you could make your own separate multicast-control class and link it to OcaNetworkInterface. About Dante: the OCA Alliance is working on a draft standard for CM4 management of Dante connections, but that won't be available until later in 2025. So if you want to use CM4 with Dante, you'll have to work out your own implementation. I can give you advice about that, based on the work the OCA Alliance is doing - email me at ja.berryman@us.bosch.com. CM4 itself is fully specified in the standards AES70-1-2024 and AES70-2-2024, which the AES published in April 2024. Copies of these standards are normally available through the AES Standards Store, but there is a temporary problem with the AES website right now. Until it's fixed, you can ask for copies of standards by emailing Richard Cabot, the AES Standards Manager, here. To get a complete set, I suggest you request AES70-3-2024 as well as the other two mentioned above. If you decide to merge CM4 code into ocaLite, you may have to make some adjustments to base classes in ocaLite. In particular, the definition of OcaRoot was enhanced a bit for 2023. It would probably be best to install the new version in your copy of ocaLite. Doing so should cause minor or no problems for the older classes. The main changes are in the locking and unlocking methods. I'm not sure if ocaLite even uses those. Alternatively, you might choose to upgrade all of ocaLite to the 2024 level. That would be wonderful for the repo! But I'm not sure how much work it would be. Others (tljdebrouwer?) will no doubt have wise advice about that. Hope this helps. /Jeff |
Okay, I understand what you mean. Thanks a lot for your reply. I will refer to it |
hello
I successfully built the ocalite vs project and ran ocalite.cpp,but only obtained the Ocp1LiteNetwork object through the aes70.js controller. Although I have read some theoretical document specifications, I still feel vague about it. I want to know how to add a such as “ocagain” object to the OCA device in the OCALite project ,Can you provide me with a simple code example or a rough process?Thanks a lot!
The text was updated successfully, but these errors were encountered: