Anytime Help Center

Errors Returned When IP Connection Fails

Rating

​​Errors Returned When IP Connection Fails​


 

When an IP_CLIENT_OPEN is attempted and an ONERROR is returned, a numeric error value is returned.

This will show as Device.Number in the ONERROR event. The 822-DL1-IP Error Reporting.zip example shows an IP_CLIENT_OPEN with a function that will print the errors to the debug port as SEND_STRING 0s. Enable Internal Diagnostics or enable MSG ON in terminal or telnet to see the messages.


 

PROGRAM_NAME='IP Error Reporting'
(***********************************************************)
(*  FILE CREATED ON: 04/10/2007  AT: 18:41:07              *)
(***********************************************************)
(***********************************************************)
(***********************************************************)
(*  FILE_LAST_MODIFIED_ON: 04/11/2007  AT: 10:20:54        *)
(***********************************************************)
(* System Type : NetLinx                                   *)
(***********************************************************)
(* REV HISTORY:                                            *)
(***********************************************************)
(*
    $History: $
*)
(***********************************************************)
(*          DEVICE NUMBER DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_DEVICE
dvIP_DEVICE  =  0:3:0   // IP DEVICE
(***********************************************************)
(*               CONSTANT DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_CONSTANT
#WARN 'SET ADDRESS AND PORT HERE'
CHAR cIP_ADDRESS[50] = '192.168.1.240' // IP DEVICE ADDRESS
INTEGER nPORT_NUMBER = 23        // IP DEVICE PORT
(***********************************************************)
(*              DATA TYPE DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_TYPE
(***********************************************************)
(*               VARIABLE DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_VARIABLE
INTEGER nCONNECTION // TRACKS ONLINE STATUS
(***********************************************************)
(*        SUBROUTINE/FUNCTION DEFINITIONS GO BELOW         *)
(***********************************************************)
(* EXAMPLE: DEFINE_FUNCTION <RETURN_TYPE> <NAME> (<PARAMETERS>) *)
(* EXAMPLE: DEFINE_CALL '<NAME>' (<PARAMETERS>) *)
// PRINTS IP ERRORS TO DIAGNOSTICS
DEFINE_FUNCTION CHAR[100] IpError (LONG lERR)
{
  Switch (lERR)
  {
    Case 0:
      RETURN "";
    Case 2:
      RETURN "'IP ERROR (',ITOA(lERR),'): General Failure (IP_CLIENT_OPEN/IP_SERVER_OPEN)'";
    Case 4:
      RETURN "'IP ERROR (',ITOA(lERR),'): unknown host or DNS error (IP_CLIENT_OPEN)'";
    Case 6:
      RETURN "'IP ERROR (',ITOA(lERR),'): connection refused (IP_CLIENT_OPEN)'";
    Case 7:
      RETURN "'IP ERROR (',ITOA(lERR),'): connection timed out (IP_CLIENT_OPEN)'";
    Case 8:
      RETURN "'IP ERROR (',ITOA(lERR),'): unknown connection error (IP_CLIENT_OPEN)'";
    Case 14:
      RETURN "'IP ERROR (',ITOA(lERR),'): local port already used (IP_CLIENT_OPEN/IP_SERVER_OPEN)'";
    Case 16:
      RETURN "'IP ERROR (',ITOA(lERR),'): too many open sockets (IP_CLIENT_OPEN/IP_SERVER_OPEN)'";
    Case 10:
      RETURN "'IP ERROR (',ITOA(lERR),'): Binding error (IP_SERVER_OPEN)'";
    Case 11:
      RETURN "'IP ERROR (',ITOA(lERR),'): Listening error (IP_SERVER_OPEN)'";
    Case 15:
      RETURN "'IP ERROR (',ITOA(lERR),'): UDP socket already listening (IP_SERVER_OPEN)'";
    Case 9:
      RETURN "'IP ERROR (',ITOA(lERR),'): Already closed (IP_CLIENT_CLOSE/IP_SERVER_CLOSE)'";
  Case 17:
      RETURN "'IP ERROR (',ITOA(lERR),'): Local port not open, can not send string (IP_CLIENT_OPEN)'"; 
    Default:
      RETURN "'IP ERROR (',ITOA(lERR),'): Unknown'";
  }
}
(***********************************************************)
(*                STARTUP CODE GOES BELOW                  *)
(***********************************************************)
DEFINE_START
// OPENS CONNECTION ON BOOT
IP_CLIENT_OPEN(dvIP_DEVICE.PORT,cIP_ADDRESS,nPORT_NUMBER,IP_TCP)
(***********************************************************)
(*                THE EVENTS GO BELOW                      *)
(***********************************************************)
DEFINE_EVENT
DATA_EVENT[dvIP_DEVICE]
{
 ONLINE:
 {
  nCONNECTION = 1
 } 
 OFFLINE:
 {
  nCONNECTION = 0
  // REOPENS CONNECTION IF DROPS
  IP_CLIENT_OPEN(dvIP_DEVICE.PORT,cIP_ADDRESS,nPORT_NUMBER,IP_TCP)
 }
 ONERROR:
 {
  IpError (DATA.NUMBER) // SENDS STRING TO DIAGNOSTICS ON ERROR
 }
}
(***********************************************************)
(*            THE ACTUAL PROGRAM GOES BELOW                *)
(***********************************************************)
DEFINE_PROGRAM
(***********************************************************)
(*                     END OF PROGRAM                      *)
(*        DO NOT PUT ANY CODE BELOW THIS COMMENT           *)
(***********************************************************)


 


​​

Downloads

Product

 

Topic

Programming

Related Articles

Last modified at 4/3/2023 12:42 PM by PRO Knowledge Base
Top