X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=inline;f=server%2Fsensor.h;h=c6cfbe0d9858eddbd66e84edcae2988c0c98890d;hb=8aa358c02e86aee0486c1951ee3c5634cb7586a1;hp=ae17ce3153e232a1d66e1b53957a4dcd0f655636;hpb=97d3625dcb84e6371d2464c93ae9bef8a3d4b466;p=matches%2FMCTX3420.git diff --git a/server/sensor.h b/server/sensor.h index ae17ce3..c6cfbe0 100644 --- a/server/sensor.h +++ b/server/sensor.h @@ -1,44 +1,42 @@ - /** * @file sensor.h - * @purpose Declarations for sensor thread related stuff + * @brief Declarations for sensor thread related stuff */ - #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 NUMSENSORS 4 + /** Structure to represent data recorded by a sensor at an instant in time **/ typedef struct { /** Time at which data was taken **/ - float time; + double time_stamp; /** Value of data **/ - float value; + double value; } DataPoint; /** Structure to represent a sensor **/ typedef struct { /** ID number of the sensor **/ - enum {SENSOR_TEST0=0, SENSOR_TEST1=1} id; + enum {ANALOG_TEST0=2, ANALOG_TEST1=0, DIGITAL_TEST0=1, DIGITAL_TEST1=3} 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 **/ + /** Number of points read **/ + long points_read; + /** Binary file to write data into when buffer is full **/ FILE * file; /** Thread running the sensor **/ pthread_t thread; @@ -48,12 +46,17 @@ 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