Merge "Adding a new function for priority list insertion" into tizen
authorKibak Yoon <kibak.yoon@samsung.com>
Sat, 10 Jan 2015 03:03:57 +0000 (19:03 -0800)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Sat, 10 Jan 2015 03:03:57 +0000 (19:03 -0800)
51 files changed:
CMakeLists.txt
packaging/sensord.spec
src/sensor_fusion/CMakeLists.txt
src/sensor_fusion/orientation_filter.cpp
src/sensor_fusion/orientation_filter.h
src/sensor_fusion/test/gravity_sensor.cpp [moved from src/sensor_fusion/standalone/gravity_sensor.cpp with 100% similarity]
src/sensor_fusion/test/gravity_sensor.h [moved from src/sensor_fusion/standalone/gravity_sensor.h with 100% similarity]
src/sensor_fusion/test/linear_acceleration_sensor.cpp [moved from src/sensor_fusion/standalone/linear_acceleration_sensor.cpp with 100% similarity]
src/sensor_fusion/test/linear_acceleration_sensor.h [moved from src/sensor_fusion/standalone/linear_acceleration_sensor.h with 100% similarity]
src/sensor_fusion/test/orientation_sensor.cpp [moved from src/sensor_fusion/standalone/orientation_sensor.cpp with 86% similarity]
src/sensor_fusion/test/orientation_sensor.h [moved from src/sensor_fusion/standalone/orientation_sensor.h with 87% similarity]
src/sensor_fusion/test/test_projects/euler_angles_test/.cproject [moved from src/sensor_fusion/standalone/test/euler_angles_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/euler_angles_test/.project [moved from src/sensor_fusion/standalone/test/euler_angles_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/euler_angles_test/euler_angles_main.cpp [moved from src/sensor_fusion/standalone/test/euler_angles_test/euler_angles_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/gravity_sensor_test/.cproject [moved from src/sensor_fusion/standalone/test/gravity_sensor_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/gravity_sensor_test/.project [moved from src/sensor_fusion/standalone/test/gravity_sensor_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/gravity_sensor_test/gravity_sensor_main.cpp [moved from src/sensor_fusion/standalone/test/gravity_sensor_test/gravity_sensor_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/linear_acceleration_sensor_test/.cproject [moved from src/sensor_fusion/standalone/test/linear_acceleration_sensor_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/linear_acceleration_sensor_test/.project [moved from src/sensor_fusion/standalone/test/linear_acceleration_sensor_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/linear_acceleration_sensor_test/linear_acceleration_sensor_main.cpp [moved from src/sensor_fusion/standalone/test/linear_acceleration_sensor_test/linear_acceleration_sensor_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/matrix_test/.cproject [moved from src/sensor_fusion/standalone/test/matrix_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/matrix_test/.project [moved from src/sensor_fusion/standalone/test/matrix_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/matrix_test/matrix_main.cpp [moved from src/sensor_fusion/standalone/test/matrix_test/matrix_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/orientation_filter_test/.cproject [moved from src/sensor_fusion/standalone/test/orientation_filter_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/orientation_filter_test/.project [moved from src/sensor_fusion/standalone/test/orientation_filter_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/orientation_filter_test/orientation_filter_main.cpp [moved from src/sensor_fusion/standalone/test/orientation_filter_test/orientation_filter_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/orientation_sensor_test/.cproject [moved from src/sensor_fusion/standalone/test/orientation_sensor_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/orientation_sensor_test/.project [moved from src/sensor_fusion/standalone/test/orientation_sensor_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/orientation_sensor_test/orientation_sensor_main.cpp [moved from src/sensor_fusion/standalone/test/orientation_sensor_test/orientation_sensor_main.cpp with 84% similarity]
src/sensor_fusion/test/test_projects/quaternion_test/.cproject [moved from src/sensor_fusion/standalone/test/quaternion_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/quaternion_test/.project [moved from src/sensor_fusion/standalone/test/quaternion_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/quaternion_test/quaternion_main.cpp [moved from src/sensor_fusion/standalone/test/quaternion_test/quaternion_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/rotation_matrix_test/.cproject [moved from src/sensor_fusion/standalone/test/rotation_matrix_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/rotation_matrix_test/.project [moved from src/sensor_fusion/standalone/test/rotation_matrix_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/rotation_matrix_test/rotation_matrix_main.cpp [moved from src/sensor_fusion/standalone/test/rotation_matrix_test/rotation_matrix_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/sensor_data_test/.cproject [moved from src/sensor_fusion/standalone/test/sensor_data_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/sensor_data_test/.project [moved from src/sensor_fusion/standalone/test/sensor_data_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/sensor_data_test/sensor_data_main.cpp [moved from src/sensor_fusion/standalone/test/sensor_data_test/sensor_data_main.cpp with 100% similarity]
src/sensor_fusion/test/test_projects/vector_test/.cproject [moved from src/sensor_fusion/standalone/test/vector_test/.cproject with 100% similarity]
src/sensor_fusion/test/test_projects/vector_test/.project [moved from src/sensor_fusion/standalone/test/vector_test/.project with 100% similarity]
src/sensor_fusion/test/test_projects/vector_test/vector_main.cpp [moved from src/sensor_fusion/standalone/test/vector_test/vector_main.cpp with 100% similarity]
test/src/accelerometer.c
test/src/gravity.c
test/src/gyro.c
test/src/light.c
test/src/linear_acceleration.c
test/src/orientation.c
test/src/pressure.c
test/src/proxi.c
test/src/temperature.c
virtual_sensors.xml [moved from virtual_sensors.xml.in with 100% similarity]

index eb4beee..affaa30 100755 (executable)
@@ -22,30 +22,12 @@ add_definitions(-DLIBDIR="${CMAKE_INSTALL_LIBDIR}")
 # Internal Debugging Options
 #add_definitions(-Wall -g -D_DEBUG)
 
-# For Emulator
-FIND_PROGRAM(UNAME NAMES uname)
-EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
-IF("${ARCH}" MATCHES "^arm.*")
-        ADD_DEFINITIONS("-DTARGET")
-        MESSAGE("add -DTARGET")
-ELSE("${ARCH}" MATCHES "^arm.*")
-        ADD_DEFINITIONS("-DSIMULATOR")
-        MESSAGE("add -DSIMULATOR")
-ENDIF("${ARCH}" MATCHES "^arm.*")
-
 # Installing files
 CONFIGURE_FILE(sensor_plugins.xml.in sensor_plugins.xml @ONLY)
 CONFIGURE_FILE(sensors.xml.in sensors.xml @ONLY)
-CONFIGURE_FILE(virtual_sensors.xml.in virtual_sensors.xml @ONLY)
 
 INSTALL(FILES sensor_plugins.xml sensors.xml DESTINATION etc)
 INSTALL(FILES virtual_sensors.xml virtual_sensors.xml DESTINATION etc)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.APLv2 DESTINATION share/license RENAME sensord)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.APLv2 DESTINATION share/license RENAME libsensord)
-
-IF("${TEST_SUITE}" STREQUAL "ON")
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.APLv2 DESTINATION share/license RENAME test)
-ENDIF()
 
 # Sub-directory
 add_subdirectory(systemd)
index 4289d7b..c097f02 100755 (executable)
@@ -113,7 +113,6 @@ systemctl daemon-reload
 %{_unitdir}/multi-user.target.wants/sensord.service
 %{_unitdir}/sockets.target.wants/sensord.socket
 %license LICENSE.APLv2
-%{_datadir}/license/sensord
 
 %files -n libsensord
 %defattr(-,root,root,-)
@@ -123,7 +122,6 @@ systemctl daemon-reload
 %{_libdir}/libsensord-share.so
 %{_libdir}/libsensord-server.so
 %license LICENSE.APLv2
-%{_datadir}/license/libsensord
 
 %files -n libsensord-devel
 %defattr(-,root,root,-)
@@ -149,6 +147,5 @@ systemctl daemon-reload
 %{_bindir}/light
 %{_bindir}/rotation_vector
 %license LICENSE.APLv2
-%{_datadir}/license/test
 %endif
 
index 2505fe5..c38f410 100755 (executable)
@@ -16,16 +16,6 @@ set(PROJECT_MINOR_VERSION "0")
 set(PROJECT_RELEASE_VERSION "1")
 set(CMAKE_VERBOSE_MAKEFILE OFF)
 
-FIND_PROGRAM(UNAME NAMES uname)
-EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
-IF("${ARCH}" MATCHES "^arm.*")
-       ADD_DEFINITIONS("-DTARGET -DHWREV_CHECK")
-       MESSAGE("add -DTARGET -DHWREV_CHECK")
-ELSE("${ARCH}" MATCHES "^arm.*")
-       ADD_DEFINITIONS("-DSIMULATOR")
-       MESSAGE("add -DSIMULATOR")
-ENDIF("${ARCH}" MATCHES "^arm.*")
-
 add_definitions(-Wall -O3 -omit-frame-pointer)
 #add_definitions(-Wall -g -D_DEBUG)
 add_definitions(-DUSE_DLOG_LOG)
index 5e0a354..c08325e 100644 (file)
@@ -119,6 +119,17 @@ inline void orientation_filter<TYPE>::initialize_sensor_data(const sensor_data<T
 }
 
 template <typename TYPE>
+inline void orientation_filter<TYPE>::initialize_sensor_data(const sensor_data<TYPE> accel,
+               const sensor_data<TYPE> magnetic)
+{
+       m_accel.m_data = accel.m_data;
+       m_magnetic.m_data = magnetic.m_data;
+
+       m_accel.m_time_stamp = accel.m_time_stamp;
+       m_magnetic.m_time_stamp = magnetic.m_time_stamp;
+}
+
+template <typename TYPE>
 inline void orientation_filter<TYPE>::orientation_triad_algorithm()
 {
        TYPE arr_acc_e[V1x3S] = {0.0, 0.0, 1.0};
@@ -223,7 +234,7 @@ inline void orientation_filter<TYPE>::time_update()
 
        quat_output = phase_correction(m_quat_driv, m_quat_aid);
 
-       m_quaternion = quat_output;
+       m_quat_9axis = quat_output;
 
        orientation = quat2euler(quat_output);
 
@@ -320,13 +331,26 @@ rotation_matrix<TYPE> orientation_filter<TYPE>::get_rotation_matrix(const sensor
 }
 
 template <typename TYPE>
-quaternion<TYPE> orientation_filter<TYPE>::get_quaternion(const sensor_data<TYPE> accel,
+quaternion<TYPE> orientation_filter<TYPE>::get_9axis_quaternion(const sensor_data<TYPE> accel,
                const sensor_data<TYPE> gyro, const sensor_data<TYPE> magnetic)
 {
 
        get_orientation(accel, gyro, magnetic);
 
-       return m_quaternion;
+       return m_quat_9axis;
 }
 
+template <typename TYPE>
+quaternion<TYPE> orientation_filter<TYPE>::get_geomagnetic_quaternion(const sensor_data<TYPE> accel,
+               const sensor_data<TYPE> magnetic)
+{
+       initialize_sensor_data(accel, magnetic);
+
+       normalize(m_accel);
+       normalize(m_magnetic);
+
+       orientation_triad_algorithm();
+
+       return m_quat_aid;
+}
 #endif  //_ORIENTATION_FILTER_H_
index 40e2c50..09f5b90 100644 (file)
@@ -52,7 +52,7 @@ public:
        quaternion<TYPE> m_quat_driv;
        rotation_matrix<TYPE> m_rot_matrix;
        euler_angles<TYPE> m_orientation;
-       quaternion<TYPE> m_quaternion;
+       quaternion<TYPE> m_quat_9axis;
        TYPE m_gyro_dt;
 
        int m_pitch_phase_compensation;
@@ -65,6 +65,8 @@ public:
 
        inline void initialize_sensor_data(const sensor_data<TYPE> accel,
                        const sensor_data<TYPE> gyro, const sensor_data<TYPE> magnetic);
+       inline void initialize_sensor_data(const sensor_data<TYPE> accel,
+                       const sensor_data<TYPE> magnetic);
        inline void orientation_triad_algorithm();
        inline void compute_covariance();
        inline void time_update();
@@ -74,8 +76,10 @@ public:
                        const sensor_data<TYPE> gyro, const sensor_data<TYPE> magnetic);
        rotation_matrix<TYPE> get_rotation_matrix(const sensor_data<TYPE> accel,
                        const sensor_data<TYPE> gyro, const sensor_data<TYPE> magnetic);
-       quaternion<TYPE> get_quaternion(const sensor_data<TYPE> accel,
+       quaternion<TYPE> get_9axis_quaternion(const sensor_data<TYPE> accel,
                        const sensor_data<TYPE> gyro, const sensor_data<TYPE> magnetic);
+       quaternion<TYPE> get_geomagnetic_quaternion(const sensor_data<TYPE> accel,
+                       const sensor_data<TYPE> magnetic);
 };
 
 #include "orientation_filter.cpp"
@@ -78,7 +78,7 @@ rotation_matrix<float> orientation_sensor::get_rotation_matrix(sensor_data<float
        return orien_filter.get_rotation_matrix(accel_data, gyro_data, magnetic_data);
 }
 
-quaternion<float> orientation_sensor::get_quaternion(sensor_data<float> accel_data,
+quaternion<float> orientation_sensor::get_9axis_quaternion(sensor_data<float> accel_data,
                sensor_data<float> gyro_data, sensor_data<float> magnetic_data)
 {
        pre_process_data(accel_data, accel_data, bias_accel, sign_accel, scale_accel);
@@ -92,7 +92,17 @@ quaternion<float> orientation_sensor::get_quaternion(sensor_data<float> accel_da
        orien_filter.m_azimuth_phase_compensation = azimuth_phase_compensation;
        orien_filter.m_magnetic_alignment_factor = magnetic_alignment_factor;
 
-       return orien_filter.get_quaternion(accel_data, gyro_data, magnetic_data);
+       return orien_filter.get_9axis_quaternion(accel_data, gyro_data, magnetic_data);
 }
 
+quaternion<float> orientation_sensor::get_geomagnetic_quaternion(sensor_data<float> accel_data,
+               sensor_data<float> magnetic_data)
+{
+       pre_process_data(accel_data, accel_data, bias_accel, sign_accel, scale_accel);
+       normalize(accel_data);
+       pre_process_data(magnetic_data, magnetic_data, bias_magnetic, sign_magnetic, scale_magnetic);
+       normalize(magnetic_data);
+
+       return orien_filter.get_geomagnetic_quaternion(accel_data, magnetic_data);
+}
 #endif
@@ -31,8 +31,10 @@ public:
                        sensor_data<float> gyro, sensor_data<float> magnetic);
        rotation_matrix<float> get_rotation_matrix(sensor_data<float> accel,
                        sensor_data<float> gyro, sensor_data<float> magnetic);
-       quaternion<float> get_quaternion(sensor_data<float> accel,
+       quaternion<float> get_9axis_quaternion(sensor_data<float> accel,
                        sensor_data<float> gyro, sensor_data<float> magnetic);
+       quaternion<float> get_geomagnetic_quaternion(sensor_data<float> accel,
+                       sensor_data<float> magnetic);
 };
 
 #include "orientation_sensor.cpp"
@@ -37,8 +37,9 @@ int main()
        unsigned long long time_stamp;
        euler_angles<float> orientation;
        rotation_matrix<float> orientation_mat;
-       quaternion<float> orientation_quat;
-       orientation_sensor orien_sensor1, orien_sensor2, orien_sensor3;
+       quaternion<float> orientation_9axis_quat;
+       quaternion<float> orientation_geomagnetic_quat;
+       orientation_sensor orien_sensor1, orien_sensor2, orien_sensor3, orien_sensor4;
 
        accel_in.open(((string)ORIENTATION_DATA_PATH + (string)"accel.txt").c_str());
        gyro_in.open(((string)ORIENTATION_DATA_PATH + (string)"gyro.txt").c_str());
@@ -87,9 +88,13 @@ int main()
 
                cout << "Orientation matrix\t" << orientation_mat.m_rot_mat << "\n\n";
 
-               orientation_quat = orien_sensor3.get_quaternion(accel_data, gyro_data, magnetic_data);
+               orientation_9axis_quat = orien_sensor3.get_9axis_quaternion(accel_data, gyro_data, magnetic_data);
 
-               cout << "Orientation quaternion\t" << orientation_quat.m_quat << "\n\n";
+               cout << "Orientation 9-axis quaternion\t" << orientation_9axis_quat.m_quat << "\n\n";
+
+               orientation_geomagnetic_quat = orien_sensor4.get_geomagnetic_quaternion(accel_data, magnetic_data);
+
+               cout << "Orientation geomagnetic quaternion\t" << orientation_geomagnetic_quat.m_quat << "\n\n";
        }
 
        accel_in.close();
index fe61f37..cef4971 100644 (file)
@@ -73,6 +73,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't start accelerometer SENSOR\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
 
@@ -89,6 +90,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't disconnect Accelerometer sensor\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
        }
@@ -112,6 +114,7 @@ int main(int argc,char **argv)
                        printf("Error\n\n\n\n");
                        sf_unregister_event(handle, event);
                        sf_disconnect(handle);
+                       free(event_condition);
                        return -1;
                }
 
@@ -125,6 +128,7 @@ int main(int argc,char **argv)
                if (stop_handle < 0) {
                        printf("Error\n\n");
                        return -1;
+                       free(event_condition);
                }
 
                sf_disconnect(handle);
index a055013..d3cba2d 100755 (executable)
@@ -86,6 +86,7 @@ int main(int argc,char **argv)
                printf("Error\n\n\n\n");
                sf_unregister_event(handle, event);
                sf_disconnect(handle);
+               free(event_condition);
                return -1;
        }
 
@@ -97,6 +98,7 @@ int main(int argc,char **argv)
 
        if (stop_handle < 0) {
                printf("Error\n\n");
+               free(event_condition);
                return -1;
        }
 
index 915971b..a3332f7 100644 (file)
@@ -75,6 +75,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't start gyroscope SENSOR\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
 
@@ -91,6 +92,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't disconnect gyroscope sensor\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
        }
@@ -114,6 +116,7 @@ int main(int argc,char **argv)
                        printf("Error\n\n\n\n");
                        sf_unregister_event(handle, event);
                        sf_disconnect(handle);
+                       free(event_condition);
                        return -1;
                }
 
@@ -126,6 +129,7 @@ int main(int argc,char **argv)
 
                if (stop_handle < 0) {
                        printf("Error\n\n");
+                       free(event_condition);
                        return -1;
                }
 
index e2b6e69..ba99732 100644 (file)
@@ -75,6 +75,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't start light SENSOR\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
 
@@ -90,6 +91,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't disconnect light sensor\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
        }
@@ -113,6 +115,7 @@ int main(int argc,char **argv)
                        printf("Error\n\n\n\n");
                        sf_unregister_event(handle, event);
                        sf_disconnect(handle);
+                       free(event_condition);
                        return -1;
                }
 
@@ -125,6 +128,7 @@ int main(int argc,char **argv)
 
                if (stop_handle < 0) {
                        printf("Error\n\n");
+                       free(event_condition);
                        return -1;
                }
 
index e45f4cc..f992a68 100755 (executable)
@@ -86,6 +86,7 @@ int main(int argc,char **argv)
                printf("Error\n\n\n\n");
                sf_unregister_event(handle, event);
                sf_disconnect(handle);
+               free(event_condition);
                return -1;
        }
 
@@ -98,6 +99,7 @@ int main(int argc,char **argv)
 
        if (stop_handle < 0) {
                printf("Error\n\n");
+               free(event_condition);
                return -1;
        }
 
index 1886ad1..57bc82b 100755 (executable)
@@ -86,6 +86,7 @@ int main(int argc,char **argv)
                printf("Error\n\n\n\n");
                sf_unregister_event(handle, event);
                sf_disconnect(handle);
+               free(event_condition);
                return -1;
        }
 
@@ -97,6 +98,7 @@ int main(int argc,char **argv)
 
        if (stop_handle < 0) {
                printf("Error\n\n");
+               free(event_condition);
                return -1;
        }
        sf_disconnect(handle);
index 12f5734..7621160 100644 (file)
@@ -75,6 +75,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't start pressure SENSOR\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
 
@@ -91,6 +92,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't disconnect pressure sensor\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
        }
@@ -114,6 +116,7 @@ int main(int argc,char **argv)
                        printf("Error\n\n\n\n");
                        sf_unregister_event(handle, event);
                        sf_disconnect(handle);
+                       free(event_condition);
                        return -1;
                }
 
@@ -126,6 +129,7 @@ int main(int argc,char **argv)
 
                if (stop_handle < 0) {
                        printf("Error\n\n");
+                       free(event_condition);
                        return -1;
                }
 
index 4d3092d..23da057 100644 (file)
@@ -90,6 +90,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't start proximity SENSOR\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
 
@@ -106,6 +107,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't disconnect proximity sensor\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
        }
@@ -144,6 +146,7 @@ int main(int argc,char **argv)
                        printf("Error\n\n\n\n");
                        sf_unregister_event(handle, event);
                        sf_disconnect(handle);
+                       free(event_condition);
                        return -1;
                }
 
@@ -156,6 +159,7 @@ int main(int argc,char **argv)
 
                if (stop_handle < 0) {
                        printf("Error\n\n");
+                       free(event_condition);
                        return -1;
                }
 
index 3f852c8..01e6e81 100644 (file)
@@ -74,6 +74,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't start temperature SENSOR\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
 
@@ -90,6 +91,7 @@ int main(int argc,char **argv)
                if (result < 0) {
                        printf("Can't disconnect temperature sensor\n");
                        printf("Error\n\n\n\n");
+                       free(event_condition);
                        return -1;
                }
        }
@@ -113,6 +115,7 @@ int main(int argc,char **argv)
                        printf("Error\n\n\n\n");
                        sf_unregister_event(handle, event);
                        sf_disconnect(handle);
+                       free(event_condition);
                        return -1;
                }
 
@@ -125,6 +128,7 @@ int main(int argc,char **argv)
 
                if (stop_handle < 0) {
                        printf("Error\n\n");
+                       free(event_condition);
                        return -1;
                }
 
similarity index 100%
rename from virtual_sensors.xml.in
rename to virtual_sensors.xml