X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=server%2Fsensor.h;h=ae17ce3153e232a1d66e1b53957a4dcd0f655636;hb=97d3625dcb84e6371d2464c93ae9bef8a3d4b466;hp=b9a5aaded02aea4d1903bfd3ab19d699c139415e;hpb=43c1519cb60f8fef09043b9af6f43d319db12e3d;p=matches%2FMCTX3420.git diff --git a/server/sensor.h b/server/sensor.h index b9a5aad..ae17ce3 100644 --- a/server/sensor.h +++ b/server/sensor.h @@ -9,9 +9,51 @@ #ifndef _SENSOR_H #define _SENSOR_H +#include "common.h" + +/** Number of data points to keep in sensor buffers **/ +#define SENSOR_DATABUFSIZ 10 + + +/** Number of sensors **/ +#define NUMSENSORS 1 + +/** Structure to represent data recorded by a sensor at an instant in time **/ +typedef struct +{ + /** Time at which data was taken **/ + float time; + /** Value of data **/ + float value; +} DataPoint; + +/** Structure to represent a sensor **/ +typedef struct +{ + /** ID number of the sensor **/ + enum {SENSOR_TEST0=0, SENSOR_TEST1=1} id; + /** Buffer to store data from the sensor **/ + DataPoint buffer[SENSOR_DATABUFSIZ]; + /** Index of last point written in the data buffer **/ + int write_index; + /** Offset position in binary file for query thread to read from**/ + int read_offset; + /** File to write data into when buffer is full **/ + FILE * file; + /** Thread running the sensor **/ + pthread_t thread; + /** Mutex to protect access to stuff **/ + pthread_mutex_t mutex; + + +} Sensor; + +/** Array of Sensors **/ +extern Sensor g_sensors[]; + +extern void Sensor_Init(Sensor * s, int id); // Initialise sensor +extern void * Sensor_Main(void * args); // main loop for sensor thread; pass a Sensor* cast to void* -extern void * Sensor_Main(void * args); // main loop for sensor thread - #endif //_SENSOR_H