X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fsensor.h;h=36fdb2719e178e4256a051287a19383e01396be5;hb=41bb73186e41a5601407a4d39bfd8c6817c02d74;hp=c6cfbe0d9858eddbd66e84edcae2988c0c98890d;hpb=8aa358c02e86aee0486c1951ee3c5634cb7586a1;p=matches%2FMCTX3420.git diff --git a/server/sensor.h b/server/sensor.h index c6cfbe0..36fdb27 100644 --- a/server/sensor.h +++ b/server/sensor.h @@ -3,18 +3,40 @@ * @brief Declarations for sensor thread related stuff */ - #ifndef _SENSOR_H #define _SENSOR_H /** Number of data points to keep in sensor buffers **/ #define SENSOR_DATABUFSIZ 10 - +/** Size of the query buffer. @see Sensor_Handler **/ #define SENSOR_QUERYBUFSIZ 10 /** Number of sensors **/ #define NUMSENSORS 4 +/** Safety Values for sensors **/ +#define ANALOG_TEST0_SAFETY 1000 +#define ANALOG_TEST1_SAFETY 1000 +#define DIGITAL_TEST0_SAFETY 1 +#define DIGITAL_TEST1_SAFETY 1 + + +typedef enum SensorId { + ANALOG_TEST0, + ANALOG_TEST1, + DIGITAL_TEST0, + DIGITAL_TEST1 +} SensorId; + +typedef enum +{ + JSON, // JSON data + CSV, // Comma seperated vector + TSV // Tab seperated vector +} OutputType; + +/** Human readable names for the sensors **/ +extern const char * g_sensor_names[NUMSENSORS]; /** Structure to represent data recorded by a sensor at an instant in time **/ typedef struct @@ -29,13 +51,15 @@ typedef struct typedef struct { /** ID number of the sensor **/ - enum {ANALOG_TEST0=2, ANALOG_TEST1=0, DIGITAL_TEST0=1, DIGITAL_TEST1=3} id; + SensorId id; /** Buffer to store data from the sensor **/ DataPoint buffer[SENSOR_DATABUFSIZ]; /** Index of last point written in the data buffer **/ int write_index; /** Number of points read **/ long points_read; + /** Number of points written to file **/ + long points_written; /** Binary file to write data into when buffer is full **/ FILE * file; /** Thread running the sensor **/ @@ -57,6 +81,5 @@ extern int Sensor_Query(Sensor * s, DataPoint * buffer, int bufsiz); // fill buf extern void Sensor_Handler(FCGIContext *context, char * params); - #endif //_SENSOR_H