¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: Newbie Simpl+ Question


scates98
 

Hey Chip,

Thanks for your reply! I spent about a day or two trying to figure
out how I could program this in SIMPL+ and eventually gave up because
I couldn't figure out how to do it. I went back to SIMPL Windows and
continued writing the module. When I look at the code I've written in
SIMPL Windows it just looks like a lot of code and when I see my code
go that way I start thinking I've made things too complicated. My
paranoia starts going because I think signals won't be resolved in
logic waves and then things won't work exactly as they should. I've
done all I can to keep the code down to it's minimum so things will
work efficiently.

Since the menu is going to be generated by a TPS-GA-TPI (touchpanel
interface for standard display devices) there will be no touch input
to navigate the menu. The only device to interface with the menu
being displayed will be an ML-600 remote. When the user presses Menu
on the ML-600, I want the Menu to toggle on/off. They will then have
to use the direction pad to navigate the on-screen menu. I've broken
this down into two components, Menu Selection and Menu Control which
is selected by the left/right dirpad buttons. When in Menu Selection
mode the user is choosing from the list of rooms, sources, lights,
shades, etc. when the user is in Menu Control mode the user is
selecting options from the current Menu Selection. Example, when the
user selected rooms from the Menu Selection they immediately switch to
Menu Control mode and start choosing a floor followed by a room. The
inputs are fairly simple dirpad signals and such to control
navigation. Output signals are to switch between pages and subpages
for menu navigation. Example: pressing the Enter button on the dirpad
when selecting Rooms from the Menu Selection list will switch the
TPS-GA-TPI to display the room selection page and force the Floor
Selection subpage high. After using the up/down dirpad buttons the
user will select a floor and press the dirpad enter button again to
choose a floor which will display the room list for that floor.

This is why I was thinking of using an array. In SIMPL Windows I
control this using a Ring Counter with Seed so I can send an analog
value to the Ring counter to turn all outputs off or force one on.
This in conjunction with interlocks help to enable the correct buffer
for navigational control. If I knew how to create a buffer in SIMPL+
I might have enough to make the module work. However, I keep thinking
I'm reinventing the wheel if all I'm doing is making the same signals
in SIMPL+ that I've already written in SIMPL Windows.

I hope this answers your question. I appreciate your input and
perhaps you're right. Maybe I should keep this in SIMPL Windows. At
least I'll know how to troubleshoot it! lol

Thanks,

- Chris


--- In Crestron@..., "Chip Moody" <cfm@...> wrote:


I'm certainly not going to steer you away from diving into S+, but
I'm going to question whether what you're trying to accomplish in this
case is better off left in SIMPL. Based on what you've described, it
doesn't sound like you're going to be pushing the limits on the
processor by any means - even if you had 16 instances of the "block"
of code AND had 16 people pounding buttons in each zone at the same
time. (16 instances of a block of code with a zillion signals where
only one instance is going to be used by the client at any one time is
pretty much a non-issue)

If you want to neaten things up a bit, get the block to a point
where you think it's got all the goezintas and goezouttas you need,
and turn it into a SIMPL module. Then you can just drop 16 instances
of the completed module into your program. No, it doesn't make any
difference on processing - it'll just make your main program's code
easier to read through and maintain.

If you're still interested in making an S+ version for
self-educational purposes at the very least, could you describe the
signals going in/out a bit more? I wasn't able to get a clear enough
picture to advise/suggest S+ approaches.

- Chip


--- In Crestron@..., "scates98" <ccates98@> wrote:

Hi all,

Sorry for the long post, but I like to give a lot of details to help
people understand what I'm trying to do. I'm an experienced SIMPL
Windows programmer but SIMPL+ is still pretty new to me. I'm trying
to find a way to program a custom menu subsystem for my client and was
hoping someone could help me in building this in SIMPL+.

The client will be using an ML-600 and he's only going to be using
some basic inputs like: dirpad up/down/left/right/enter and page
up/down on the remote to navigate an on-screen display generated by a
TPS-GA-TPI. He wants to have the ability to control any zone in the
house. So I've created a GUI so he can select room control, source
control, lighting control, climate control, shade control and security
control.

In SIMPL Windows I am using a series of buffers and interlocks to
control when the dirpad up/down/left...etc. signals are in use for a
particular menu. I am also using a series of Ring Counter with Seed
symbols to allow him to navigate the on-screen menu using only the
dirpad on the ML-600. Example: the user selects "Choose Room" from
the primary menu, then uses the ring counter to scroll through the
floors, another ring counter controls the scrolling through rooms for
the selected floor.

As I'm building this project, I am noticing that my menu system, built
in SIMPL Windows, is creating a lot of signals and I'm concerned with
how well it will function after I've duplicated it for all zones which
require it (at least 16 zones). I know that if I were to build this
in SIMPL+ it would be much more efficient and easier to copy, but I am
confused on how I could write it as I'm not experienced in SIMPL+. I
thought of using an array to create a table where the first row would
contain values for the primary menu (rooms, sources, lights, etc.).
Then each column would contain values for each of the primary menu
items (ex: 1=first floor, 2=main floor, 3=upper floor, etc.). However
I do not understand how to buffer the dirpad up/down commands to
control the scrolling through the list. I keep thinking about using
an IF statement but then I'm writing a large amount of nested IF
statements to control when the up/down command is enabled for a
specific menu. Perhaps using a long SWITCH/CASE statement would
work?

Any help you can provide would be greatly appreciated as I know I need
to get my head into SIMPL+ programming to become a better programmer.
Please try not to get too technical with your replies as I'm still
new to programming this way and can get lost quickly.

Thanks In Advance For All Your Help,

- Scates

P.S. I've read the SIMPL+ programming help PDF and it's helped me to
get this far. I really need to take some sort of programming class to
better learn this.

Join [email protected] to automatically receive all group messages.