Two identical NX-3200s, one of them ignores Device [0:1] Online event
fogled@mizzou
h4x354x0r
OK peeps, getting really, really frustrated with the project I'm working on. This is related to the posts I've been making in the RMS sub-forum, but I'm pretty sure this has nothing to do with RMS.
I originally had one controller controlling 7 classrooms. It was working beautifully. After connecting 6 more room's worth of devices (SDX, DX-RX, and MST-701), I suddenly could no longer upload my program to the controller. I keep getting "Insufficient memory for transfer" errors. I figured it was the RMS SDK modules eating up all the memory in my controller after the additional devices came online, so I set about setting up a 2nd controller as a test and to control the 2nd set of rooms.
I duplicated my entire project folder and renamed all my files in that with a "2" in the name (didn't rename any SDK files) so I wouldn't get confused with that, then built a new system with the "2" file names, updated include statments to use "2" files, and changed the "status" flags which are supposed to tel the controller whether a room and it's devices are online and should be connected to or not in the "2" files. Otherwise, the two programs are identical. I also reconfigured the SDX, DX-RX, and touchpanels to point to Controller 2.
In the new controller, all the devices (SDX, DX-RX, and touchpanels) are connecting to the new controller OK. I can look at my Debug and see the right status flags are set in each controller to connect to the appropriate devices. But the controller never executes any code inside the ONLINE tree of the master. Code in next post...
I originally had one controller controlling 7 classrooms. It was working beautifully. After connecting 6 more room's worth of devices (SDX, DX-RX, and MST-701), I suddenly could no longer upload my program to the controller. I keep getting "Insufficient memory for transfer" errors. I figured it was the RMS SDK modules eating up all the memory in my controller after the additional devices came online, so I set about setting up a 2nd controller as a test and to control the 2nd set of rooms.
I duplicated my entire project folder and renamed all my files in that with a "2" in the name (didn't rename any SDK files) so I wouldn't get confused with that, then built a new system with the "2" file names, updated include statments to use "2" files, and changed the "status" flags which are supposed to tel the controller whether a room and it's devices are online and should be connected to or not in the "2" files. Otherwise, the two programs are identical. I also reconfigured the SDX, DX-RX, and touchpanels to point to Controller 2.
In the new controller, all the devices (SDX, DX-RX, and touchpanels) are connecting to the new controller OK. I can look at my Debug and see the right status flags are set in each controller to connect to the appropriate devices. But the controller never executes any code inside the ONLINE tree of the master. Code in next post...
Comments
-
Here's the code for the master online event, same in both controllers:
data_event[dvmaster] { //master init online: { //what here? timeline_create(99,feedbacktime,1,timeline_absolute,timeline_repeat) // Creates main room control & buffer processing timeline cobisbuffout = "''" //Clears COBIS help system buffers cobisbuffin = "''" timeline_create(21,feedbacktime,1,timeline_absolute,timeline_repeat) // Creates COBIS Helpsys comm & buffer processing timeline //force current occsense setting rm[tmp_idx2].occsensor = [occsense_all[tmp_idx2],5] // ADD REGULAR INITIALIZATION ROUTINES HERE , MOVE SOME DEFINE_START HERE ? //Initialize room buffers and IP connections for(tmp_idx2=1;tmp_idx2<=roomcount;tmp_idx2++) { /* 4 = switch 6 = audio 8 = camera 11 = projector 12 = display */ rm[tmp_idx2].d[4].buffout = "" //SWITCH BUFFER RESET rm[tmp_idx2].d[4].buffin = "" rm[tmp_idx2].d[6].buffout = "" //AUDIO BUFFER RESET rm[tmp_idx2].d[6].buffin = "" rm[tmp_idx2].d[8].buffout = "" //CAMERA BUFFER RESET rm[tmp_idx2].d[8].buffin = "" rm[tmp_idx2].d[11].buffout = "" //PROJECTOR BUFFER RESET rm[tmp_idx2].d[11].buffin = "" rm[tmp_idx2].d[12].buffout = "" //DISPLAY BUFFER RESET rm[tmp_idx2].d[12].buffin = "" call 'debug' ("'IP Connection Start for Rm:',rm[tmp_idx2].name,' ID:',itoa(tmp_idx2),' Status: ',itoa(rm[tmp_idx2].status)") if(rm[tmp_idx2].status==1) { //room is online, open ports //Audio (thru Moxa) if(rm[tmp_idx2].d[6].status == 1) { call 'debug' ("'Opening Audio Moxa Box Connection: DevID:',itoa(6),'-',rm[tmp_idx2].d[6].name,' AMX Port:',itoa(rm[tmp_idx2].d[6].devid.port),' IP:',rm[tmp_idx2].d[6].n[1].ipaddr,' PORT:',itoa(rm[tmp_idx2].d[6].n[1].ipport),' Status:',itoa(rm[tmp_idx2].d[6].status)") ip_client_open(rm[tmp_idx2].d[6].devid.port,rm[tmp_idx2].d[6].n[1].ipaddr,rm[tmp_idx2].d[6].n[1].ipport,IP_TCP) } //Projector (direct IP) if(rm[tmp_idx2].d[11].status == 1) { call 'debug' ("'Opening Projector Connection: DevID:',itoa(11),'-',rm[tmp_idx2].d[11].name,' AMX Port:',itoa(rm[tmp_idx2].d[6].devid.port),' IP:',rm[tmp_idx2].d[11].n[1].ipaddr,' PORT:',itoa(rm[tmp_idx2].d[11].n[1].ipport),' Status:',itoa(rm[tmp_idx2].d[11].status)") ip_client_open(rm[tmp_idx2].d[11].devid.port,rm[tmp_idx2].d[11].n[1].ipaddr,rm[tmp_idx2].d[11].n[1].ipport,IP_TCP) } //Display (direct IP) if(rm[tmp_idx2].d[12].status == 1) { call 'debug' ("'Opening ConfMon Connection: DevID:',itoa(12),'-',rm[tmp_idx2].d[12].name,' AMX Port:',itoa(rm[tmp_idx2].d[6].devid.port),'IP:',rm[tmp_idx2].d[12].n[1].ipaddr,' PORT:',itoa(rm[tmp_idx2].d[12].n[1].ipport),' Status: ',itoa(rm[tmp_idx2].d[12].status)") ip_client_open(rm[tmp_idx2].d[12].devid.port,rm[tmp_idx2].d[12].n[1].ipaddr,rm[tmp_idx2].d[12].n[1].ipport,IP_TCP) } timeline_create(tmp_idx2,feedbacktime,1,timeline_absolute,timeline_repeat) // Creates main room control & buffer processing timeline call 'debug' ("'Connections Opened For Rm:',rm[tmp_idx2].name,' ID:',itoa(tmp_idx2),' Status: ',itoa(rm[tmp_idx2].status)") } else { //room offline, clear buffers rm[tmp_idx2].d[4].buffout = "" //SWITCH BUFFER RESET rm[tmp_idx2].d[4].buffin = "" rm[tmp_idx2].d[6].buffout = "" //AUDIO BUFFER RESET rm[tmp_idx2].d[6].buffin = "" rm[tmp_idx2].d[8].buffout = "" //CAMERA BUFFER RESET rm[tmp_idx2].d[8].buffin = "" rm[tmp_idx2].d[11].buffout = "" //PROJECTOR BUFFER RESET rm[tmp_idx2].d[11].buffin = "" rm[tmp_idx2].d[12].buffout = "" //DISPLAY BUFFER RESET rm[tmp_idx2].d[12].buffin = "" } } } } -
Currently trying to get a 3rd controller up, but... any idea what gives here? Why does the code in the dvmaster online event execute in one controller, but not the other?
-
My "force current occsense setting" code is in the wrong place, needs to be inside FOR loop, but it's wrong in both controllers. I've also added a very basic debug statement (string_to virtual port) as the first line inside the Online event, but it does not execute.
-
3rd controller is up, exact copy of 2nd controller loaded onto it, 3rd controller runs Master Online code OK. Don't have all the other devices connected to it yet, but it's starting to look a lot more like a controller problem.
I should be able to move Controller 1's code to a different controller this afternoon to push that issue further forward.
-
OK now all the devices are connecting to the 3rd controller (now in place of the 2nd controller) and everything is still working as expected: AMX devices connect to controller OK, Controller connects to IP devices OK. System appears to be running OK on this controller. I'll be pretty irked it if turns out I've got 2 bad controllers.
-
On occasion I will find a similar kind of behavior and it can be frustrating as well.
The behavior is similar: the code is running, some xxx_event[] is not firing - even when I strip it down to the barest "if event fires, send string 0 'ping' "
when I get to this point I usually have to go in and adjust the duet memory (even if there are no duet modules preset) The adjustment seems to unstick the master and it all starts working again.
I'm not even saying its a memory issue per se, It's just something to do with changing the settings. I have not seen the behavior on the new NXs. -
I've pretty much confirmed that it's two bad controllers. I brought up a 3rd controller, and have moved all 14 of my active rooms to it, without a problem. I can still upload code changes just fine. Any faith I had in the reliability of AMX/Harmon hardware has pretty much been shattered. So disappointed...
-
Quick kinda last update on this... When I told AMX reps what happened to me, they seemed pretty genuinely mortified. Here, I'll just reference my other post in the RMS forums: http://www.amxforums.com/forum/technical-forum/resource-management-suite/122237-transfer-aborted-insufficient-memory-to-complete-transfer?p=122325#post122325
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums