Just getting started, but projectors / displays won't register
fogled@mizzou
Posts: 549
Months and month later, I'm finally able to start working on RMS integration in my custom control program installations (lots of RPM-based implementations working). Complete newbie at this version of RMS programming. Running RMS Enterprise, current version is 4.5.6.
First thing I did was added what I needed for control system monitoring. Shows up in RMS just fine. Next, I added what I needed for source usage tracking; all those sources registered and show up in RMS OK, and once I added the appropriate source usage tracking hooks, I'm seeing source usage time count up in RMS just fine.
Next, I added what I needed to monitor 2 projectors and 4 TV's (this room's configuration). Nothing shows up or registers in RMS.
After running into that problem, I added the touchpanel monitor stuff, after doing that, the touchpanel shows up just fine in RMS. Still no displays registered though.
The docs say I've got to implement SNAPI code for the RMS module to pick up, but shouldn't it at least register the devices to RMS as soon as I've added the DEFINE_MODULE lines for each of them? Am I just missing the info on a line of code for registering the devices?
Sorry for the super-newbie questions, it's been a long time since I had to do any significant programming besides just forking and one-offing an existing working codebase. Everything was making sense until the ProjectorMonitor and TVMonitor modules don't seem to be doing what I expect.
Thanks,
First thing I did was added what I needed for control system monitoring. Shows up in RMS just fine. Next, I added what I needed for source usage tracking; all those sources registered and show up in RMS OK, and once I added the appropriate source usage tracking hooks, I'm seeing source usage time count up in RMS just fine.
Next, I added what I needed to monitor 2 projectors and 4 TV's (this room's configuration). Nothing shows up or registers in RMS.
After running into that problem, I added the touchpanel monitor stuff, after doing that, the touchpanel shows up just fine in RMS. Still no displays registered though.
The docs say I've got to implement SNAPI code for the RMS module to pick up, but shouldn't it at least register the devices to RMS as soon as I've added the DEFINE_MODULE lines for each of them? Am I just missing the info on a line of code for registering the devices?
Sorry for the super-newbie questions, it's been a long time since I had to do any significant programming besides just forking and one-offing an existing working codebase. Everything was making sense until the ProjectorMonitor and TVMonitor modules don't seem to be doing what I expect.
Thanks,
0
Comments
All the other monitors appear to be working OK; as soon as I uploaded the code with the Monitor lines included, it registered that device. Except, for the Video Projector and TV monitors.
What am I missing here? I'll end up calling AMX here pretty soon, but I want to see if I can get some audio control monitors added and working first.
Thanks,
The super-obvious thing I always forget is virtual device channels 251 and 252 have to be on before it will register the asset, by default.
The documentation says 251 is "Client Registered", which I take to mean that the entire system is registered with RMS. It definitely is, the control system is registered, everything else is registered, just not the projectors and TVs. I don't even see any reference to channel 252 in the documentation.
One other thing I suppose I need to ask: Do the devices actually need to be hooked up and communicating with the controller, before the monitor modules will register them? The physical devices are not hooked up yet. I don't have the TVs yet, but I could easily connect to a projector, to see if that changes anything.
Thanks!
I do not use the AMX SDK. I wrote my own. (it's one module and one include for everything) I won't waste everyone's time here bagging on the AMX SDK. but I will say you might want to just get used to the idea of watching terminal with messages on when programming for RMS. I'd also watch whatever device you declared as the vdvRMS. (usually 41001) It is very chatting and even helpful when it comes to things like this.
Rolling my own is how I've always done it in the past, and I still have a strong inclination towards abandoning the canned SDK modules. The API itself is a fairly simple DOM. I was just hoping the canned stuff would work well enough that I would spend less time with it, than I would rolling my own. Heck, I rolled my own one-off, using a cheesy Filemaker database as the backend, a few years ago. But now, we've got more RPM-based Massio units than custom-programmed units on campus. So, I'm kinda stuck getting the custom programmed controllers connected to RPM.
How much you want for a copy of your files, Eric?
I'm confused about this; I see the references to 251 for the vdvRMS, but not for any other virtual devices. And, I can't find any reference to 252 in the RMS Netlinx Programmer's Guide doc. Is the channels 251/252 issue relevant for every virtual?
If you're using Duet modules to control the device, 251/252 should already be taken care of by the Duet module. As soon as the device is online it will register the asset with RMS.
If, for instance, you're programming a projector, but don't have the projector currently physically connected to the system, use Control a Device, turn On 251 and 252 for the projector's virtual device, and you should see the projector asset register in RMS.
Aha! Thank you for the lightbulb!
I think eventually I'm going to take ericmedley's approach and write my own, but it's not the most straight-forward protocol and of course the documentation leaves much to be desired.
Same here, thanks for the additional tips to get around that. I already have debug hooks in my code almost everywhere I would ever need to interact with RMS, so it might not be that hard to add the API commands right under my debug hooks. Almost always more than one way to skin that cat, as the expression goes.
CORRECTION: Yes, it did! I didn't see any kind of chatter in the controller from toggling the states of 251 and 252, but my RMS server had burped again (whole different problem, keeps halting on a bogus license error, happens all the time, heavy sigh) and needed a reboot before I could get logged in and see the device registered in the RMS UI.
So, I can confirm the channel 251/252 thing to force RMS registration of devices that are not actually hooked up yet. It seems a little curious that the 5001:x:0 RS232 ports come online, but I guess it still reads the "device connected" state for the wiring to tell if it's connected? Or does it just spark up any kind of chatter? I still don't quite understand that, but as long as it works, I'm willing to slap the blinders on and trot forward.
Thanks everyone!
If you write your own monitor modules, you can write them to register the asset regardless of the state of 251/252 (look at RmsVirtualDeviceMonitor).