Two identical NX-3200s, one of them ignores Device [0:1] Online event
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...
0
Comments
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 = "" } } } }I should be able to move Controller 1's code to a different controller this afternoon to push that issue further forward.
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.