X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fsensor.h;h=a2590365ecf3f484bdef615c9e4ca505ed4a9a40;hb=2b1bc7ec5ad99de2040402d79fd83c69271a6dde;hp=e51ab0c5579e7abd0fc2424cb5463044a69c038d;hpb=259624013535f3c93315868efb5f6f611ba88470;p=matches%2FMCTX3420.git diff --git a/server/sensor.h b/server/sensor.h index e51ab0c..a259036 100644 --- a/server/sensor.h +++ b/server/sensor.h @@ -5,25 +5,22 @@ */ - #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 { /** Time at which data was taken **/ - float time; + struct timeval time_stamp; //TODO: Consider; use float instead? /** Value of data **/ float value; } DataPoint; @@ -39,8 +36,8 @@ typedef struct 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 **/ @@ -49,12 +46,16 @@ typedef struct } Sensor; -/** Array of Sensors **/ -extern Sensor g_sensors[]; -extern void Sensor_Init(Sensor * s, int id); // Initialise sensor + +extern void Sensor_Spawn(); // Initialise sensor +extern void Sensor_Join(); //Join sensor threads 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