Async/Await & SIMPL+

I had a recent job where I needed to control NewTek Spark IO decoders. These little guys have a REST API that is fairly easy to use, but require HTTP, cookies, JSON parsing, etc. Perfect fit for C# instead of SIMPL! But the HttpClient class uses asynchronous calls, so getting it to play nicely with SIMPL means you have to work around the async methods since SIMPL+ won’t see them.

My first stab at writing code to control these things works, but the module throws an exception if I dispose objects too quickly. And if a device reboots, it’s hard to tell when it comes back until an exception throws. So my code needs some clean up! I’d like to write about that once I’ve had a chance to sit down and refactor it. In the meantime, I thought it would be good to do a small example of getting async/await to work with SIMPL+.

Continue reading “Async/Await & SIMPL+”

SIMPL+ and Delegates

I’ve been working on my Gold Exam and a good chunk of it is written in SIMPL#. It’s been a good reminder that getting code in SIMPL# to play nicely with SIMPL logic can sometimes turn into a chore. We have SIMPL+ to thank for most of the hair-pulling. I thought a post about delegates and getting them to work in SIMPL+ would be a good thing to write down.

Continue reading “SIMPL+ and Delegates”

ATEM Mini Pro

Blackmagic Design makes some cool production switchers that are reasonably priced and work great. They even distribute an SDK to control them from Windows or Mac programs. Controlling from Crestron is tougher, but not impossible. Some third-party products have sprung up to make it easier, too. In this post, I’m going to walk through how I wrote a module to perform a couple of functions on the ATEM Mini Pro.

Continue reading “ATEM Mini Pro”

Soup to Nuts: Cisco Codec – Part 4

In the final part of this series, we’ll finish by adding some basic functionality to the module we created in Part 3. Then we’ll look at how to drop this module into a real program and debug it when things go wrong. Lastly, we’ll consider how we could extend this module in the future.

Continue reading “Soup to Nuts: Cisco Codec – Part 4”

Soup to Nuts: Cisco Codec – Part 1

In this series of posts, we’ll develop a basic module for controlling Cisco Room Kit devices. It can be used in SIMPL Windows or SIMPL# Pro programs. It won’t be as exhaustive as the official module available from the Application Market, but it will be enough to handle most video conferencing tasks.

Continue reading “Soup to Nuts: Cisco Codec – Part 1”

Soup-to-Nuts: Phonebook Module (Part 4)

Here is the final part to this module: wrapping it up and making it easy to use. SIMPL Windows is a powerful tool because it easily abstracts away a lot of details about how things happen. The way our phonebook works under the hood will be a detail we needn’t worry about, it will just plug into our larger programs.

Continue reading “Soup-to-Nuts: Phonebook Module (Part 4)”

Soup-to-Nuts: Phonebook Module (Part 3)

In this part, we’ll add support for pages to our phonebook. That may not sound like much, but it will set us up for the 4th (and final) part where we wrap everything into a SIMPL User Macro that we can easily drop into our programs.

Continue reading “Soup-to-Nuts: Phonebook Module (Part 3)”