X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fsensor.c;h=3919a19a08051f2cc04a555e0f9d4b1402c5f4cd;hb=3521cee9644bd955fd053c5b4ea173efd1e78fe8;hp=53b3f038f79209fef9451bbb5b2b742db73c05e3;hpb=3dfde391486e81a357e08a24ccb7903c8adfa5aa;p=matches%2FMCTX3420.git diff --git a/server/sensor.c b/server/sensor.c index 53b3f03..3919a19 100644 --- a/server/sensor.c +++ b/server/sensor.c @@ -23,10 +23,8 @@ int g_num_sensors = 0; * @param user_id - User identifier * @param read - Function to call whenever the sensor should be read * @param init - Function to call to initialise the sensor (may be NULL) - * @param max_error - Maximum error threshold; program will exit if this is exceeded for the sensor reading - * @param min_error - Minimum error threshold; program will exit if the sensor reading falls below this value - * @param max_warn - Maximum warning threshold; program will log warnings if the value exceeds this threshold - * @param min_warn - Minimum warning threshold; program will log warnings if the value falls below this threshold + * @param cleanup - Function to call whenever to deinitialise the sensor (may be NULL) + * @param sanity - Function to call to check that the sensor value is sane (may be NULL) * @returns Number of actuators added so far */ int Sensor_Add(const char * name, int user_id, ReadFn read, InitFn init, CleanFn cleanup, SanityFn sanity) @@ -75,6 +73,8 @@ int Sensor_Add(const char * name, int user_id, ReadFn read, InitFn init, CleanFn #include "sensors/resource.h" #include "sensors/strain.h" #include "sensors/pressure.h" +#include "sensors/dilatometer.h" +#include "sensors/microphone.h" void Sensor_Init() { //Sensor_Add("cpu_stime", RESOURCE_CPU_SYS, Resource_Read, NULL, NULL, NULL); @@ -83,15 +83,20 @@ void Sensor_Init() Sensor_Add("pressure_high1", PRES_HIGH1, Pressure_Read, Pressure_Init, Pressure_Cleanup, NULL); Sensor_Add("pressure_low0", PRES_LOW0, Pressure_Read, Pressure_Init, Pressure_Cleanup, NULL); //Sensor_Add("../testing/count.py", 0, Piped_Read, Piped_Init, Piped_Cleanup, 1e50,-1e50,1e50,-1e50); - Sensor_Add("strain0", STRAIN0, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); - Sensor_Add("strain1", STRAIN1, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); - Sensor_Add("strain2", STRAIN2, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); - Sensor_Add("strain3", STRAIN3, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); + //Sensor_Add("strain0_endhoop", STRAIN0, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); + //Sensor_Add("strain1_endlong", STRAIN1, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); + //Sensor_Add("strain2_midhoop", STRAIN2, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); + //Sensor_Add("strain3_midlong", STRAIN3, Strain_Read, Strain_Init, Strain_Cleanup, Strain_Sanity); + + //Sensor_Add("microphone", 0, Microphone_Read, Microphone_Init, Microphone_Cleanup, Microphone_Sanity); //Sensor_Add("pressure0", PRESSURE0, Pressure_Read, Pressure_Init, 5000,0,5000,0); //Sensor_Add("pressure1", PRESSURE1, Pressure_Read, Pressure_Init, 5000,0,5000,0); //Sensor_Add("pressure_feedback", PRESSURE_FEEDBACK, Pressure_Read, Pressure_Init, 5000,0,5000,0); - //Sensor_Add("enclosure", ENCLOSURE, Enclosure_Read, Enclosure_Init, 1,1,1,1); - //Sensor_Add("dilatometer", DILATOMETER, Dilatometer_Read, Dilatometer_Init, -1,-1,-1,-1); + //Sensor_Add("enclosure", ENCLOSURE, Enclosure_Read, Enclosure_Init, 1,1,1,1); // Does not exist... + + //NOTE: DO NOT ENABLE DILATOMETER WITHOUT FURTHER TESTING; CAUSES SEGFAULTS + //Sensor_Add("dilatometer0", 0, Dilatometer_Read, Dilatometer_Init, Dilatometer_Cleanup, NULL); + //Sensor_Add("dilatometer1",1, Dilatometer_Read, Dilatometer_Init, Dilatometer_Cleanup, NULL); } /** @@ -270,7 +275,7 @@ Sensor * Sensor_Identify(const char * name) /** * Helper: Begin sensor response in a given format * @param context - the FCGIContext - * @param id - ID of sensor + * @param s - Sensor to begin the response for * @param format - Format */ void Sensor_BeginResponse(FCGIContext * context, Sensor * s, DataFormat format) @@ -293,7 +298,7 @@ void Sensor_BeginResponse(FCGIContext * context, Sensor * s, DataFormat format) /** * Helper: End sensor response in a given format * @param context - the FCGIContext - * @param id - ID of the sensor + * @param s - Sensor to end the response for * @param format - Format */ void Sensor_EndResponse(FCGIContext * context, Sensor * s, DataFormat format) @@ -417,6 +422,11 @@ const char * Sensor_GetName(int id) return g_sensors[id].name; } +/** + * Returns the last DataPoint that is currently available. + * @param id - The sensor ID for which to retrieve data from + * @return The last DataPoint + */ DataPoint Sensor_LastData(int id) { Sensor * s = &(g_sensors[id]);