In recent times I began working on a C-based remake of the RDL. It is driven by a desire to have a non-threaded polling-and-event API for dealing with the serial communications, and for a desire to have much less restrictive licensing. I can't seem to get it to receive Zeo packets though.
If I could get some more detailed information about how the Zeo's serial connection itself should be established, I'd greatly appreciate it. I'm looking for more info about what c_cflags/c_iflags/c_oflags/c_lflags I should be passing to termios, and for more information about how to identify Zeo packets at arbitrary points in a serial stream. I suspect the flags are what I am doing wrong, but I also wouldn't be surprised if my identification and parsing code is wrong instead.
I've been working from the protocol presented here. I haven't used any of the RDLs source code because I am trying to create a clean separation of code origin for license reasons. I've got it to the point where it sees things that almost sortof look like Zeo packets. However, I am definitely doing something wrong.
Here is my latest attempt. It is boost licensed, so it should be very easy to reuse in other opensource projects. It's just not very, uh, working. I have only been working in Linux so far, though I'd want to support other platforms eventually.