//////////////////////////////////////////////////////////////////////////////////// // neovi.h // 4/23/2001 // Header file for using the neoVI API in C/C++ // Copyright Intrepid Control Systems, Inc. 2000-2003 // www.intrepidcs.com // Converted to Delphi by Robert Marquardt (rom) 2 Jan 2004 //////////////////////////////////////////////////////////////////////////////////// unit icsn40; interface uses // include the standard message data structures icsSpyData; const // OpenPort "OpenType" Argument Constants NEOVI_COMMTYPE_RS232 = 0; NEOVI_COMMTYPE_USB_BULK = 1; NEOVI_COMMTYPE_USB_ISO_DONT_USE = 2; NEOVI_COMMTYPE_TCPIP = 3; // Driver Type Constants INTREPIDCS_DRIVER_STANDARD = 0; INTREPIDCS_DRIVER_TEST = 1; // device Type IDs INTREPIDCS_DEVICE_NEO4 = 0; INTREPIDCS_DEVICE_VCAN = 1; INTREPIDCS_DEVICE_NEO6 = 2; INTREPIDCS_DEVICE_UNKNOWN = 3; // neoVI Subsystem ID's NETID_DEVICE = 0; NETID_HSCAN = 1; NETID_MSCAN = 2; NETID_SWCAN = 3; NETID_LSFTCAN = 4; NETID_FORDSCP = 5; NETID_J1708 = 6; NETID_AUX = 7; NETID_JVPW = 8; NETID_ISO = 9; NETID_ISOPIC = 10; NETID_MAIN51 = 11; NETID_HOST = 12; // ISO15765 Status Flags INTREPIDCS_15765_RX_ERR_GLOBAL = $0001; INTREPIDCS_15765_RX_ERR_CFRX_EXP_FF = $0002; INTREPIDCS_15765_RX_ERR_FCRX_EXP_FF = $0004; INTREPIDCS_15765_RX_ERR_SFRX_EXP_CF = $0008; INTREPIDCS_15765_RX_ERR_FFRX_EXP_CF = $0010; INTREPIDCS_15765_RX_ERR_FCRX_EXP_CF = $0020; INTREPIDCS_15765_RX_ERR_CF_TIME_OUT = $0040; INTREPIDCS_15765_RX_COMPLETE = $0080; INTREPIDCS_15765_RX_IN_PROGRESS = $0100; INTREPIDCS_15765_RX_ERR_SEQ_ERR_CF = $0200; // Configuration Array addresses // HSCAN neoVI or ValueCAN NEO_CFG_MPIC_HS_CAN_CNF1 = 512 + 10; NEO_CFG_MPIC_HS_CAN_CNF2 = 512 + 9; NEO_CFG_MPIC_HS_CAN_CNF3 = 512 + 8; NEO_CFG_MPIC_HS_CAN_MODE = 512 + 54; // med speed neoVI CAN NEO_CFG_MPIC_MS_CAN_CNF1 = 512 + 22; NEO_CFG_MPIC_MS_CAN_CNF2 = 512 + 21; NEO_CFG_MPIC_MS_CAN_CNF3 = 512 + 20; // med speed neoVI CAN NEO_CFG_MPIC_SW_CAN_CNF1 = 512 + 34; NEO_CFG_MPIC_SW_CAN_CNF2 = 512 + 33; NEO_CFG_MPIC_SW_CAN_CNF3 = 512 + 32; // med speed neoVI CAN NEO_CFG_MPIC_LSFT_CAN_CNF1 = 512 + 46; NEO_CFG_MPIC_LSFT_CAN_CNF2 = 512 + 45; NEO_CFG_MPIC_LSFT_CAN_CNF3 = 512 + 44; // neoVI Error Constants /////////////////////////////////////////////////////////// NEOVI_ERROR_DLL_TX_BUFFER_OVERFLOW = 0; NEOVI_ERROR_DLL_ERROR_BUFFER_OVERFLOW = 1; NEOVI_ERROR_DLL_USB_SEND_DATA_ERROR = 2; NEOVI_ERROR_DLL_ISO_DATA_BUFFER_ALLOC = 3; NEOVI_ERROR_DLL_ISO_DATA_READ_BUFFER = 4; NEOVI_ERROR_DLL_ISO_DATA_ZERO_PACKETS = 5; NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW = 6; NEOVI_ERROR_DLL_STOP_ISO_STREAM = 7; NEOVI_ERROR_DLL_INVALID_NETID = 8; NEOVI_ERROR_DLL_PROBLEM_STOPPING_RX_THREAD = 9; NEOVI_ERROR_DLL_PROBLEM_STOPPING_TX_THREAD = 10; NEOVI_ERROR_DLL_MAIN_PIC_BUFFER_OVERFLOW = 11; NEOVI_ERROR_DLL_INVALID_DEVICE_RESPONSE = 12; NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC = 13; NEOVI_ERROR_DLL_RX_CMD_BUFFER_OVERFLOW = 14; NEOVI_ERROR_DLL_RS232_RX_BUFFER_OVERFLOW = 15; NEOVI_ERROR_DLL_RS232_ERR_READCOMERR = 16; NEOVI_ERROR_DLL_RS232_ERR_READ = 17; NEOVI_ERROR_DLL_RS232_BUFFER_ALLOC = 18; NEOVI_ERROR_DLL_RS232_TX_BUFFER_OVERFLOW = 19; NEOVI_ERROR_DLL_RS232_MISC_ERROR = 20; NEOVI_ERROR_DLL_RS232_FIND_WRITE = 21; NEOVI_ERROR_DLL_RS232_FIND_BUFFER_ALLOC = 22; NEOVI_ERROR_DLL_RS232_FIND_CLEARCOMM = 23; NEOVI_ERROR_DLL_RS232_FIND_READCOMM = 24; NEOVI_ERROR_DLL_RS232_FIND_TIMEOUT = 25; NEOVI_ERROR_DLL_RS232_ERR_BREAK = 26; NEOVI_ERROR_DLL_RS232_ERR_FRAME = 27; NEOVI_ERROR_DLL_RS232_ERR_IOE = 28; NEOVI_ERROR_DLL_RS232_ERR_OVERRUN = 29; NEOVI_ERROR_DLL_RS232_ERR_PARITY = 30; NEOVI_ERROR_DLL_RS232_TXBUFFER_ALLOC = 31; NEOVI_ERROR_DLL_USB_TX_RS232_ERROR = 32; NEOVI_ERROR_DLL_RS232_CREATE_FILE = 33; NEOVI_ERROR_DLL_RS232_GET_COMM_STATE = 34; NEOVI_ERROR_DLL_RS232_SET_COMM_STATE = 35; NEOVI_ERROR_DLL_RS232_START_COMM_RX_THREAD = 36; NEOVI_ERROR_DLL_RS232_START_COMM_TX_THREAD = 37; NEOVI_ERROR_DLL_SYNC_COUNT_ERR = 38; NEOVI_ERROR_DLL_RX_MSG_FRAME_ERR = 39; NEOVI_ERROR_DLL_RX_MSG_FIFO_OVER = 40; NEOVI_ERROR_DLL_RX_MSG_CHK_SUM_ERR = 41; NEOVI_ERROR_DLL_PROBLEM_STOPPING_BULKIN_THREAD = 42; NEOVI_ERROR_DLL_BULKIN_ERR_READ = 43; NEOVI_ERROR_DLL_MAIN51_RX_FIFO_OVERFLOW = 44; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW = 45; NEOVI_ERROR_DLL_MAIN51_DEV_FIFO_OVERFLOW = 46; NEOVI_ERROR_DLL_RESET_STATUS_CHANGED = 47; NEOVI_ERROR_DLL_ISO_LONG_CACHE_OVERFLOW = 48; NEOVI_ERROR_DLL_ISORX_LONG_BUFFER_ALLOC = 49; NEOVI_ERROR_DLL_J1708_LONG_CACHE_OVERFLOW = 50; NEOVI_ERROR_DLL_J1708_LONG_BUFFER_ALLOC = 51; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_DEVICE = 52; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HSCAN = 53; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MSCAN = 54; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN = 55; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_LSFTCAN = 56; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_FORDSCP = 57; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_J1708 = 58; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_AUX = 59; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_JVPW = 60; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISO = 61; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISOPIC = 62; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MAIN51 = 63; NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HOST = 64; NEOVI_ERROR_DLL_READ_ENTIRE_DEEPROM_ERROR = 65; NEOVI_ERROR_DLL_WRITE_ENTIRE_DEEPROM_ERROR = 66; NEOVI_ERROR_DLL_USB_PORT_ALREADY_OPEN = 67; NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_IN = 68; NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_IN = 69; NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_OUT = 70; NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_OUT = 71; NEOVI_ERROR_DLL_MAIN51_TX_IN_FROM_HOST_FIFO = 72; NEOVI_ERROR_DLL_MAIN51_TX_HOST_CHKSUM = 73; NEOVI_ERROR_DLL_ISOJ_TX_HOST_MISSED_BYTE = 74; NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75; NEOVI_ERROR_DLL_RX_SOCKET_FIFO_OVER = 76; NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_THREAD = 77; NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_THREAD = 78; NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_CLIENT_THREAD = 78; NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_CLIENT_THREAD = 79; NEOVI_ERROR_DLL_TCP_CLIENT_TX = 80; NEOVI_ERROR_DLL_TCP_CLIENT_RX = 81; NEOVI_ERROR_DLL_TCP_CLIENT_RX_SOCK = 82; NEOVI_ERROR_DLL_UNABLE_CONNECT_TO_SRVR = 83; NEOVI_ERROR_DLL_UNABLE_CREATE_CLIENT_SOCK = 84; NEOVI_ERROR_DLL_UNABLE_WSASTARTUP = 85; NEOVI_ERROR_DLL_SOCK_CL_RD_BUFFER_ALLOC = 86; NEOVI_ERROR_DLL_SOCK_CL_TX_BUFFER_ALLOC = 87; NEOVI_ERROR_DLL_SOCK_SRVR_RX_BUFFER_ALLOC = 88; NEOVI_ERROR_DLL_SOCK_SRVR_TX_BUFFER_ALLOC = 89; NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK = 90; NEOVI_ERROR_DLL_MAIN51_TX_HOST_OVERRUN = 91; NEOVI_ERROR_DLL_OPEN_GET_COMM_TIMEOUT = 92; NEOVI_ERROR_DLL_OPEN_SET_COMM_TIMEOUT = 93; NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE = 94; NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE_TOUT = 95; NEOVI_ERROR_DLL_CLOSE_PURGE_COMM = 96; NEOVI_ERROR_DLL_TX_COM_FIFO_OVERFLOW = 97; NEOVI_ERROR_DLL_GET_USBSERIAL_DEVICES = 98; // Constants for describing error severity icsspyErrCritical = $10; icsspyErrExclamation = $30; icsspyErrInformation = $40; icsspyErrQuestion = $20; // Constants used to calculate the timestamp NEOVI_TIMESTAMP_2 = 0.1048576; NEOVI_TIMESTAMP_1 = 0.0000016; // Constants used to calculate the timestamp NEOVI6_VCAN_TIMESTAMP_2 = 0.065536; NEOVI6_VCAN_TIMESTAMP_1 = 0.000001; // Win32 DLL prototypes type ICSNEOHANDLE = Integer; // (rom) addition PLongBool = ^LongBool; // (rom) for icsneoFindAllUSBDevices function icsneoOpenPort(lPortNumber: Integer; lPortType: Integer; lDriverType: Integer; bNetworkID: PByte; bSCPIDs: PByte; var hObject: ICSNEOHANDLE): LongBool; stdcall; function icsneoOpenPortEx(lPortSerialNumber: Integer; lPortType: Integer; lDriverType: Integer; lIPAddressMSB: Integer; lIPAddressLSBOrBaudRate: Integer; bConfigRead: Integer; bNetworkID: PByte; var hObject: ICSNEOHANDLE): LongBool; stdcall; function icsneoClosePort(hObject: ICSNEOHANDLE; var NumberOfErrors: Integer): LongBool; stdcall; procedure icsneoFreeObject(hObject: ICSNEOHANDLE); stdcall; function icsneoGetMessages(hObject: ICSNEOHANDLE; Msg: PicsSpyMessage; var NumberOfMessages: Integer; var NumberOfErrors: Integer): LongBool; stdcall; function icsneoTxMessages(hObject: ICSNEOHANDLE; Msg: PicsSpyMessage; lNetworkID: Integer; lNumMessages: Integer): LongBool; stdcall; function icsneoGetErrorMessages(hObject: ICSNEOHANDLE; pErrorMsgs: PInteger; var NumberOfErrors: Integer): LongBool; stdcall; function icsneoGetErrorInfo(lErrorNumber: Integer; szErrorDescriptionShort: PChar; szErrorDescriptionLong: PChar; var lMaxLengthShort: Integer; var lMaxLengthLong: Integer; var lErrorSeverity: Integer; var lRestartNeeded: LongBool): LongBool; stdcall; function icsneoSendConfiguration(hObject: ICSNEOHANDLE; pData: PByte; lNumBytes: Integer): LongBool; stdcall; function icsneoFindAllUSBDevices(lDriverType: Integer; iGetSerialNumbers: LongBool; iDevices: PCardinal; iSerialNumbers: PCardinal; iOpenedStates: PLongBool; var iNumDevices: Cardinal): LongBool; stdcall; function icsneoFindAllCOMDevices(lDriverType: Integer; lGetSerialNumbers: LongBool; lStopAtFirst: LongBool; lUSBCommOnly: LongBool; p_lDeviceTypes: PInteger; p_lComPorts: PInteger; p_lSerialNumbers: PInteger; var lNumDevices: Integer): LongBool; stdcall; function icsneoStartSockServer(hObject: ICSNEOHANDLE; iPort: Integer): LongBool; stdcall; function icsneoStopSockServer(hObject: ICSNEOHANDLE): LongBool; stdcall; function icsneoGetDLLVersion: Integer; stdcall; procedure icsneoSetISO15765RxParameters(hObject: ICSNEOHANDLE; lNetwork: Integer; lEnable: LongBool; const FF_CFMsgFilter: spyFilterLong; const FlowCTxMsg: icsSpyMessage; lCFTimeOutMs: Integer; lFlowCBlockSize: Integer; lUsesExtendedAddressing: LongBool; lUseHardwareIfPresent: LongBool); stdcall; procedure icsneoGetISO15765Status(hObject: ICSNEOHANDLE; lNetwork: Integer; lClearTxStatus: LongBool; lClearRxStatus: LongBool; var lTxStatus: Integer; var lRxStatus: Integer); stdcall; function icsneoGetConfiguration(hObject: ICSNEOHANDLE; pData: PByte; var lNumBytes: Integer): LongBool; stdcall; implementation const icsneoDllName = 'ICSNEO40.DLL'; function icsneoOpenPort; external icsneoDllName name 'icsneoOpenPort'; function icsneoClosePort; external icsneoDllName name 'icsneoClosePort'; procedure icsneoFreeObject; external icsneoDllName name 'icsneoFreeObject'; function icsneoGetMessages; external icsneoDllName name 'icsneoGetMessages'; function icsneoTxMessages; external icsneoDllName name 'icsneoTxMessages'; function icsneoGetErrorMessages; external icsneoDllName name 'icsneoGetErrorMessages'; function icsneoGetErrorInfo; external icsneoDllName name 'icsneoGetErrorInfo'; function icsneoOpenPortEx; external icsneoDllName name 'icsneoOpenPortEx'; function icsneoSendConfiguration; external icsneoDllName name 'icsneoSendConfiguration'; function icsneoFindAllUSBDevices; external icsneoDllName name 'icsneoFindAllUSBDevices'; function icsneoFindAllCOMDevices; external icsneoDllName name 'icsneoFindAllCOMDevices'; function icsneoStartSockServer; external icsneoDllName name 'icsneoStartSockServer'; function icsneoStopSockServer; external icsneoDllName name 'icsneoStopSockServer'; function icsneoGetDLLVersion; external icsneoDllName name 'icsneoGetDLLVersion'; procedure icsneoSetISO15765RxParameters; external icsneoDllName name 'icsneoSetISO15765RxParameters'; procedure icsneoGetISO15765Status; external icsneoDllName name 'icsneoGetISO15765Status'; function icsneoGetConfiguration; external icsneoDllName name 'icsneoGetConfiguration'; end.