MatOff Data File Structure
MatOFF Data file structure
Index File (.index)
�
Size |
Cumulative (hex bytes) |
Data Type / Name | Information Stored | Measure |
4 |
0-3 |
int trial | trial number | |
4 |
1C-1F |
unsigned long | event starting file position | in bytes |
4 |
20-23 |
unsigned long | event length | in 8-byte records |
4 |
24-27 |
unsigned long | pulse starting file position | in bytes |
4 |
28-2B |
unsigned long | pulse length | in 8-byte records |
4 |
2C-2F |
unsigned long | analog starting file position | in bytes |
4 |
30-33 |
unsigned long | analog length | in 4-byte records |
28 (dec) |
1C (hex) |
Total bytes |
record length |
Final entry in Index File has trial=-1 and all other values=0.
Limits imposed by file structure:
Maximum number of trials (absolute trial number in entire file) | 2,147,483,647 |
Maximum file size (last record that can be addressed) | 2,147,483,647 |
Unit Definition File (.udef)
Size |
Cumulative (hex bytes) |
Data Type / Name |
Information Stored | Measure |
12 |
0-B |
char | unit name | in bytes |
unsigned short | pulse channel | in bytes | ||
87 |
D-63 |
char | trials for this unit | in bytes |
100 (dec) |
63 (hex) |
Total bytes |
record length |
Final entry in UDF File has unit name=’END_OF_FILE’, trial=255, trial list string=’0-0’.
List of trials is ASCII string. Example: ‘22-55,56-60,60-120,135-240’.
Limits imposed by file structure:
Longest unit name | 12 characters |
Highest pulse channel number | 254 |
Longest list of trials in unit | 87 bytes |
Event Data File (.event)
bytes |
0-3 |
4-7 |
Total record length |
Entry type |
Data type (4 bytes) |
Event time (4 bytes) |
8 bytes |
trial header |
-1 (header marker) |
trial number |
starts at trial #1 |
Data |
event code |
event time |
time units of .0001 sec |
Limits imposed by file structure:
Highest event code number | 2,147,483,647 |
Longest trial (time) | 214,748.3647 sec ~ 59.65 hours |
Maximum number of trials (absolute trial number in entire file) | 2,147,483,647 |
Pulse Data File (.pulse)
bytes |
0-3 |
4-7 |
Total record length |
Entry size |
4 byte |
4 bytes |
8 bytes |
trial header |
-1 (header marker) |
trial number |
starts at trial #1 |
data |
pulse channel |
pulse time |
time units of .0001 sec |
Limits imposed by file structure:
Number of different spike (pulse) channels | 2,147,483,647 |
Longest trial (time) | 214,748.3647 s ~ 59.65 hours |
Maximum number of trials (absolute trial number in entire file) | 2,147,483,647 |
Analog Data File (.analog)
bytes |
0-1 |
2-3 |
Total record length |
Entry size |
2 byte |
2 bytes |
4 bytes |
trial header |
-1 (header marker) |
trial number, |
|
data |
channel |
data value |
Limits imposed by file structure:
Number of different analog channels | 32,768 |
Analog value range | -32,768 to 32,767 |
Number of trials (absolute trial number in entire file) | 2,147,483,647 |
History Index File (.hindex)
Size |
Cumulative (hex bytes) |
Data Type / Name | Information Stored | Measure |
12 |
0-B |
char array | unit name | chars |
4 |
C-F |
unsigned long | history starting file position | in bytes |
4 |
10-14 |
unsigned long | history length | in bytes |
20 (dec) |
14 (hex) |
Total bytes |
record length |
Final entry in History Index File has:
Unit Name = ‘END_OF_FILE’ Starting file position = 0 Length = 0
Limits imposed by file structure:
Maximum number of trials | 2,147,483,647 |
Maximum file size (last record that can be addressed) | 2,147,483,647 |
History Data File (.history)
Entry type | Data type | Data size |
HEADER | ||
unit header | -1 (int16) | 2 bytes |
unit name | char array | 12 bytes |
DATA | repeated for each class | |
class | int16 | 2 bytes |
number of trials | int16 | 2 bytes |
list size | int16 | 2 bytes |
class trial list | char array | list size * char |
class values | int16 | number of trials * 2 bytes |
Final entry in History File has:
Header = -1 Unit Name = ‘END_OF_FILE’ Class = 0 number_of_trials = 0 list size = 0
no class trial list or class values.