project(sensor_framework_main CXX)
include(FindPkgConfig)
-pkg_check_modules(rpkgs REQUIRED sf_common vconf)
+pkg_check_modules(rpkgs REQUIRED sf_common vconf heynoti)
add_definitions(${rpkgs_CFLAGS})
# to install pkgconfig setup file.
+#sbs-git:slp/pkgs/s/sensor-framework sensor-framework 0.2.5 f585f766aa864c3857e93c776846771899a4fa41
Name: sensor-framework
Summary: Sensor framework
-Version: 0.2.5
+Version: 0.2.9
Release: 1
Group: TO_BE/FILLED_IN
License: LGPL
Source0: %{name}-%{version}.tar.gz
-Source1: sensor-framework.service
-Source1001: packaging/sensor-framework.manifest
Requires(post): /usr/bin/vconftool
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(sf_common)
BuildRequires: pkgconfig(vconf)
-
+BuildRequires: pkgconfig(heynoti)
%description
Sensor framework
%setup -q
%build
-cp %{SOURCE1001} .
cmake . -DCMAKE_INSTALL_PREFIX=/usr
make %{?jobs:-j%jobs}
%install
%make_install
-mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
-install -m 0644 %SOURCE1 %{buildroot}%{_libdir}/systemd/system/
-ln -s ../sensor-framework.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/sensor-framework.service
-
-# FIXME: remove initscripts after we start using systemd
-mkdir -p %{buildroot}%{_sysconfdir}/rc.d/rc3.d
-mkdir -p %{buildroot}%{_sysconfdir}/rc.d/rc4.d
-ln -s ../init.d/sfsvc %{buildroot}%{_sysconfdir}/rc.d/rc3.d/S40sfsvc
-ln -s ../init.d/sfsvc %{buildroot}%{_sysconfdir}/rc.d/rc4.d/S40sfsvc
-
-
%post
-vconftool set -t int memory/sensor/10001 0 -i
-vconftool set -t int memory/sensor/10002 0 -i
-vconftool set -t int memory/sensor/10004 0 -i
-vconftool set -t int memory/sensor/10008 0 -i
-vconftool set -t int memory/sensor/20001 0 -i
-vconftool set -t int memory/sensor/20002 0 -i
-vconftool set -t int memory/sensor/20004 0 -i
-vconftool set -t int memory/sensor/200001 0 -i
-vconftool set -t int memory/sensor/40001 0 -i
-vconftool set -t int memory/sensor/40002 0 -i
-vconftool set -t int memory/sensor/800001 0 -i
-vconftool set -t int memory/sensor/800002 0 -i
-vconftool set -t int memory/sensor/800004 0 -i
-vconftool set -t int memory/sensor/800008 0 -i
-vconftool set -t int memory/sensor/800010 0 -i
-vconftool set -t int memory/sensor/800020 0 -i
-vconftool set -t int memory/sensor/800040 0 -i
-vconftool set -t int memory/sensor/80001 0 -i
-vconftool set -t int memory/sensor/80002 0 -i
+vconftool set -t int memory/private/sensor/10001 0 -i
+vconftool set -t int memory/private/sensor/10002 0 -i
+vconftool set -t int memory/private/sensor/10004 0 -i
+vconftool set -t int memory/private/sensor/10008 0 -i
+vconftool set -t int memory/private/sensor/20001 0 -i
+vconftool set -t int memory/private/sensor/20002 0 -i
+vconftool set -t int memory/private/sensor/20004 0 -i
+vconftool set -t int memory/private/sensor/200001 0 -i
+vconftool set -t int memory/private/sensor/40001 0 -i
+vconftool set -t int memory/private/sensor/40002 0 -i
+vconftool set -t int memory/private/sensor/800001 0 -i
+vconftool set -t int memory/private/sensor/800002 0 -i
+vconftool set -t int memory/private/sensor/800004 0 -i
+vconftool set -t int memory/private/sensor/800008 0 -i
+vconftool set -t int memory/private/sensor/800010 0 -i
+vconftool set -t int memory/private/sensor/800020 0 -i
+vconftool set -t int memory/private/sensor/800040 0 -i
+vconftool set -t int memory/private/sensor/800080 0 -i
+vconftool set -t int memory/private/sensor/800100 0 -i
+vconftool set -t int memory/private/sensor/80001 0 -i
+vconftool set -t int memory/private/sensor/80002 0 -i
+vconftool set -t int memory/private/sensor/poweroff 0 -i
+
+mkdir -p /etc/rc.d/rc3.d
+mkdir -p /etc/rc.d/rc4.d
+ln -s /etc/rc.d/init.d/sfsvc /etc/rc.d/rc3.d/S40sfsvc
+ln -s /etc/rc.d/init.d/sfsvc /etc/rc.d/rc4.d/S40sfsvc
+%postun
+rm -f /etc/rc.d/rc3.d/S40sfsvc
+rm -f /etc/rc.d/rc4.d/S40sfsvc
%files
-%manifest sensor-framework.manifest
-%attr(0755,root,root) %{_sysconfdir}/rc.d/init.d/sfsvc
-%{_sysconfdir}/rc.d/rc3.d/S40sfsvc
-%{_sysconfdir}/rc.d/rc4.d/S40sfsvc
-%{_bindir}/sf_server
+%defattr(-,root,root,-)
+/usr/bin/sf_server
+%{_sysconfdir}/rc.d/init.d/sfsvc
%attr(0644,root,root)/usr/etc/sf_data_stream.conf
%attr(0644,root,root)/usr/etc/sf_filter.conf
%attr(0644,root,root)/usr/etc/sf_processor.conf
%attr(0644,root,root)/usr/etc/sf_sensor.conf
-%{_libdir}/systemd/system/sensor-framework.service
-%{_libdir}/systemd/system/multi-user.target.wants/sensor-framework.service
void sf_main_loop(void);
+ void sf_main_loop_stop(void);
private:
static void *cmd_byebye(void *cmd_item, void *data);
//! Get value
static void *cmd_get_value(void *cmd_item, void *data);
- //! Wait event
- static void *cmd_wait_event(void *cmd_item, void *data);
//! Start
static void *cmd_start(void *cmd_item, void *data);
//! Stop
static void *cmd_get_struct(void *cmd_item, void *data);
- static void *cb_event_handler(cprocessor_module *, void *);
- static void cb_rm_cb_data(void *);
-
-
cmd_func_t m_cmd_handler[CMD_LAST];
};
filter = next_filter;
}
- if (m_name) free(m_name);
+ if (m_name) {
+ free(m_name);
+ m_name = NULL;
+ }
}
#include <glib.h>
#include <vconf.h>
+#include <heynoti.h>
+
+#define POWEROFF_NOTI_NAME "power_off_start"
+#define SF_POWEROFF_VCONF "memory/private/sensor/poweroff"
+
+static GMainLoop *g_mainloop;
+static int g_poweroff_fd = -1;
+
+static void system_poweroff_cb(void *data)
+{
+ vconf_set_int(SF_POWEROFF_VCONF, 1);
+ heynoti_close(g_poweroff_fd);
+ g_poweroff_fd = -1;
+ DBG("system_poweroff_cb called");
+}
cserver::cserver()
{
m_cmd_handler[CMD_HELLO] = cmd_hello;
m_cmd_handler[CMD_BYEBYE] = cmd_byebye;
m_cmd_handler[CMD_GET_VALUE] = cmd_get_value;
- m_cmd_handler[CMD_WAIT_EVENT] = cmd_wait_event;
m_cmd_handler[CMD_START] = cmd_start;
m_cmd_handler[CMD_STOP] = cmd_stop;
m_cmd_handler[CMD_REG] = cmd_register_event;
-void *cserver::cmd_wait_event(void *cmd_item, void *data)
-{
- cmd_queue_item_t *queue_item = (cmd_queue_item_t*)cmd_item;
- csock::thread_arg_t *arg = queue_item->arg;
- client_ctx_t *ctx = (client_ctx_t*)arg->client_ctx;
- cpacket *packet = queue_item->packet;
- long return_value =0;
-
- if (arg->worker->state() != cipc_worker::START) {
- ERR("Client disconnected (%s)\n",__FUNCTION__);
- return (void*)NULL;
- }
-
- DBG("CMD_WAIT_EVENT Handler invoked\n");
-
- if ( !(ctx->module) ) {
- ERR("Error ctx->module ptr check(%s)", __FUNCTION__);
- goto out;
- }
-
- if (ctx->module->type() == cdata_stream::SF_DATA_STREAM) {
- cdata_stream *data_stream;
- data_stream = (cdata_stream*)ctx->module;
- data_stream->add_event_callback(cb_event_handler, arg, NULL);
- DBG("Add event callback for data stream\n");
- return (void*)NULL;
-
- } else if (ctx->module->type() == cprocessor_module::SF_PLUGIN_PROCESSOR) {
- cprocessor_module *processor;
- processor = (cprocessor_module*)ctx->module;
- processor->add_event_callback(cb_event_handler, arg, NULL);
- DBG("Add event callback for processor\n");
- return (void*)NULL;
-
- } else if (ctx->module->type() == cfilter_module::SF_PLUGIN_FILTER) {
- cfilter_module *filter;
- filter = (cfilter_module*)ctx->module;
- filter->is_data_ready(true);
- DBG("wait to ready for data in filter\n");
-
- } else if (ctx->module->type() == csensor_module::SF_PLUGIN_SENSOR) {
- csensor_module *sensor;
- sensor = (csensor_module*)ctx->module;
- sensor->is_data_ready(true);
- DBG("wait to ready for data in sensor\n");
-
- } else {
- return_value = -1; //! Unknown status
- ERR("Unsupported command for the attached module (%s)\n",__FUNCTION__);
- }
-
-out:
-
- csock ipc(arg->client_handle, csock::SOCK_TCP);
- cmd_done_t *payload;
- ipc.set_on_close(false);
-
- packet->set_cmd(CMD_DONE);
- packet->set_payload_size(sizeof(cmd_done_t));
- payload = (cmd_done_t*)packet->data();
- payload->value = return_value;
- if (ipc.send(packet->packet(), packet->size()) == false) {
- ERR("Failed to send a packet (%s)\n",__FUNCTION__);
- }
-
- return (void*)NULL;
-}
-
-
-
void *cserver::cmd_get_value(void *cmd_item, void *data)
{
cmd_queue_item_t *queue_item = (cmd_queue_item_t*)cmd_item;
-
-
-void *cserver::cb_event_handler(cprocessor_module *processor, void *data)
-{
- csock::thread_arg_t *arg = (csock::thread_arg_t *)data;
- cpacket packet(sizeof(cmd_done_t)+4);
- cmd_done_t *payload;
- csock ipc(arg->client_handle , csock::SOCK_TCP);
- ipc.set_on_close(false);
-
- DBG("Wait event handler invoked\n");
- if (arg->worker->state() != cipc_worker::START) {
- ERR("Client disconnected\n");
- return (void*)NULL;
- }
-
- packet.set_cmd(CMD_DONE);
- packet.set_version(PROTOCOL_VERSION);
- packet.set_payload_size(sizeof(cmd_done_t));
- payload = (cmd_done_t*)packet.data();
- payload->value = arg->worker->state();
-
- if (ipc.send(packet.packet(), packet.size()) == false) {
- ERR("Failed to send a packet (%s)\n",__FUNCTION__);
- return (void*)NULL;
- }
-
- return (void*)NULL;
-}
-
-
-
-void cserver::cb_rm_cb_data(void *cb)
-{
- DbgPrint("nop\n");
- return;
-}
-
-
void cserver::command_handler(void *cmd_item, void *data)
{
cmd_queue_item_t *queue_item = (cmd_queue_item_t*)cmd_item;
}
+void cserver::sf_main_loop_stop(void)
+{
+ if(g_mainloop)
+ {
+ g_main_loop_quit(g_mainloop);
+ }
+}
+
void cserver::sf_main_loop(void)
{
- static GMainLoop *mainloop;
csock *ipc = NULL;
+ int fd = -1;
- mainloop = g_main_loop_new(NULL, FALSE);
+ g_mainloop = g_main_loop_new(NULL, FALSE);
try {
ipc = new csock((char*)STR_SF_IPC_SOCKET, csock::SOCK_TCP|csock::SOCK_WORKER, 0, 1);
ipc->set_worker(cb_ipc_start, cb_ipc_worker, cb_ipc_stop);
ipc->wait_for_client();
- vconf_set_int ("memory/hibernation/sfsvc_ready", 1);
+ if((g_poweroff_fd = heynoti_init()) < 0)
+ {
+ ERR("heynoti_init FAIL\n");
+ }
+
+ if(heynoti_subscribe(g_poweroff_fd, POWEROFF_NOTI_NAME, system_poweroff_cb, NULL))
+ {
+ ERR("heynoti_subscribe fail\n");
+ }
+
+ if(heynoti_attach_handler(g_poweroff_fd))
+ {
+ ERR("heynoti_attach_handler fail\n");
+ }
+
+ fd = creat("/tmp/hibernation/sfsvc_ready", 0644);
+ if(fd != -1)
+ {
+ close(fd);
+ fd = -1;
+ }
- g_main_loop_run(mainloop);
- g_main_loop_unref(mainloop);
+ g_main_loop_run(g_mainloop);
+ g_main_loop_unref(g_mainloop);
return;
}
static cserver server;
+#define SF_SERVER_STATE_LOG_FILE "/opt/share/debug/sf_server_log"
+#define SF_SERVER_STATE_LOG_DIR "/opt/share/debug"
+
+static struct sigaction sf_act_quit;
+static struct sigaction sf_oldact_quit;
+static struct sigaction sf_act_pipe;
+static struct sigaction sf_oldact_pipe;
+
+static void sig_pipe_handler(int signo)
+{
+ int fd;
+ char buf[255];
+ time_t now_time;
+
+ if(signo==SIGPIPE)
+ {
+ time(&now_time);
+
+ if ( access (SF_SERVER_STATE_LOG_DIR, F_OK) < 0 ) {
+ mkdir(SF_SERVER_STATE_LOG_DIR, 0755);
+ }
+
+ fd = open(SF_SERVER_STATE_LOG_FILE, O_WRONLY|O_CREAT|O_APPEND, 0755);
+
+ if (fd != -1) {
+ snprintf(buf,255, "\nsf_sever_sig_pipe_log now-time : %ld (s)\n\n",(long)now_time);
+ write(fd, buf, strlen(buf));
+ snprintf(buf,255, "sig_pipe event happend");
+ write(fd, buf, strlen(buf));
+ }
+ if (fd != -1) {
+ close(fd);
+ }
+ }
+
+ return;
+}
+
+static void sig_quit_handler(int signo)
+{
+ int fd;
+ char buf[255];
+ time_t now_time;
+
+
+ if( (signo==SIGTERM) || (signo==SIGQUIT) )
+ {
+ time(&now_time);
+ if ( access (SF_SERVER_STATE_LOG_DIR, F_OK) < 0 ) {
+ mkdir(SF_SERVER_STATE_LOG_DIR, 0755);
+ }
+
+ fd = open(SF_SERVER_STATE_LOG_FILE, O_WRONLY|O_CREAT|O_APPEND, 0755);
+
+ if (fd != -1) {
+ snprintf(buf,255, "\nsf_sever_sig_quit_term_log now-time : %ld (s)\n\n",(long)now_time);
+ write(fd, buf, strlen(buf));
+ }
+
+ server.sf_main_loop_stop();
+ DBG("sf_main_loop_stop() called");
+ }
+
+ return;
+}
+
+static int sig_act_init(void)
+{
+ int return_state=0;
+
+ sf_act_quit.sa_handler=sig_quit_handler;
+ sigemptyset(&sf_act_quit.sa_mask);
+ sf_act_quit.sa_flags = SA_NOCLDSTOP;
+
+ sf_act_pipe.sa_handler=sig_pipe_handler;
+ sigemptyset(&sf_act_pipe.sa_mask);
+ sf_act_pipe.sa_flags = SA_NOCLDSTOP;
+
+
+ if (sigaction(SIGTERM, &sf_act_quit, &sf_oldact_quit) < 0) {
+ ERR("error sigaction register for SIGTERM");
+ return_state = -1;
+ }
+
+ if (sigaction(SIGQUIT, &sf_act_quit, &sf_oldact_quit) < 0) {
+ ERR("error sigaction register for SIGQUIT");
+ return_state -= 1;
+ }
+
+ if (sigaction(SIGPIPE, &sf_act_pipe, &sf_oldact_pipe) < 0) {
+ ERR("error sigaction register for SIGPIPE");
+ return_state -= 1;
+ }
+
+ signal(SIGCHLD, SIG_IGN);
+ signal(SIGUSR1, SIG_IGN);
+ signal(SIGUSR2, SIG_IGN);
+
+ return return_state;
+}
+
+
+
inline static int daemonize(void)
{
pid_t pid;
return -1;
}
+
+ if (sig_act_init() != 0) {
+ ERR("sig_act_init fail!!");
+ }
+
+
server.sf_main_loop();
if (processor_catalog) {
multi_stream=disable
filter_input=bma023_filter, bma023_filter, bma023_sensor
processor_input=bma023_processor, bma023_processor, bma023_filter
+processor_input=bma250_processor, bma250_processor, bma250_sensor
+processor_input=bma254_processor, bma254_processor, bma254_sensor
processor_input=kr3dm_processor, kr3dm_processor, kr3dm_sensor
+processor_input=lsm330dlc_accel_processor, lsm330dlc_accel_processor, lsm330dlc_accel_sensor
version=1
id=2211
override=yes
filter_input=yas529_filter, yas529_filter, yas529_sensor
processor_input=ak8973b_processor, ak8973b_processor, ak8973b_filter
processor_input=ak8975_processor, ak8975_processor, ak8975_filter, kr3dm_sensor
+processor_input=bmm050_processor, bmm050_processor, bmm050_sensor
processor_input=yas529_processor, yas529_processor, yas529_filter, bma023_sensor
+processor_input=ak8975c_processor, ak8975c_processor, ak8975c_sensor, bma254_sensor
+processor_input=ak8975cl_processor, ak8975cl_processor, ak8975cl_sensor
version=1
id=2212
override=yes
processor_input=gp2ap002ambi_processor, gp2ap002ambi_processor, gp2ap002ambi_filter
processor_input=gp2ap020ambi_processor, gp2ap020ambi_processor, gp2ap020ambi_sensor
processor_input=cm3623ambi_processor, cm3623ambi_processor, cm3623ambi_filter
+processor_input=cm36651ambi_processor, cm36651ambi_processor, cm36651ambi_sensor
processor_input=tmd2711ambi_processor, tmd2711ambi_processor, tmd2711ambi_filter
+processor_input=tmd2772ambi_processor, tmd2772ambi_processor, tmd2772ambi_sensor
version=1
id=2213
override=yes
processor_input=gp2ap002proxi_processor, gp2ap002proxi_processor, gp2ap002proxi_filter
processor_input=gp2ap020proxi_processor, gp2ap020proxi_processor, gp2ap020proxi_sensor
processor_input=cm3623proxi_processor, cm3623proxi_processor, cm3623proxi_filter
+processor_input=cm36651proxi_processor, cm36651proxi_processor, cm36651proxi_sensor
processor_input=tmd2711proxi_processor, tmd2711proxi_processor, tmd2711proxi_filter
+processor_input=tmd2772proxi_processor, tmd2772proxi_processor, tmd2772proxi_sensor
version=1
id=2214
override=yes
disable=no
[motion_datastream]
-multi_stream=disable
-filter_input=motion_filter, motion_filter, bma023_sensor, kr3dm_sensor, l3g4200d_sensor
+multi_stream=enable
+filter_input=motion_filter, motion_filter, bma023_sensor, kr3dm_sensor,lsm330dlc_accel_sensor, l3g4200d_sensor, lsm330dlc_gyro_sensor, gp2ap020proxi_sensor, cm3623proxi_sensor, cm36651proxi_sensor
processor_input=motion_processor, motion_processor, motion_filter
version=1
id=2209
filter_input=mpu3050_filter, mpu3050_filter
processor_input=mpu3050_processor, mpu3050_processor, mpu3050_filter, bma023_sensor
processor_input=l3g4200d_processor, l3g4200d_processor, l3g4200d_sensor
+processor_input=lsm330dlc_gyro_processor, lsm330dlc_gyro_processor, lsm330dlc_gyro_sensor
+version=1
+id=2210
+override=yes
+disable=no
+
+[barometer_datastream]
+multi_stream=disable
+processor_input=lps331ap_processor, lps331ap_processor, lps331ap_sensor
version=1
id=2210
override=yes
disable=no
+
+[fusion_datastream]
+multi_stream=esable
+processor_input=fusion_processor, fusion_processor, lsm330dlc_accel_sensor, lsm330dlc_gyro_sensor, ak8975cl_sensor
+version=1
+id=2210
+override=yes
+disable=no
+
version=1
disable=no
override=yes
+
override=yes
disable=no
+[lsm330dlc_accel_processor]
+path=/usr/lib/sensor_framework/liblsm330dlc_accel_processor.so
+id=2114
+version=1
+override=yes
+disable=no
+
+[lps331ap_processor]
+path=/usr/lib/sensor_framework/liblps331ap_processor.so
+id=2114
+version=1
+override=yes
+disable=no
+
[ak8973b_processor]
path=/usr/lib/sensor_framework/libak8973b_processor.so
id=2115
override=yes
disable=no
+[cm36651ambi_processor]
+path=/usr/lib/sensor_framework/libcm36651ambi_processor.so
+id=2119
+version=1
+override=yes
+disable=no
+
+[cm36651proxi_processor]
+path=/usr/lib/sensor_framework/libcm36651proxi_processor.so
+id=2113
+version=1
+override=yes
+disable=no
+
[motion_processor]
path=/usr/lib/sensor_framework/libmotion_processor.so
id=2111
override=yes
disable=no
+[lsm330dlc_gyro_processor]
+path=/usr/lib/sensor_framework/liblsm330dlc_gyro_processor.so
+id=2121
+version=1
+override=yes
+disable=no
+
[tmd2711ambi_processor]
path=/usr/lib/sensor_framework/libtmd2711ambi_processor.so
id=2122
version=1
override=yes
disable=no
+
+[ak8975c_processor]
+path=/usr/lib/sensor_framework/libak8975c_processor.so
+id=2125
+version=1
+override=yes
+disable=no
+
+[ak8975cl_processor]
+path=/usr/lib/sensor_framework/libak8975cl_processor.so
+id=2125
+version=1
+override=yes
+disable=no
+
+[bmm050_processor]
+path=/usr/lib/sensor_framework/libbmm050_processor.so
+id=2130
+version=1
+override=yes
+disable=no
+
+[bma250_processor]
+path=/usr/lib/sensor_framework/libbma250_processor.so
+id=2131
+version=1
+override=yes
+disable=no
+
+[bma254_processor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libbma254_processor.so
+id=1130
+version=1
+poll=100
+
+[tmd2772proxi_processor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libtmd2772proxi_processor.so
+id=1131
+version=1
+poll=100
+
+[tmd2772ambi_processor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libtmd2772ambi_processor.so
+id=1132
+version=1
+poll=100
+
+[fusion_processor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libfusionambi_processor.so
+id=1135
+version=1
+poll=100
+
+
version=1
poll=10
+[lsm330dlc_accel_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/liblsm330dlc_accel.so
+id=1114
+version=1
+poll=10
+
+[lps331ap_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/liblps331ap.so
+id=1114
+version=1
+poll=100
+
[ak8973b_sensor]
disable=no
override=yes
version=1
poll=90
+[cm36651ambi_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libcm36651ambi.so
+id=1119
+version=1
+poll=490
+
+[cm36651proxi_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libcm36651proxi.so
+id=1113
+version=1
+poll=90
+
[kr3dm_sensor]
disable=no
override=yes
version=1
poll=18
+[lsm330dlc_gyro_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/liblsm330dlc_gyro.so
+id=1111
+version=1
+poll=18
+
[tmd2711ambi_sensor]
disable=no
override=yes
id=1108
version=1
poll=100
+
+[bmm050_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libbmm050.so
+id=1120
+version=1
+poll=100
+
+[ak8975c_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libak8975c.so
+id=1109
+version=1
+poll=100
+
+[ak8975cl_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libak8975cl.so
+id=1109
+version=1
+poll=100
+
+[bma250_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libbma250.so
+id=1121
+version=1
+poll=100
+
+[bma254_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libbma254.so
+id=1130
+version=1
+poll=100
+
+[tmd2772proxi_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libtmd2772proxi.so
+id=1131
+version=1
+poll=100
+
+[tmd2772ambi_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libtmd2772ambi.so
+id=1132
+version=1
+poll=100
+
+