UWAR files (University of Washington - Activity Recognition) are a simple binary format that allows us to store data traces from multiple sources (streams) in a single format. File writing for a uwar file is typically handled by a single application with other sources forwarding their data along to this logger application.
The uwar file is composed of two main parts, a header, and a payload section which contains data packets. As illustrated in the figure on the right the header is always at the start of the file and contains:
- Meta data required for the uwar parser to understand the stream
- any additional meta data the stream wants to record (in its own format)
The header is then followed by the data section of the file which continues until the end of the file.
Inside the data section packets are written to the file in the order the uwar writer received them. The packets consist of blocks of formatted data from our sensor streams. These packets are structured like so:
- a start marker (which was assigned by the uwar file writer)
- some payload meta-data
- typically a time-stamp -- though not always strictly required
- the data payload itself
Some streams may only output relatively small packets while others may write large blocks of data (i.e. images or sensor data). The actual contents of the data packet aren't understood by the uwar logger. In order to get the data out of the file you have to have a parser which can take in your data packets and do whatever parsing you need to accomplish.
abstract.cs has a more detailed description of the packet format.