Ok, I’m unoffically quasi-back on the OpenACN project. (at least for a short time) I’m attempting to port the code over to a Freescale M52259evb platform. Things have gone OK. Some hickup. The bigess is that I can’t seem to turn off loop back on multicast sends. Still working to track this down. Otherwise, I think the MQX with the MCF2259 processor is going to be a good fit.
Well the DMP layer is a bit obscure and needs some cleanup (perhaps a lot). So after a few weeks of hiding in other project, I’m starting to make this happen. I went in a coded SDT so that DMP could “register” itself for callbacks just like SDT does with RLP. I then decide to tear all of it out and used the existing callbacks on components state changes. I had started this a while back, and have been flipping back an forth as to the best way to handle this. My solution will be to provide a DMP queue function that can be used for all the component callbacks. This allows the application to either handle the callback itself or let the DMP layer parse it and put it in a queue for the application to process when it has time.
Perhaps I needed a break or perhaps because I heard BSR E1.31 has been ratified? Either way, I started work on a module for sending/receiving “Streaming DMX” or “SACN”. I havedone this once before so the port should be easy. I plan on releasing this after I 1) get it working and 2) modify it to meet the ratified version. Since I’m also the author of Wireshark dissector for this protocol I guess I can do both at the same time.
After a bit of clean up I finally got the NetBurner test application code posted. I think users may have a problem the the “linked” acnsrc folder. They may need to delete and recreate this. If so, I will document the process. I put this in a new ”build-netburner-ide” subdirectory incase someone wanted to build their netburner application via a command line which should be possible.
Philip reorganized the structure of the repository today so we could add a few test applications. The test application for each port do the same thing. I have test applications for linux, cygwin and an IDE complied version for MSVC Express. I am working on a NetBurner port.
The test application does not do much yet. First it uses SLP to find a Directory Agent (see openSLP if you need one). Once a DA is found you can register a component with DA and discover other components with the same DCID. If you get that far, you can select and create an SDT session with any of the other components found.
Philip and I are working a new directory structure for the repository. This will allow us to post some test applications. It looks like it will look something like this:
trunk/ # change to whatever name you want
openacnsrc/ # the current tree
builddir.mk # maybe rename "openacn.mk"?
common/
dmp/
include/
platform/
rlp/
sdt/
slp/
build-xxx-xxx # moved up a level from current
build-yyy-yyy
openacndoc # the optional documentation tree
testappsrc # your test apps
other-submodule # Not part of openacn trunk
At at mile post. Well sort of. I worked around the CYGWIN issue and now have ports to XP, cygwin, Netburner and Ubuntu (Linux). I can get instance of each running. They can register them themselves, find each other and create and maintain an SDT session with each to other! All code is posed in the repository.
I think I can use the CONFIG_RLP_SINGLE_CLIENT define to remove the need for destination address. This will allow me to continue to test on cygwin. At the moment, SDT is the only client so this should not be a problem. At some point, I plan on adding a E1.31 (streaming ACN) client. Without the destination address, we will not be able to have both at the same time.