git.ucc.asn.au
/
matches
/
MCTX3420.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get rid of OpenCV for now
[matches/MCTX3420.git]
/
server
/
sensor.h
diff --git
a/server/sensor.h
b/server/sensor.h
index
e51ab0c
..
36fdb27
100644
(file)
--- a/
server/sensor.h
+++ b/
server/sensor.h
@@
-1,46
+1,67
@@
-
/**
* @file sensor.h
/**
* @file sensor.h
- * @
purpose
Declarations for sensor thread related stuff
+ * @
brief
Declarations for sensor thread related stuff
*/
*/
-
-
#ifndef _SENSOR_H
#define _SENSOR_H
#ifndef _SENSOR_H
#define _SENSOR_H
-#include "common.h"
-
/** Number of data points to keep in sensor buffers **/
#define SENSOR_DATABUFSIZ 10
/** 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 **/
/** Number of sensors **/
-#define NUMSENSORS 1
+#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
+
-#define FILENAMESIZE 10
+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
{
/** Time at which data was taken **/
/** 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 **/
/** Value of data **/
-
float
value;
+
double
value;
} DataPoint;
/** Structure to represent a sensor **/
typedef struct
{
/** ID number of the sensor **/
} DataPoint;
/** Structure to represent a sensor **/
typedef struct
{
/** ID number of the sensor **/
-
enum {SENSOR_TEST0=0, SENSOR_TEST1=1}
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;
/** 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];
+ /** 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 **/
pthread_t thread;
/** Mutex to protect access to stuff **/
/** Thread running the sensor **/
pthread_t thread;
/** Mutex to protect access to stuff **/
@@
-49,12
+70,16
@@
typedef struct
} Sensor;
} 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 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
#endif //_SENSOR_H
UCC
git Repository :: git.ucc.asn.au