/**
- * @file datapoint.h
- * @purpose Declaration of data handling functions; saving, loading, displaying, selecting.
+ * @file data.h
+ * @brief Declaration of data handling functions; saving, loading, displaying, selecting.
*/
#ifndef _DATAPOINT_H
*/
typedef struct
{
- FILE * read_file; // used for reading
- FILE * write_file; // used for writing
+ FILE * file; // file pointer
int num_points; // Number of DataPoints in the file
- const char * filename; // Name of the file
+ char * filename; // Name of the file
pthread_mutex_t mutex; // Mutex around num_points
} DataFile;
extern void Data_PrintByIndexes(DataFile * df, int start_index, int end_index, DataFormat format); // Print data buffer
extern void Data_PrintByTimes(DataFile * df, double start_time, double end_time, DataFormat format); // Print data between time values
extern int Data_FindByTime(DataFile * df, double time_stamp, DataPoint * closest); // Find index of DataPoint with the closest timestamp to that given
+extern double Data_Calibrate(double value, double x[], double y[], int size);
+
+extern void Data_Handler(DataFile * df, FCGIValue * start, FCGIValue * end, DataFormat format, double current_time); // Helper; given FCGI params print data
+extern DataFormat Data_GetFormat(FCGIValue * fmt); // Helper; convert human readable format string to DataFormat
+
+
+extern double Data_Callibrate(double value, double map[], int map_size);
#endif //_DATAPOINT_H