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”Category: programming
P201 Projector Exam
You can grab this short example from my GitHub repository at https://github.com/kielthecoder/Full-Crestron-Examples. This was the class project / final exam for the Intermediate Crestron Programming class (that turned into P201).
Continue reading “P201 Projector Exam”Crestron Drivers
I just finished watching all the videos for the C# for Crestron – Crestron Drivers online course and feel like I absorbed very little of it. The driver abstraction seems overly complicated, and the overall presentation of their videos is very dull. I like to contrast them with Q-SYS videos which are short and focused enough to hold your attention. Something about Crestron’s videos feels too robotic and I find myself multitasking with them on in the background.
Continue reading “Crestron Drivers”SIMPL Crosspoints Best Practices
When I started Crestron programming in 2010, you had to take two classes. One covered almost the entire Crestron catalog. All I can remember is my eyes glazing over after a couple days of that. We might have built a touchpanel layout, too. The second class actually got into SIMPL programming, but we only covered button presses, feedback, interlocks, and maybe a toggle. It was fairly basic, but it was enough to get started programming Crestron systems.
After passing the exam at the end of class, they told us to go program systems for a year then come back and take the 201 class.
Continue reading “SIMPL Crosspoints Best Practices”VC4 and SIMPL
I was recently asked if we could get a customer with an old PRO2 upgraded to VC4, probably to support new hardware they wanted to install. Looking at the existing system, there were a couple devices that needed a hardware controller: DSP and lighting control over RS-232, cable TV control over IR, and a Cresnet button panel for basic room functions. I told them we’d need to keep the PRO2 for all the connectivity, but maybe we could get it to talk to a new program running on VC4?
Continue reading “VC4 and SIMPL”The Future of AV Programming: Part 6
It’s been over a year since my last installment in this series, so I thought it was a good time to reflect on where things are and where they seem to be going. I completely missed the mark on touchless control! But I think the need to diversify our skills as AV programmers is more apparent than ever. Prepare yourself, things look a bit bleak.
Continue reading “The Future of AV Programming: Part 6”Multithreaded Programming
In this post, I’m going to explore the different threading options on 3- and 4-series processors. I find it difficult to keep everything straight when working in different Crestron environments, so hopefully this post will be a good refresher when I need it.
Continue reading “Multithreaded Programming”SIMPL Module Best Practices
When I started programming Crestron systems, there were two other programmers on my team. One was a senior programmer who had been doing it for years already; the other was a junior programmer who had been doing it for a year maybe? I feel like I fit into the middle slot between them quite nicely. So, I tried to follow the senior guy’s example and help the junior guy out when I felt that I could.
The workflow I picked up from the senior programmer was:
- Copy-and-paste the previous program you worked on and only change the bits needed for the new system. 90% of the code is probably going to be the same anyway.
- Don’t jam ANY signals together, always buffer them or use an OR.
- Never hide program logic inside of a module.
I can already tell this is going to be a divisive post because of how different people treat user modules. I want to present 3 modules in this post, talking about why they were written, how they evolved, and why they were the best approach.
Continue reading “SIMPL Module Best Practices”SIMPL Best Practices
I recently received an email asking if I could document some of the things I wished I had known when I started Crestron programming. I didn’t touch Crestron until the twilight years of the 2-series (2010), but it was thankfully a solid platform to learn SIMPL Windows on. I had several years of AMX under my belt, so at least SIMPL+ wasn’t strange to me.
I’d like to write a few posts that explore how I approach programming now that I have a little hindsight. I’ll also reveal areas where I still struggle to find the best methods.
Crestron has a SIMPL Windows Best Practices guide that is useful. The release notes also contain some good rules to follow. I’ll try not to repeat what’s already stated there.
Let’s dig in!
Continue reading “SIMPL Best Practices”Writing “Correct” Programs
Lately, it feels like I’ve had a problem making sure my programs are “correct.” I’m hoping if I write about it, I’ll see a pattern that I can fix. It’s frustrating for everyone when bugs slip into commissioned systems, and it reflects badly on custom programming as a whole when these errors aren’t caught before the space is in use. After all, we don’t want to be the cause of the house burning down.
Continue reading “Writing “Correct” Programs”