neoVI API Docs
All DocsProductsLearning CenterSupport
  • The neoVI API - Create your own software applications
  • Basic Operation - neoVI API
    • Using the neoVI API in Visual Studio: 32 bit DLL and 64 bit OS - neoVI API
    • Using the intrepidcs API in Visual Basic - neoVI API
    • Using the neoVI API in Visual C++ - neoVI API
    • Using the neoVI API in C# - neoVI API
    • Using the neoVI API in Borland C++ Builder - neoVI API
    • Using the neoVI API in Delphi - neoVI API
    • Using the API in LabVIEW - neoVI API
    • Using the neoVI API in LabWindows CVI - neoVI API
    • Unity3D Graphic Display API
    • Using the neoVI API in Excel - neoVI API
  • WIN32 API Overview - neoVI API
    • Basic Functions Overview - neoVI API
      • FindDevices Method
      • OpenNeoDevice Method - neoVI API
      • ClosePort Method - neoVI API
      • FreeObject Method - neoVI API
    • Message Functions Overview - neoVI API
      • GetMessages Method - neoVI API
      • TxMessages Method - neoVI API
      • TxMessagesEx Method - neoVI API
      • WaitForRxMessagesWithTimeOut Method - neoVI API
      • GetTimeStampForMsg Method - neoVI API
      • ISO15765 Message Functions Overview - neoVI API
        • ISO15765_EnableNetworks Method - neoVI API
        • ISO15765_TransmitMessage Method - neoVI API
        • ISO15765_ReceiveMessage Method - neoVI API
      • Transmitting Long Messages - neoVI API
    • Device Settings Functions Overview - neoVI API
      • GetConfiguration Method - neoVI API
      • SendConfiguration Method - neoVI API
      • neoVI Fire - neoVI API
        • GetFireSettings Method - neoVI API
        • SetFireSettings Method - neoVI API
      • neoVI FIRE 2 - neoVI API
        • GetFIRE2Settings Method - neoVI API
        • SetFire2Settings Method - neoVI API
      • ValueCAN3 - neoVI API
        • GetVCAN3Settings Method - neoVI API
        • SetVCAN3Settings Method - neoVI API
      • ValueCAN 4-1 and 4-2 - neoVI API
        • GetVCAN412Settings Method - neoVI API
        • SetVCAN412Settings Method - neoVI API
      • ValueCAN 4-4 - neoVI API
        • GetVCAN4Settings Method - neoVI API
        • SetVCAN4Settings Method - neoVI API
      • ValueCAN RF - neoVI API
        • GetVCANRFSettings Method - neoVI API
        • SetVCANRFSettings Method - neoVI API
      • RAD Galaxy - neoVI API
        • GetRADGalaxySettings Method - neoVI API
        • SetRADGalaxySettings Method - neoVI API
      • General Device Settings - neoVI API
        • SetBitRate Method - neoVI API
        • SetFDBitRate Method - neoVI API
        • GetDeviceSettings Method - neoVI API
        • SetDeviceSettings Method - neoVI API
        • GetHWFirmwareInfo Method - neoVI API
        • GetDLLFirmwareInfo Method - neoVI API
        • ForceFirmwareUpdate Method - neoVI API
        • GetDeviceParameters Method - neoVI API
        • SetDeviceParameters Method - neoVI API
        • SetReflashDisplayCallbacks Method - neoVI API
        • ClearReflashDisplayCallbacks Method - neoVI API
        • GetRTC Method - neoVI API
        • SetRTC Method - neoVI API
    • Error Functions Overview - neoVI API
      • GetLastAPIError Method - neoVI API
      • GetErrorMessages Method - neoVI API
      • GetErrorInfo Method - neoVI API
      • Error Messages - neoVI API
    • General Utility Functions Overview - neoVI API
      • ValidateHObject Method - neoVI API
      • GetDLLVersion Method - neoVI API
      • StartSocketServer Method - neoVI API
      • StopSocketServer Method - neoVI API
      • GetPerformanceParameters Method - neoVI API
      • ReadWritePhySettings Method - neoVI API
      • EnableDOIPLine Method - neoVI API
      • GetGPTPStatus Method - neoVI API
    • Deprecated Functions Overview - neoVI API
      • OpenPortEx Method - neoVI API
        • OpenPortEx Hardware Type Information - neoVI API
      • FindAllCOMDevices Method - neoVI API
      • FindAllUSBDevices Method - neoVI API
      • FindNeoDevices Method - neoVI API
      • EnableNetworkCom Method - neoVI API
      • CoreMini Script interface Overview - neoVI API
        • ScriptStart Method - neoVI API
        • ScriptStop Method - neoVI API
        • ScriptLoad Method - neoVI API
        • ScriptClear Method - neoVI API
        • ScriptStartFBlock Method - neoVI API
        • ScriptGetFBlockStatus Method - neoVI API
        • ScriptStopFBlock Method - neoVI API
        • ScriptGetScriptStatus Method - neoVI API
        • ScriptReadAppSignal Method - neoVI API
        • ScriptWriteAppSignal Method - neoVI API
    • Structures, Types, and Defines Overview - neoVI API
      • Setting Structures Overview - neoVI API
        • SFireSettings Structure
        • SFire2Settings Structure
        • SVCAN3Settings Structure
        • SVCANRFSettings Structure
        • SVCAN412Settings Structure
        • SVCAN4Settings Structure
        • SVCAN4IndSettings Structure
        • SRADGalaxySettings Structure
        • SRADStar2Settings Structure
        • SRADPlutoSettings Structure
        • SRADSuperMoonSettings Structure
        • SRADMoon2Settings Structure
        • SDeviceSettings Structure
        • Sub Setting Structures Overview - neoVI API
          • CAN_SETTINGS Structure
          • SWCAN_SETTINGS Structure
          • CANFD_SETTINGS Structure
          • LIN_SETTINGS Structure
          • ISO9141_KEYWORD2000_SETTINGS Structure
          • ISO9141_KEYWORD2000__INIT_STEP Structure
          • ETHERNET_SETTINGS Structure
          • ETHERNET_SETTINGS2 Structure
          • OP_ETH_GENERAL_SETTINGS Structure
          • OP_ETH_SETTINGS Structure
          • SPluto_CustomParams Structure
          • UART_SETTINGS Structure
          • RAD_GPTP_SETTINGS Structure
          • LOGGER_SETTINGS Structure
          • DISK_SETTINGS Structure
          • TIMESYNC_ICSHARDWARE_SETTINGS Structure
          • RAD_REPORTING_SETTINGS Structure
          • STextAPISettings Structure
          • gPTP Structures
            • GPTPStatus Structure
            • timestamp Structure
            • priority_vector Structure
            • port_identity Structure
            • clock_quality Structure
            • system_identity Structure
        • NeoDevice Structure
        • NeoDeviceEx Structure
        • stAPIFirmwareInfo Structure
        • Message Structures - neoVI API
        • Status Bitfields - neoVI API
        • Using an array instead of a message structure - intrepidcs API
        • icsSpyTime Structure
        • stCM_ISO157652_TxMessage Structure
        • stCM_ISO157652_RxMessage Structure
        • Valid parameter names for the SetDeviceParameter and GetDeviceParameter methods
        • neoVI API Data Types
        • PhyRegPktClauseMess_t Structure
        • neoVI Network ID List
  • Development FAQ's
    • How do I detect and handle disconnects?
    • How do I set parameters on a neoVI device?
    • How do I open more than one channel on a single piece of hardware? - neoVI API
    • How do I communicate on LIN - neoVI API
    • How do I send a Extended Frame or a High Voltage Wakeup or ISO9141/KW2K Init? - neoVI API
  • Unix-like Operating Systems - Support
  • J2534 Support - neoVI API
  • Vehicle Spy Text API
    • ECU Object - Vehicle Spy Text API
    • Labview Text API Interface to Vehicle Spy 3
  • Vehicle Spy VSB file Spec
  • Contact Us
    • Contact Information - Intrepid Control Systems, Inc
Powered by GitBook
LogoLogo

Applications

  • Cybersecurity
  • Data Logging
  • Simulate ECU Functions
  • Diagnostics, Testing and Validation

Products

  • Vehicle Network Adapters
  • Data Loggers
  • Software
  • Automotive Ethernet Tools

Support

  • Support Resources
  • Contact Support
  • Class Schedule & Registration
  • Training Video Library

Company

  • About
  • News
  • Events
  • Contact Us

Copyright © 2025 | All Rights Reserved

On this page
Edit on GitHub
Export as PDF
  1. WIN32 API Overview - neoVI API
  2. Structures, Types, and Defines Overview - neoVI API
  3. Setting Structures Overview - neoVI API

Status Bitfields - neoVI API

PreviousMessage Structures - neoVI APINextUsing an array instead of a message structure - intrepidcs API

Last updated 2 years ago

There are two status bitfields in the that define specific attributes of the message. The two status bitfields are named StatusBitfield and StatusBitfield1.

const long SPY_STATUS_GLOBAL_ERR = 0x01;
const long SPY_STATUS_TX_MSG = 0x02;
const long SPY_STATUS_XTD_FRAME = 0x04;
const long SPY_STATUS_REMOTE_FRAME = 0x08;

const long SPY_STATUS_CRC_ERROR = 0x10;
const long SPY_STATUS_CAN_ERROR_PASSIVE = 0x20;
const long SPY_STATUS_INCOMPLETE_FRAME = 0x40;
const long SPY_STATUS_LOST_ARBITRATION = 0x80;

const long SPY_STATUS_UNDEFINED_ERROR = 0x100;
const long SPY_STATUS_CAN_BUS_OFF = 0x200;
const long SPY_STATUS_CAN_ERROR_WARNING = 0x400;
const long SPY_STATUS_BUS_SHORTED_PLUS = 0x800;

const long SPY_STATUS_BUS_SHORTED_GND = 0x1000;
const long SPY_STATUS_CHECKSUM_ERROR = 0x2000;
const long SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR = 0x4000;
const long SPY_STATUS_IFR_DATA = 0x8000;

const long SPY_STATUS_HARDWARE_COMM_ERROR = 0x10000;
const long SPY_STATUS_EXPECTED_LEN_ERROR = 0x20000;
const long SPY_STATUS_INCOMING_NO_MATCH = 0x40000;
const long SPY_STATUS_BREAK = 0x80000;

const long SPY_STATUS_AVSI_REC_OVERFLOW = 0x100000;
const long SPY_STATUS_TEST_TRIGGER = 0x200000;
const long SPY_STATUS_AUDIO_COMMENT = 0x400000;
const long SPY_STATUS_GPS_DATA = 0x800000;

const long SPY_STATUS_ANALOG_DIGITAL_INPUT = 0x1000000;
const long SPY_STATUS_TEXT_COMMENT = 0x2000000;
const long SPY_STATUS_NETWORK_MESSAGE_TYPE = 0x4000000;
const long SPY_STATUS_VSI_TX_UNDERRUN = 0x8000000;

const long SPY_STATUS_VSI_IFR_CRC_Bit = 0x10000000;
const long SPY_STATUS_INIT_MESSAGE = 0x20000000;
const long SPY_STATUS_HIGH_SPEED_MESSAGE = 0x40000000;
const long SPY_STATUS_FLEXRAY_SECOND_STARTUP_FRAME = 0x40000000;
const long SPY_STATUS_EXTENDED = 0x80000000;


// The second status bitfield
const long SPY_STATUS2_HAS_VALUE = 1;
const long SPY_STATUS2_VALUE_IS_BOOLEAN = 2;
const long SPY_STATUS2_HIGH_VOLTAGE = 4;
const long SPY_STATUS2_LONG_MESSAGE = 8;
const long SPY_STATUS2_GLOBAL_CHANGE = 0x10000;
const long SPY_STATUS2_ERROR_FRAME = 0x20000;
const long SPY_STATUS2_END_OF_LONG_MESSAGE = 0x100000;
const long SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 = 0x200000;
const long SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT = 0x400000;
const long SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 = 0x800000;
const long SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 = 0x1000000;
const long SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH = 0x2000000;
const long SPY_STATUS2_LIN_ERR_MSG_ID_PARITY = 0x4000000;
const long SPY_STATUS2_ISO_FRAME_ERROR = 0x8000000;
const long SPY_STATUS2_LIN_SYNC_FRAME_ERROR = 0x8000000;
const long SPY_STATUS2_ISO_OVERFLOW_ERROR = 0x10000000;
const long SPY_STATUS2_LIN_ID_FRAME_ERROR = 0x10000000;
const long SPY_STATUS2_ISO_PARITY_ERROR = 0x20000000;
const long SPY_STATUS2_LIN_SLAVE_BYTE_ERROR = 0x20000000;
const long SPY_STATUS2_RX_TIMEOUT_ERROR = 0x40000000;
const long SPY_STATUS2_LIN_NO_SLAVE_DATA = 0x80000000;
const long SPY_STATUS2_MOST_PACKET_DATA = 0x200000;
const long SPY_STATUS2_MOST_STATUS = 0x400000;
const long PY_STATUS2_MOST_LOW_LEVEL = 0x800000;
const long SPY_STATUS2_MOST_CONTROL_DATA = 0x1000000;
const long SPY_STATUS2_MOST_MHP_USER_DATA = 0x2000000;
const long SPY_STATUS2_MOST_MHP_CONTROL_DATA = 0x4000000;
const long SPY_STATUS2_MOST_I2S_DUMP = 0x8000000;
const long SPY_STATUS2_MOST_TOO_SHORT = 0x10000000;
const long SPY_STATUS2_MOST_MOST50 = 0x20000000;
const long SPY_STATUS2_MOST_MOST150 = 0x40000000;
const long SPY_STATUS2_MOST_CHANGED_PAR = 0x80000000;
const long SPY_STATUS2_ETHERNET_CRC_ERROR = 0x200000;
const long SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT = 0x400000;
const long SPY_STATUS2_ETHERNET_FCS_AVAILABLE = 0x800000;

// The third status bitfield
const long SPY_STATUS3_LIN_JUST_BREAK_SYNC = 1;
const long SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT = 2;
const long SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE = 4;

//Spy Status Bitfield 3 constants CAN FD
const long SPY_STATUS3_CANFD_ESI = 0x01;
const long SPY_STATUS3_CANFD_IDE = 0x02;
const long SPY_STATUS3_CANFD_RTR = 0x04;
const long SPY_STATUS3_CANFD_FDF = 0x08;
const long SPY_STATUS3_CANFD_BRS = 0x10;
Public Enum icsSpyDataStatusBitfield
   icsSpyStatusGlobalError = 2 ^ 0
   icsSpyStatusTx = 2 ^ 1
   icsSpyStatusXtdFrame = 2 ^ 2
   icsSpyStatusRemoteFrame = 2 ^ 3
   icsSpyStatusErrCRCError = 2 ^ 4
   icsSpyStatusCANErrorPassive = 2 ^ 5
   icsSpyStatusErrIncompleteFrame = 2 ^ 6
   icsSpyStatusErrLostArbitration = 2 ^ 7
   icsSpyStatusErrUndefined = 2 ^ 8
   icsSpyStatusErrCANBusOff = 2 ^ 9
   icsSpyStatusErrCANErrorWarning = 2 ^ 10
   icsSpyStatusBusShortedPlus = 2 ^ 11
   icsSpyStatusBusShortedGnd = 2 ^ 12
   icsSpyStatusCheckSumError = 2 ^ 13
   icsSpyStatusErrBadMessageBitTimeError = 2 ^ 14
   icsSpyStatusIFRData = 2 ^ 15
   icsSpyStatusHardwareCommError = 2 ^ 16
   icsSpyStatusExpectedLengthError = 2 ^ 17
   icsSpyStatusIncomingNoMatch = 2 ^ 18
   icsSpyStatusBreak = 2 ^ 19
   icsSpyStatusAVT_VSIRecOverflow = 2 ^ 20
   icsSpyStatusTestTrigger = 2 ^ 21
   icsSpyStatusAudioCommentType = 2 ^ 22
   icsSpyStatusGPSDataValue = 2 ^ 23
   icsSpyStatusAnalogDigitalInputValue = 2 ^ 24
   icsSpyStatusTextCommentType = 2 ^ 25
   icsSpyStatusNetworkMessageType = 2 ^ 26
   icsSpyStatusVSI_TxUnderRun = 2 ^ 27
   icsSpyStatusVSI_IFR_CRCBit = 2 ^ 28
   icsSpyStatusInitMessage = 2 ^ 29
   icsSpyStatusHighSpeed = 2 ^ 30
   SPY_STATUS_FLEXRAY_SECOND_STARTUP_FRAME = 2 ^ 30
   SPY_STATUS_EXTENDED = 2 ^ 31
End Enum
Public Enum icsSpyDataStatusBitfield2
   SPY_STATUS2_HAS_VALUE = 1
   SPY_STATUS2_VALUE_IS_BOOLEAN = 2
   SPY_STATUS2_HIGH_VOLTAGE = 4
   SPY_STATUS2_LONG_MESSAGE = 8
   SPY_STATUS2_GLOBAL_CHANGE = &H10000
   SPY_STATUS2_ERROR_FRAME = &H20000
   SPY_STATUS2_END_OF_LONG_MESSAGE = &H100000
   SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 = &H200000
   SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT = &H400000
   SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 = &H800000
   SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 = &H1000000
   SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH = &H2000000
   SPY_STATUS2_LIN_ERR_MSG_ID_PARITY = &H4000000
   SPY_STATUS2_ISO_FRAME_ERROR = &H8000000
   SPY_STATUS2_LIN_SYNC_FRAME_ERROR = &H8000000
   SPY_STATUS2_ISO_OVERFLOW_ERROR = &H10000000
   SPY_STATUS2_LIN_ID_FRAME_ERROR = &H10000000
   SPY_STATUS2_ISO_PARITY_ERROR = &H20000000
   SPY_STATUS2_LIN_SLAVE_BYTE_ERROR = &H20000000
   SPY_STATUS2_RX_TIMEOUT_ERROR = &H40000000
   SPY_STATUS2_LIN_NO_SLAVE_DATA = &H80000000
   SPY_STATUS2_MOST_PACKET_DATA = &H200000
   SPY_STATUS2_MOST_STATUS = &H400000
   PY_STATUS2_MOST_LOW_LEVEL = &H800000
   SPY_STATUS2_MOST_CONTROL_DATA = &H1000000
   SPY_STATUS2_MOST_MHP_USER_DATA = &H2000000
   SPY_STATUS2_MOST_MHP_CONTROL_DATA = &H4000000
   SPY_STATUS2_MOST_I2S_DUMP = &H8000000
   SPY_STATUS2_MOST_TOO_SHORT = &H10000000
   SPY_STATUS2_MOST_MOST50 = &H20000000
   SPY_STATUS2_MOST_MOST150 = &H40000000
   SPY_STATUS2_MOST_CHANGED_PAR = &H80000000
   SPY_STATUS2_ETHERNET_CRC_ERROR = &H200000
   SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT = &H400000
   SPY_STATUS2_ETHERNET_FCS_AVAILABLE = &H800000
End Enum
public enum eDATA_STATUS_BITFIELD_1
{
   SPY_STATUS_GLOBAL_ERR = 0x01,
   SPY_STATUS_TX_MSG = 0x02,
   SPY_STATUS_XTD_FRAME = 0x04,
   SPY_STATUS_REMOTE_FRAME = 0x08,
   SPY_STATUS_CRC_ERROR = 0x10,
   SPY_STATUS_CAN_ERROR_PASSIVE = 0x20,
   SPY_STATUS_INCOMPLETE_FRAME = 0x40,
   SPY_STATUS_LOST_ARBITRATION = 0x80,
   SPY_STATUS_UNDEFINED_ERROR = 0x100,
   SPY_STATUS_CAN_BUS_OFF = 0x200,
   SPY_STATUS_CAN_ERROR_WARNING = 0x400,
   SPY_STATUS_BUS_SHORTED_PLUS = 0x800,
   SPY_STATUS_BUS_SHORTED_GND = 0x1000,
   SPY_STATUS_CHECKSUM_ERROR = 0x2000,
   SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR = 0x4000,
   SPY_STATUS_IFR_DATA = 0x8000,
   SPY_STATUS_HARDWARE_COMM_ERROR = 0x10000,
   SPY_STATUS_EXPECTED_LEN_ERROR = 0x20000,
   SPY_STATUS_INCOMING_NO_MATCH = 0x40000,
   SPY_STATUS_BREAK = 0x80000,
   SPY_STATUS_AVSI_REC_OVERFLOW = 0x100000,
   SPY_STATUS_TEST_TRIGGER = 0x200000,
   SPY_STATUS_AUDIO_COMMENT = 0x400000,
   SPY_STATUS_GPS_DATA = 0x800000,
   SPY_STATUS_ANALOG_DIGITAL_INPUT = 0x1000000,
   SPY_STATUS_TEXT_COMMENT = 0x2000000,
   SPY_STATUS_NETWORK_MESSAGE_TYPE = 0x4000000,
   SPY_STATUS_VSI_TX_UNDERRUN = 0x8000000,
   SPY_STATUS_VSI_IFR_CRC_Bit = 0x10000000,
   SPY_STATUS_INIT_MESSAGE = 0x20000000,
   SPY_STATUS_HIGH_SPEED_MESSAGE = 0x40000000,
}
public enum eDATA_STATUS_BITFIELD_2
{
   SPY_STATUS2_HAS_VALUE = 0,
   SPY_STATUS2_VALUE_IS_BOOLEAN = 2,
   SPY_STATUS2_HIGH_VOLTAGE = 4,
   SPY_STATUS2_LONG_MESSAGE = 8,
}

Remarks

The tables below describe the bitfields.

Table 1 - StatusBitfield Elements

C/C++ Name
VB Name
Description

SPY_STATUS_GLOBAL_ERR

icsSpyStatusGlobalError

This is set if the message has any other error bits set.

SPY_STATUS_TX_MSG

icsSpyStatusTx

This is set if the message was transmitted by this device.

SPY_STATUS_XTD_FRAME

icsSpyStatusXtdFrame

This is set if the CAN message received or transmitted has an extended (29 bit) identifier.

SPY_STATUS_REMOTE_FRAME

icsSpyStatusRemoteFrame

This is set if the CAN message received or transmitted is a remote frame.

SPY_STATUS_CRC_ERROR

icsSpyStatusErrCRCError

This is set for J1850 VPW messages which do not have a proper CRC byte.

SPY_STATUS_CAN_ERROR_PASSIVE

icsSpyStatusCANErrorPassive

Not used in the neoVI API.

SPY_STATUS_INCOMPLETE_FRAME

icsSpyStatusErrIncompleteFrame

This is set for a J1850 VPW message which is received that ended on a non-byte boundary.

SPY_STATUS_LOST_ARBITRATION

icsSpyStatusErrLostArbitration

Not used in the neoVI API.

SPY_STATUS_UNDEFINED_ERROR

icsSpyStatusErrUndefined

This is an undefined error in the neoVI hardware

SPY_STATUS_CAN_BUS_OFF

icsSpyStatusErrCANBusOff

SPY_STATUS_CAN_ERROR_WARNING

icsSpyStatusErrCANErrorWarning

Not used in the neoVI API.

SPY_STATUS_BUS_SHORTED_PLUS

icsSpyStatusBusShortedPlus

Not used in the neoVI API.

SPY_STATUS_BUS_SHORTED_GND

icsSpyStatusBusShortedGnd

Not used in the neoVI API.

SPY_STATUS_CHECKSUM_ERROR

icsSpyStatusCheckSumError

Not used in the neoVI API.

SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR

icsSpyStatusErrBadMessageBitTimeError

This is set for J1850 VPW messages which do not meet the specified bit times for the SOF or bit signals.

SPY_STATUS_IFR_DATA

icsSpyStatusIFRData

Not used in the neoVI API.

SPY_STATUS_HARDWARE_COMM_ERROR

icsSpyStatusHardwareCommError

Not used in the neoVI API.

SPY_STATUS_EXPECTED_LEN_ERROR

icsSpyStatusExpectedLengthError

Not used in the neoVI API.

SPY_STATUS_INCOMING_NO_MATCH

icsSpyStatusIncomingNoMatch

Not used in the neoVI API.

SPY_STATUS_BREAK

icsSpyStatusBreak

This is set if the J1850 VPW break symbol has been received or is to be transmitted.

SPY_STATUS_AVSI_REC_OVERFLOW

icsSpyStatusAVT_VSIRecOverflow

Not used in the neoVI API.

SPY_STATUS_TEST_TRIGGER

icsSpyStatusTestTrigger

Not used in the neoVI API.

SPY_STATUS_AUDIO_COMMENT

icsSpyStatusAudioCommentType

Not used in the neoVI API.

SPY_STATUS_GPS_DATA

icsSpyStatusGPSDataValue

Not used in the neoVI API.

SPY_STATUS_ANALOG_DIGITAL_INPUT

icsSpyStatusAnalogDigitalInputValue

Not used in the neoVI API.

SPY_STATUS_TEXT_COMMENT

icsSpyStatusTextCommentType

Not used in the neoVI API.

SPY_STATUS_NETWORK_MESSAGE_TYPE

icsSpyStatusNetworkMessageType

This is set for all messages received from a vehicle network.

SPY_STATUS_VSI_TX_UNDERRUN

icsSpyStatusVSI_TxUnderRun

Not used in the neoVI API.

SPY_STATUS_VSI_IFR_CRC_Bit

icsSpyStatusVSI_IFR_CRCBit

Not used in the neoVI API.

SPY_STATUS_INIT_MESSAGE

icsSpyStatusInitMessage

This is set if the transmitted message should generate the ISO/Keyword2000 initialization waveform.

SPY_STATUS_HIGH_SPEED_MESSAGE

icsSpyStatusHighSpeed

This is set if the transmitted message is transmitted in high speed mode.

Table 2 - StatusBitfield2 Elements

C/C++ Name
VB Name
Description

SPY_STATUS2_HAS_VALUE

icsSpyStatusHasValue

Not used in the neoVI API.

SPY_STATUS2_VALUE_IS_BOOLEAN

icsSpyStatusValueIsBoolean

Not used in the neoVI API.

SPY_STATUS2_HIGH_VOLTAGE

icsSpyStatusHighVoltage

This is set if the transmitted message is transmitted in high voltage wakeup mode.

SPY_STATUS2_LONG_MESSAGE

icsSpyStatusLongMessage

Not used in the neoVI API.

VB Module: bas_neoVI.bas

C/C++ Header: neovi.h

C/C++ Library File: icsneoVI.lib

DLL File: icsneoVI.dll

VB.Net Module: bas_neoVI.vb

C# Class: icsNeoClass.cs\

Examples

Determining if we there's an error in the message (This is indicated by SPY_STATUS_GLOBAL_ERR bit set)

if (mMsg.StatusBitField & SPY_STATUS_GLOBAL_ERR)
{
 // This message has an error in it
}
Determining if we transmitted a message (This is indicated by icsSpyStatusTx bit set)

If (Msg.StatusBitField And icsSpyDataStatusBitfield.icsSpyStatusTx) > 0 Then
        '// The message was transmitted by us
End If

Transmitting a CAN Extended ID Remote Frame

'// Load the message to be transmitted ArbID = FF extended remote frame with DLC=4
With stMessagesTx
    .ArbIDOrHeader = &HFF
    .NumberBytesData = 4
    .StatusBitField = icsSpyDataStatusBitfield.icsSpyStatusXtdFrame + icsSpyDataStatusBitfield.icsSpyStatusRemoteFrame
End With
lResult = icsneoTxMessages(m_hObject, stMessagesTx, NETID_HSCAN, 1)
Determining if we there's an error in the message (This is indicated by SPY_STATUS_GLOBAL_ERR bit set)

if (mMsg.StatusBitField & SPY_STATUS_GLOBAL_ERR)
{
  // This message has an error in it
}

This is set when there is a change in error status of a MCP2510 CAN controller. The bitfield of the error status is stored in data byte 1 of the message structure. A description of this bitfield is included in this ``

message structures
topic