// Callback with accel data, when subscribed void worker_accel_data_handler(AccelData *data, uint32_t num_samples) { s_accel_ticks += num_samples; if ( !worker_logging_enabled ) return; #if LOG_RAW DataLoggingResult result = data_logging_log(datalog_ref,data,num_samples); #else static AccelData summaryData; summaryData.x = 0; summaryData.y = 0; summaryData.z = 0; summaryData.timestamp = data->timestamp; // time of first sample for ( int i = 0 ; i < (int)(num_samples-1); i++) { summaryData.x += abs(data[i+1].x - data[i].x); summaryData.y += abs(data[i+1].y - data[i].y); summaryData.z += abs(data[i+1].z - data[i].z); } summaryData.x /= num_samples; summaryData.y /= num_samples; summaryData.z /= num_samples; DataLoggingResult result = data_logging_log(datalog_ref, data, 1); APP_LOG(APP_LOG_LEVEL_INFO, "logging data"); #endif if ( result != DATA_LOGGING_SUCCESS ) { APP_LOG(APP_LOG_LEVEL_ERROR, "Error datalogging: %d", result); } }
static void data_handler(AccelData *data, uint32_t num_samples) { if (num_samples >= ACCEL_BATCH) { int64_t accel_xyz = sqrt__((data->x * data->x) + (data->y * data->y) + (data->z * data->z)) - 1000; APP_LOG(APP_LOG_LEVEL_INFO, "accel_xyz = %ld", (long)accel_xyz); if (accel_xyz >= ACCEL_XYZ_THRESHOLD) { DataLoggingResult result = data_logging_log(accel_data_log, data, 1); if (result == DATA_LOGGING_BUSY) { APP_LOG(APP_LOG_LEVEL_ERROR, "someone else is writing to this logging session"); } else if (result == DATA_LOGGING_FULL) { APP_LOG(APP_LOG_LEVEL_ERROR, "no more space to save data"); } else if (result == DATA_LOGGING_NOT_FOUND) { APP_LOG(APP_LOG_LEVEL_ERROR, "the logging session does not exist"); } else if (result == DATA_LOGGING_CLOSED) { APP_LOG(APP_LOG_LEVEL_ERROR, "The logging session was made inactive"); } else if (result == DATA_LOGGING_INVALID_PARAMS) { APP_LOG(APP_LOG_LEVEL_ERROR, "an invalid parameter was passed to one of the functions"); } } } }
void accel_data_handler(AccelData *data, uint32_t num_samples) { APP_LOG(APP_LOG_LEVEL_INFO, "Writing data"); DataLoggingResult r = data_logging_log(my_data_log, data, num_samples); if (r == DATA_LOGGING_SUCCESS) { printf("%d\n", r); } else { printf("Fail\n"); } }
DataLoggingResult accel_logging_send_data(AccelData *data, uint32_t num_samples) { s_accel_logging_data_sent += num_samples * sizeof(AccelData); DataLoggingResult res = data_logging_log(s_logging_session, data, num_samples); if (DATA_LOGGING_SUCCESS != res) { APP_LOG(APP_LOG_LEVEL_ERROR, "There was a problem logging accel data: %d", res); return res; } else return res; }