4 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #include <sensor_common.h>
21 #include <sensor_log.h>
22 #include "pedometer_sensor.h"
40 pedometer_sensor::pedometer_sensor()
45 , m_walk_down_steps(0)
51 set_permission(SENSOR_PERMISSION_BIO);
53 _I("pedometer_sensor is created : %#x", this);
56 pedometer_sensor::~pedometer_sensor()
60 bool pedometer_sensor::on_event(const sensor_data_t *data, int data_len, int remains)
62 if (data_len == sizeof(sensorhub_data_t))
65 accumulate((sensor_pedometer_data_t*)data);
69 void pedometer_sensor::accumulate(sensor_pedometer_data_t *data)
71 m_steps += data->values[IDX_STEPS];
72 m_walk_steps += data->values[IDX_WALK_STEPS];
73 m_run_steps += data->values[IDX_RUN_STEPS];
74 m_distance += data->values[IDX_DISTANCE];
75 m_calories += data->values[IDX_CALORIES];
77 m_walk_up_steps += data->values[IDX_WALK_UP];
78 m_walk_down_steps += data->values[IDX_WALK_DOWN];
79 m_run_up_steps += data->values[IDX_RUN_UP];
80 m_run_down_steps += data->values[IDX_RUN_DOWN];
82 data->values[IDX_STEPS] = m_steps;
83 data->values[IDX_WALK_STEPS] = m_walk_steps;
84 data->values[IDX_RUN_STEPS] = m_run_steps;
85 data->values[IDX_DISTANCE] = m_distance;
86 data->values[IDX_CALORIES] = m_calories;
88 data->values[IDX_WALK_UP] = m_walk_up_steps;
89 data->values[IDX_WALK_DOWN] = m_walk_down_steps;
90 data->values[IDX_RUN_UP] = m_run_up_steps;
91 data->values[IDX_RUN_DOWN] = m_run_down_steps;