#ifndef icsneo40_API__h_ #define icsneo40_API__h_ #include "icsSpyData.h" #include "icsnvc40.h" // // If borland c is defined we need to have "extern "c" added // before each api call and a closing bracket after each api call #ifdef BORLANDC #define BORLANDC_HEADER extern "C" { #define BORLANDC_FOOTER } #else #define BORLANDC_HEADER #define BORLANDC_FOOTER #endif BORLANDC_HEADER void _stdcall icsneoGetISO15765Status(int hObject, int lNetwork, int lClearTxStatus, int lClearRxStatus, int *lTxStatus, int *lRxStatus); BORLANDC_FOOTER BORLANDC_HEADER void _stdcall icsneoSetISO15765RxParameters(int hObject, int lNetwork, int lEnable, spyFilterLong *pFF_CFMsgFilter, icsSpyMessage *pTxMsg, int lCFTimeOutMs, int lFlowCBlockSize, int lUsesExtendedAddressing, int lUseHardwareIfPresent); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetSerialNumber(int hObject, unsigned int *iSerialNumber); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoFindAllUSBDevices(int lDriverType, int iGetSerialNumbers, int *iDevices, int *iSerialNumbers, int *iOpenedStates, int *iNumDevices); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoEnableNetworkCom(int hObject, int iEnable); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoEnableNetworkRXQueue(int hObject, int iEnable); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoOpenPortEx(int lPortNumber, int lPortType, int lDriverType, int lIPAddressMSB, int lIPAddressLSBOrBaudRate, int bConfigRead, unsigned char *bNetworkID, int * hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoOpenPort(int lPortNumber, int lPortType, int lDriverType, unsigned char *bNetworkID, unsigned char *bSCPIDs, int * hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoFindNeoDevices(unsigned long DeviceTypes, NeoDevice *pNeoDevice, int *pNumDevices); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoFindNeoDevicesEx(unsigned long DeviceTypes, NeoDeviceEx *pNeoDeviceEx, int *pNumDevices, const POptionsFindNeoEx pOptionsFindNeoEx); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoOpenNeoDevice(NeoDevice *pNeoDevice, int *hObject, unsigned char * bNetworkIDs, int bConfigRead, int iOptions); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoOpenNeoDeviceEx(const NeoDeviceEx *pNeoDeviceEx, int *hObject, unsigned char * bNetworkIDs, int bConfigRead, int iOptions, OptionsOpenNeoEx * stOptionsOpenNeoEx); BORLANDC_FOOTER //This function is used by the Vector wrapper DLL and always uses the neoVI Server BORLANDC_HEADER int _stdcall icsneoOpenNeoDeviceBySerialNumber(int SerialNumber, int *hObject, int iOpenFastDeviceType, int bConfigRead, int bSyncToPC); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoClosePort(int hObject, int * pNumberOfErrors); BORLANDC_FOOTER BORLANDC_HEADER void _stdcall icsneoFreeObject(int hObject); BORLANDC_FOOTER /** * @fn int _stdcall icsneoSetContext(int hObject) * * @brief Sets the "context" of how icsneoFindNeoDevices(Ex) and icsneoOpenNeoDevice(Ex) * function. If the context is 0 (null) than icsneoFindNeoDevices(Ex) will be system * wide, searching USB and other supported computer interfaces. icsneoFindNeoDevices can * then be used to connect to devices found in this manner. If the context is a handle * to connected CAN tool than icsneoFindNeoDevices(Ex) will search a specific CAN bus * for supported IntrepidCS CAN Nodes. Again icsneoOpenNeoDevice(Ex) would be used * create logical connections to found CAN Nodes. * * Example. * * // Context defaults to 0(system wide) on DLL load so no need to do this * icsneoSetContext(0); * * // finds USB device * icsneoFindNeoDevices(NEODEVICE_FIRE,neoDevice,&neo_cnt); * * // connect to USB device * icsneoOpenNeoDevice(neoDevice,&hObject,0,0,0,&stOptionsOpenNeoEx); * * icsneoSetContext(hObject); // Set Context to the USB device * * //Find CAN Nodes using FIRE, filter for neoECU * stOptionsFindNeoEx.CANOptions.iNetworkID = NETID_HSCAN; * icsneoFindNeoDevicesEx(NEODEVICE_ECU,neoDeviceEx,&neo_cnt,&stOptionsFindNeoEx); * * // connect to the neoECU * stOptionsOpenNeoEx.CANOptions.iNetworkID = NETID_HSCAN; * icsneoOpenNeoDeviceEx(neoDeviceEx,&hCANObject,0,0,0,&stOptionsOpenNeoEx); * * // back to system context but hCANObject can be used any time for any API * SetContext(0); * * // load CoreMini To neoECU * icsneoScriptLoad( hCANObject, * ExampleCoreMini, * sizeof(ExampleCoreMini), * SCRIPT_LOCATION_FLASH_MEM); * * // Transmit Message request to FIRE. * icsneoTxMessages(hObject, &Msg,NETID_HSCAN, 1); * * @author Ozrien * @date 9/9/2009 * * @param hObject Handle to set context to, can be 0 for system wide(USB,TCPIP,etc...). * * @return 1 if successfull, 0 if failed. */ BORLANDC_HEADER int _stdcall icsneoSetContext(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetMessages(int hObject, icsSpyMessage * pMsg, int * pNumberOfMessages, int * pNumberOfErrors); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoTxMessages(int hObject, icsSpyMessage *pMsg, int lNetworkID, int lNumMessages); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetErrorMessages(int hObject, int *pErrorMsgs, int *pNumberOfErrors); BORLANDC_FOOTER //BORLANDC_HEADER int _stdcall icsneoGetCmdMessages(int hObject, icsneoVICommand *pCmdMsgs, int *pNumberOfCmds); BORLANDC_FOOTER //BORLANDC_HEADER int _stdcall icsneoSendRawCmds(int hObject, icsneoVICommand * pCmdMsgs, int lNumOfCmds); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSendConfiguration(int hObject, unsigned char * pData, int lNumBytes); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetConfiguration(int hObject, unsigned char *pData, int *lNumBytes); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetFireSettings(int hObject, SFireSettings *pSettings, int iNumBytes); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetFireSettings(int hObject, SFireSettings *pSettings, int iNumBytes, int bSaveToEEPROM); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetVCAN3Settings(int hObject, SVCAN3Settings *pSettings, int iNumBytes); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetVCAN3Settings(int hObject, SVCAN3Settings *pSettings, int iNumBytes, int bSaveToEEPROM); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetYellowSettings(int hObject, SYellowSettings *pSettings, int iNumBytes); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetYellowSettings(int hObject, SYellowSettings *pSettings, int iNumBytes, int bSaveToEEPROM); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoStartSockServer(int hObject, int iPort); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoStopSockServer(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetErrorInfo(int iErrorNumber, TCHAR *szErrorDescriptionShort, TCHAR *szErrorDescriptionLong, int *iMaxLengthShort, int *iMaxLengthLong, int *iErrorSeverity, int *iRestartNeeded); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetErrorInfoW(int iErrorNumber, WCHAR *szErrorDescriptionShort, WCHAR *szErrorDescriptionLong, int *iMaxLengthShort, int *iMaxLengthLong, int *iErrorSeverity, int *iRestartNeeded); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetDLLVersion(); BORLANDC_FOOTER BORLANDC_HEADER void _stdcall icsneoGetDLLVersionEx(DWORD *dwMSVersion, DWORD *dwLSVersion); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetPerformanceParameters(int hObject, int *iBufferCount, int *iBufferMax, int *iOverFlowCount, int *iReserved1, int *iReserved2, int *iReserved3, int *iReserved4, int *iReserved5); BORLANDC_FOOTER double _stdcall icsneoGetPerformanceTimer(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetupISO15765HwSupport(int hObject, int iNetIDCAN, int iFilter, int iFilterMask, int iFilterXtdCANID, int iFilterXtdAddress, icsSpyMessage * p_stFlowControl, int iFlowControlXtdAddress, int iEnableFCTransmit); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetupISO15765HwSupportEx(int hObject, int iNetIDCAN, int iFilter, int iFilterMask, int iFilterXtdCANID, int iFilterXtdAddress, icsSpyMessage * p_stFlowControl, int iFlowControlXtdAddress,int iEnableFCTransmit, unsigned char CCPLength); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetPerformanceParameters(int hObject, int iCOMReceiveMode, int iCOMTxMode, int iUSBReceiveMode, int iUSBTxMode, int iTxThreadPriority, int iRxThreadPriority, int iTxSleepMs, int iRxSleepMs); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoWaitForRxMessagesWithTimeOut(int hObject, unsigned int iTimeOut); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetOpenPorts(unsigned char * pBuf, unsigned long Size); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoFindFirstFreeDevice(int *iComPortNum, int *iSerialNumber, int *iDeviceType); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoForceFirmwareUpdate(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetHWFirmwareInfo( int hObject, stAPIFirmwareInfo* pInfo ); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetDLLFirmwareInfo(int hObject, stAPIFirmwareInfo* pInfo); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetBitRate(int hObject, int BitRate, int NetworkID); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetBootloaderPromptEnable(int hObject,BOOL enable); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetBootloaderPromptCallback(int hObject, void (*OnPrompt)(unsigned long) ); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoReadSDCard(int hObject,unsigned long iSectorIndex,unsigned char *data, unsigned long *bytesRead); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoWriteSDCard(int hObject,unsigned long iSectorIndex,const unsigned char *data); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetTimeStampForMsg(int hObject, icsSpyMessage *pMsg, double *pTimeStamp); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetRTC(int hObject,const icsSpyTime *time); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetRTC(int hObject,icsSpyTime *time); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptStop(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptStart(int hObject, int iLocation); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptLoad(int hObject, const unsigned char * bin, unsigned long len_bytes, int iLocation); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptClear(int hObject, int iLocation); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptStartFBlock(int hObject,unsigned int fb_index); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptStopFBlock(int hObject,unsigned int fb_index); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptGetFBlockStatus(int hObject, unsigned int fb_index, int *piStatus); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptReadISO15765_2_TxMessage(int hObject, unsigned int iIndex, stCM_ISO157652_TxMessage *pTxMessage); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptWriteISO15765_2_TxMessage(int hObject, unsigned int iIndex,const stCM_ISO157652_TxMessage * pTxMessage); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptReadTxMessage(int hObject, unsigned int iIndex, icsSpyMessage *pTxMessage); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptWriteTxMessage(int hObject, unsigned int iIndex,const icsSpyMessage *pTxMessage); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptReadRxMessage(int hObject, unsigned int iIndex, icsSpyMessage *pTxMessageMask, icsSpyMessage *pTxMessageValue); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptWriteRxMessage(int hObject, unsigned int iIndex,const icsSpyMessage *pTxMessageMask,const icsSpyMessage *pTxMessageValue); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptReadAppSignal(int hObject, unsigned int iIndex,double * dValue); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptWriteAppSignal(int hObject, unsigned int iIndex,double dValue); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoScriptGetScriptStatus(int hObject, int *piStatus); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetLastAPIError(int hObject, unsigned long *pErrorNumber); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoValidateHObject(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoInitTxRxApp( int hObject, unsigned long timeout); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoPerformTxRxPairs( int hObject, icsSpyMessage * tx_msgs, icsSpyMessage * rx_msgs, icsSpyMessage * rx_mask_msgs, unsigned long msg_cnt); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoClearApp(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetPerformanceStats(int hObject,SPerformanceStats * stPerformanceStats); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoResetPerformanceStats(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetDeviceParameters(int hObject, char *pParameters, char *pValues, short ValuesLength); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetDeviceParameters(int hObject, char *pParmValue, int *pErrorIndex, int bSaveToEEPROM); BORLANDC_FOOTER BORLANDC_HEADER void _stdcall icsneoSetReflashCallback( void(*OnReflashUpdate)(const wchar_t*,unsigned long) ); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetReflashDisplayCallbacks(void (*OnPrompt)(unsigned long), void (*OnReflashUpdate)(const wchar_t*,unsigned long)); BORLANDC_FOOTER BORLANDC_HEADER void _stdcall icsneoClearReflashDisplayCallbacks(void); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoTransmitISO15765_2_Message(int hObject, stCM_ISO157652_TxMessage *pTxMessage); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoEnable_ISO15765_2_By_Network(int hObject, unsigned int NetworkID, BOOL bDisableNormalMsgQueue); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoDisable_ISO15765_2(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoSetISO15765_2_FlowCtlID(int hObject, int Index, unsigned int ID, unsigned int FC_ID, BOOL bIs29Bit, unsigned int BlockSize, unsigned int STMIN, unsigned int bIsExtAddr); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoClearISO15765_2_FlowCtlID(int hObject, int Index); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoClearAllISO15765_2_FlowCtlIDs(int hObject); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoLoadFirmwareToRam(int lPortNumber, int lPortType, int lDriverType,unsigned char * bFirmware, int iNumBytes, int iStartAddress); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoFindAllCOMDevices(int lDriverType, int iGetSerialNumbers, int iStopAtFirst, int iUSBCommOnly, int *iDeviceTypes, int *iComPorts, int *iSerialNumbers, int *iNumDevices); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall icsneoGetStoredFirmwareInfo(unsigned long NeoDeviceType, char *VersionInfo); BORLANDC_FOOTER BORLANDC_HEADER int _stdcall FlashDevice( unsigned long seed, NeoDevice *pNeoDevice, SReflashRequest * stReflashRequest, void (*MessageCallback)(const char * message,bool success) ); BORLANDC_FOOTER #endif // icsneo40_API__h_