Talk:Technical Reference:State Definition: Difference between revisions
Appearance
m →State Vector: Finally correct, again. I made a mistake before. |
Fixed section on state vector encoding |
||
| Line 34: | Line 34: | ||
!6!!5!!4!!3!!2!!1!!0!!0!!14!!13!!12!!11!!10!!9!!8!!7!!colspan="7"| !!15 | !6!!5!!4!!3!!2!!1!!0!!0!!14!!13!!12!!11!!10!!9!!8!!7!!colspan="7"| !!15 | ||
|} | |} | ||
== Fixed section on state vector encoding == | |||
Thanks for pointing out the error. State vector encoding is actually little-endian (LSB first) rather than big-endian, and its layout on a little-endian machine is straightforward as a concatenation of little-endian encoded state values. I fixed the description accordingly. | |||
Revision as of 12:19, 4 January 2010
State Vector
The section on state vectors is totally wrong. After reverse-engineering some data files with the help of the BCI2000Viewer, it appears that the state vectors are actually encoded in reverse-big-endian. In other words, if smaller numbers represent lower order bits, then the state vector layout mentioned in this section would actually be encoded as follows:
| State Vector Byte 1 | State Vector Byte 2 | State Vector Byte 3 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| Running | SourceTime | unused | |||||||||||||||||||||
| 0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||||||
Which on the physical machine actually maps to:
| State Vector Byte 1 | State Vector Byte 2 | State Vector Byte 3 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SourceTime | Running | SourceTime | unused | SourceTime | |||||||||||||||||||
| 6 | 5 | 4 | 3 | 2 | 1 | 0 | 0 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 15 | |||||||
Fixed section on state vector encoding
Thanks for pointing out the error. State vector encoding is actually little-endian (LSB first) rather than big-endian, and its layout on a little-endian machine is straightforward as a concatenation of little-endian encoded state values. I fixed the description accordingly.