## Install
-If you have autoconf you can install as follows.
+If you have autoconf you can install like this:
```
autoreconf --install
./configure
make
-make check
make install
```
+You can also run the unit tests and build the
+[documentation](https://www.flypig.co.uk/docs/libcontrac/):
+```
+make check
+make doxygen
+```
+
## Usage
Include header files.
### Broadcasting and uploading keys
-Most of the functionality revolves around the opaque `Contrac` structure.
+Most of the functionality is managed through the opaque `Contrac` structure.
-Create and initialise the structure as follows. The day and interval number
-should be set appropriately.
+Create and initialise the structure as follows. The update call updates the
+Daily Tracing Key and Rolling Proximity Identifier based on the current time.
```
Contrac * contrac = contrac_new();
Get the Rolling Proximity Identifier for broadcast in Bluetooth beacons.
```
// Returns a buffer containing RPI_SIZE bytes of data
-const unsigned char * rpi = contrac_get_proximity_id(contrac);
+unsigned char const * rpi = contrac_get_proximity_id(contrac);
```
Get the Daily Tracing Key to upload to a Diagnosis Server in case of a positive
test result.
```
// Returns a buffer containing DTK_SIZE bytes of data
-const unsigned char * dtk = contrac_get_daily_key(contrac);
+unsigned char const * dtk = contrac_get_daily_key(contrac);
```
### Receiving and matching keys
rpi_list_add_beacon(rpis, captured_bytes, time_interval_number);
```
-Construct a list of DTKs from data downloaded from a Diagnosis Server.
+Construct a list of DTKs using data downloaded from a Diagnosis Server.
```
DtkList * dtks = dtk_list_new();
-// Add data downloaded from the server to the list
+// Add data downloaded from a Diagnosis Server to the list
dtk_list_add_diagnosis(dtks, dtk_bytes, day_number);
```
## Contact and Links
-More information can be found at: https://www.flypig.co.uk/contrac
+Library home page: https://www.flypig.co.uk/contrac
+
+API documentation: https://www.flypig.co.uk/docs/libcontrac/
-The source code can be obtained from git:
+Source code from git:
```
git clone git@www.flypig.org.uk:libcontrac
```