Been working on my C# implementation of the Sylantro Application Interface (SAI) all week, including this weekend. Don’t really have a catchy name for it right now other than SAI.NET. It’s going to come in two flavors: A command-level layer and an application-level layer. I’m currently working on the lower level command layer.
Here’s how it basically works…
SAI is a bidirectional TCP/IP stream that receives and sends comma separated values. The number of commands is pretty massive. I think I counted something like 50. But anyway the commands are not human friendly, the structures are inconsistent and unpredictable, and being CSV, you need a reference manual just to see what’s coming and going. Enter SAI.NET’s command interface.
What I’ve done is basically grouped all of the commands by common parameters and behavioral categories and created a large (really large actually) object model hierarchy. Each command class represents a command in the SAI specification.
Then we’ve got the all important magical Connection object which hides the underlying TCP/IP tasks that are required to maintain a successful SAI session such as authentication, session keep alive, and asynchronous command responses and events.
All in all, I really like the application and once I start working on the application layer (you gotta see it in action to appreciate how cool that is) I will talk about some examples of what I’m doing with it.
The bottom line is, I am getting burnt out from all this work. I didn’t go out all week/weekend. I did however, get a significant amount of work done out on the balcony though and I got to sit and watch afternoon rain showers which I always find fun to watch and a really nice and sunny day today. I’m actually out on the balcony now in my pajamas. Hope the neighbors don’t mind.
Oh well back to work. Just thought I’d take a break and ramble on about some useless shit.