IMCtermite/README.md
2020-02-06 16:24:20 +00:00

79 lines
3.2 KiB
Markdown

# raw_eater
The _raw_eater_ package is used to parse files with extension `*.raw`, which
are usually binary files produced by the labsoftware _Famos_ to dump measurement
time series.
## File Structure
The binary `*.raw` file features a series of markers that indicate the starting
point of various blocks of information. Every markers is introduced by character
"|" = `0x 7c` followed by two uppercase letters, which characterize the type of
marker. The following markers are defined:
1. CF (0x 43 46)
1. CK (0x 43 4b)
1. NO (0x 4e 4f)
1. CG (0x 43 47)
1. CD (0x 43 44)
1. NT (0x 4e 54)
1. CC (0x 43 43)
1. CP (0x 43 50)
1. CR (0x 43 52)
1. CN (0x 43 4e)
1. Cb (0x 43 62)
1. CS (0x 43 53)
Each of these markers are followed by multiple commata (0x 2c) separated parameters
and are terminated by a semicolon `;` = 0x 3b, except for the sequence following
the data marker CS, that may have any number of 0x3b occurencies, while still
terminated by a semicolon at the very end of the file (since CS is the last marker
section in the file). The markers have the following meaning:
- *CF* (mostly 4 parameters)
this marker is mostly just `|CF,2,1,1;` and hence I've got no fucking
idea what it actually means!
- *CK* (mostly 4 parameters)
same problem for this one: it always seems to be `|CK,1,3,1,1;` ...
- *NO* (mostly 6 parameters)
provides some info about the software package/device and its version that
produced the file, e.g. something like
`|NO,1,85,0,77,imc STUDIO 5.0 R3 (10.09.2015)@imc DEVICES 2.8R7 (26.8.2015)@imcDev__15190567,0,;`
- *CG* (mostly 5 parameters)
another one of these apparently useless markers, looks for instance like
`|CG,1,5,1,1,1;`
- *CD* (mostly 11 parameters)
since we're dealing with measured entities from the lab this markers contains
info about the measurement frequency, i.e. sample rate. For instance
`|CD,2, 63, 5.0000000000000001E-03,1,1,s,0,0,0, 0.0000000000000000E+00,1;`
indicates a measured entity every 0.005 seconds, i.e. a sample rate = 200Hz
- *NT* (mostly 8 parameters)
whatever ?!? for instance `|NT,1,16,1,1,1980,0,0,0.0;`
maybe it's the datatype ??
- *CC* (mostly 4 parameters)
`|CC,1,3,1,1;`
- *CP* (mostly 10 parameters)
`|CP,1,16,1,4,7,32,0,0,1,0;`
- *CR* (mostly 8 parameters)
provides the _physical unit_ of the measured entity, maybe shows the
minimum and maximum value during the measurment, e.g.
`|CR,1,60,0, 1.0000000000000000E+00, 0.0000000000000000E+00,1,4,mbar;`
- *CN* (mostly 9 parameters)
gives the _name_ of the measured entity
`|CN,1,27,0,0,0,15,pressure_Vacuum,0,;`
- *Cb* (mostly 14 paramters) (optional?)
this one probably gives the minimum/maximum measured values!!
`|Cb,1,117,1,0,1,1,0,341288,0,341288,1,0.0000000000000000E+00,1.1781711390000000E+09,;`
- *CS* (mostly 4 parameters)
this markers announces the actual measurement data in binary format,
provide the number of values and the actual data,
e.g. `|CS,1, 341299, 1, ...data... ;`
## Open Issues and question?
- which parameter indicate(s) little vs. big endian?