#include #include #include "extcode.h" /*===================================-======================================*/ /* DCS ERRORS LIBRARY */ /*-----------------------------------=--------------------------------------*/ /* AUTHORs: S.G.Basiladze DESIGN ISSUEs: Provide all the necessary Error Handling System subroutines on the Procedure (hardware dependent), Function (hardware independent) and Action (remote control) Levels. MODIF_HISTORY: 01.01.1999 - first version 10.02.2001 - 2-nd version: Show..() -> Get..() replaced 16.03.2001 - 3-rd version: Errors & Func-s optimization -------------------------------------------------------------------------- HOW TO USE: See some comments in the end of Cversion.c /*===================================-====================================== LOW LEVEL DCS ERROR HANDLING PROCEDURES ----------------------------------------------------------------------------*/ //#ifdef SHOe /* SHOw Error Info ------------------- */ /* GET DRIVER OPERATION ERROR DESCRIPTION STRING (28 LETTERs) */ /* */ /* Ecod - Error CODe - ALWAYS is ODD */ /* Bits 0- 1: Severity of Error: */ /* 0 - Normal (No Error), */ /* 2 - Warning, */ /* 1 - Alarm, */ /* 3 - Fatal */ /* Bits 2- 7: DCS Operation error_number (<64)*/ /* Bits 8-13: DCS Procedure error_number (<64)*/ /* Bits 14-19: DCS Function error_number (<64)*/ /* Bits 20-25: DCS Hardware Type number (<64)*/ /* */ /* Oper - OPERation description string pointer */ /* */ void GetOperationError(int Ecod, char *Oper) { int hard, oper; /* HARDware and OPERation when error */ strcpy(Oper," Unknown_Hardware_Oper_Code "); hard = Ecod & 0x0FF00000; oper = Ecod & 0x000000FF; if(hard == 0x00100000) /* NIcan+orIC Driver operations Errors */ { switch (oper) /* "strcpy" skip the words after " " ? */ { case 0x1 : strcpy(Oper," Does_not_driver_error.....!"); break; case 0x5 : strcpy(Oper," Function_Timeout..........!"); break; case 0x9 : strcpy(Oper," Watchdog_Timeout..........!"); break; case 0xD : strcpy(Oper," Unknown_Timeout...........!"); break; case 0x11: strcpy(Oper," NC_Driver_error...........!"); break; case 0x15: strcpy(Oper," Invalid_Obj_name_syntax...!"); break; case 0x19: strcpy(Oper," Inval_Netw_Interf_Obj_Name!"); break; case 0x1D: strcpy(Oper," Invalid_CAN_Object_name...!"); break; case 0x21: strcpy(Oper," Unknown_object_name_error.!"); break; case 0x25: strcpy(Oper," Invalid_Operation_Parameter"); break; case 0x29: strcpy(Oper," Inval_low_16_bits_of_AttrID"); break; case 0x2D: strcpy(Oper," Object_is_already_open....!"); break; case 0x31: strcpy(Oper," Object_not_stopped_when_set"); break; case 0x35: strcpy(Oper," Write_queue_overflow......!"); break; case 0x39: strcpy(Oper," Read_Queue_Overflow.......!"); break; case 0x3D: strcpy(Oper," Overflow_in_CAN_chip......!"); break; case 0x41: strcpy(Oper," Unknown_Overflow..........!"); break; case 0x45: strcpy(Oper," Data_just_read_were_old...!"); break; case 0x49: strcpy(Oper," Not_supported.............!"); break; case 0x4D: strcpy(Oper," CAN_communication:_stuff..!"); break; case 0x51: strcpy(Oper," CAN_communication:_form...!"); break; case 0x55: strcpy(Oper," CAN_communication:_acknowl!"); break; case 0x59: strcpy(Oper," CAN_communication:_bit_1..!"); break; case 0x5D: strcpy(Oper," CAN_communication:_bit_0..!"); break; case 0x61: strcpy(Oper," CAN_communication:_crc....!"); break; case 0x65: strcpy(Oper," CAN_communication:_unknown!"); break; case 0x69: strcpy(Oper," SIMPANLZ_queue_overflow...!"); break; case 0x6D: strcpy(Oper," Unknown_status............!"); break; case 0x71: strcpy(Oper," Can't_find_Unit_by_Name...!"); break; case 0x75: strcpy(Oper," Guard_Mode_don't_equal_30h!"); break; case 0x79: strcpy(Oper," Csts[]_is_not_10,_20_or_30h"); break; case 0x7D: strcpy(Oper," Csts[]_is_not_04,_08_or_0Ch"); break; case 0x81: strcpy(Oper," Chan_Number_don't_equal_0,1"); break; case 0x85: strcpy(Oper," CanNmtServGlobal():_is Err."); break; case 0x89: strcpy(Oper," Can't_get_Desirable_State.!"); break; case 0x8D: strcpy(Oper," CanBoxWrite():_failure....!"); break; case 0xF1: strcpy(Oper," Create_Mutex_failed.......!"); break; default: strcpy(Oper," Unknown_Driver_Operat_Error"); break; } } if(hard == 0x00200000) /* NIcan+LMB Driver operations Errors */ { switch (oper) /* "strcpy" skip the words after " " ? */ { case 0x1 : strcpy(Oper," Does_not_driver_error.....!"); break; case 0x5 : strcpy(Oper," Function_Timeout..........!"); break; case 0x9 : strcpy(Oper," Watchdog_Timeout..........!"); break; case 0xD : strcpy(Oper," Unknown_Timeout...........!"); break; case 0x11: strcpy(Oper," NC_Driver_error...........!"); break; case 0x15: strcpy(Oper," Invalid_Obj_name_syntax...!"); break; case 0x19: strcpy(Oper," Inval_Netw_Interf_Obj_Name!"); break; case 0x1D: strcpy(Oper," Invalid_CAN_Object_name...!"); break; case 0x21: strcpy(Oper," Unknown_object_name_error.!"); break; case 0x25: strcpy(Oper," Invalid_Operation_Parameter"); break; case 0x29: strcpy(Oper," Inval_low_16_bits_of_AttrID"); break; case 0x2D: strcpy(Oper," Object_is_already_open....!"); break; case 0x31: strcpy(Oper," Object_not_stopped_when_set"); break; case 0x35: strcpy(Oper," Write_queue_overflow......!"); break; case 0x39: strcpy(Oper," Read_Queue_Overflow.......!"); break; case 0x3D: strcpy(Oper," Overflow_in_CAN_chip......!"); break; case 0x41: strcpy(Oper," Unknown_Overflow..........!"); break; case 0x45: strcpy(Oper," Data_just_read_were_old...!"); break; case 0x49: strcpy(Oper," Not_supported.............!"); break; case 0x4D: strcpy(Oper," CAN_communication:_stuff..!"); break; case 0x51: strcpy(Oper," CAN_communication:_form...!"); break; case 0x55: strcpy(Oper," CAN_communication:_acknowl!"); break; case 0x59: strcpy(Oper," CAN_communication:_bit_1..!"); break; case 0x5D: strcpy(Oper," CAN_communication:_bit_0..!"); break; case 0x61: strcpy(Oper," CAN_communication:_crc....!"); break; case 0x65: strcpy(Oper," CAN_communication:_unknown!"); break; case 0x69: strcpy(Oper," SIMPANLZ_queue_overflow...!"); break; case 0x6D: strcpy(Oper," Unknown_status............!"); break; case 0x71: strcpy(Oper," Can't_find_Unit_by_Name...!"); break; case 0x75: strcpy(Oper," Guard_Mode_don't_equal_30h!"); break; case 0x79: strcpy(Oper," Csts[]_is_not_10,_20_or_30h"); break; case 0x7D: strcpy(Oper," Csts[]_is_not_04,_08_or_0Ch"); break; case 0x81: strcpy(Oper," Chan_Number_don't_equal_0,1"); break; case 0x85: strcpy(Oper," CanNmtServGlobal():_is Err."); break; case 0x89: strcpy(Oper," Can't_get_Desirable_State.!"); break; case 0x8D: strcpy(Oper," CanBoxWrite():_failure....!"); break; case 0xF1: strcpy(Oper," Create_Mutex_failed.......!"); break; default: strcpy(Oper," Unknown_Driver_Operat_Error"); break; } } if(hard == 0x08100000) /* NTcan+CST Driver operations Errors */ { switch (oper) /* "strcpy" skip the words after " " ? */ { case 0x1 : strcpy(Oper," Does_not_driver_error.....!"); break; case 0x5 : strcpy(Oper," READ_TIMEOUT..............!"); break; case 0x9 : strcpy(Oper," WRITE_TIMEOUT.............!"); break; case 0xD : strcpy(Oper," WRITE_ERROR...............!"); break; case 0x11: strcpy(Oper," CONTR_OFF_BUS.............!"); break; case 0x15: strcpy(Oper," CONTR_BUSY................!"); break; case 0x19: strcpy(Oper," CONTR_WARN................!"); break; case 0x1D: strcpy(Oper," NO_ID_ENABLED.............!"); break; case 0x21: strcpy(Oper," ID_ALREADY_ENABLED........!"); break; case 0x25: strcpy(Oper," ID_NOT_ENABLED............!"); break; case 0x29: strcpy(Oper," INVALID_FIRMWARE..........!"); break; case 0x2D: strcpy(Oper," MESSAGE_LOST..............!"); break; default: strcpy(Oper," Unknown_Driver_Operat_Error"); break; } } if(hard == 0x08200000) /* NTcan+FrBe Driver operations Errors */ { switch (oper) /* "strcpy" skip the words after " " ? */ { case 0x1 : strcpy(Oper," Does_not_driver_error.....!"); break; case 0x5 : strcpy(Oper," NTCAN_RX_TIMEOUT..........!"); break; case 0x9 : strcpy(Oper," NTCAN_TX_TIMEOUT..........!"); break; case 0xD : strcpy(Oper," NTCAN_TX_ERROR............!"); break; case 0x11: strcpy(Oper," NTCAN_CONTR_OFF_BUS.......!"); break; case 0x15: strcpy(Oper," NTCAN_CONTR_BUSY..........!"); break; case 0x19: strcpy(Oper," NTCAN_CONTR_WARN..........!"); break; case 0x1D: strcpy(Oper," NTCAN_NO_ID_ENABLED.......!"); break; case 0x21: strcpy(Oper," NTCAN_ID_ALREADY_ENABLED..!"); break; case 0x25: strcpy(Oper," NTCAN_ID_NOT_ENABLED......!"); break; case 0x29: strcpy(Oper," NTCAN_INVALID_FIRMWARE....!"); break; case 0x2D: strcpy(Oper," NTCAN_MESSAGE_LOST........!"); break; case 0x31: strcpy(Oper," NO_WAIT_MESS_IN_READ_QUEUE!"); break; default: strcpy(Oper," Unknown_Driver_Operat_Error"); break; } } if(hard == 0x08800000) /* NTcan+Cryst Driver operations Errors*/ { switch (oper) /* "strcpy" skip the words after " " ? */ { case 0x1 : strcpy(Oper," Does_not_driver_error.....!"); break; case 0x5 : strcpy(Oper," NTCAN_RX_TIMEOUT..........!"); break; case 0x9 : strcpy(Oper," NTCAN_TX_TIMEOUT..........!"); break; case 0xD : strcpy(Oper," NTCAN_TX_ERROR............!"); break; case 0x11: strcpy(Oper," NTCAN_CONTR_OFF_BUS.......!"); break; case 0x15: strcpy(Oper," NTCAN_CONTR_BUSY..........!"); break; case 0x19: strcpy(Oper," NTCAN_CONTR_WARN..........!"); break; case 0x1D: strcpy(Oper," NTCAN_NO_ID_ENABLED.......!"); break; case 0x21: strcpy(Oper," NTCAN_ID_ALREADY_ENABLED..!"); break; case 0x25: strcpy(Oper," NTCAN_ID_NOT_ENABLED......!"); break; case 0x29: strcpy(Oper," NTCAN_INVALID_FIRMWARE....!"); break; case 0x2D: strcpy(Oper," NTCAN_MESSAGE_LOST........!"); break; default: strcpy(Oper," Unknown_Driver_Operat_Error"); break; } } } /* GET DCS PROCEDURE ERROR DESCRIPTION STRING (26 LETTERs) */ /* */ /* Ecod - Error CODe - ALWAYS is ODD */ /* Bits 0- 1: Severity of Error: */ /* 0 - Normal (No Error), */ /* 2 - Warning, */ /* 1 - Alarm, */ /* 3 - Fatal */ /* Bits 2- 7: DCS Operation error_number (<64)*/ /* Bits 8-13: DCS Procedure error_number (<64)*/ /* Bits 14-19: DCS Function error_number (<64)*/ /* Bits 20-25: DCS Hardware Type number (<64)*/ /* */ /* Proc - PROCedure description string pointer */ /* Oper - OPERation error flag */ /* */ void GetProcedureError(int Ecod, char *Proc) { int hard, func, proc; /* HARD, FUNCtion, PROCedure when error*/ strcpy(Proc,""); if((Ecod & 0x1) > 0) { hard = Ecod & 0x0FF00000; func = Ecod & 0x000FC000; proc = Ecod & 0x00003F00; /*GE*/ if(hard == 0) /* General Hardware independent Errors*/ { if(func == 0x10000) /* General InitDCShost() Errors */ { switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Can't open SystConfig File"); break; case 0x2100: strcpy(Proc,"Can't open HostConfig File"); break; case 0x2200: strcpy(Proc,"Can't open NodeConfig File"); break; case 0x2300: strcpy(Proc,"Can't open UnitConfig File"); break; case 0x2400: strcpy(Proc,"Can't open Limit_type File"); break; case 0x2500: strcpy(Proc,"Can't open Calibrat-n File"); break; case 0x2600: strcpy(Proc,"Can not open ErrorOut File"); break; default : strcpy(Proc," Unknown Procedure Error "); } } else if(func == 0x8C000) /* General Copy DCS Info Errors */ { switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc," Fill Unit Info messExceed"); break; case 0x2100: strcpy(Proc," Fill Port Info messExceed"); break; case 0x2200: strcpy(Proc," Fill Node Info messExceed"); break; case 0x2300: strcpy(Proc," Fill Host Info messExceed"); break; case 0x2400: strcpy(Proc," Fill Scan Info messExceed"); break; case 0x2500: strcpy(Proc," COM_Mess has wrong params"); break; case 0x2600: strcpy(Proc," EXE_Mess has wrong params"); break; case 0x2700: strcpy(Proc," EXE_Message is too long "); break; case 0x2800: strcpy(Proc," Host Info did not found "); break; case 0x2900: strcpy(Proc," Node Info did not found "); break; case 0x2A00: strcpy(Proc," Port Info did not found "); break; case 0x2B00: strcpy(Proc," Unit Info did not found "); break; case 0x2C00: strcpy(Proc," Chan Info did not found "); break; case 0x2D00: strcpy(Proc,"EXE_Mess Data is too short"); break; case 0x2E00: strcpy(Proc,"Unknown System desir_State"); break; case 0x3000: strcpy(Proc," COM_Mess: Unknown Funct "); break; case 0x3100: strcpy(Proc,"EXE_Data Size is too large"); break; case 0x3200: strcpy(Proc,"EXE_Stat Size is too large"); break; case 0x3500: strcpy(Proc," Message Info overfulled "); break; case 0x3600: strcpy(Proc," Fragm info_Numb exceed "); break; case 0x3700: strcpy(Proc," Fragm scan_Numb exceed "); break; default : strcpy(Proc," Unknown Procedure Error "); } } else if(func == 0xA0000) /* General TransActions Errors */ { switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc," Startup() couldn't find "); break; case 0x2100: strcpy(Proc," Server - Unknown Host: "); break; case 0x2200: strcpy(Proc," Server Socket Opening "); break; case 0x2300: strcpy(Proc," Set fast socket option "); break; case 0x2400: strcpy(Proc," Server Binding Procedure "); break; case 0x2500: strcpy(Proc," Server rlogind - Accept "); break; case 0x2600: strcpy(Proc," Server RequMes receiving "); break; case 0x2700: strcpy(Proc," Server RespMess sending "); break; case 0x2800: strcpy(Proc," Client - Unknown Host: "); break; case 0x2900: strcpy(Proc," Client Socket Opening "); break; case 0x2A00: strcpy(Proc," Client Connect Procedure "); break; case 0x2B00: strcpy(Proc," Client RequMess sending "); break; case 0x2C00: strcpy(Proc," Client RespMes receiving "); break; case 0x2D00: strcpy(Proc," Client Send Select TmOut "); break; case 0x2F00: strcpy(Proc," Client Send Select Fault "); break; case 0x3000: strcpy(Proc," Client Read Select TmOut "); break; case 0x3100: strcpy(Proc," Client Read Select Fault "); break; case 0x3200: strcpy(Proc," Server Send Select Fault "); break; case 0x3300: strcpy(Proc," Server Read Select Fault "); break; case 0x3400: strcpy(Proc," Server Access Select Err "); break; case 0x3500: strcpy(Proc," Socket Closing Procedure "); break; case 0x3600: strcpy(Proc," Function Code is unknown "); break; case 0x3700: strcpy(Proc," Parent, can't open Pipe "); break; case 0x3800: strcpy(Proc," Parent, child call Failed"); break; case 0x3900: strcpy(Proc," Parent, Can't fork "); break; case 0x3A00: strcpy(Proc," System overfull Error "); break; case 0x3B00: strcpy(Proc," A usable WinSock DLL "); break; case 0x3C00: strcpy(Proc," New Socket "); break; default : strcpy(Proc," Unknown Action Error "); } } else if(func == 0xA4000) /* General Requests Errors */ { switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Can't open CtrlScript File"); break; case 0x2100: strcpy(Proc," Can not close Script File"); break; case 0x3000: strcpy(Proc," Find set of CAN numbers "); break; case 0x3100: strcpy(Proc," CAN Message Error "); break; case 0x3200: strcpy(Proc,"Can't open CrystCalib File"); break; case 0x3300: strcpy(Proc,"Can't open DAC-config File"); break; default : strcpy(Proc," Unknown Request Error "); } } else if(func == 0xAC000) /* General SetGetByName Errors */ { switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc," Tree_start: NULL_argument"); break; case 0x2100: strcpy(Proc," Tree_up: NULL_argument"); break; case 0x2200: strcpy(Proc," Can't go: Tree_down "); break; case 0x2300: strcpy(Proc," Can't create new treenode"); break; case 0x2400: strcpy(Proc," Can't create new tree "); break; case 0x2500: strcpy(Proc," Tree_addnode: NULL_argum "); break; case 0x2600: strcpy(Proc," No 'nextnodes' more "); break; case 0x2700: strcpy(Proc," Tree_getdata: NULL_argum "); break; case 0x2800: strcpy(Proc," Tree_getfuladdr: NULL_arg"); break; case 0x2900: strcpy(Proc," GetNearDownNodes:NULL_arg"); break; case 0x2A00: strcpy(Proc," Can not open Naming File "); break; case 0x2B00: strcpy(Proc," Number of levels exceed "); break; case 0x2C00: strcpy(Proc," GetTreeItem: NULL_arg(s) "); break; case 0x2D00: strcpy(Proc," Can't find node by Iden "); break; case 0x2E00: strcpy(Proc," GetTreeNode: NULL_arg(s) "); break; case 0x3000: strcpy(Proc," GetTreeAddr: NULL_arg(s) "); break; case 0x3100: strcpy(Proc," GetTreeAddr - find node "); break; case 0x3200: strcpy(Proc," Can't find addr by Anode1"); break; case 0x3300: strcpy(Proc," GetTreAdrByNode: NULL_arg"); break; case 0x3400: strcpy(Proc," NULL pointer to AddrNode "); break; case 0x3500: strcpy(Proc," Can't find addr by Anode2"); break; case 0x3600: strcpy(Proc," GetTreeName: NULL_arg(s) "); break; case 0x3700: strcpy(Proc," GetTreeName - find node "); break; case 0x3800: strcpy(Proc," Can't find name by Nnode1"); break; case 0x3900: strcpy(Proc," GetTreNamByNode: NULL_arg"); break; case 0x3A00: strcpy(Proc," NULL pointer to NameNode "); break; case 0x3B00: strcpy(Proc," Can't find name by Nnode2"); break; case 0x3C00: strcpy(Proc," SetItemPointer: NULL_arg "); break; case 0x3D00: strcpy(Proc," Get Item pointer to data "); break; case 0x3E00: strcpy(Proc," GetItemPointer: NULL_arg "); break; case 0x3F00: strcpy(Proc," Find set of CAN numbers "); break; default : strcpy(Proc," Unknown Request Error "); } } else if(func == 0xB0000) /* General Errors Handling */ { switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc," Write/Read Data NOT equal"); break; default : strcpy(Proc," Unknown ErrHandling Error"); } } else if(func >= 0) /* General Function independent Errors*/ { switch(proc) /* General (System) Procedures Errors */ { case 0x0000: strcpy(Proc,""); break; case 0x0100: strcpy(Proc,"Syst Structure is exceed "); break; case 0x0200: strcpy(Proc,"Data cell has zero length "); break; case 0x0300: strcpy(Proc,"FragMAX number is exceed "); break; case 0x0400: strcpy(Proc,"ChanMAX number is exceed "); break; case 0x0500: strcpy(Proc,"UnitMAX number is exceed "); break; case 0x0600: strcpy(Proc,"PortMAX number is exceed "); break; case 0x0700: strcpy(Proc,"NodeMAX number is exceed "); break; case 0x0800: strcpy(Proc,"HostMAX number is exceed "); break; case 0x0900: strcpy(Proc,"LimiMAX number is exceed "); break; case 0x0A00: strcpy(Proc,"Can't find Manf/Prod Name "); break; case 0x0B00: strcpy(Proc,"Reserve NTcan "); break; case 0x0C00: strcpy(Proc,"Node is OFF the System "); break; case 0x0D00: strcpy(Proc,"Port is OFF the System "); break; case 0x0E00: strcpy(Proc,"Unit is OFF the System "); break; case 0x0F00: strcpy(Proc,"Reserve NIcan "); break; case 0x1000: strcpy(Proc,"Node is not Ready "); break; case 0x1100: strcpy(Proc,"Port is not Ready "); break; case 0x1200: strcpy(Proc,"Unit is not Ready "); break; case 0x1300: strcpy(Proc,"Chan is not Ready "); break; case 0x1400: strcpy(Proc,"Node has no Status Access "); break; case 0x1500: strcpy(Proc,"Unit has no Status Access "); break; case 0x1600: strcpy(Proc,"Unit/Chan is not Writable "); break; case 0x1700: strcpy(Proc,"Unit/Chan is not Readable "); break; case 0x1800: strcpy(Proc,"Unit/Chan isn't Eventable "); break; case 0x1900: strcpy(Proc,"Unit/Chan isn't Periodabl "); break; case 0x1A00: strcpy(Proc,"Reserve "); break; case 0x1E00: strcpy(Proc,"Can't reopen InfoOut File "); break; case 0x1F00: strcpy(Proc,"Can't reopen ShowInf File "); break; default : strcpy(Proc,"Unknown error"); } } } /*OR*/ if(hard == 0x00100000) /* NIcan+orIC Procedures Errors */ { switch(func) /* Specific Procedures Errors */ { case 0x00000: strcpy(Proc,""); break; case 0x14000: ; /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"OpenCanNetwIntObj() "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Open_CanObj() failure "); break; case 0x2100: strcpy(Proc,"CrNotifAnalyz() falure "); break; case 0x2200: strcpy(Proc,"CanCrNotifBox() falure "); break; case 0x2300: strcpy(Proc,"CanSdoServ() falure "); break; case 0x2400: strcpy(Proc,"CanCrNotifGuard() falure "); break; case 0x2500: strcpy(Proc,"CanNmtServSelect() falure"); break; case 0x2600: strcpy(Proc,"CanBoxWrite() falure "); break; case 0x2700: strcpy(Proc,"Can't find Unit by Name "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Unit Write procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Unit Read procedure "); break; case 0x2100: strcpy(Proc,"Unit Access procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x44000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Unit Event procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x50000: /* Close Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CAN ObjClose Error "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x54000: /* Close Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CAN Close NetwObj Error "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x58000: ; /* Close Host Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CANerrFile 'Cout_err.dat'"); break; case 0x2100: strcpy(Proc,"CANbusFile 'Cout_bus.dat'"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; default: ; } } /*MB*/ if(hard == 0x00200000) /* NIcan+LMB Procedures Errors */ { switch(func) /* Specific Procedures Errors */ { case 0x00000: strcpy(Proc, ""); break; case 0x14000: ; /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"OpenCanNetwIntObj() "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Open_CanObj() failure "); break; case 0x2100: strcpy(Proc,"CrNotifAnalyz() failure "); break; case 0x2200: strcpy(Proc,"CanCrNotifBox() failure "); break; case 0x2300: strcpy(Proc,"CanSdoService() failure "); break; case 0x2400: strcpy(Proc,"CanCrNotifGuard() failure"); break; case 0x2500: strcpy(Proc,"CanNmtService() failure "); break; case 0x2600: strcpy(Proc,"CanBoxWrite() failure "); break; case 0x2700: strcpy(Proc,"Can't find Unit by Name "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Unit Write procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Unit Read procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x44000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Unit Event procedure "); break; case 0x2100: strcpy(Proc,"TimeOut of Data waiting "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x50000: /* Close Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CAN ObjClose proc_Error "); break; case 0x2100: strcpy(Proc,"CanNmtService() falure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x54000: /* Close Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CAN Close NetwObj Error "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x58000: ; /* Close Host Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CANerrFile 'Cout_err.txt'"); break; case 0x2100: strcpy(Proc,"CANbusFile 'Cout_bus.dat'"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; default: ; } } /*PCs*/if(hard == 0x01000000) /* PC Serial Port Procedures Errors */ { switch(func) /* Specific Procedures Errors */ { case 0x00000: strcpy(Proc, ""); break; case 0x14000: ; /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC serial port(Node) Init"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC serial port Unit Init "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC serial port Send Data "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC serial port Take Data "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x40000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC serial port Wait Event"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; default: ; } } /*PCp*/if(hard == 0x02000000) /* PC Parallel Port Procedures Errors */ { switch(func) /* Specific Procedures Errors */ { case 0x00000: strcpy(Proc, ""); break; case 0x14000: ; /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC parall port(Node) Init"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC parall port Unit Init "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC parall port Send Data "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC parall port Take Data "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x40000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"PC parall port Wait Event"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; default: ; } } /*CS*/ if(hard == 0x08100000) /* NTcan+CST Procedures Errors */ { switch(func) /* Specific Procedures Errors */ { case 0x00000: strcpy(Proc, ""); break; case 0x14000: /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"canOpen "); break; case 0x2100: strcpy(Proc,"canSetBaudrate() "); break; case 0x2200: strcpy(Proc,"canIdAdd(SEND) "); break; case 0x2300: strcpy(Proc,"canIdAdd(REPL) "); break; case 0x2400: strcpy(Proc,"canIdAdd(Chan) "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"OMG_OperMode: canWrite() "); break; case 0x2100: strcpy(Proc,"OMG_ConfMode: canWrite(1)"); break; case 0x2200: strcpy(Proc,"OMG_SetCstId: canWrite(1)"); break; case 0x2300: strcpy(Proc,"OMG_SetCstId: canWrite(2)"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"WriteData: canWrite() "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Read Data: canWrite() "); break; case 0x2100: strcpy(Proc,"Read Data: canRead() "); break; case 0x2200: strcpy(Proc,"Some messages are lost "); break; case 0x2300: strcpy(Proc,"RdDataID Waiting TimeOut "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x44000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"canRead() "); break; case 0x2100: strcpy(Proc,"Some messages are lost "); break; case 0x2200: strcpy(Proc,"EvDataID Waiting TimeOut "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x50000: /* Close Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Frag-s Number is too much"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x54000: /* Close Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"canIdClear(SEND "); break; case 0x2100: strcpy(Proc,"canIdClear(REPL) "); break; case 0x2200: strcpy(Proc,"canIdClear(Chan) "); break; case 0x2300: strcpy(Proc,"Port_Close "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x58000: ; /* Close Host Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; default : strcpy(Proc,"Unknown Procedure Error "); } default: ; } } /*FB*/ if(hard == 0x08200000) /* NTcan+FrenzBerg Procedures Errors */ { switch(func) /* Specific Procedurec Errors */ { case 0x00000: strcpy(Proc, ""); break; case 0x14000: /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Port canOpen() failed "); break; case 0x2100: strcpy(Proc,"CrstSetBrate() : canWr() "); break; case 0x2200: strcpy(Proc,"Low UnPo NoBrd canIdAdd()"); break; case 0x2300: strcpy(Proc,"Low UnPo Broad canIdAdd()"); break; case 0x2400: strcpy(Proc,"Hgh UnPo NoBrd canIdAdd()"); break; case 0x2500: strcpy(Proc,"Hgh UnPo Broad canIdAdd()"); break; case 0x2600: strcpy(Proc,"LowP Broadcast canIdAdd()"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"FrBgUnitReset():CANoper()"); break; case 0x2100: strcpy(Proc,"FrBgSendPerd() :CANoper()"); break; case 0x2200: strcpy(Proc,"FrBgAsynMode() :CANoper()"); break; case 0x2300: strcpy(Proc,"FrBgUnitStart():CANoper()"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x24000: ; /* Send Status Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"No access to Unit status "); break; case 0x2100: strcpy(Proc,"Status is not Writable "); break; case 0x2200: strcpy(Proc,"CrstADCregsWr(): canWr() "); break; case 0x2300: strcpy(Proc,"CrstADCsetWRt(): canWr() "); break; case 0x2400: strcpy(Proc,"CrstADCsetGRn(): canWr() "); break; case 0x2500: strcpy(Proc,"CrstADCpumpDs(): canWr() "); break; case 0x2600: strcpy(Proc,"CrstADCunipol(): canWr() "); break; case 0x2700: strcpy(Proc,"CrstADCcalibr(): canWr() "); break; case 0x2800: strcpy(Proc,"CrstADCserial(): canWr() "); break; case 0x2900: strcpy(Proc,"CrstADCsavePw(): canWr() "); break; case 0x2A00: strcpy(Proc,"CrstADCreset(): canWr() "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x28000: ; /* Take Status Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Chan Fragment Numb exceed"); break; case 0x2100: strcpy(Proc,"Write Data Procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Chan Fragment Numb exceed"); break; case 0x2100: strcpy(Proc,"Read Data Procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x44000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Chan Fragment Numb exceed"); break; case 0x2100: strcpy(Proc,"Wait Event Procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x50000: /* Close Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Close Unit Procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x54000: /* Close Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"canIdDelete(cstSEND) "); break; case 0x2100: strcpy(Proc,"canIdDelete(cstREPL) "); break; case 0x2200: strcpy(Proc,"CloseDCSunit(Unum/Iden) "); break; case 0x2300: strcpy(Proc,"canIdDelete(Unum/Iden) "); break; case 0x2400: strcpy(Proc,"Frag-s Number is too much"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x58000: ; /* Close Host Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; default : strcpy(Proc,"Unknown Procedure Error "); } default: ; } } /*CR*/ if(hard == 0x08800000) /* NTcan+CrystSpiCan Procedures Errors */ { switch(func) /* Specific Procedurec Errors */ { case 0x00000: strcpy(Proc, ""); break; case 0x14000: /* Init Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Port canOpen() failed "); break; case 0x2100: strcpy(Proc,"CrstSetBrate() : canWr() "); break; case 0x2200: strcpy(Proc,"Low UnPo NoBrd canIdAdd()"); break; case 0x2300: strcpy(Proc,"Low UnPo Broad canIdAdd()"); break; case 0x2400: strcpy(Proc,"Low PoUn NoBrd canIdAdd()"); break; case 0x2500: strcpy(Proc,"Low PoUn Broad canIdAdd()"); break; case 0x2600: strcpy(Proc,"Hgh UnPo NoBrd canIdAdd()"); break; case 0x2700: strcpy(Proc,"Hgh UnPo Broad canIdAdd()"); break; case 0x2800: strcpy(Proc,"Hgh PoUn NoBrd canIdAdd()"); break; case 0x2900: strcpy(Proc,"Hgh PoUn Broad canIdAdd()"); break; case 0x2A00: strcpy(Proc,"Unit CAN Id: canIdAdd()"); break; case 0x2B00: strcpy(Proc,"Unit CAN Id: canIdAdd()"); break; case 0x2C00: strcpy(Proc,"Unit CAN Id: canIdAdd()"); break; case 0x2D00: strcpy(Proc,"LowP Broadcast canIdAdd()"); break; case 0x2E00: strcpy(Proc,"Frag-s Number is too much"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x18000: /* Init Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CrstUnitBrate(): canWr() "); break; case 0x2100: strcpy(Proc,"CrstUnitReset(): canWr() "); break; case 0x2200: strcpy(Proc,"CrstUnitInit() : canWr() "); break; case 0x2300: strcpy(Proc,"CrstUnitResEr(): canWr() "); break; case 0x2400: strcpy(Proc,"CrstUnitSttRd(): canWr() "); break; case 0x2500: strcpy(Proc,"CrstUnitSttRd(): canRd() "); break; case 0x2600: strcpy(Proc,"CrstScanBrcst(): canWr() "); break; case 0x2700: strcpy(Proc,"CrstScanBrcst(): canRd() "); break; case 0x2800: strcpy(Proc,"CrstUnitEnMes(): canWr() "); break; case 0x2900: strcpy(Proc,"CrstUnitDsMes(): canWr() "); break; case 0x2A00: strcpy(Proc,"CrstUnitEnPer(): canWr() "); break; case 0x2B00: strcpy(Proc,"CrstUnitDsPer(): canWr() "); break; case 0x2C00: strcpy(Proc,"CrstUnitEnAck(): canWr() "); break; case 0x2D00: strcpy(Proc,"CrstUnitDsAck(): canWr() "); break; case 0x2E00: strcpy(Proc,"CrstUnitSttRd(): canWr() "); break; case 0x2F00: strcpy(Proc,"CrstUnitReset(): canWr() "); break; case 0x3100: strcpy(Proc,"CrstUnitEnDbg(): canWr() "); break; case 0x3200: strcpy(Proc,"CrstUnitDsDbg(): canWr() "); break; case 0x3300: strcpy(Proc,"CrstScanIndiv(): canWr() "); break; case 0x3400: strcpy(Proc,"CrstScanIndiv(): canRd() "); break; case 0x3500: strcpy(Proc,"CrstADCstatRd(): canWr() "); break; case 0x3600: strcpy(Proc,"CrstADCstatRd(): canRd() "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x20000: ; /* Send Status Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CrstADCregsWr(): canWr() "); break; case 0x2100: strcpy(Proc,"CrstADCsetWRt(): canWr() "); break; case 0x2200: strcpy(Proc,"CrstADCsetGRn(): canWr() "); break; case 0x2300: strcpy(Proc,"CrstADCpumpDs(): canWr() "); break; case 0x2400: strcpy(Proc,"CrstADCunipol(): canWr() "); break; case 0x2500: strcpy(Proc,"CrstADCreset(): canWr() "); break; case 0x2600: strcpy(Proc,"CrstADCcalibr(): canWr() "); break; case 0x2700: strcpy(Proc,"CrstADCserial(): canWr() "); break; case 0x2800: strcpy(Proc,"CrstADCsavePw(): canWr() "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x24000: ; /* Take Status Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x34000: /* Send Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Write Data Procedure "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x38000: /* Take Data Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"CrstADCdataRd(): canWr() "); break; case 0x2100: strcpy(Proc,"CrstADCloclRd(): canWr() "); break; case 0x2200: strcpy(Proc,"CrstADCloclRd(): canRd() "); break; case 0x2300: strcpy(Proc,"CrstADCperdRd(): canWr() "); break; case 0x2400: strcpy(Proc,"CrstADCplocRd(): canWr() "); break; case 0x2500: strcpy(Proc,"CrstADCcanclP(): canWr() "); break; case 0x2600: strcpy(Proc,"CrstADCregsRd(): canWr() "); break; case 0x2700: strcpy(Proc,"CrstADCrgloRd(): canWr() "); break; case 0x2800: strcpy(Proc,"CrstADCrgloRd(): canRd() "); break; case 0x2900: strcpy(Proc,"CAN operation(): canRd() "); break; case 0x2A00: strcpy(Proc,"CAN operation(): canRd() "); break; case 0x2B00: strcpy(Proc,"CAN operation(): canRd() "); break; case 0x2C00: strcpy(Proc,"Requested Chan Not Found "); break; case 0x2D00: strcpy(Proc,"Low number of Responds "); break; case 0x2E00: strcpy(Proc,"Not all Chan-s are found "); break; case 0x2F00: strcpy(Proc,"Wr&Rd Data are not equal "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x44000: /* Wait for Event Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x50000: /* Close Unit Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"Frag-s Number is too much"); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x54000: /* Close Node Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; case 0x2000: strcpy(Proc,"canIdDelete(cstSEND) "); break; case 0x2100: strcpy(Proc,"canIdDelete(cstREPL) "); break; case 0x2200: strcpy(Proc,"CloseDCSunit(Unum/Iden) "); break; case 0x2300: strcpy(Proc,"canIdDelete(Unum/Iden) "); break; default : strcpy(Proc,"Unknown Procedure Error "); } break; case 0x58000: ; /* Close Host Errors */ switch(proc) { case 0x0000: strcpy(Proc,""); break; default : strcpy(Proc,"Unknown Procedure Error "); } default: strcpy(Proc,""); } } } } /* GET DCS FUNCTION ERROR DESCRIPTION STRING (15 LETTERs) */ /* */ /* Ecod - Error CODe - ALWAYS is ODD */ /* Bits 0- 1: Severity of Error: */ /* 0 - Normal (No Error), */ /* 2 - Warning, */ /* 1 - Alarm, */ /* 3 - Fatal */ /* Bits 2- 7: DCS Operation error_number (<64)*/ /* Bits 8-13: DCS Procedure error_number (<64)*/ /* Bits 14-19: DCS Function error_number (<64)*/ /* Bits 20-25: DCS Hardware Type number (<64)*/ /* */ /* Func - FUNCtion description string pointer */ /* Proc - PROCedure error flag */ /* */ void GetFunctionError(int Ecod, char *Func, int *Proc) { int func; /* FUNCtion when error */ *Proc = 0; if((Ecod & 0x1) > 0) { func = Ecod & 0x000FC000; switch(func) { case 0x10000: *Proc=1; strcpy(Func," InitDCShost : "); break; case 0x14000: *Proc=1; strcpy(Func," InitDCSnode : "); break; case 0x18000: *Proc=1; strcpy(Func," InitDCSunit : "); break; case 0x20000: *Proc=1; strcpy(Func,"WriteDCSstate: "); break; case 0x24000: *Proc=1; strcpy(Func," SendDCSstate: "); break; case 0x28000: *Proc=1; strcpy(Func," TakeDCSstate: "); break; case 0x2C000: *Proc=1; strcpy(Func," ReadDCSstate: "); break; case 0x30000: *Proc=1; strcpy(Func," WriteDCSdata: "); break; case 0x34000: *Proc=1; strcpy(Func," SendDCSdata : "); break; case 0x38000: *Proc=1; strcpy(Func," TakeDCSdata : "); break; case 0x3C000: *Proc=1; strcpy(Func," ReadDCSdata : "); break; case 0x44000: *Proc=1; strcpy(Func," WaitDCSevent: "); break; case 0x48000: *Proc=1; strcpy(Func," TakeDCSevent: "); break; case 0x50000: *Proc=1; strcpy(Func," CloseDCSunit: "); break; case 0x54000: *Proc=1; strcpy(Func," CloseDCSnode: "); break; case 0x58000: *Proc=1; strcpy(Func," CloseDCShost: "); break; case 0x80000: *Proc=1; strcpy(Func," SetDCSstate : "); break; case 0x84000: *Proc=1; strcpy(Func," GetDCSstate : "); break; case 0x88000: *Proc=1; strcpy(Func," SetDCSdata : "); break; case 0x8C000: *Proc=1; strcpy(Func," GetScanInfo : "); break; case 0xA0000: *Proc=1; strcpy(Func," Action Error: "); break; case 0xA4000: *Proc=1; strcpy(Func," RequestError: "); break; case 0xA8000: *Proc=1; strcpy(Func," SetGetByAddr: "); break; case 0xAC000: *Proc=1; strcpy(Func," SetGetByName: "); break; case 0xB0000: *Proc=1; strcpy(Func," Error Handle: "); break; default : strcpy(Func," Unknown Funct "); } } } //#endif /* End of SHOw Errors ---------------- */