NI 2100 controller locks
danialkhatib
Junior Member
in AMX Hardware
Hi,
I have a problem with 7 NI 2100 controllers. They work well during approx 2 weeks than they are not controlling the atached devices anymore. It is very strange because I'm able to diagnose that commands are sent and received via Netlinx studio and the led light are flashing properly.
When I recompile my program and send it back, everything works fine again for approx 2 weeks.
There are few devices in this installation. Two samsung led displays controlled in RS 232 and one Cisco C20 codec controlled via IP.
Amx firmware version :
C20 Softwear version : TC 5.1.4.295090
Thanks for your support,
I have a problem with 7 NI 2100 controllers. They work well during approx 2 weeks than they are not controlling the atached devices anymore. It is very strange because I'm able to diagnose that commands are sent and received via Netlinx studio and the led light are flashing properly.
When I recompile my program and send it back, everything works fine again for approx 2 weeks.
There are few devices in this installation. Two samsung led displays controlled in RS 232 and one Cisco C20 codec controlled via IP.
Amx firmware version :
C20 Softwear version : TC 5.1.4.295090
Thanks for your support,
Comments
-
Some things to try...
First try telnetting into he processor. Once in type MSG ON ALL.
See if there are any runtime errors.
Also type GET BUFFERS and see if you have any overruns.
Report back on your findings.
E -
oki ,
Here is the program of AMX :
What is your opinion ?
and about the IP_CLIENT_OPEN line...?
PROGRAM_NAME='A555'
(***********************************************************)
(* System Type : NetLinx *)
(***********************************************************)
(* REV HISTORY: *)
(***********************************************************)
(***********************************************************)
(* DEVICE NUMBER DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_DEVICE
dvLed1 = 5001:1:1 //Samsung LH46 9600 8N1
dvLed2 = 5001:2:1 //Samsung LH46 9600 8N1
dvCodec = 0:3:0 //Tandberg C90 IP 192.168.1.123
dvRelay = 5001:8:1 //Relay card
dvTp = 128:1:1 //Modero NXT-CV7
(***********************************************************)
(* CONSTANT DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_CONSTANT
Rack = 3
(*** IP RELATED CONSTANTS ****)
TCP = 1
UDP = 2
CodecPort = 23
(***********************************************************)
(* DATA TYPE DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_TYPE
(***********************************************************)
(* VARIABLE DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_VARIABLE
char FromCodec[250]
Tandberg_Connected
CodecBuffer[255] // FOR READING VISIO STRINGS
volatile char cDISP_TEXT[20] = '' // STORES THE TEXT TO BE SEND TO THE TOUCHPANEL
SystemOn
//Start exit
devchan Powering [] =
{
{dvTp , 1}, //Start
{dvTp , 2} //Reset
}
//Codec
devchan Codec [] =
{
{dvTp , 464}, // Call
{dvTp , 465}, // HangUp
{dvTp , 467}, // Directory
{dvTp , 469}, // Layout
{dvTp , 453}, // Key1
{dvTp , 454}, // Key2
{dvTp , 455}, // Key3
{dvTp , 456}, // Key4
{dvTp , 457}, // Key5
{dvTp , 458}, // Key6
{dvTp , 459}, // Key7
{dvTp , 460}, // Key8
{dvTp , 461}, // Key9
{dvTp , 452}, // Key0
{dvTp , 451}, // Key*
{dvTp , 450}, // Key#
{dvTp , 472}, // Home
{dvTp , 473}, //
{dvTp , 474}, //
{dvTp , 475}, //
{dvTp , 476}, //
{dvTp , 477}, //
{dvTp , 478}, //
{dvTp , 479}, //
{dvTp , 480}, //
{dvTp , 481}, //
{dvTp , 482}, //
{dvTp , 483}, //
{dvTp , 484}, //
{dvTp , 485}, //
{dvTp , 486}, //
{dvTp , 487}, //
{dvTp , 488}, //
{dvTp , 489}, //
{dvTp , 490}, //
{dvTp , 491}, //
{dvTp , 492}, //
{dvTp , 493}, //
{dvTp , 494}, //
{dvTp , 495} //Cancel
}
(***********************************************************)
(* LATCHING DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_LATCHING
(***********************************************************)
(* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *)
(***********************************************************)
DEFINE_MUTUALLY_EXCLUSIVE
(***********************************************************)
(* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *)
(***********************************************************)
(***********************************************************)
(* STARTUP CODE GOES BELOW *)
(***********************************************************)
DEFINE_START
CREATE_BUFFER dvCodec,CodecBuffer
(***********************************************************)
(* THE EVENTS GO BELOW *)
(***********************************************************)
DEFINE_EVENT
(***********************************************************)
(* data event section goes below *)
(***********************************************************)
Data_Event [dvLed1]
{
OnLine:
{
Send_Command data.device, "'SET BAUD 9600,N,8,1 485 DISABLE'"
}
}
Data_Event [dvLed2]
{
OnLine:
{
Send_Command data.device, "'SET BAUD 9600,N,8,1 485 DISABLE'"
}
}
Data_Event [dvCodec]
{
ONLINE:
{
ON[Tandberg_Connected]
IP_CLIENT_OPEN(dvCodec.PORT,'192.168.1.123',23,1)
}
OFFLINE:
{
OFF[Tandberg_Connected]
}
STRING:
{
FromCodec = DATA.TEXT
}
}
(***********************************************************)
(* button event section goes below *)
(***********************************************************)
button_event [Powering]
{
push:
{
switch (button.input.channel)
{
case 1 : //Start
{
cancel_wait 'rackoff'
send_command dvTp, "'TEXT1-System starting...'"
On[dvRelay, Rack]
On[SystemOn]
wait 50
{
send_string dvCodec,"'xcommand key Click Key:Home',$0D,$0A"
send_string dvLed1,"$AA,$11,$FF,$01,$01,$12"
send_string dvLed2,"$AA,$11,$FF,$01,$01,$12"
send_command dvTp, "'TEXT2-'"
send_command dvTp, "'PAGE-main'"
wait 20 send_command dvTp, "'TEXT2-'"
send_command dvTp, "'TEXT1-Press anywhere to start...'"
}
}
case 2 : //Reset
{
send_command dvTp, "'TEXT2-Push 2 seconds'"
}
}
}
release:
{
switch (button.input.channel)
{
case 2 : //Reset
{
send_command dvTp, "'TEXT2-'"
}
}
}
hold[20,repeat]:
{
switch (button.input.channel)
{
case 2 : //Reset
{
send_string dvLed1,"$AA,$11,$FF,$01,$00,$11"
send_string dvLed2,"$AA,$11,$FF,$01,$00,$11"
send_string dvCodec,"'xcommand Standby Activate',$0D,$0A"
send_command dvTp,"'PPON-Clear'"
send_command dvTp,"'TEXT3-'"
send_command dvTp, "'PAGE-welcome'"
Off[SystemOn]
wait 50 'rackoff'
{
Off[dvRelay, Rack]
}
}
}
}
}
//Codec
button_event [Codec]
{
push:
{
to [button.input]
switch (button.input.channel)
{
case 464 : { send_string dvCodec,"'xcommand key Click Key:Call',$0D,$0A" } // Call
case 465 : { send_string dvCodec,"'xcommand key Click Key:Disconnect',$0D,$0A" } // HangUp
case 467 : { send_string dvCodec,"'xcommand key Click Key:PhoneBook',$0D,$0A" } // Directory
case 469 : { send_string dvCodec,"'xcommand key Click Key:Layout',$0D,$0A" } // Layout
case 453 : { send_string dvCodec,"'xcommand key Click Key:1',$0D,$0A" } // Key1
case 454 : { send_string dvCodec,"'xcommand key Click Key:2',$0D,$0A" } // Key2
case 455 : { send_string dvCodec,"'xcommand key Click Key:3',$0D,$0A" } // Key3
case 456 : { send_string dvCodec,"'xcommand key Click Key:4',$0D,$0A" } // Key4
case 457 : { send_string dvCodec,"'xcommand key Click Key:5',$0D,$0A" } // Key5
case 458 : { send_string dvCodec,"'xcommand key Click Key:6',$0D,$0A" } // Key6
case 459 : { send_string dvCodec,"'xcommand key Click Key:7',$0D,$0A" } // Key7
case 460 : { send_string dvCodec,"'xcommand key Click Key:8',$0D,$0A" } // Key8
case 461 : { send_string dvCodec,"'xcommand key Click Key:9',$0D,$0A" } // Key9
case 452 : { send_string dvCodec,"'xcommand key Click Key:0',$0D,$0A" } // Key0
case 451 : { send_string dvCodec,"'xcommand key Click Key:Star',$0D,$0A" } // Key*
case 450 : { send_string dvCodec,"'xcommand key Click Key:Square',$0D,$0A" } // Key
case 472 : { send_string dvCodec,"'xcommand key Click Key:Home',$0D,$0A" } // Cancel
case 473 : { send_string dvCodec,"'xcommand key Click Key:Presentation',$0D,$0A" } // Presentation
case 474 : { send_string dvCodec,"'xcommand key Click Key:MuteMic',$0D,$0A" } // MuteMic
case 475 : { send_string dvCodec,"'xcommand key Click Key:VolumeUp',$0D,$0A" } // Volum+
case 476 : { send_string dvCodec,"'xcommand key Click Key:VolumeDown',$0D,$0A" } // Volum-
case 477 : { send_string dvCodec,"'xcommand key Click Key:Up',$0D,$0A" } // Up
case 478 : { send_string dvCodec,"'xcommand key Click Key:Down',$0D,$0A" } // Down
case 479 : { send_string dvCodec,"'xcommand key Click Key:Left',$0D,$0A" } // Left
case 480 : { send_string dvCodec,"'xcommand key Click Key:Right',$0D,$0A" } // Right
case 481 : { send_string dvCodec,"'xcommand key Click Key:Ok',$0D,$0A" } // Ok
case 482 : { send_string dvCodec,"'xcommand key Click Key:c',$0D,$0A" } // cancel
case 483 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 tilt:up',$0D,$0A" } //
case 484 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 tilt:down',$0D,$0A" } //
case 485 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 pan:left',$0D,$0A" } //
case 486 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 pan:right',$0D,$0A" } //
case 487 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 zoom:in',$0D,$0A" } //
case 488 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 zoom:out',$0D,$0A" } //
case 489 : { send_string dvCodec,"'xcommand key Click Key:Selfview',$0D,$0A" } // Selfview
case 490 : { send_string dvCodec,"'xcommand key Click Key:F1',$0D,$0A" } //
case 491 : { send_string dvCodec,"'xcommand key Click Key:F2',$0D,$0A" } //
case 492 : { send_string dvCodec,"'xcommand key Click Key:F3',$0D,$0A" } //
case 493 : { send_string dvCodec,"'xcommand key Click Key:F4',$0D,$0A" } //
case 494 : { send_string dvCodec,"'xcommand key Click Key:F5',$0D,$0A" } //
case 495 : { send_string dvCodec,"'xcommand key Click Key:C',$0D,$0A" } // Cancel
}
}
release:
{
switch (button.input.channel)
{
case 483 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 tilt:stop',$0D,$0A" } //
case 484 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 tilt:stop',$0D,$0A" } //
case 485 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 pan:stop',$0D,$0A" } //
case 486 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 pan:stop',$0D,$0A" } //
case 487 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 zoom:stop',$0D,$0A" } //
case 488 : { send_string dvCodec,"'xcommand camera ramp cameraId:1 zoom:stop',$0D,$0A" } //
}
}
}
(***********************************************************)
(* THE ACTUAL PROGRAM GOES BELOW *)
(***********************************************************)
DEFINE_PROGRAM
WAIT 5
{
IF(!Tandberg_Connected)
{
IP_CLIENT_OPEN(dvCodec.PORT,'192.168.1.123',23,1)
}
}
wait 20
{
if(CodecBuffer="255,253,24,255,253,32,255,253,35,255,253,39")
{
send_string dvCodec,"255,252,24,255,252,32,255,252,35,255,252,39 "
clear_buffer CodecBuffer
}
else if(CodecBuffer="255,251,3,255,253,1,255,253,31,255,251,5,255,253,33")
{
send_string dvCodec,"255,254,3,255,252,1,255,252,31,255,254,5,255,252,33"
clear_buffer CodecBuffer
}
if(find_string(CodecBuffer,'login:',1))
{
send_string dvCodec,"'admin',$0D"
clear_buffer CodecBuffer
}
else if(find_string(CodecBuffer,'Password:',1))
{
send_string dvCodec,"'24f2dd7973',$0D" //
clear_buffer CodecBuffer
}
clear_buffer CodecBuffer
}
//wait 50 send_string dvCodec,"'xcommand key Click Key:Selfview',$0D,$0A"
//wait 200 send_string dvLed1,"$AA,$11,$FF,$01,$01,$12"
//wait 200 send_string dvLed2,"$AA,$11,$FF,$01,$01,$12"
(***********************************************************)
(* END OF PROGRAM *)
(* DO NOT PUT ANY CODE BELOW THIS COMMENT *)
(***********************************************************) -
Well ou don't need the ZIP CKIENT OPEN in the Data Event. That's just going to grow a runtime error. Did you as I suggested above?
-
We've been fighting similar issues with seven NI2100 masters each with an NXV-300 attached. Support has been involved and we've been trying all the typical stuff like turning off udp and zeroconifg. Turning off the Bonjour on the virtual touch panels, setting the ethernet mode and the like. The last thing that support suggested was to turn off the ssh server (set the port to 0) and we haven't had either a master or NXV-300 drop off line since. But, the customer's IT guys have been mucking about doing all their super secret crap so who knows what's made the problem go away.
Anyway, you might try the ssh port thing as it's very unlikely that you are doing anything with it. -
ericmedley wrote: »Well ou don't need the ZIP CKIENT OPEN in the Data Event. That's just going to grow a runtime error. Did you as I suggested above?
Boy oh boy, this why you don't text and drive. You can't type for crap. -
We too have seen systems lock up after 3 to 8 days, we did hardware and network swapouts trying to isolate it. The NetLinx would literally stop, the heartbeat light would be on solid, no communication, and a hard reboot was required to recover.
Then log review showing intense outside hacking attempts on telnet. With IPs from China, Russia, and elsewhere, we saw as many as 200 login attempts an hour, sometimes for hours. It looks like it used up all the IP resources of the Netlinx, locking us out.
We set the router to refuse all outside connections except for a few specific domains, and it appears to have stopped both the attacks and the lockups.
I didn't mention this earlier as this thread OP implies that the NetLinx was still communicating without a reboot, a circumstance we didn't see... so this may have nothing to do with this issue, but it clearly can be a problem when the NetLinx is exposed for remote access.
A Virtual Private Network setup is another solution on this issue. We opted to try the IP range blocking first as it was simpler. -
I had a 3100 locking up inexplicably as well, and the problem resolved itself without me ever finding the cause of it. I came to the conclusion it was IP related, which John's response may shed some light on. I have to wonder if there is a Botnet out there latching on to AMX controllers thinking they are PCs it can suborn.
-
There are more bots every day, combing random IP addresses and ports looking for responses from exposed machines. Once they find a port that replies, the info is passed to another network of bots that concentrate on hammering the ports with brute-force random sign-on efforts looking to get inside. Until they get past the login, there's no way to be sure just what kind of machine or content they've found, so I am pretty certain that AMX boxes specifically aren't "targeted"... just found.
While any IP is at risk of being targeted, we have watched enough systems in widely placed areas to see that IP ranges in high income areas are much more targeted than others. Nantucket Island, San Francisco City, and Manhattan areas are much more highly attacked than others. Which makes sense if your purpose is identity theft. Follow the money.
In this environment, a shocking number of (our and other) dealers routinely leave the Netlinx and panel VNC connections exposed, open and completely unsecured... for their "convenience".
Don't. -
Had the same problem with an IP address from China - was bombarding SSH and locked up the master. It's been happy ever since I shut down the telnet & SSH port forwarding.
Leave a Comment
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