X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fsensor.h;h=4009e5ade58b06a58ca175416d0fd0239b0f3622;hb=7ca215713fa73c84ba0b46c9e7299386bd5cf5b8;hp=e51ab0c5579e7abd0fc2424cb5463044a69c038d;hpb=72077d49c8dcf079d52a266717a8bda9db9db0ab;p=matches%2FMCTX3420.git diff --git a/server/sensor.h b/server/sensor.h index e51ab0c..4009e5a 100644 --- a/server/sensor.h +++ b/server/sensor.h @@ -5,20 +5,17 @@ */ - #ifndef _SENSOR_H #define _SENSOR_H -#include "common.h" - /** Number of data points to keep in sensor buffers **/ #define SENSOR_DATABUFSIZ 10 +#define SENSOR_QUERYBUFSIZ 10 + /** Number of sensors **/ #define NUMSENSORS 1 -#define FILENAMESIZE 10 - /** Structure to represent data recorded by a sensor at an instant in time **/ typedef struct { @@ -32,15 +29,15 @@ typedef struct typedef struct { /** ID number of the sensor **/ - enum {SENSOR_TEST0=0, SENSOR_TEST1=1} id; + enum {SENSOR_TEST0=0, SENSOR_TEST1=1, SENSOR_NONE} 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 **/ - char filename[FILENAMESIZE]; + /** Binary file to write data into when buffer is full **/ + FILE * file; /** Thread running the sensor **/ pthread_t thread; /** Mutex to protect access to stuff **/ @@ -55,6 +52,10 @@ 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 int Sensor_Query(Sensor * s, DataPoint * buffer, int bufsiz); // fill buffer with sensor data + +extern void Sensor_Handler(FCGIContext *context, char * params); + #endif //_SENSOR_H