Vehicle Spy VSB file Spec

File Specification

Description
Length in Bytes
Notes

Text Identifier

6

single byte char array with text "icsbin"used to identify file type.

File Version

4

single byte char array indicate version.

Version Section

Variable (see below)

This data structure is determinant the File Version

Version Specification

Version 0x101

This format is no longer created. Click to see Network ID's

Description
Length in Bytes
Notes

Length of Vs3 File

4

int value indicating the length of the next section (the vs3 file). A zero indicates no vs3 file is present.

Vs3 file

variable (see above)

vs3 file used to save this binary file. This vs3 file is later used to decode the binary data into usable information.

Length of text comment

4

int indicating the length of the text header comment of the saved file. SINCE THE COMMENT IS UNICODE THEREFORE HIS IS THE LENGTH IN CHARACTERS - NOT BYTES.

Text comment

2 bytes per character (see above for number of characters)

Unicode text comment.

Size of Buffer of Messages

4

sizeof(VSBSpyMessage) multiplied by Number of messages saved to the file

Current Buffer Pointer

4

int value which is the pointer to the most recent buffer item +1. (only needed if Number of All time messages > Original buffer size)

Original Buffer Size

4

int value which is the size of the buffer memory originally allocated by this buffer

Number of All time messages

4

this indicates how many messages were received by this buffer (this number will indicate overflows)

Buffer of Messages

variable (see Size of Buffer of Messages)

VSBSpyMessage structures

Start Time of Collection

struct icsspyMsgTime

this is a comparison value between the system time stamp and the neoVI time stamp.

Version 0x102

This format is created by the extractor. Click to see Network ID's

Description
Length in Bytes
Notes

Length of EDP Section

4

int value indicating the length of the next section (the EDP). A zero indicates no EDP section file is present.

variable (see above)

used to save the extra data bytes for networks such as Ethernet, Flexray, and CANFD

Buffer of Messages

variable (see Size of Buffer of Messages)

VSBSpyMessage structures

Start Time of Collection

struct icsspyMsgTime

this is a comparison value between the system time stamp and the neoVI time stamp.

Version 0x103

This format is created using VSpy. Click to see Network ID's

Description
Length in Bytes
Notes

Length of EDP Section

4

int value indicating the length of the next section (the EDP). A zero indicates no EDP section is present.

variable (see above)

used to save the extra data bytes for networks such as Ethernet, Flexray, and CANFD

Length of text comment

4

int indicating the length of the text header comment of the saved file. SINCE THE COMMENT IS UNICODE THEREFORE HIS IS THE LENGTH IN CHARACTERS - NOT BYTES.

Text comment

2 bytes per character (see above for number of characters)

Unicode text comment.

Size of Buffer of Messages

4

sizeof(VSBSpyMessage) multiplied by Number of messages saved to the file

Current Buffer Pointer

4

int value which is the pointer to the most recent buffer item +1. (only needed if Number of All time messages > Original buffer size)

Original Buffer Size

4

int value which is the size of the buffer memory originally allocated by this buffer

Number of All time messages

4

this indicates how many messages were received by this buffer (this number will indicate overflows)

Buffer of Messages

variable (see Size of Buffer of Messages)

VSBSpyMessage structures

Start Time of Collection

struct icsspyMsgTime

this is a comparison value between the system time stamp and the neoVI time stamp.

EDP section

Used by version 0x102 and 0x103. The ExtraDataPtr -1 of each message is a index to the EDP in EDP section. Click to see Network ID's

Version 0x104

This format is created by the Loggers and VSpy Stream to Disk.

Description
Length in Bytes
Notes

Buffer of Messages

VSBSpyMessage structures

VSBSpyMessage structures

EDP

variable (see previous message's ExtraDataPtr)

used to save the extra data bytes for networks such as Ethernet, Flexray, and CANFD

......

variable

Buffer of Message and EDP continue to repeat until Start Time of Collection. If you are reading the VSB file, simple continue to read until Buffer of Message size read not equal sizeof(VSBSpyMessage)

Start Time of Collection

struct icsspyMsgTime

this is a comparison value between the system time stamp and the neoVI time stamp.

NetWork ID

version 0x101

Description
Value

HSCAN

0

MSCAN

1

SWCAN

2

LSFTCAN

5

DEVICE

8

HSCAN2

9

HSCAN3

10

LIN2

11

LIN3

12

LIN4

13

version 0x102 , 0x103, 0x104

Description
Value

DEVICE

0

HSCAN

1

MSCAN

2

SWCAN

3

LSFTCAN

4

J1708

6

JVPW

8

ISO

9

ISO2

14

LIN

16

ISO3

41

HSCAN2

42

HSCAN3

44

ISO4

47

LIN2

48

LIN3

49

LIN4

50

LIN5

84

MOST

51

CGI

53

HSCAN4

61

HSCAN5

62

SWCAN2

68

ETHERNET_DAQ

69

FLEXRAY1A

80

FLEXRAY1B

81

FLEXRAY2A

82

FLEXRAY2B

83

FLEXRAY

85

MOST25

90

MOST50

91

ETHERNET

93

GMFSA

94

TCP

95

HSCAN6

96

HSCAN7

97

LIN6

98

LSFTCAN2

99

OP_ETHERNET1

17

OP_ETHERNET2

18

OP_ETHERNET3

19

OP_ETHERNET4

45

OP_ETHERNET5

46

OP_ETHERNET6

73

OP_ETHERNET7

75

OP_ETHERNET8

76

OP_ETHERNET9

77

OP_ETHERNET10

78

OP_ETHERNET11

79

OP_ETHERNET12

87

Example

Below is a C++ example of how to open a .vsb file (v102 & v103 & 104) and display the network messages (Ethernet, CANFD, and CAN) with some other useful information You can view the full C++ code or Download the full project from the links provided.

Reading File Specification

Reading EDP Section

Reading 0x103 File Info

Reading 0x102 and 0x103 Messages

Reading 0x104