diff options
| -rw-r--r-- | motionMonitor/motionMonitor.c | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/motionMonitor/motionMonitor.c b/motionMonitor/motionMonitor.c index b7844ea..a4736e2 100644 --- a/motionMonitor/motionMonitor.c +++ b/motionMonitor/motionMonitor.c @@ -101,26 +101,30 @@ le_result_t brnkl_motion_getSuddenImpact(double* xAcc, size_t *xSize, if(!totalImpacts) LE_INFO("No Sudden Impacts to Report"); + else { + pthread_mutex_lock(&impactMutex); + //check - //check + if( + totalImpacts < *xSize || + totalImpacts < *ySize || + totalImpacts < *zSize + ) + return LE_OUT_OF_RANGE; - if( - totalImpacts < *xSize || - totalImpacts < *ySize || - totalImpacts < *zSize - ) - return LE_OUT_OF_RANGE; + for(int i = 0; i < totalImpacts; i++){ + xAcc[i] = xAccImpact[i]; + yAcc[i] = yAccImpact[i]; + zAcc[i] = zAccImpact[i]; + } + + *xSize = *ySize = *zSize = totalImpacts; - for(int i = 0; i < totalImpacts; i++){ - xAcc[i] = xAccImpact[i]; - yAcc[i] = yAccImpact[i]; - zAcc[i] = zAccImpact[i]; - } - - *xSize = *ySize = *zSize = totalImpacts; + totalImpacts = 0; - totalImpacts = 0; + pthread_mutex_unlock(&impactMutex); + } return LE_OK; } @@ -170,4 +174,4 @@ void initThread(){ COMPONENT_INIT { initThread(); -}
\ No newline at end of file +} |
