Best way to handle Master Panel in large installation
Jeff
Posts: 374
OK, So this is almost purely a theoretical exercise. I've been programming for right at a year, and I've only been certified since April, so I dont have a ton of experience here. I'm the only programmer where I work, so I dont really have anyone to bounce questions off of or learn from, so I'm entirely self taught. I've caught myself doing things the long way more than once, and I thought I check to see if perhaps I've done that again.
I have 29 conference rooms with AMX Systems in them, spread between two buildings. System 1 is my master system. Systems 2-13 are in the main building I'm in, and systems 51-67 are in the second building. I'm continually adding new systems. Since the second building is several blocks away, I decided to attempt to have everything in the building controllable from a main panel. I don't have the budget for RMS anyway, so I figured I'd program my own stripped down version of it that only tracks what I care about anyway.
I've created a Master Panel that has pages on it for all of the other systems. All of the buttons and variable text addresses for System 2 are on port two of this master panel. All of the buttons and variable text address for System 58 are on port 58 of this master panel. The local systems have dvMasterTP defined as 10001:system_number:1.
This has been great, because half of my rooms have the exact same code loaded in them, and the others all follow a basic template. button 1 is always projector/plasma on, button 2 is always projector/plasma off, etc etc. Doesn't matter what room I'm using, the buttons are all similar and follow a pattern. I can load one token file to 10 different rooms and they figure out what buttons are theirs and only follow those. Its great. I also have a virtual device defined on every system that is also defined on the Master system that uses this same concept to track things like how many times a system is used in a month, how many service calls I get, and it emails me a daily update telling me all my systems and polycoms are online, as well as tracking bulb hours in the projectors etc etc etc etc.
Here's my problem. I can only define 100 ports on a NXT-CV7. This system wouldn't work if I went beyond 100 ports. I guess then I could start layering them and use the 4000 buttons I'm allowed to use per port, but this system is much more easily expandable than that. I don't expect to go over 100 ports in the next 10 years, and I'm sure there will be a new set of panels out with different requirements by then anyway, but I just thought I'd check.
So my question is, how do you handle extremely large installations that all want buttons on a single Main panel? Am I going about this an incredibly difficult way?
Otherwise, I'd be interested in hearing anything you have to share about designing these huge installations. Like I said, I'm new to programming and I keep finding myself going the long way around, but I also keep finding out new things I can do I'd never thought of before.
Anything you can share would be helpful. Thanks guys!
J
I have 29 conference rooms with AMX Systems in them, spread between two buildings. System 1 is my master system. Systems 2-13 are in the main building I'm in, and systems 51-67 are in the second building. I'm continually adding new systems. Since the second building is several blocks away, I decided to attempt to have everything in the building controllable from a main panel. I don't have the budget for RMS anyway, so I figured I'd program my own stripped down version of it that only tracks what I care about anyway.
I've created a Master Panel that has pages on it for all of the other systems. All of the buttons and variable text addresses for System 2 are on port two of this master panel. All of the buttons and variable text address for System 58 are on port 58 of this master panel. The local systems have dvMasterTP defined as 10001:system_number:1.
This has been great, because half of my rooms have the exact same code loaded in them, and the others all follow a basic template. button 1 is always projector/plasma on, button 2 is always projector/plasma off, etc etc. Doesn't matter what room I'm using, the buttons are all similar and follow a pattern. I can load one token file to 10 different rooms and they figure out what buttons are theirs and only follow those. Its great. I also have a virtual device defined on every system that is also defined on the Master system that uses this same concept to track things like how many times a system is used in a month, how many service calls I get, and it emails me a daily update telling me all my systems and polycoms are online, as well as tracking bulb hours in the projectors etc etc etc etc.
Here's my problem. I can only define 100 ports on a NXT-CV7. This system wouldn't work if I went beyond 100 ports. I guess then I could start layering them and use the 4000 buttons I'm allowed to use per port, but this system is much more easily expandable than that. I don't expect to go over 100 ports in the next 10 years, and I'm sure there will be a new set of panels out with different requirements by then anyway, but I just thought I'd check.
So my question is, how do you handle extremely large installations that all want buttons on a single Main panel? Am I going about this an incredibly difficult way?
Otherwise, I'd be interested in hearing anything you have to share about designing these huge installations. Like I said, I'm new to programming and I keep finding myself going the long way around, but I also keep finding out new things I can do I'd never thought of before.
Anything you can share would be helpful. Thanks guys!
J
0
Comments
So, for example, let's say that you decide that buttons 101-110 on the panel were source selects for the projector in the rooms. 101=computer, 102=Document Cam, etc... If there's no Doc cam in the room, you simply skip using that button in that room.
Now, have a conditional on the main panel that flags which room you're looking at. So, a series of buttons that indicate which Room you're looking at.
button 1=bld 1 - room 107, button 2= bld. 1 - room 108, etc...
I'll do old fashioned button stacks to make it simple. I'd create dev arrays myself...
Now, you know which room you're trying to control.
Next, put in conditionals for the buttons as they pertain to the room control. For example, in the Projector Source example above...
(Again, this is overly simplified to make the example short. You'd want to gussy it up quite a bit and deal with feedback updates and whatnot. I'd do it in a completely different way myself. but you'll get the general drift of the example.)
Hope that helps.
J
Well, you don't need to define each device in the master per se.
It's all in the way you organize the programs in the first place. Take the video switcher example. If it were me, I'd always put the video switcher on the same port. Or, I'd at least create a consistent virtual device that is the same on every system.
So,
Then in the Master you could just do the math and send it to the correct system.
If you're dealing with different switchers and whatnot, send the command to the virtual device and let it interpret what command you need to send locally to get the gig done.
Just a thought,
Jeff
SEND_COMMAND tpDEV_ARY[tpCUR_DEV], "'^BVN-1090,tpIP_ADDRESS_FOR_VNC_CONNECTION'"
J