*/
-
#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
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;
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 **/
+ /** Binary file to write data into when buffer is full **/
FILE * file;
/** Thread running the sensor **/
pthread_t thread;
} 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