Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Overview
The neoVI API provides a simple way to access the neoVI hardware with WIN32 development tools. This documentation describes how to use the API for custom applications. Each API has an example targeted for both C/C++, C#, and Visual Basic (VB). Operational examples are included for Microsoft Visual C++, National Instruments LabVIEW, National Instruments LabWindows CVI, Borland C++ Builder, Borland Delphi, and Microsoft Visual Basic.
Included with neoVI is the "icsneo40.dll" DLL. This DLL is a high performance multi-threaded DLL, capable of supporting many neoVI devices simultaneously. The DLL is through dynamic linkage.
For applications using neoVI and ValueCAN devices which do not use Windows, a Linux interface is available. Intrepid Control Systems also has a Github page with APIs and projects for a verity of different system configurations. Code here can be built to fit the needed system.
Getting Started
To get started, review the Basic Operation topic and the topics describing how to use the API in Visual Basic .NET, Visual C++, Visual C#, LabWindows CVI, LabVIEW, Borland C++ Builder, Unity Engine, and Borland Delphi.
Working with the neoVI API, the folloing steps and functions will be used.
Start the application.
Open the driver and find a neoVI or ValueCAN device.
Create the neoVI object using the OpenNeoDevice method.
Transmit messages using the TxMessages method.
Read messages on the network using the GetMessages method.
Optionally readout any errors using the GetErrorMessages method.
Repeat steps 3 through 5 while your application is monitoring the network.
Close the driver when not monitoring by calling the ClosePort method.
To start monitoring again go back to step 2.
When the application exits the neoVI object must freed (destroyed) by calling the FreeObject method.
To use the neoVI API in C# add the icsNeoClass.cs
Class into the C# project (figure 1). Right click on the solution and select “Add Existing Item” from the “Add” menu. Then, call the methods as defined in the WIN32 API Functions and Types Section of this document.
A C# Dot Net 2010 example (Figure 1) is included to show how the API all works together. The main project files are as follows: 1) the project file: IcsApiDotNetCSharp.sln 2) the form file : Form1.cs, and 3) the neoVI module : icsNeoClass.cs. All project files are included in the following file CSnet2010.zip
. This project will open in Visual Studio 2010, 2012, 2013, 2015 and 2017.
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
Do the following steps to use neoVI in Borland Delphi:
Copy the import library icsn40.pas
, and data structure file icsSpyData.pas
to your project directory.
Link to icsn40.pas import library via the “Add to Project…” option (Figure 1). This dialog is accessible via the “Project” pull down menu in Delphi. When the file dialog appears, select the icsn40.pas.
3. Your project manager will now show the import library icsn40.pas (Figure 2).
4. Include icsn40 and icsSpyData in your interface Uses (Figure 3).
5. Finally, call the methods as defined in the Basic Operation document.
A Borland Delphi example (Figure 1) is included to show how the API all works together. The example files are included in the following file: icsnDelphiSample.zip (14kB)
The example shows how to open and close communication to the driver, send messages, and read messages on the networks.
Do the following steps to use neoVI in Borland C++ Builder:
1) Start your new project and add the to your project.
2) Add a #include "icsneo40DLLAPI.h" to your project
3) Use the Functions "LoadDLLAPI" to load the functions and "UnloadDLLAPI" to unload the functions. Examples are below.
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
First set the scene for running an .exe file, then an explanation of how the scripts work.
This is the Unity3D Demo in its entirety included to show how the API all works together; The example files are included in the following file:
Open Unity3D. Locate and open the project folder called “Unity Graphic display API”. (Figure 1)
In the project panel open the Unity scene called Unity_API_Demo. Once opened, in the game view is a place holder for the graphical display. This is where all the data will be visually displayed upon execution of the application. (Figure 2)
Next, locate the icsNeoClass.cs and make sure it is in the correct folder, this imports the .DLL into the project panel (cannot be in any other folder, other then the main “project asset folder”).
Locate IcsNeoClassUnity.cs, located in the Scripts folder. This example script handles the functions of the Intrepid Hardware; open, close, transmit, receive, ect… Then attach the IcsNeoClassUnity.cs on the Main Camera. (refer to figure 3)
The demo should be all set up and ready to play out at this point. Press the play button near the top of the Unity3D windows to enter play mode and begin the demo. (Figure 4)
4) Finally, call the methods as defined in the he document.
A Borland C++ Builder example (Figure 1) is included to show how the API all works together. The example files are included in the following file:
Start your new project and add the Dynamic link helper files
to your project.
Add a #include
“icsneo40DLLAPI.h” to your project
3. Use the Functions “LoadDLLAPI” to load the functions and “UnloadDLLAPI” to unload the functions. Examples are below.
4. Finally, call the methods as defined in the Basic Operation document.
A Visual C++ example (Figure 1) is included to show how the API all works together. The example files are included in the following file: VCNewneoVI.zip
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
Copy the import library icsnLW40.lib
, header file icsnLW40.h
, and data structure file icsspyData.h
to your project directory.
Link to icsnLW40.lib import library by selecting Add Files To Project from the Edit pull down menu. In the “Add Files To Project” dialog select the icsnLW40.lib file (figure 1). You can also the headers from step 1 if you wish. Your project should now list the files you added (figure 2).
3. Include the header icsnLW40.h in your C module (Figure 3).
4. Finally, call the methods as defined in the Basic Operation document.
A National Instruments LabWindows example (Figure 1) is included to show how the API all works together. The example files are included in the following file: LWneoVI.zip (10kB)
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
To use the intrepidcs API in Excel or other VBA supported application add the bas_neoVI.vb
module into your project (figure 1) by right clicking on the Project in the VBA Editor and selecting Insert and then Module. Open the bas_neoVI.vb. Then, call the methods as defined in the Basic Operation document. The function calls for use in VBA are the same as the calls in Visual Basic 6.
A VBA Excel example (Figure 1) is included to show how the API all works together. This project only has 1 file, NeoVIExample.XlS. Make sure macros are enabled to run this example. All the needed project files are included in the following file: ExcelVBA.zip
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
To use the neoVI API in Visual Basic add the Download the file bas_neoVI.vb
module into the VB project (figure 1) by right clicking on the Solution and selecting Add Existing Item from the Add menu. Open the bas_neoVI.vb. Then, call the methods as defined in the WIN32 API Functions and Types Section of this document.
A Visual Basic Dot Net 2010 example (Figure 1) is included to show how the API all works together. The main project files are as follows: 1) the project file: IcsNeoDotNet.sln 2) the form file : Form1.vb, and 3) the neoVI module : bas_neoVI.vb. All project files are included in the following file VBnet2010.zip
. This project will open in Visual Studio 2010, 2012, 2013, 2015, and 2017.
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
Visual Studio 2005 and newer contain different options to compile an application. By default, new programs or programs upgraded from earlier versions of Visual Studio will be configured as "ANY CPU". This option will run as a 32 bit program (x86) on a 32 bit version of Windows and as a 64 bit program (x64) in a 64 bit version of Windows. Projects can also be directly specified as 32 bit (x86) or 64 bit (x64). Starting with icsneo40.dll version 3.7.1.73 and newer, a 64 bit dll was introduced. Using software installs from Intrepid Control Systems, the two dlls are installed to their proper locations on the system. The compiler settings will dictate which of the two dlls is used. Windows will map to the proper one.
The folder location for the icsneo40.dll depends on the Windows install. On a 32 bit (x86) PC, just the 32 bit version is installed to the System32 folder. On a 64 bit system (x64) the 32 bit version is stored in the SysWoW64 folder and the 64 bit version is in the System32 folder. Again the operating system will take care of this based on your settings in the compiler. In either case, the application would need to reference System32, or not specify the location at all. Windows will search the application folder followed by the proper system folder locations to access the correct dll based on your compile options
The configuration manager is used to set which compile type needed. The following are steps for changing the compile options Visual Studio 2010. For help with your version and level of Visual Studio, consult Visual Studio help or MSDN. It is possible to change the compile options. The first step is to open the "Configuration Manager". This can be found by right clicking on your Solution and choosing "Configuration Manager" (figure 1).
Once in Configuration Manager, the Active solution platform can be selected. If you do not have the required option, select "<New...>" (figure 2).
After a new Platform has be created, it can be selected from the Standard tool bar (figure 4)
The intrepidcs API packages all of the WIN32 methods into LabVIEW LLB. Inside the LLB the sub VIs can be accessed to make it easy for you to use neoVI with National Instruments LabVIEW.
Open the “NEO VI Example.llb” found in the file. When you first access the main VI or sub VI’s you may receive a warning regarding a Dependency missing. Make sure that your project is pointing to the icsneo40.dll. This is normally installed to the system32 or SysWOW64 directories.
A LabVIEW example (Figure 1) is included to show how the API all works together. An example project can be found here: .
The example shows how to open and close communication to the driver, send messages and read messages on the networks.
This method closes the communication link with the neoVI hardware.
Parameters
hObject
[in] Specifies the driver object created by .
pNumberOfErrors
[out] Specifies the number of errors in the neoVI DLL error queue. You can read out the errors by calling the method.
Return Values
If the port has been closed successfully the return value will be 1. Otherwise, it will return zero. It will also return zero if the port is already closed.
Remarks
Must be called once for each successful call to or memory and resource leaks will occur.
This method returns the neoVI hardware devices connected to the PC.
Parameters
pNeoDevice
[in] A valid structure filled with information about a specific neoVI device. For C++ a “void*” can be used. For .NET, “IntPtr” is used. This must be obtained by calling .
hObject
[out] This parameter needs to be 32 bit in a 32 bit program and 64 bit in a 64 bit program. This will be set to the handle of the neoVI driver object that is created. It is needed as an input parameter to other API function calls. Every time you create a new neoVI object you must call and to avoid creating a memory and resource leak.
bNetworkIDs
[in] This is an array of number IDs which specify the NetworkID parameter of each network. This allows you to assign a custom network ID to each network. Normally, you will assign consecutive IDs to each of the networks. See for a list of current network ID’s. _ You may also set this parameter to NULL (zero) and the default network ID’s will be used._
bConfigRead
[in] Specifies whether the DLL should read the neoVI’s device configuration before enabling the device. It is recommended that this value be set to 1.
bSyncToPC
[in] Specifies whether timestamps for messages should be adjusted to the PC’s clock to compensate for time drift. This drift is caused by differences that occur over time between the clocks on the neoVI device and the PC.
Return Values
If the port has been opened successfully, the return value will be 1. Otherwise the return value will be zero.
Remarks
To connect to more than one piece of hardware, multiple calls to can be made. The key is to provide a different for each device you want to open. For other function calls, use the returned hObject to talk to that device.
This method releases system resources used by the neoVI device.
Parameters
hObject
**** [in] Specifies the driver object created by .
Return Values
None.
Remarks
This method is used to release any resources that were allocated by . Applications that create neoVI handles should release them using this method, however, the intrepidCS API will release any resources that it created for the client application when the client application ends and the API is unloaded. The LabVIEW neoClosePort.vi will call the FreeObject API.
This method returns the neoVI hardware devices connected to the PC.
Parameters
pNeoDeviceEx [out] This is the address of the first element of an array of structure. This array can be as big as 255 devices. You must specify the size of the pNeoDeviceEx array in the pNumDevices parameter. The number of devices found will be limited to the value of pNumberofDevices or 255, whichever is lower. Each returned NeoDevice structure will contain information for each device such as its type, device ‘handle’ and serial number.
pNumberOfDevices [in/out] In: Specifies the size of the pNeoDevices array. Must be in the range 0 to 255. Out: Specifies the number of neo devices that were found. This can be in the range 0 to 255. DeviceTypes __ [in] This is an array of device types to look for. Specifies the types of neoVI devices to find. Each element in the array need to have a value for the device type to look for. Currently supported values are:
NEODEVICE_UNKNOWN = 0x00000000
NEODEVICE_BLUE = 0x00000001
NEODEVICE_ECU_AVB = 0x00000002
NEODEVICE_RADSUPERMOON = 0x00000003
NEODEVICE_DW_VCAN = 0x00000004
NEODEVICE_RADMOON2 = 0x00000005
NEODEVICE_RADGIGALOG = 0x00000006
NEODEVICE_VCAN41 = 0x00000007
NEODEVICE_FIRE = 0x00000008
NEODEVICE_RADPLUTO = 0x00000009
NEODEVICE_VCAN42_EL = 0x0000000a
NEODEVICE_RADIO_CANHUB = 0x0000000b
NEODEVICE_NEOECU12 = 0x0000000c
NEODEVICE_OBD2_LCBADGE = 0x0000000d
NEODEVICE_RAD_MOON_DUO = 0x0000000e
NEODEVICE_VCAN3 = 0x00000010
NEODEVICE_RADJUPITER = 0x00000011
NEODEVICE_VCAN4_IND = 0x00000012
NEODEVICE_GIGASTAR = 0x00000013
NEODEVICE_ECU22 = 0x00000015
NEODEVICE_RED = 0x00000040
NEODEVICE_ECU = 0x00000080
NEODEVICE_IEVB = 0x00000100
NEODEVICE_PENDANT = 0x00000200
NEODEVICE_OBD2_PRO = 0x00000400
NEODEVICE_PLASMA = 0x00001000
NEODEVICE_NEOANALOG = 0x00004000
NEODEVICE_CT_OBD = 0x00008000
NEODEVICE_ION = 0x00040000
NEODEVICE_RADSTAR = 0x00080000
NEODEVICE_VCAN44 = 0x00200000
NEODEVICE_VCAN42 = 0x00400000
NEODEVICE_CMPROBE = 0x00800000
NEODEVICE_EEVB = 0x01000000
NEODEVICE_VCANRF = 0x02000000
NEODEVICE_FIRE2 = 0x04000000
NEODEVICE_FLEX = 0x08000000
NEODEVICE_RADGALAXY = 0x10000000
NEODEVICE_RADSTAR2 = 0x20000000
NEODEVICE_VIVIDCAN = 0x40000000
NEODEVICE_OBD2_SIM = 0x80000000
NEODEVICE_ALL = = 0xFFFFBFFF
Constants are defined in appropriate header or module. pNumDevicTypes
[in] In: Specifies the size of the DeviceTypes array. Must be in the range 0 to 255.
pOptionsNeoEx
[in] CAN netowork ID for connecting to devices over CAN. Set to null for USB or Ethernet connections.
Return Values
1 if the function succeeded. 0 if it failed for any reason. If the function succeeds but no devices are found 1 will still be returned and pNumberOfDevices will equal 0.
Remarks
This method calculates the timestamp for a message, based on the connected hardware type, and converts it to a usable variable.
Parameters
hObject
[in] Specifies the driver object created by .
pMsg
[in] The message to be used for calculating timestamp.
pTimeStamp
[out] The calculated timestamp.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Different models of neoVI devices have different time resolutions. This function uses the proper formula to calculate a timestamp based on the connected device type.
This method is used to wait a specified amount of time for received messages from the neoVI hardware.
Parameters
hObject
[in] Specifies the driver object created by .
iTimeOut
[in] Specifies the amount of time in milliseconds that the function will wait for a received message before returning.
Return Values
0 if no message was received during the wait period. 1 if a message was received. -1 will be returned if there is an error condition. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
This function allows an application to avoid ‘polling’ for received messages. It will return as soon as a message is received or when the timeout specified has been reached.
Each successful call to should be matched with a call to a when you are finished accessing the hardware. methods.
The NeoDevice array elements that are returned with this function may be passed to so that individual neoVI devices can be opened.
Used to locate connected neoVI devices.
Used to open a communication link with a specific neoVI device.
Closes the communication link with the neoVI device.
Releases system resources used by the neoVI device.
Used to locate connected neoVI and ValueCAN devices.
Used to open a communication link with a specific neoVI or ValueCAN device.
Closes the communication link with the neoVI device.
Releases system resources used by the neoVI device.
Reads messages from the neoVI or ValueCAN device.
Transmits messages to vehicle networks using a neoVI or ValueCAN device.
Transmits messages longer than 8 bytes to vehicle networks using a neoVI or ValueCAN device. Used with Ethernet and CAN FD
Waits a specified amount of time in milliseconds for a received message
Calculates the timestamp for a message given the handle to the device and a Message Structure
Enables ISO15765 for the selective CAN/CANFD network
Configures an outgoing ISO15765 transaction
Configures the hardware to listen for a ISO15765 transaction
In formation on sending longer frames on ISO9171 and Keyword 2000 networks
Reads the configuration bytes for a neoVI Blue or ValueCAN device
Sends configuration bytes to a neoVI Blue or ValueCAN device
Gets device and network parameters for a neoVI Fire device
Sets device and network parameters for a neoVI Fire device
Gets device and network parameters for a neoVI Fire 2 device
Sets device and network parameters for a neoVI Fire 2 device
Gets device and network parameters for a ValueCAN3 device
Sets device and network parameters for a ValueCAN3 device
Gets device and network parameters for a ValueCAN4-1 and ValueCAN4-2 device
Sets device and network parameters for a ValueCAN4-1 and ValueCAN4-2 device
Gets device and network parameters for a ValueCAN RF device
Sets device and network parameters for a ValueCAN RF device
Gets device and network parameters for a RAD Galaxy device
Sets device and network parameters for a RAD Galaxy device
Set the baud or bit rate for a specific neoVI network
Gets the firmware version of a neoVI device
Gets the firmware version stored in the DLL API
Forces the firmware to updated on a neoVI device
Gets individual parameters for a neoVI device
Sets individual parameters for a neoVI device
Sets callback function pointers for flashing a neoVI
Clears callback function pointers for flashing a neoVI
Gets the current real-time clock value from a connect neoVI device
Sets the current real-time clock value in a connected neoVI device
Returns the error generated by the last intrepidcs API call
Returns the intrepidcs API error message queue
Returns a text description of an intrepidcs API error
Used to determine if an hObject reference is valid
Returns DLL version information
Starts the TCP/IP socket server at a specified port.
Stops the TCP/IP socket server
Returns information on performance of dll and hardware
Starts execution of a script that has been downloaded to a neoVI device
Stops execution of a script running on a neoVI device
Downloads a script to a connected neoVI device into a specified location
Clears a script from a specific location on a neoVI device
Starts a function block within a script on a neoVI device
Returns the run status of a function block within a script on a neoVI device
Stops the execution of a function block within a script on a neoVI device
Stops the execution of a function block within a script on a neoVI device
Read an application signal from a script running on a neoVI device
Set the value of an application signal in a script running on a neoVI device
ScriptReadISO15765TxMessage
Read parameters of an ISO15765-2 long transmit message in a script on a neoVI device
ScriptWriteISO15765TxMessage
Change the parameters for an ISO15765-2 long transmit message defined in a script on a neoVI device
Use OpenNeoDevice instead
OpenPort
Use OpenNeoDevice instead
It is no longer necessary to call this before and after calling SendConfiguration
No longer supported. It is present in the API but will always return 0
ScriptReadRxMessage
Reads parameters for a receive message defined in a script on a neoVI device
ScriptReadTxMessage
Reads parameters for a transmit message defined within a script on a neoVI device
ScriptWriteRxMessage
Alter a receive message defined within script on a neoVI device
ScriptWriteTxMessage
Alter a transmit message defined within a script on a neoVI device
This method transmits a message using ISO15765-2 on a CAN network. icsneoISO15765_EnableNetwroks must be called before using icsneoISO15765_TransmitMessage. PCI bytes and Flow control decoding is taken care of by the dll for the transaction.
Parameters
hObject
[in] Handle which specifies the driver object created with the OpenPort method.
ulNetwork
[in] Specifies the network to transmit the message on. See NetworkID List for a list of valid Network ID values. Network support varies by neoVI device. NETID_DEVICE transmits on to the neoVI Device Virtual Network (see users manual).
stCM_ISO157652_TxMessage
[in] This is the address of the stCM_ISO15765_TxMessage structure. The structure contains the properties for the multi frame message transaction.
ulBlockingTimeout
[in] Amount of time in ms to wait for flow controls before timing out.
Return Values
None.
Remarks
None.
This method transmits longer messages asynchronously to vehicle networks using the neoVI hardware. Method supports CAN FD and Ethernet networks.
Parameters
hObject
[in] Handle which specifies the driver object created by OpenNeoDevice
pMsg
[in] This is the address of the first element of an array of icsSpyMessage structures. This array will be loaded by the application software with messages that are to be transmitted by the hardware.
lNetworkID
[in] Specifies the network to transmit the message on. See NetworkID List for a list of valid Network ID values. Network support varies by neoVI device. NETID_DEVICE transmits on to the neoVI Device Virtual Network (see users manual).
lNumMessages
[in] Specifies the number of messages to be transmitted. This parameter should always be set to one unless you are transmitting a long Message. Transmitting long messages on ISO or J1708 is described in a different topic.
NumTxed
[out] Specifies the number of messages that have been transmitted.
reserved
[in] Reserved parameter for future use. Set to 0.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC = 13
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK= 90
NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED = 190
Remarks
This function call adds a transmit message to the transmit queue for CAN FD (more than 8 bytes) and Ethernet. The message will be transmitted when the network is free and all previously transmitted messages have been transmitted.
After the messages has been transmitted there will be a transmit report message returned from the device. The transmit report will be read out with GetMessages. Any message read which has the SPY_STATUS_TX_MSG (icsSpyStatusTx) bit set in the status bitfield is a transmit report.
You can also identify a particular transmitted message with DescriptionID field. This two byte field (only 14 bits are used) allows the programmer to assign an arbitrary number to a message. This number is then returned in the transmit report.
The transmit report does not necessarily mean the message was transmitted successfully. For example, the Ford SCP network will return a Transmit Report if it had tried to send a message. Therefore, the programmer should always check the GlobalError Flag in the status bitfield.
To transmit different messages, set the appropriate bits in the status bitfield. For example, there are bits for init waveforms, extended identifiers and remote frames.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pMsg
[out] This is the address of the first element of an array of icsSpyMessage structures. This array will be loaded with messages received by the hardware. This array must be sized to fit 20,000 icsSpyMessage structures.
pNumberOfMessages
[out] Specifies the number of messages the driver has loaded in the pMsg array. This number can be up to 20,000 messages.
pNumberOfErrors
[out] Specifies the number of errors in the neoVI DLL error queue. Errors are obtained using GetErrorMessages.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. This function will return 1 even if no messages were received, provided there are no errors. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
The driver object will hold 20,000 received messages before it will generate an rx buffer overflow error (indicated by a NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW error message in the error queue). It is the job of the application software to read this buffer at regular intervals. The rate that the application needs to read these messages is dependant on the rate messages are received on the bus. For example, a high bandwidth CAN bus can generate 5000 messages per second. In this case you must read out the messages at least every four seconds or overflow errors will result.
This method enables the use of ISO15765-2 on a CAN network. icsneoISO15765_EnableNetwroks must be called before using icsneoISO15765_TransmitMessage or icsneoISO15765_ReceiveMessage.
Parameters
hObject
[in] Handle which specifies the driver object created with the OpenPort method.
lNetwork
[in] Specifies which CAN network the status is requested for. Can be one of the following values:
HS CAN
1
MS CAN
2
HS CAN 2
4
HS CAN 3
8
SW CAN
16
HS CAN 4
20
HS CAN 5
24
HS CAN 6
28
HS CAN 7
32
SW CAN 2
36
Return Values
None.
Remarks
None.
This method reads the configuration from the hardware device. Note: This function is only to be used for neoVI Blue and ValueCAN. For neoVI Fire and neoVI Red use the GetFireSettings method. For ValueCAN3 use the GetVCAN3Settings method.
Parameters
hObject
[in] Specifies the driver object created with the OpenNeoDevice method.
pData
[out] Pointer to an array of 1024 bytes. Each index of the array corresponds to a configuration value. For a list of configuration values to change, please see the Configuration Array topic.
plNumBytes
[out] This will return the number of bytes written to the array. For the current version of the API this will be 1024 bytes.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
None.
Displays the Value of CNF1 of ValueCAN/neoVI HSCAN
This method reads the configuration settings from a neoVI Fire device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[out] Pointer to an SFireSettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SFireSettings structure.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the SFireSettings structure and write the settings back to the neoVI Fire using SetFireSettings.
This method writes configuration settings to a neoVI Fire device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[out] Pointer to an SFireSettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SFireSettings structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the neoVI is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the neoVI.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the SFireSettings structure must be initialized with the current neoVI settings using GetFireSettings.
This method configures a receive message using ISO15765-2 on a CAN network. icsneoISO15765_EnableNetwroks must be called before using icsneoISO15765_ReceiveMessage. PCI bytes and Flow control decoding is taken care of by the dll for the transaction.
Parameters
hObject
[in] Handle which specifies the driver object created with the OpenPort method.
ulIndex [in] Specifies the Index to configure, 10 elements 0-9.
stCM_ISO157652_RxMessage
[in] This is the address of the stCM_ISO15765_RxMessage structure. The structure contains the properties for the multi frame message transaction.
Return Values
None.
Remarks
None.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[in] The address of an allocated SFIRE2Settings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SFIRE2Settings structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the neoVI FIRE 2 is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the neoVI FIRE 2.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the SFIRE2Settings structure must be initialized with the current neoVI settings using GetFIRE2Settings.
This method reads the configuration settings from a ValueCAN3 device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[out] Pointer to a SVCAN3Settings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SVCAN3Settings structure.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the SVCAN3Settings structure and write the settings back to the ValueCAN3 using SetVCAN3Settings.
Enables ISO15765 functions. Must be called before Tx and RX functions.
Sends a ISO15765 message on CAN.
Looks for specified frames and responds with specified flow control on CAN.
Reads messages from the neoVI device.
Transmits messages to vehicle networks using a neoVI device.
Transmits messages to vehicle networks using a neoVI device. Used with CAN FD and Ethernet
Waits a specified amount of time in milliseconds for a received message
Calculates and returns the timestamp for a message
Functions for ISO15765 transactions.
Example for sending longer (<12 bytes) ISO9141/KW2K Messages
Gets device and network parameters for a ValueCAN3 device
Sets device and network parameters for a ValueCAN3 device
Gets device and network parameters for a neoVI Fire device
Sets device and network parameters for a neoVI Fire device
Gets device and network parameters for a neoVI Fire device
Sets device and network parameters for a neoVI Fire device
Gets device and network parameters for a ValueCAN3 device
Sets device and network parameters for a ValueCAN3 device
Set the baud or bit rate for a specific neoVI network
Gets the firmware version of a neoVI device
Gets the firmware version stored in the DLL API
Forces the firmware to updated on a neoVI device
Gets individual parameters for a neoVI device
Sets individual parameters for a neoVI device
Sets callback function pointers for use when flashing a neoVI
Clears callback function pointers for flashing a neoVI
Gets the current real-time clock value from a connect neoVI device
Sets the current real-time clock value in a connected neoVI device
Gets device and network parameters for a neoVI FIRE 2 device
Sets device and network parameters for a neoVI FIRE 2 device
This method reads the configuration settings from a ValueCAN4-1 and ValueCAN4-2 device.
Parameters
hObject
[in] Specifies the driver object created by .
pSettings
[out] Pointer to a structure.
iNumBytes
[in] This value is always the size, in bytes, of the structure.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the structure and write the settings back to the ValueCAN 4-1 and ValueCAN 4-2 using .
This method reads the configuration settings from a ValueCAN4-4 device.
Parameters
hObject __ [in] Specifies the driver object created by .
pSettings [out] Pointer to a structure.
iNumBytes [in] This value is always the size, in bytes, of the structure.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are: NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the structure and write the settings back to the ValueCAN 4-4 using .
This method reads the configuration settings from a neoVI FIRE 2 device.
Parameters
hObject
[in] Specifies the driver object created by .
pSettings
[out] Pointer to a structure.
iNumBytes
[in] This value is always the size, in bytes, of the structure.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the structure and write the settings back to the neoVI FIRE 2 using .
This method writes configuration settings to a ValueCAN4-1 and ValueCAN4-2 device.
Parameters
hObject
[in] Specifies the driver object created by .
pSettings
[in] The address of an allocated structure.
iNumBytes
[in] This value is always the size, in bytes, of the structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the ValueCAN3 is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the ValueCAN4-1 and ValueCAN4-2.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the structure must be initialized with the current neoVI settings using .
Overview
For ISO9141 and Keyword 2000 Networks, a long message transmission option is allowed. Long message transmission is necessary when the message length exceeds twelve bytes (including checksum if used).
You can transmit a long message by calling the method with modified arguments. First, you will pass an array of icsSpyMessage structures which contain the long message data. This data in the array must be set properly. Finally, you must set the lNumMessages argument to the number of structures.
You must setup the long message data properly. For the first message, both the 3 byte Header and the 8 byte data section are filled in. For consecutive messages only the 8 byte data section is filled in.
VB Example to Send a 16 byte message
This method reads the configuration settings from a ValueCAN3 device.
Parameters
hObject
[in] Specifies the driver object created by .
pSettings
[in] The address of an allocated structure.
iNumBytes
[in] This value is always the size, in bytes, of the structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the ValueCAN3 is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the ValueCAN3.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the structure must be initialized with the current neoVI settings using .
This method sends configuration information to the hardware.
Parameters
hObject
[in] Specifies the driver object created by .
pData
[in] This is an array configuration bytes. The format of this array is defined in the Configuration Array help topic. This data should be filled in with a call to before calling SendConfiguration. The size of this array must always be 1024 bytes.
lNumBytes
[in] This must always be set to 1024.
Return Values
Returns 1 if successful, 0 if an error occurred. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
This method will only update the configuration defined in the Configuration Array topic. It will also apply checking to the data so that a neoVI is not programmed to an illegal state. For example, setting the CAN controller to an illegal operating mode.
Gets device and network parameters for a ValueCAN 4-1 and 4-2 device
Sets device and network parameters for a ValueCAN 4-1 and 4-2 device
Gets device and network parameters for a ValueCAN 4-4 device
Sets device and network parameters for a ValueCAN 4-4 device
Gets device and network parameters for a ValueCAN RF device
Sets device and network parameters for a ValueCAN RF device
Gets device and network parameters for a RAD Galaxy device
Sets device and network parameters for a RAD Galaxy device
This method reads the configuration settings from a RAD Galaxy device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[in] The address of an allocated SRADGalaxySettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SRADGalaxySettings structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the ValueCAN3 is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the ValueCAN3.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the SRADGalaxySettings structure must be initialized with the current neoVI settings using GetRADGalaxySettings.
This method reads the configuration settings from a RAD Galaxy device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[out] Pointer to a SRADGalaxySettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SRADGalaxySettings structure.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the SRADGalaxySettings structure and write the settings back to the RAD Galaxy using SetRADGalaxySettings.
This method writes configuration settings to a ValueCAN4-4 device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[in] The address of an allocated SVCAN4Settings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SVCAN4Settings structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the ValueCAN3 is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the ValueCAN4-4.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the SVCAN4Settings structure must be initialized with the current neoVI settings using GetVCAN4Settings.
This method reads the configuration settings from a ValueCAN RF device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[out] Pointer to a SVCANRFSettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SVCANRFSettings structure.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the SVCANRFSettings structure and write the settings back to the ValueCAN RF using SetVCANRFSettings.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[in] The address of an allocated SVCANRFSettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SVCANRFSettings structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the ValueCAN RF is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the ValueCAN RF.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the SVCANRFSettings structure must be initialized with the current neoVI settings using GetVCANRFSettings.
This method reads the configuration settings from various devices.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[out] Pointer to a SDeviceSettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SDeviceSettings structure.
VnetChan
[in] This value is indicates which Vnet to set the settings to. This parameter is intended for neoVI ION and neoVI Plasma which have more than one Vnet Slot. For all other devices set this to 0.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
After getting the current settings, you may change the parameters defined in the SDeviceSettings structure and write the settings back to the neoVI FIRE 2 using SetDeviceSettings.
This method returns the firmware version of the open neoVI device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pInfo
[out] Pointer to an stAPIFirmwareInfo structure.
Return Values
Returns 1 if successful, 0 if an error occurred.
Remarks
This method returns the firmware version stored in the open neoVI device.
This method writes configuration settings to various devices.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pSettings
[in] The address of an allocated SDeviceSettings structure.
iNumBytes
[in] This value is always the size, in bytes, of the SDeviceSettings structure.
bSaveToEEPROM
[in] If set to 0, the settings changes will revert to the values stored in EEPROM when the neoVI FIRE 2 is power-cycled. If set to 1, the values will overwrite the EEPROM settings and become persistent across power-cycles of the neoVI FIRE 2.
VnetChan
[in] This value is indicates which Vnet to set the settings to. This parameter is intended for neoVI ION and neoVI Plasma which have more than one Vnet Slot. For all other devices set this to 0.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
Before using this function, the SDeviceSettings structure must be initialized with the current neoVI settings using GetDeviceSettings.
This method sets bit rates for networks on neoVI devices
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
iBitRate
[in] Specifies bit rate setting. Valid values depend on the network specified.
For the networks HSCAN, MSCAN, HSCAN2, HSCAN3, HSCAN4, HSCAN5, HSCAN6, and HSCAN7 valid bit rates are 1000000, 2000000, 4000000, 5000000, 8000000,and 10000000
iNetworkID
[in] Specifies the network. The valid values are:
NETID_HSCAN, NETID_MSCAN, NETID_HSCAN2, NETID_HSCAN3, NETID_HSCAN4, NETID_HSCAN5, NETID_HSCAN6, and NETID_HSCAN7
These values are defined in the icsnVC40.h file
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_INVALID_NETID = 8
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED = 122
NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR = 229
NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR = 230
NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE = 231
Remarks
The specified network must exist on the connected neoVI device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pInfo
[out] Pointer to an stAPIFirmwareInfo structure.
Return Values
Returns 1 if successful, 0 if an error occurred.
Remarks
This method returns the version information for the neoVI firmware stored within the neoVI DLL API. This is the version that will be written to the neoVI device by the ForceFirmwareUpdate method.
This method sets bit rates for networks on neoVI devices
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
iBitRate
[in] Specifies bit rate setting. Valid values depend on the network specified.
For the networks NETID_HSCAN, NETID_MSCAN, NETID_SWCAN, NETID_FIRE_HSCAN2, NETID_HSCAN3, NETID_LSFTCAN, valid bit rates are 2000, 33333, 50000, 62500, 83333, 100000, 125000, 250000, 500000, 800000, 1000000
For the networks NETID_LIN, NETID_ISO2, NETID_FIRE_LIN2, NETID_FIRE_LIN3, NETID_FIRE_LIN4, valid bit rates are
For the network NETID_FIRE_CGI valid bit rates are 625000 and 115200
iNetworkID
[in] Specifies the network. The valid values are:
NETID_HSCAN, NETID_MSCAN, NETID_SWCAN, NETID_FIRE_HSCAN2, NETID_HSCAN3, NETID_LSFTCAN, NETID_LIN, NETID_ISO2, NETID_FIRE_LIN2, NETID_FIRE_LIN3, NETID_FIRE_LIN4, NETID_FIRE_CGI
These values are defined in the icsnVC40.h file
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_INVALID_NETID = 8
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED = 122
NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR = 229
NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR = 230
NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE = 231
Remarks
The specified network must exist on the connected neoVI device.
These functions are designed to work for both 2G and 3G devices
Set the baud or bit rate for a specific neoVI network
Gets the firmware version of a neoVI device
Gets the firmware version stored in the DLL API
Forces the firmware to updated on a neoVI device
Gets individual parameters for a neoVI device
Sets individual parameters for a neoVI device
Sets callback function pointers for use when flashing a neoVI
Clears callback function pointers for flashing a neoVI
This method returns the value of the real-time clock on a connected neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
pTime
[in] The address of a icsSpyTime structure. This structure is defined in the file icsSpyDataCommon.h
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
This method forces the firmware on neoVI device to be updated.
Parameters
hObject
[in] Specifies the driver object created by .
pParameters
[in] This is an array containing parameter names. Each parameter is separated by a comma. The parameter names are matched without regard to case. All spaces are ignored. The size of this array must be 1024 bytes or less. The format of the array is:
ParameterName,ParameterName, , …
See for a list of parameter names for each device and supported network.
See examples below on how to build a parameter string.
pValues
[out] This array will contain the values requested in the pParameters array. The values will be separated by comma’s and in the order of the parameter names specified in the pParameters array. If a parameter name is not recognized the word “Error” will be placed in that value’s location. If the pValues array length (specified by the ValuesLength parameter) is not long enough to store all of the values, the retrieval of parameter values will end and only a portion of the values will have be read and stored. The return value of the function, if greater than 0, will indicate the number of values read.
Return Values
-1 if there was an error while reading parameter values from the device. A return value greater than 0 indicates the total number of parameters read. A return value of 0 indicates that ValueLength was greater than 1024. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
It is ineffecient to use this function to read one parameter value at a time. If multiple parameters need to be read, combine them into a long string and call this function once.
This method is used to set ‘call back’ functions that will be called by the neoVI API when flashing a neoVI device with the function. This overrides the Windows dialog box that normally displays the progress of a neoVI flash update. The use of call back functions allows the client application to receive the status messages and display them as desired.
Parameters
void (*OnPrompt)(unsigned long)
[in] Specifies a function pointer that will be called when a message must be displayed instructing the user to disconnect and then re-connect the neoVI from the USZB port. The function receives an unsigned long that will contain the serial number of the neoVI device being flash updated. Before returning from this function call the user of the client application must be prompted to unplug the neoVI from the USB port and then re-connect it before continuing. This is to put the USB chip in the neoVI into bootloader mode so that flashing can begin. This function will not be called when flashing a ValueCAN3 device.
void (*OnReflashUpdate)(const wchar_t *, unsigned long)
[in] Specifies a function pointer that will be called when a flashing status message is ready to be displayed. The function recieves a pointer to a wide character string that contains the status message to display. It also receives an unsigned long that contains the percentage complete for the current chip being flashed. The percentage value will reset to 0 for each new chip. For example, the neoVI Fire has four chips to flash while the ValueCAN3 has only two.
Return Values
1 if successful, 0 if either function pointer is NULL.
Remarks
After calling this function you must call the function to cause the neoVI device firmware to be updated. Once the callbacks have been set they are valid and active until the the DLL is unloaded or until the function is called.
This method changes neoVI device parameters.
Parameters
hObject
[in] Specifies the driver object created by .
pParmValue
[in] This is an array containing parameter names and values. Each parameter and value is separated by a equal sign, and each parameter/value pairing is separated by a comma. The parameter names are matched without regard to case. All spaces are ignored. The size of this array must be 1024 bytes or less. The format of the array is:
ParameterName=Value,ParameterName=Value, …
See for a list of parameter names for each device and supported network.
See examples below on how to build a parameter/value string.
pErrorIndex
[out] If there are any errors detected within the pParmValue parameter, this value will indicate index of the parameter where the first error was found. The index is zero-based.
bSaveToEEPROM
[in] This value determines if the parameter changes are permanent or will be lost when the device is power-cycled. Set the value to 1 to write the changes to EEPROM, 0 to keep the changes restricted to RAM.
Return Values
1 if the changes are successful. -1 if there was an error while writing the changes to the device. 0 if there is an error detected within the pParmValue array. If the return value is 0, indicating an error, check the pErrorIndex to get the index of the first error detected within the pParmValue array. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
It is ineffecient to use this function to write one parameter change at a time. If multiple parameters need to be changed, combine them into a long string and call this function once.
This method sets the value of the real-time clock on a connected neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
pTime
[in] The address of a icsSpyTime structure. This structure is defined in the file icsSpyDataCommon.h
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
Remarks
This method returns the error generated by the last API call.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
piErrorNumber
[out] The value of the error generated by the previous API call will be returned. The text description of the error can then be obtained by calling GetErrorInfo.
Return Values
If an error was generated and stored during the last API call then 1 will be returned. 0 will be returned if no error was generated since the port was opened or the last time that GetLastAPIError was called. The stored error will be cleared after this call. API errors are generated and stored on a ‘per-thread’ basis. The calling thread will only receive errors generated within it’s own context. If a new API error is generated before the previous error has been retrieved, the previous error will be lost. All errors generated can still be retrieved using GetErrorMessages. However, GetErrorMessages will return errors generated in all threads, not just the current thread.
Remarks
This method reads the neoVI DLL error message queue.
Parameters
hObject
[in] Specifies the driver object created with OpenNeoDevice.
pErrorMsgs
[out] This is the address of the first element of an array of long variables of at least 600 elements. This array will be loaded with the current error queue. The error queue will contain errors generated by all threads, not just the current thread. A separate topic describes the possible values for error messages. You can get a text description of this error using GetErrorInfo.
pNumberOfErrors
[out] Specifies the number of errors copied into the pErrorMsgs buffer. The maximum value will be 600.
Return Values
Returns 1 if successful, 0 on failure.
Remarks
The error queue will be reset after this method is called.
This method starts the TCP/IP socket server at a specified port.
Parameters
hObject
[in] Handle which specifies the driver object created by OpenNeoDevice
iPort
[in] specifies the TCP/IP Port where the server will be established.
Return Values
If the server was started successfully the return value will be non-zero.
Remarks
This method creates a TCP/IP server in the DLL. This server can be attached to by any TCP/IP clients using the RAW API or using the DLL by specifying TCP/IP with OpenNeoDevice. Only one server is allowed at a time.
Parameters
hObject
[in] Specifies the driver object created with the OpenPort method.
iBufferCount
[out] Specifies the driver object created with the OpenPort method.
IBufferMax
[out] Specifies the size of the buffer.
iOverFlowCount
[out] Indicates the the number of overflows that have occurred since the last successful OpenPort method was called.
iReserved1
[out] Reserved. Set to 0.
iReserved2
[out] Reserved. Set to 0.
iReserved3
[out] Reserved. Set to 0.
iReserved4
[out] Reserved. Set to 0.
iReserved5
[out] Reserved. Set to 0.
Return Values
This function returns the 1 when successful. 0 if otherwise.
Remarks
XX.
This method allows reading and writing the PHY settings from/to the hardware.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
PHYSettings
[out] This is the address of the first element of an array of PhyRegPkt_T structures. This array will be loaded by the application software with entries to be read or written from/to the hardware.
iSize
[in] Specifies the size of the structure PhyRegPkt_T used by the application. This is to make sure the structure used in the application and the DLL is same to avoid any buffer overrun.
iNumEntries
[in] Specifies the number of PHY Entries to be read or written.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error.
Remarks
This function call sends the PHY Entries to be read or written from/to the hardware.
This method enables or disables the Ethernet activation line on supported hardware devices.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice
bActivate
[in] Specifies the state of the Activation line. True enables the activation and False disabled it.
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error.
Remarks
The specified hardware must support a DoIP activation line
This method returns a text description of an neoVI API error number.
Parameters
lErrorNumber [in] This is the number of the error message returned from GetErrorMessages. A separate topic describes the possible values for error messages.
sErrorDescriptionShort [out] This is short description of the error. This parameter should be sized to include up to 255 characters including the NULL terminator.
sErrorDescriptionLong [out] This is longer more detailed description of the error. This parameter should be sized to include up to 255 characters including the NULL terminator. lMaxLengthShort [in] This is the size in characters of the sErrorDescriptionShort array that is being passed in. This value must be 255 or less. lMaxLengthLong [in] This is the size in characters of the sErrorDescriptionLong array that is being passed in. This value must be 255 or less.
lErrorSeverity [out] This indicates the error severity. This is estimated severity for the application and doesn't have significant meaning. See Table 1 below for more information.
lRestartNeeded [out] If 1 it is recommend that the application close communications with the DLL and reopen it.
Return Values
If the error number was found successfully the return value will be non-zero.
Remarks
None.
Table 1 - Descriptions of Error Severity
const unsigned long icsspyErrCritical=0x10;
A critical error which affects operation or accuracy
const unsigned long icsspyErrExclamation=0x30;
An important error which may be critical depending on the application.
const unsigned long icsspyErrInformation=0x40;
An error which probably does not need attention.
const unsigned long icsspyErrQuestion=0x20;
An error which is not understood.
This method starts the TCP/IP socket server at a specified port.
Parameters
hObject
[in] Handle to the driver object created by OpenNeoDevice
Return Values
If the server has been stopped successfully the return value will be 1. If the function fails the return value will be zero.
Remarks
This method should be called when the server created with StartSocketServer.
This function is deprecated. Use the OpenNeoDevice method instead.
This function opens a connection to a neoVI device.
Parameters
lPortNumber
[in] Specifies which USB, TCP/IP, or Comm port to use. The USB port is a logic port starting with 1 up to the number of devices. For example, if 3 devices are connected, valid lPortNumber values will be 1,2, and 3. Comm ports also start at 1. For TCP/IP it specifies the TCP/IP port number.
lPortType
[in] Specifies the port type of what the device is connected to. This parameter is used with lPortNumber described above. This parameter can be set to NEOVI_COMMTYPE_RS232 (0) for a RS232 Comm port, NEOVI_COMMTYPE_USB_BULK (1) for a USB, or NEOVI_COMMTYPE_TCPIP (3) for a TCP/IP connection. More information on the different types of hardware and the connection it uses can be found in the OpenPortEx Hardware Type help topic.
lDriverType
[in] Specifies which neoVI driver to use. This should always be set to INTREPIDCS_DRIVER_STANDARD (0).
lIPAddressMSB
[in] Specifies upper two bytes of TCP/IP address if the lPortType is set to NEOVI_COMMTYPE_TCPIP (bytes 4 and 3 of this TCP/IP address: 1.2.3.4).
lIPAddressLSBOrBaudRate
[in] Specifies the baud rate if lPortType is NEOVI_COMMTYPE_RS232 and the lower two bytes of the TCP/IP address (bytes 2 and 1 of this TCP/IP address: 1.2.3.4).
bConfigRead
[in] Specifies whether the DLL should read the configuration before enabling the device. It is recommended to set this value to 1. This parameter is ignored when the object is created because the configuration is read by default.
bNetworkIDs
[in] This is an array of number IDs which specify the NetworkID parameter of each network. This allows you to assign a custom network ID to each network. Normally, you will assign consecutive IDs to each of the networks. The network IDs are specified in the following list: 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. You may also set this parameter to NULL (zero) and the default network ID’s will be used.
The neoVI DLL will use this array when it receives a network message. For example, when the DLL receives a message from HSCAN network it will set the NetworkID parameter of the message structure with the value bNetworkID(NETID_HSCAN).
hObject
[in, out] This is the handle of the neoVI driver object. If this handle is 0, the method will create a new neoVI driver object. This handle will be used in other neoVI API calls to read and transmit messages.
Every time you create a new neoVI driver object you must call icsneoFreeObject (after ClosePort). If you do not you will create a memory leak.
Return Values
If the port has been opened successfully and connection to neoVI is attained, the return value will be 1. If the function fails the return value will be zero. The most common reason for failure is when the neoVI is not connected to the port described in the parameters.
Remarks
Each successful call to OpenPort should be matched with a call to ClosePort. The OpenPort call will reset the timestamp clock.
This method sets bit rates for networks on neoVI devices
Parameters
hObject __ [in] Specifies the driver object created by OpenNeoDevice. gptpStatus [out] The address of a GPTPStatus structure.
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error. Failure could include the device not supporting gPTP, or the device supports gPTP but not support icsneoGetGPTPStatus API. Remarks
Rad Galaxy, Rad SuperMoon, Rad Star2, and Rad GigaStar supports icsneoGetGPTPStatus API nEAT, Rad Pluto, Rad Jupiter support gPTP but, does not support this API
This method is used to determine if a driver object is valid.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
Return Values
1 if the hObject is valid. 0 if the object is invalid.
Remarks
A driver object will be invalid if it was never initialized by OpenNeoDevice. Calling ClosePort will not invalidate a driver object; only FreeObject will do so.
This method is no longer supported and will always return 0. It remains in the API for backward compatibility.
This topic discusses which port type can be used with what type of hardware.
A required parameter for the OpenPortEx command is the Port type. Each type is and the hardware it supports is listed below.
RS232
neoVI Blue (USB or RS232 connection)
neoVI Pro (USB or RS232 connection)
neoVI Green (RS232)
ValueCAN
Devices that use a USB connection listed here have a virtual COM port connection to the PC even though it is connected to the USB port on the PC.
USB
neoVI Green
These devices use the USB Port type
TCP/IP
neoVI Blue
neoVI Pro
neoVI Green
ValueCAN
All ICS devices can be connected via a TCP/IP connection using a second PC as a gateway.
This function is deprecated. Use FindNeoDevices instead.
This method returns the number of COM (both serial and USB serial) hardware devices connected to the PC.
Parameters
lDriverType
[in] Specifies which neoVI driver to use. This should always be set to INTREPIDCS_DRIVER_STANDARD (0).
lGetSerialNumbers
[in] Specifies whether the serial numbers should be read from the device (iGetSerialNumbers=1). Getting serial numbers will take longer than not doing it therefore so set this to zero if not required for the application. If a device is already opened the serial number cannot be read.
lStopAtFirst
[in] Indicates whether the function should stop at the first device found (lStopAtFirst=1). This is useful when you only have one device connected to the PC.
lUSBCommOnly
[in] Indicates to search USB serial devices only (lUSBCommOnly=1). Normal COM ports will not be searched. Normal COM port searches will take longer to execute.
p_lDeviceTypes
[out] Pointer to array of at least 255 elements. This array will be filled in with the type of device found. The valid device types include INTREPIDCS_DEVICE_NEO4 (0), INTREPIDCS_DEVICE_VCAN (1), or INTREPIDCS_DEVICE_NEO6 (2).
p_lComPorts
[out] Pointer to array of at least 255 elements. This array will be filled in with the com port numbers of each connected device.
p_lSerialNumbers
[out] Pointer to array of at least 255 elements. This array will be filled in with the serial number of each device if argument lGetSerialNumbers=1.
iNumDevices
[out] Points to a value which contains the number of devices found.
Return Values
If this function operates successfully the return value will be 1. If the function fails the return value will be zero.
Remarks
None.
This method returns the neoVI hardware devices connected to the PC.
Parameters
DeviceTypes
[in] Specifies the types of neoVI devices to find. Currently supported values are:
NEODEVICE_BLUE = 0x00000001
NEODEVICE_ECU_AVB = 0x00000002
NEODEVICE_DW_VCAN = 0x00000004
NEODEVICE_RADGIGALOG = 0x00000006
NEODEVICE_FIRE = 0x00000008
NEODEVICE_VCAN3 = 0x00000010
NEODEVICE_RED = 0x00000040
NEODEVICE_ECU = 0x00000080
NEODEVICE_IEVB = 0x00000100
NEODEVICE_PENDANT = 0x00000200
NEODEVICE_OBD2_PRO = 0x00000400
NEODEVICE_PLASMA = 0x00001000
NEODEVICE_CT_OBD = 0x00008000
NEODEVICE_ION = 0x00040000
NEODEVICE_RADSTAR = 0x00080000
NEODEVICE_VCAN44 = 0x00200000
NEODEVICE_VCAN42 = 0x00400000
NEODEVICE_CMPROBE = 0x00800000
NEODEVICE_EEVB = 0x01000000
NEODEVICE_VCANRF = 0x02000000
NEODEVICE_FIRE2 = 0x04000000
NEODEVICE_FLEX = 0x08000000
NEODEVICE_RADGALAXY = 0x10000000
NEODEVICE_RADSTAR2 = 0x20000000
NEODEVICE_VIVIDCAN = 0x40000000
NEODEVICE_OBD2_SIM = 0x80000000
NEODEVICE_ALL = = 0xFFFFBFFF
Constants are defined in appropriate header or module. You may use logical OR to choose which devices to look for or use NEODEVICE_ALL to specify all devices.
pNeoDevices [out] This is the address of the first element of an array of NeoDevice structure. This array can be as big as 255 devices. You must specify the size of the pNeoDevices array in the pNumberOfDevices parameter. The number of devices found will be limited to the value of pNumberofDevices or 255, whichever is lower. Each returned NeoDevice structure will contain information for each device such as its type, device ‘handle’ and serial number.
pNumberOfDevices[in/out] In: Specifies the size of the pNeoDevices array. Must be in the range 0 to 255.
Out: Specifies the number of neo devices that were found. This can be in the range 0 to 255.
Return Values
1 if the function succeeded. 0 if it failed for any reason. If the function succeeds but no devices are found 1 will still be returned and pNumberOfDevices will equal 0.
Remarks
The NeoDevice array elements that are returned with this function may be passed to OpenNeoDevice so that individual neoVI devices can be opened.
This function is deprecated. Use the EnableNetworkRXQueue method instead.
This method enables or disables all vehicle network rx data.
Parameters
lEnable
[in] When 1 it will enable network receive. When 0 it will disable network receive.
Return Values
This function returns the 1 when successful. 0 if otherwise.
Remarks
This function will enable and disable network traffic for all client applications connected to the neoVI. The icsneoEnableNetworkRXQueue function can be used to enable and disable the receive message queue for individual applications.
This method clears a script from a specific location on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
iLocation
[in] Specifies the physical location of the script to be cleared on the neoVI device. Valid values are:
SCRIPT_LOCATION_FLASH_MEM = 0 (Valid only on a neoVI Fire or neoVI Red)SCRIPT_LOCATION_SDCARD = 1 (Valid only on a neoVI Fire or neoVI Red)SCRIPT_LOCATION_VCAN3_MEM = 4 (Valid only on a ValueCAN 3 device)
These values are defined in the icsnVC40.h file
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION = 213
NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED = 214
NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR = 216
NEOVI_ERROR_DLL_SCRIPT_ERROR_CLEARING_SCRIPT = 221
Remarks
If a script exists in the specified location it will be erased from that location. If the script is running it will be stopped. Any function blocks that are running will be stopped.
This method starts the specified function block within a script on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
iFunctionBlockIndex
[in] The index value of the function block to start
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX = 219
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Remarks
The script containing the specified function block must have been successfully downloaded to the neoVI using LoadScript. The valid index values for a function blocks within a script can be found in the cmvspy.vs3cmb.h file that is produced by Vehicle Spy. Please see Vehicle Spy documentation.
This method stops the execution of a script that is running on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
Return Values
1 if the function succeeded. 0 if it failed for any reason. GetLastAPIError must be called to obtain the specific error.
Remarks
If a script is executing on the neoVI calling this method will stop it. The script will still be present on the device and can be started again by ScriptStart The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Table 1 lists the possible error messages returned in the GetErrorMessages API call. Some of these errors may also be returned by the GetLastAPIError API call.
Table 1 - Error Messages
NEOVI_ERROR_DLL_TX_BUFFER_OVERFLOW =0
The transmit buffer in the DLL has overflowed. This could occur if the USB connection was lost. It also could occur if you transmit more messages than can be sent on the vehicle networks.
NEOVI_ERROR_DLL_ERROR_BUFFER_OVERFLOW =1
This error occurs when the error queue overflows.
NEOVI_ERROR_DLL_USB_SEND_DATA_ERROR =2
This error occurs when there is a problem sending data on USB.
NEOVI_ERROR_DLL_ISO_DATA_BUFFER_ALLOC =3
Internal Driver Error.
NEOVI_ERROR_DLL_ISO_DATA_READ_BUFFER =4
Internal Driver Error.
NEOVI_ERROR_DLL_ISO_DATA_ZERO_PACKETS =5
Internal Driver Error.
NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW =6
NEOVI_ERROR_DLL_STOP_ISO_STREAM =7
Internal Driver Error.
NEOVI_ERROR_DLL_INVALID_NETID =8
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_RX_THREAD =9
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_TX_THREAD =10
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN_PIC_BUFFER_OVERFLOW =11
This error occurs if there is an overflow in the neoVI internal buffer.
NEOVI_ERROR_DLL_INVALID_DEVICE_RESPONSE =12
Internal Driver Error.
NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC =13
Internal Driver Error.
NEOVI_ERROR_DLL_RX_CMD_BUFFER_OVERFLOW=14
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_RX_BUFFER_OVERFLOW=15
RS232 Buffer Overflow Error
NEOVI_ERROR_DLL_RS232_ERR_READCOMERR =16
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_ERR_READ=17
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_BUFFER_ALLOC=18
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_TX_BUFFER_OVERFLOW=19
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_MISC_ERROR=20
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_FIND_WRITE=21
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_FIND_BUFFER_ALLOC=22
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_FIND_CLEARCOMM=23
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_FIND_READCOMM=24
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_FIND_TIMEOUT=25
This error occurs if the neoVI DLL could not find the neoVI device on the specified RS232 port.
NEOVI_ERROR_DLL_RS232_ERR_BREAK=26
RS232 Break Error.
NEOVI_ERROR_DLL_RS232_ERR_FRAME=27
RS232 Framing Error.
NEOVI_ERROR_DLL_RS232_ERR_IOE=28
RS232 IOE Error.
NEOVI_ERROR_DLL_RS232_ERR_OVERRUN=29
RS232 Overrun Error.
NEOVI_ERROR_DLL_RS232_ERR_PARITY=30
RS232 Parity Error.
NEOVI_ERROR_DLL_RS232_TXBUFFER_ALLOC=31
Internal Driver Error.
NEOVI_ERROR_DLL_USB_TX_RS232_ERROR=32
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_CREATE_FILE=33
Problem opening RS232 port. This is probably caused by another application using the port or the port not being valid.
NEOVI_ERROR_DLL_RS232_GET_COMM_STATE=34
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_SET_COMM_STATE=35
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_START_COMM_RX_THREAD=36
Internal Driver Error.
NEOVI_ERROR_DLL_RS232_START_COMM_TX_THREAD=37
Internal Driver Error.
NEOVI_ERROR_DLL_SYNC_COUNT_ERR=38
A message rollover timestamp was missed. This is caused if the neoVI device is disconnected or powered down when in RS232 mode. It will also be caused if two neoVI applications open up the same USB port.
NEOVI_ERROR_DLL_RX_MSG_FRAME_ERR=39
A neoVI message packet was not properly formatted.
NEOVI_ERROR_DLL_RX_MSG_FIFO_OVER=40
The internal DLL FIFO used to store data received before parsing has overflowed.
NEOVI_ERROR_DLL_RX_MSG_CHK_SUM_ERR=41
A neoVI message packet was properly formatted but had an incorrect checksum.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_BULKIN_THREAD=42
Internal Driver Error.
NEOVI_ERROR_DLL_BULKIN_ERR_READ=43
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_RX_FIFO_OVERFLOW=44
The Rx FIFO used to store network data before it is sent to the PC has overflowed.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW=45
Each network has a FIFO on the Main51 controller for transmission. If you send messages to neoVI faster than neoVI can transmit them, you will receive this error.
NEOVI_ERROR_DLL_MAIN51_DEV_FIFO_OVERFLOW=46
This is a FIFO over error related to messages passed from the Main51 uController to the Main PIC uController
NEOVI_ERROR_DLL_RESET_STATUS_CHANGED=47
The neoVI reset status has changed. This error would occur if the neoVI had a watchdog reset.
NEOVI_ERROR_DLL_ISO_LONG_CACHE_OVERFLOW=48
Internal Driver Error.
NEOVI_ERROR_DLL_ISORX_LONG_BUFFER_ALLOC=49
Internal Driver Error.
NEOVI_ERROR_DLL_J1708_LONG_CACHE_OVERFLOW=50
Internal Driver Error.
NEOVI_ERROR_DLL_J1708_LONG_BUFFER_ALLOC=51
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_DEVICE=52
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HSCAN=53
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MSCAN=54
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN=55
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_LSFTCAN=56
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_FORDSCP=57
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_J1708=58
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_AUX=5
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_JVPW=60
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISO=61
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISOPIC=62
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MAIN51=63
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HOST=64
Internal Driver Error.
NEOVI_ERROR_DLL_READ_ENTIRE_DEEPROM_ERROR=65
Internal Driver Error.
NEOVI_ERROR_DLL_WRITE_ENTIRE_DEEPROM_ERROR=66
Internal Driver Error.
NEOVI_ERROR_DLL_USB_PORT_ALREADY_OPEN=67
Internal Driver Error.
NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_IN=68
Internal Driver Error.
NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_IN=69
Internal Driver Error.
NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_OUT=70
Internal Driver Error.
NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_OUT=71
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_IN_FROM_HOST_FIFO=72
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_HOST_CHKSUM=73
Internal Driver Error.
NEOVI_ERROR_DLL_ISOJ_TX_HOST_MISSED_BYTE=74
Internal Driver Error.
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE=75
Internal Driver Error.
NEOVI_ERROR_DLL_RX_SOCKET_FIFO_OVER=76
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_THREAD=77
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_THREAD=78
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_CLIENT_THREAD=78
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_CLIENT_THREAD=79
Internal Driver Error.
NEOVI_ERROR_DLL_TCP_CLIENT_TX=80
Internal Driver Error.
NEOVI_ERROR_DLL_TCP_CLIENT_RX=81
Internal Driver Error.
NEOVI_ERROR_DLL_TCP_CLIENT_RX_SOCK=82
Internal Driver Error.
NEOVI_ERROR_DLL_UNABLE_CONNECT_TO_SRVR=83
Internal Driver Error.
NEOVI_ERROR_DLL_UNABLE_CREATE_CLIENT_SOCK=84
Internal Driver Error.
NEOVI_ERROR_DLL_UNABLE_WSASTARTUP=85
Internal Driver Error.
NEOVI_ERROR_DLL_SOCK_CL_RD_BUFFER_ALLOC=86
Internal Driver Error.
NEOVI_ERROR_DLL_SOCK_CL_TX_BUFFER_ALLOC=87
Internal Driver Error.
NEOVI_ERROR_DLL_SOCK_SRVR_RX_BUFFER_ALLOC=88
Internal Driver Error.
NEOVI_ERROR_DLL_SOCK_SRVR_TX_BUFFER_ALLOC=89
Internal Driver Error.
NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK=90
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_TX_HOST_OVERRUN=91
Internal Driver Error.
NEOVI_ERROR_DLL_OPEN_GET_COMM_TIMEOUT=92
Internal Driver Error.
NEOVI_ERROR_DLL_OPEN_SET_COMM_TIMEOUT=93
Internal Driver Error.
NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE=94
Internal Driver Error.
NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE_TOUT=95
Internal Driver Error.
NEOVI_ERROR_DLL_CLOSE_PURGE_COMM=96
Internal Driver Error.
NEOVI_ERROR_DLL_TX_COM_FIFO_OVERFLOW=97
Internal Driver Error.
NEOVI_ERROR_DLL_GET_USBSERIAL_DEVICES=98
Internal Driver Error.
NEOVI_ERROR_DLL_USB_TX_RS232_BCOUNT = 99
Internal Driver Error.
NEOVI_ERROR_DLL_OPEN_INBOOTLOADER = 100
Internal Driver Error.
NEOVI_ERROR_DLL_TOO_MANY_PERIODICS = 101
Internal Driver Error.
NEOVI_ERROR_DLL_PROBLEM_FIRMWARE_INFO = 102
Internal Driver Error.
NEOVI_ERROR_DLL_NRED_ODDNUMBYTES = 103
Internal Driver Error.
NEOVI_ERROR_DLL_NRED_UNKNOWN_RED_NETID = 104
Internal Driver Error.
NEOVI_ERROR_DLL_RED_NOT_SUPPORTED = 105
Internal Driver Error.
NEOVI_ERROR_DLL_RED_BL_START_INDEX = 106
Internal Driver Error.
NEOVI_ERROR_DLL_3G_BL_FAILURE = 107
Internal Driver Error.
NEOVI_ERROR_DLL_RED_BL_END_INDEX = 116
Internal Driver Error.
NEOVI_ERROR_DLL_RED_FAILED_TO_ENTER_BL = 117
Internal Driver Error.
NEOVI_ERROR_DLL_RED_REQ_SERIAL_NUMBER = 118
Internal Driver Error.
NEOVI_ERROR_DLL_RED_AUTHENTICATE = 119
Internal Driver Error.
NEOVI_ERROR_DLL_RED_APP_VERSION = 120
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SET_BAUD_COMM_FAILURE = 121
Internal Driver Error.
NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED = 122
Internal Driver Error.
NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED = 122
Internal Driver Error.
NEOVI_ERROR_DLL_RED_READ_BAUD_COMM_FAILURE = 123
Internal Driver Error.
NEOVI_ERROR_DLL_RED_FAILED_TO_SAVE_EEPROM = 124
Internal Driver Error.
NEOVI_ERROR_DLL_RED_FAILED_TO_UPDATE_WAVEFORM_CHANNEL = 125
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_UNKNOWN_NETWORK = 126
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_UNKNOWN_NETWORK = 127
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_UNKNOWN_NETWORK = 128
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN1 = 129
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN1 = 130
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN1 = 131
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN1 = 132
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN2 = 133
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN2 = 134
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN2 = 135
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN2 = 136
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_MSCAN1 = 137
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_MSCAN1 = 138
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_MSCAN1 = 139
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_MSCAN1 = 140
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN3 = 141
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN3 = 142
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN3 = 143
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN3 = 144
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN = 145
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN = 146
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN = 147
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN = 148
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN = 149
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN = 150
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN = 151
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN = 152
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN1 = 153
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN1 = 154
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN1 = 155
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN1 = 156
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN2 = 157
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN2 = 158
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN2 = 159
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN2 = 160
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN3 = 161
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN3 = 162
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN3 = 163
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN3 = 164
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN4 = 165
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN4 = 166
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN4 = 167
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN4 = 168
Internal Driver Error.
NEOVI_ERROR_DLL_USB_PURGE_FAILED = 169
Internal Driver Error.
NEOVI_ERROR_FIRE_COMM_BAD_PACKET = 170
Internal Driver Error.
NEOVI_ERROR_FIRE_CGI_COMM_BAD_PACKET = 171
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN1 = 172
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN2 = 173
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN3 = 174
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_MSCAN = 175
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN = 176
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN = 177
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN1 = 178
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN2 = 179
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN3 = 180
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN4 = 181
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_UNKNOWN_NETWORK = 182
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_JVPW = 183
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_JVPW = 184
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_JVPW = 185
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_JVPW = 186
Internal Driver Error.
NEOVI_ERROR_DLL_INTERNAL_SERIAL_NO_DOES_NOT_MATCH_REGISTRY_SERIAL_NO = 187
Internal Driver Error.
NEOVI_ERROR_DLL_JVPW_LONG_CACHE_OVERFLOW = 188
Internal Driver Error.
NEOVI_ERROR_DLL_FAILED_TO_SET_LICENSE = 189
Internal Driver Error.
NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED = 190
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN = 191
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_MSCAN = 192
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN2 = 193
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN3 = 194
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFT = 195
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW = 196
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN1 = 197
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN2 = 198
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN3 = 199
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN4 = 200
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_JVPW = 201
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_KYW = 202
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_J1708 = 203
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_RTC_INVALID = 204
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_LOADED_DEFAULT_SETTINGS = 205
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_CGI = 206
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_CGI = 207
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_CGI = 208
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_CGI = 209
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_CGI = 210
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_CGI = 211
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_JVPW = 212
Internal Driver Error.
NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION = 213
Internal Driver Error.
NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED = 214
Internal Driver Error.
NEOVI_ERROR_DLL_SDCARD_NOT_FORMATTED = 215
Internal Driver Error.
NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR = 216
Internal Driver Error.
NEOVI_ERROR_DLL_SDCARD_READ_ERROR = 217
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_START_ERROR = 218
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX = 219
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_ERROR_DOWNLOADING_SCRIPT = 220
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_ERROR_CLEARING_SCRIPT = 221
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO = 222
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO = 223
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_INVALID_MSG_INDEX = 224
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX = 225
Internal Driver Error.
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Internal Driver Error.
NEOVI_ERROR_DLL_COULD_NOT_SET_SETTINGS_FIRMWARE_MISMATCH = 227
Internal Driver Error.
NEOVI_ERROR_DLL_FIRE_CGI_TX_NOT_ENABLED = 228
Internal Driver Error.
NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR = 229
Internal Driver Error.
NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR = 230
Internal Driver Error.
NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE = 231
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO2 = 232
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO3 = 233
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO4 = 234
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO2 = 235
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO2 = 236
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO2 = 237
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO2 = 238
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO2 = 239
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO3 = 240
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO3 = 241
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO3 = 242
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO3 = 243
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO3 = 244
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO4 = 245
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO4 = 246
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO4 = 247
Internal Driver Error.
NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO4 = 248
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO4 = 249
Internal Driver Error.
NEOVI_ERROR_DLL_RED_FAILED_TO_CLEAR_LIN_SLAVE_DATA = 250
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO1 = 251
Internal Driver Error.
NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO1 = 252
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO1 = 253
Internal Driver Error.
NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO1 = 254
Internal Driver Error.
NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO1 = 255
Internal Driver Error.
NEOVI_ERROR_DLL_DROPPED_RTC_CMD = 256
Internal Driver Error.
NEOVI_ERROR_DLL_J1850_TX_REQUESTS_FLUSHED = 257
Internal Driver Error.
NEOVI_ERROR_J1708_COMM_BAD_PACKET = 258
Internal Driver Error.
NEOVI_ERROR_DLL_NETWORK_NOT_SUPPORTED_BY_HARDWARE = 259
Internal Driver Error.
NEOVI_ERROR_DLL_FEATURE_NOT_UNLOCKED = 260
Internal Driver Error.
NEOVI_ERROR_DLL_DEVICE_NOT_POWERED = 261
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_OK = 262
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORBADINIT = 263
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOCANPIPE = 264
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORISONEG7FRESPONSE = 265
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORTOOLNOTSELECTED = 266
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORINVALIDDEVICESELECTED = 267
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOULDNOTOPENTOOL = 268
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOFLOWCONTROL = 269
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORUNSPECIFIC = 270
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMININULLPTR = 271
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMINIZEROLEN = 272
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORRESERVED3 = 273
Internal Driver Error.
NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORRESERVED4 = 274
Internal Driver Error.
NEOVI_ERROR_DLL_YELLOW_DEPRECATED = 275
Internal Driver Error.
NEOVI_ERROR_DLL_HARDWARE_FAILURE_SRAM = 276
Internal Driver Error.
NEOVI_ERROR_ACTIVE_CONNECTION_ALREADY_EXISTS = 277
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_RTC_FAILED_READ = 278
Internal Driver Error.
NEOVI_ERROR_DLL_MAIN51_RTC_AUTO_RTC = 279
Internal Driver Error.
NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_NOTPOSSIBLE = 287
Internal Driver Error.
NEOVI_ERROR_CHANNEL_LOCKED_BY_OTHER_CLIENT = 288
Occurs when an application tries to acquire a lock on a channel that has already been locked.
NEOVI_ERROR_NEOVISERVER_GENERAL_ERROR = 289
A general error has occurred with the neoVIServer.
NEOVI_ERROR_CHANNEL_LOCKING_NOT_SUPPORTED_FOR_DEVICE = 290
The connected device does not support channel locking.
Returns the error generated by the last intrepidcs API call
Returns the intrepidcs API error message queue
Returns a text description of an intrepidcs API error
Used to determine if an hObject reference is valid
Returns DLL version information
Starts the TCP/IP socket server at a specified port.
Stops the TCP/IP socket server
The CoreMini Script Interface is a way to use functionality from Vehicle Spy in your own application. When a CoreMini file is created in Vehicle Spy 3 it creates header files for the functions in the file and giving access to basic parameters in the script.
This section includes commands to load and interact with CoreMini scripts for Intrepid Control Systems 3G hardware. CoreMini scripts are created using Vehicle Spy 3. For information on creating CoreMini scripts see the help documents for Vehicle Spy 3. The table below lists the different script interface commands and gives a short description of the command.
Starts execution of a script that has been downloaded to a neoVI device
Stops execution of a script running on a neoVI device
Downloads a script to a connected neoVI device into a specified location
Clears a script from a specific location on a neoVI device
Starts a function block within a script on a neoVI device
Returns the run status of a function block within a script on a neoVI device
Stops the execution of a function block within a script on a neoVI device
Stops the execution of a function block within a script on a neoVI device
Read an application signal from a script running on a neoVI device
Set the value of an application signal in a script running on a neoVI device
Use OpenNeoDevice
OpenPort
Use OpenNeoDevice
It is no longer necessary to call this before and after calling SendConfiguration
No longer supported. It is present in the API but will always return 0
Use FindNeoDevices instead
Use FindDevices instead
This method stops the execution of a specified function block within a script on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
iFunctionBlockIndex
[in] The index value of the function block to stop
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX = 219
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Remarks
The script containing the specified function block must have been successfully downloaded to the neoVI using . Execution of the script must have been started by . Execution of the function block must have been started using . The valid index values for function blocks within a script can be found in the cmvspy.vs3cmb.h file (Produced by Vehicle Spy. Please see Vehicle Spy documentation).
This method is used to set the value of an application signal in a script running on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
iIndex
[in] The index value of the application signal.
dValue
[in] The new value of the application signal.
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX = 225
Remarks
The script containing the specified application signal must have been successfully downloaded to the neoVI using . The script must also have been started using . This function will fail if has been called. The valid index values for application signals within a script can be found in the cmvspy.vs3cmb.h file that is produced by Vehicle Spy. Please see Vehicle Spy documentation.
This method starts the execution of a script that has been downloaded to a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
iLocation
[in] Specifies the physical location of the script to be executed on the neoVI device. Valid values are:
SCRIPT_LOCATION_FLASH_MEM = 0 (Valid only on a neoVI Fire or neoVI Red)SCRIPT_LOCATION_SDCARD = 1 (Valid only on a neoVI Fire or neoVI Red)SCRIPT_LOCATION_VCAN3_MEM = 2 (Valid only on a ValueCAN 3 device)
These values are defined in the icsnVC40.h file
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION = 213
NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED = 214
NEOVI_ERROR_DLL_SCRIPT_START_ERROR = 218
Remarks
The script must have been successfully downloaded to the neoVI using . Use to suspend execution of the script. If the connected device is a ValueCAN 3 and a location other than SCRIPT_LOCATION_VCAN3_MEM will generate an error.
This method returns the status of the script on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
iFunctionBlockIndex
[in] The index value of the function block
piStatus
[out] 0 = Stopped 1 = Running
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Remarks
The script must have been successfully downloaded to the neoVI using .
This method is used to read an application signal from a script running on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
unsigned int iIndex
[in] The index value of the transmit message to read
double *dValue
[in] Contains the current value of the application signal.
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX = 225
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Remarks
The script containing the specified application signal must have been successfully downloaded to the neoVI using . The script must also have been started using . This function will fail if has been called. The valid index values for application signals within a script can be found in the cmvspy.vs3cmb.h file that is produced by Vehicle Spy. Please see Vehicle Spy documentation.
This method downloads a script to a connected neoVI device into a specified location.
Parameters
hObject
[in] Specifies the driver object created by .
bin[in] An array of bytes that represent a compiled script. These bytes are contained in a header file called cmvspy.h.
This file is created by Vehicle Spy when a script is compiled. Please see Vehicle Spy documentation for details.
len_bytes
[in] Specifies the number of bytes represented by the bin parameter
iLocation
[in] Specifies the physical location to where the script will be loaded on the neoVI device. Valid values are as follows:
SCRIPT_LOCATION_FLASH_MEM = 0 (Valid only on a neoVI Fire or neoVI Red)SCRIPT_LOCATION_SDCARD = 1 (Valid only on a neoVI Fire or neoVI Red)SCRIPT_LOCATION_VCAN3_MEM = 4 (Valid only on a ValueCAN 3 device)
These values are defined in the icsnVC40.h file
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION = 213
NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED = 214
NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR = 216
NEOVI_ERROR_DLL_SCRIPT_ERROR_DOWNLOADING_SCRIPT = 220
NEOVI_ERROR_DLL_SDCARD_READ_ERROR = 217
Remarks
This method returns the run status of a specified function block within a script on a neoVI device.
Parameters
hObject
[in] Specifies the driver object created by .
iFunctionBlockIndex
[in] The index value of the function block to start
piStatus
[out] 0 = stopped 1 = running
Return Values
1 if the function succeeded. 0 if it failed for any reason. must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX = 219
NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING = 226
Remarks
The script containing the specified function block must have been successfully downloaded to the neoVI using . Execution of the script must have been started by using . The valid index values for function blocks within a script can be found in the cmvspy.vs3cmb.h file (Produced by Vehicle Spy. Please see Vehicle Spy documentation).
This error occurs if the DLL overflows it’s receive message buffer. Solve this error by calling at a faster interval.
The script will be stored on the device in the specified location. If the location is SCRIPT_LOCATION_FLASH_MEM or SCRIPT_LOCATION_SDCARD the script will persist in the device in that location until cleared by . If the neoVI device is booted (plugged in to power) without being connected to a USB port the stored script will execute. The location SCRIPT_LOCATION_VCAN3_MEM applies only to the ValueCAN 3 device and the storage will be cleared when power is removed from the device.
List of Structures for configuring different hardware devices
Structure used by FindNeoDevices and OpenNeoDevice to locate and open neoVI devices
Structure used by FindDevices to find hardware devices
Structure that contains information about neoVI device firmware versions
Message structures used for reading and writing vehicle network messages
Status bitfields in the Message Structures that define specific attributes of the message
Message Structure for Transmit ISO15765 packets
Message Structure for Receive ISO15765 packets
This method transmits messages asynchronously to vehicle networks using the neoVI hardware.
Parameters
hObject
[in] Handle which specifies the driver object created by OpenNeoDevice.
pMsg
[in] This is the address of the first element of an array of icsSpyMessage structures. This array will be loaded by the application software with messages that are to be transmitted by the hardware.
lNetworkID
[in] Specifies the network to transmit the message on. See NetworkIDList List for a list of valid Network ID values. Network support varies by neoVI device. NETID_DEVICE transmits on to the neoVI Device Virtual Network (see users manual).
lNumMessages
[in] Specifies the number of messages to be transmitted. This parameter should always be set to one unless you are transmitting a long Message. Transmitting long messages on ISO or J1708 is described in a different topic.
Return Values
Returns 1 if successful, 0 if an error occurred. GetLastAPIError must be called to obtain the specific error. The errors that can be generated by this function are:
NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC = 13
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK= 90
NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED = 190
Remarks
This function call adds a transmit message to the transmit queue. The message will be transmitted when the network is free and all previously transmitted messages have been transmitted. Transmitting long messages which are greater than 12 bytes on ISO or J1708 is described in a different topic.
Transmit Report
After the messages has been transmitted there will be a transmit report message returned from the device. The transmit report will be read out with GetMessages. Any message read which has the SPY_STATUS_TX_MSG (icsSpyStatusTx) bit set in the status bitfield is a transmit report.
You can also identify a particular transmitted message with DescriptionID field. This two byte field (only 14 bits are used) allows the programmer to assign an arbitrary number to a message. This number is then returned in the transmit report.
The transmit report does not necessarily mean the message was transmitted successfully. For example, the Ford SCP network will return a Transmit Report if it had tried to send a message. Therefore, the programmer should always check the GlobalError Flag in the status bitfield.
To transmit different messages, set the appropriate bits in the status bitfields. For example, there are bits for init waveforms, extended identifiers and remote frames.