NCX-IRS4 and NCX-REL10 Lose connection, reboot of master is the only way to get back
rosswylie
Posts: 10
in AMX Hardware
Hi
I have a project producing some strange results,
The system is
1 No. NI-3000
2 No. MVP-8400
2 No. NCX-IRS4
1 No. NCX-REL10
I have encountered numerous problems with this system,
The expansion ports are dropping out of the system for some reason and the only way to get them back online is to reboot the master controller!!
Also the system loses the panels, although in the protected setup the wireless connection is still there, but there is no connection to the master,
again the only solution that i have found to fix this is to reboot the master controller!
I would like to get to the root of the problem so any advice would be greatfully received,
So far I have updated the firmware on the two MVP-8400s and updated the NI-3000, Also changed the buffer threshhold size from 10 to 2000,
Can anyone shed some light on this?
Thanks
Ross Wylie
I have a project producing some strange results,
The system is
1 No. NI-3000
2 No. MVP-8400
2 No. NCX-IRS4
1 No. NCX-REL10
I have encountered numerous problems with this system,
The expansion ports are dropping out of the system for some reason and the only way to get them back online is to reboot the master controller!!
Also the system loses the panels, although in the protected setup the wireless connection is still there, but there is no connection to the master,
again the only solution that i have found to fix this is to reboot the master controller!
I would like to get to the root of the problem so any advice would be greatfully received,
So far I have updated the firmware on the two MVP-8400s and updated the NI-3000, Also changed the buffer threshhold size from 10 to 2000,
Can anyone shed some light on this?
Thanks
Ross Wylie
0
Comments
If it turns out there are over half a dozen messages per second what steps should i take to fix this issue?
Ross
I found this by doing exactly what I just advised you. Once I saw what messages were going out too often, I found the section in code that generated them. In this case, I could have assigned the feedback to proper (and different) channels, but since it wasn't being used anyway, I just commented it out. Since it didn't noticibly affect the system right away, I am now cautious about such things, and run an event notificatin check on every system as a matter of course ... especially if I'm working with someone else's modules.
I will try the diagnostics on the system I am talking about,
In the mean time do you think that the system is falling over because i have feedback on
each of the rooms the system controls and also feedback to confirm that the system is linked,
Therefore I have a total of 12 feedbacks always talking! I.e. 5 rooms and 1 feedback flash on the 2 panels,
The two panels are identical in their functionality but have been programmed so that they are not combined, so that they can be used at the same time in different rooms,
I know that the system is more robust when there is only 1 touch panel, but when the second panel is introduced the system gets confused
It depends on the type of feedback. Any kind of feedback that requires a message to be sent to the panels should be limited to once or twice a sceond, not continuously streaming in mainline (use a timeline instead). Direct channel feedback, however, if linked to a real panel button, only actually updates if the channel changes, the master keeps track of it. For example: [dvTP, 1] == nSystemState ... that would only actually change when nSystemState changes. This doesn't seem to be true for virtual devices - those channels always go out. A variable text field that uses a SEND_COMMAND to update, however, would stream continuously.
It uses the timeline, but perhaps I have done it the wrong way,
PROGRAM_NAME='Link_Flash'
DEFINE_DEVICE
// Panel
#IF_NOT_DEFINED dvMVP1
dvMVP1 = 10001:1:0 // MVP7500 192.168.1.22
#END_IF
#IF_NOT_DEFINED dvMVP2
dvMVP2 = 10040:1:0 // MVP7500 192.168.1.23
#END_IF
// Declare Virtual Device
#IF_NOT_DEFINED vdvMVP1
vdvMVP1 = 33128:1:0 // Virtual Panel
#END_IF
#IF_NOT_DEFINED vdvMVP2
vdvMVP2 = 33132:1:0 // Virtual MVP 2
#END_IF
#IF_NOT_DEFINED dvDEBUG
dvDEBUG = 0:0:0 // Test Only
#END_IF
(***********************************************************)
(* CONSTANT DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_CONSTANT
(* Link Pulse *)
TIMELINE_ONCE = 0
TIMELINE_REPEAT = 1
TIMELINE_ABSOLUTE = 0
TIMELINE_RELATIVE = 1
LINK_PULSE_TIMELINE = 1
(***********************************************************)
(* VARIABLE DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_VARIABLE
// Link Lamp
INTEGER FLASH
VOLATILE LONG TIMEARRAY[1] = (1000)
VOLATILE LONG AS_SECS // Used by Auto Shutdown
(***********************************************************)
(* STARTUP CODE GOES BELOW *)
(***********************************************************)
DEFINE_START
//TIMEARRAY[1] = 1000 (* 1000 = 1 sec *)
TIMELINE_CREATE(LINK_PULSE_TIMELINE,TIMEARRAY,1,TIMELINE_ABSOLUTE,TIMELINE_REPEAT)
(***********************************************************)
(* THE EVENTS GO BELOW *)
(***********************************************************)
DEFINE_EVENT
TIMELINE_EVENT[LINK_PULSE_TIMELINE]
{
SWITCH(TIMELINE.SEQUENCE)
{
CASE 1:
{
FLASH = !FLASH
AS_SECS++
}
}
}
(***********************************************************)
(* THE ACTUAL PROGRAM GOES BELOW *)
(***********************************************************)
DEFINE_PROGRAM
// Link Lamp
[vdvMVP1,254] = FLASH
[vdvMVP2,254] = FLASH
(***********************************************************)
(* END OF PROGRAM *)
(* DO NOT PUT ANY CODE BELOW THIS COMMENT *)
(***********************************************************)
i have used the same channel codes to tell me whether the rooms are on or off, ie the link flashes when the room is off and when the room is on then the link stops flashing, could this be causing the problem
BUTTON_EVENT[AMP_OFF_BUTS]
{
PUSH:
{
ROOM_SELECT[MVP] = 0
AMP_SELECT = BUTTON.INPUT.CHANNEL-150
SEND_STRING dvDEBUG,"'Amp Off Selection - ',ITOA(AMP_SELECT)"
CALL 'KRAMER VS828' (K_BOTH,0,AMP_SELECT)
OFF[dvRELAYS_1,AMP_SELECT]
SELECT
{
ACTIVE(AMP_SELECT = 4) : //living room
{
SEND_COMMAND dvAMP_Living,"'SP',28"
PULSE[dvPioneerLiv,9]
//CALL 'MARANTZ 1 POWER' (dvMarantzLiv,PL_OFF)
}
ACTIVE(AMP_SELECT = 6) : //bedroom
{
SEND_COMMAND dvAMP_BEDROOM,"'SP',28"
PULSE[dvPioneerBED,9]
//CALL 'MARANTZ 2 POWER' (dvMarantzBed,PL_OFF)
}
ACTIVE(AMP_SELECT = 1) : //Kitchen
{
PULSE[dvLGKitchen,9]
//CALL 'MARANTZ 2 POWER' (dvMarantzBed,PL_OFF)
}
}
}
}
Unrelated to any of this, you also don't need the precompiler directives in your DEFINE_DEVICE section (the #IF_DEFINED, etc. statements). It won't let you define a device twice no matter what you do, and unless you have a corresponding #DEFINE somewhere, those conditionals will never activate anyway.
But, at first glance, it really doesn't seem to me that this code is your problem. You need to check the notifications and see what is going on. Once a second is by no means too frequent. It may be your disconnects are unrelated to message traffic.
Not to be confused with updating an element elsewhere in the program, where you're doing TIMEARRAY[x] = y...
- Chip