4 * Copyright (c) 2014 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 #ifndef _GEO_SENSOR_HAL_H_
21 #define _GEO_SENSOR_HAL_H_
23 #include <sensor_hal.h>
26 #define IIO_DIR "/sys/bus/iio/devices/"
27 #define X_RAW_VAL_NODE "/in_magn_x_raw"
28 #define Y_RAW_VAL_NODE "/in_magn_y_raw"
29 #define Z_RAW_VAL_NODE "/in_magn_z_raw"
30 #define X_SCALE_NODE "/in_magn_x_scale"
31 #define Y_SCALE_NODE "/in_magn_y_scale"
32 #define Z_SCALE_NODE "/in_magn_z_scale"
33 #define NAME_NODE "/name"
37 class geo_sensor_hal : public sensor_hal
41 virtual ~geo_sensor_hal();
42 string get_model_id(void);
43 sensor_type_t get_type(void);
46 bool set_interval(unsigned long val);
47 bool is_data_ready(bool wait);
48 virtual int get_sensor_data(sensor_data_t &data);
49 bool get_properties(sensor_properties_t &properties);
50 bool check_hw_node(void);
60 unsigned long m_polling_interval;
61 unsigned long long m_fired_time;
62 bool m_sensorhub_supported;
72 string m_x_scale_node;
73 string m_y_scale_node;
74 string m_z_scale_node;
78 bool enable_resource(string &resource_node, bool enable);
79 bool update_value(void);
80 bool is_sensorhub_supported(void);
81 bool init_resources(void);
83 #endif /*_GEO_SENSOR_HAL_H_*/