Tizen 2.1 base
authorJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:51:52 +0000 (01:51 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:51:52 +0000 (01:51 +0900)
16 files changed:
CMakeLists.txt
packaging/sensor-framework.changes [new file with mode: 0644]
packaging/sensor-framework.manifest [new file with mode: 0644]
packaging/sensor-framework.service [new file with mode: 0644]
packaging/sensor-framework.spec
sensor-framework.manifest [new file with mode: 0644]
server/include/cserver.h
server/src/cdata_stream.cpp
server/src/cserver.cpp
server/src/main.cpp
sf_data_stream-mfld-blackbay.conf [new file with mode: 0755]
sf_data_stream.conf.in
sf_filter.conf.in
sf_processor-mfld-blackbay.conf [new file with mode: 0755]
sf_processor.conf.in
sf_sensor.conf.in

index 0974818..53cab73 100644 (file)
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.6)
 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.
@@ -18,21 +18,33 @@ set(PROJECT_RELEASE_VERSION "1")
 set(CMAKE_VERBOSE_MAKEFILE OFF)
 
 add_definitions(-Wall -O3 -omit-frame-pointer) 
-add_definitions(-Wall -g -D_DEBUG)
+#add_definitions(-Wall -g -D_DEBUG)
 
 FIND_PROGRAM(UNAME NAMES uname)
 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
-IF("${ARCH}" MATCHES "^arm.*")
+if(NOT "${PLATFORM_ARCH}" MATCHES "arch_sdk")
         ADD_DEFINITIONS("-DTARGET")
         MESSAGE("add -DTARGET")
-ELSE("${ARCH}" MATCHES "^arm.*")
+else()
         ADD_DEFINITIONS("-DSIMULATOR")
         MESSAGE("add -DSIMULATOR")
-ENDIF("${ARCH}" MATCHES "^arm.*")
+endif()
 
 add_subdirectory(server)
+if("${PLATFORM_ARCH}" MATCHES "arch_ia")
+       CONFIGURE_FILE(sf_sensor.conf.in sf_sensor.conf @ONLY)
+       CONFIGURE_FILE(sf_filter.conf.in sf_filter.conf @ONLY)
+       CONFIGURE_FILE(sf_processor-mfld-blackbay.conf sf_processor.conf @ONLY)
+       CONFIGURE_FILE(sf_data_stream-mfld-blackbay.conf sf_data_stream.conf @ONLY)
+       install(FILES
+               sf_sensor.conf
+               sf_filter.conf
+               sf_processor.conf
+               sf_data_stream.conf
+               DESTINATION etc)
+endif()
 
-IF("${ARCH}" MATCHES "^arm.*")
+if("${PLATFORM_ARCH}" MATCHES "arch_arm")
        CONFIGURE_FILE(sf_sensor.conf.in sf_sensor.conf @ONLY)
        CONFIGURE_FILE(sf_filter.conf.in sf_filter.conf @ONLY)
        CONFIGURE_FILE(sf_processor.conf.in sf_processor.conf @ONLY)
@@ -43,7 +55,8 @@ IF("${ARCH}" MATCHES "^arm.*")
                sf_processor.conf
                sf_data_stream.conf
                DESTINATION etc)
-ELSE("${ARCH}" MATCHES "^arm.*")
+endif()
+if("${PLATFORM_ARCH}" MATCHES "arch_sdk")
        CONFIGURE_FILE(sf_sensor_sim.conf.in sf_sensor.conf @ONLY)
        CONFIGURE_FILE(sf_filter_sim.conf.in sf_filter.conf @ONLY)
        CONFIGURE_FILE(sf_processor_sim.conf.in sf_processor.conf @ONLY)
@@ -54,6 +67,6 @@ ELSE("${ARCH}" MATCHES "^arm.*")
                sf_processor.conf
                sf_data_stream.conf
                DESTINATION etc)
-ENDIF("${ARCH}" MATCHES "^arm.*")
+endif()
 
 install(PROGRAMS sfsvc DESTINATION /etc/rc.d/init.d)
diff --git a/packaging/sensor-framework.changes b/packaging/sensor-framework.changes
new file mode 100644 (file)
index 0000000..faa6299
--- /dev/null
@@ -0,0 +1,20 @@
+* Tue Jan 15 2013 Telle-Tiia Pitkänen <telle-tiia.pitkanen@ixonos.com> submit/tizen_2.0/20130109.005631@b28fbf6
+- PR3 required changes added.
+
+- code sync
+- Add sensor information in configure file
+- Code sync
+- code sync
+- merge systemd code
+- update configure file
+
+* Wed Aug 15 2012 Chris E Ferron <chris.e.ferron@linux.intel.com> 8b5e9a1
+- Due to blockages, change the power-manager from being launched as a user mode to a system mode service
+
+* Mon Jul 09 2012 Karol Lewandowski <k.lewandowsk@samsung.com> c964fd1
+- Use 'simple' service type.
+
+* Mon Jun 25 2012 Patrick McCarty <patrick.mccarty@linux.intel.com> - 0.2.5
+- Add systemd service file
+- Create initscript symlinks in %install instead of %post
+
diff --git a/packaging/sensor-framework.manifest b/packaging/sensor-framework.manifest
new file mode 100644 (file)
index 0000000..017d22d
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+    <domain name="_"/>
+ </request>
+</manifest>
diff --git a/packaging/sensor-framework.service b/packaging/sensor-framework.service
new file mode 100644 (file)
index 0000000..6369769
--- /dev/null
@@ -0,0 +1,11 @@
+
+[Unit]
+Description=Start the sensor framework
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/sf_server -s /usr/etc/sf_sensor.conf -f /usr/etc/sf_filter.conf -p /usr/etc/sf_processor.conf -d /usr/etc/sf_data_stream.conf
+
+[Install]
+WantedBy=multi-user.target
+
index 90b3033..b3966d1 100644 (file)
@@ -1,17 +1,34 @@
+#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.26
 Release:    1
 Group:      TO_BE/FILLED_IN
-License:    LGPL
+License:    Apache 2.0
 Source0:    %{name}-%{version}.tar.gz
+Source1:    sensor-framework.service
 
+%ifarch %{arm}
+  #arm build
+  %define       _archtype arch_arm
+%else
+  #ix86 build
+  %if 0%{?simulator}
+   #emul build target
+   %define      _archtype arch_sdk
+  %else
+   #IA build target
+   %define      _archtype arch_ia
+  %endif
+%endif
 Requires(post): /usr/bin/vconftool
 
 BuildRequires:  cmake
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(sf_common)
 BuildRequires:  pkgconfig(vconf)
+BuildRequires:  pkgconfig(heynoti)
+
 %description
 Sensor framework
 
@@ -19,40 +36,65 @@ Sensor framework
 %setup -q
 
 %build
-cmake . -DCMAKE_INSTALL_PREFIX=/usr
+cmake . -DCMAKE_INSTALL_PREFIX=/usr -DPLATFORM_ARCH=%{_archtype}
 
 make %{?jobs:-j%jobs}
 
 %install
 %make_install
 
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE %{buildroot}/usr/share/license/%{name}
+
+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/10010 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/800200 0 -i
+vconftool set -t int memory/private/sensor/800400 0 -i
+vconftool set -t int memory/private/sensor/800800 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
 
 %files
-%defattr(-,root,root,-)
-/usr/bin/sf_server
-%{_sysconfdir}/rc.d/init.d/sfsvc
+%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
 %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
+/usr/share/license/%{name}
 
diff --git a/sensor-framework.manifest b/sensor-framework.manifest
new file mode 100644 (file)
index 0000000..b7467bb
--- /dev/null
@@ -0,0 +1,16 @@
+<manifest>
+       <define>
+               <domain name="sensor-framework" />
+               <provide>
+                       <label name="sensor-framework::server" />
+               </provide>
+       </define>
+       <request>
+               <domain name="sensor-framework" />
+       </request>
+       <assign>
+               <filesystem path="/etc/rc.d/init.d/sfsvc" label="_" exec_label="none" />
+               <filesystem path="/etc/rc.d/rc3.d/S40sfsvc" label="_" exec_label="none" />
+               <filesystem path="/etc/rc.d/rc4.d/S40sfsvc" label="_" exec_label="none" />
+       </assign>
+</manifest>
index ecbfc4a..7298632 100755 (executable)
@@ -35,6 +35,7 @@ public:
 
        
        void sf_main_loop(void);
+       void sf_main_loop_stop(void);
 
 private:
 
@@ -56,8 +57,6 @@ 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
@@ -72,10 +71,6 @@ private:
        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];
 };
 
index a351bbf..fadc5b2 100755 (executable)
@@ -142,7 +142,10 @@ cdata_stream::~cdata_stream()
                filter = next_filter;
        }
 
-       if (m_name) free(m_name);
+       if (m_name) {
+               free(m_name);
+               m_name = NULL;
+       }
 }
 
 
index 7d69a83..d63db28 100755 (executable)
 #include <resource_str.h>
 
 #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()
 {
@@ -77,7 +92,6 @@ 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;
@@ -468,76 +482,6 @@ void *cserver::cmd_stop(void *cmd_item, void *data)
 
 
 
-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;
@@ -819,12 +763,14 @@ void *cserver::cmd_get_property(void *cmd_item, void *data)
                
        base_property_struct return_base_property;
 
+       memset(&return_base_property, '\0', sizeof(return_base_property));
+
        if (arg->worker->state() != cipc_worker::START) {
                ERR("Client disconnected (%s)\n",__FUNCTION__);
                return (void*)NULL;
        }
 
-       DBG("CMD_SET_VALUE  Handler invoked\n");
+       DBG("CMD_GET_PROPERTY Handler invoked\n");
 
        payload = (cmd_get_property_t*)packet->data();
        get_property_level =  payload->get_level;
@@ -839,15 +785,13 @@ void *cserver::cmd_get_property(void *cmd_item, void *data)
                cdata_stream *data_stream;
                data_stream = (cdata_stream*)ctx->module;
 
-               if ( (get_property_level & 0xFFFF) == 1 ) {                     
-                       get_property_size = sizeof(base_property_struct);
-                       state = data_stream->get_property(get_property_level, (void*)&return_base_property);
-                       if ( state != 0 ) {
-                               ERR("data_stream get_property fail");
-                               goto out;
-                       }
-                       return_property_struct = (void*)&return_base_property;
+               get_property_size = sizeof(base_property_struct);
+               state = data_stream->get_property(get_property_level, (void*)&return_base_property);
+               if ( state != 0 ) {
+                       ERR("data_stream get_property fail");
+                       goto out;
                }
+               return_property_struct = (void*)&return_base_property;
        }
 
 out:
@@ -1177,45 +1121,6 @@ void *cserver::cb_ipc_worker(void *data)
 
 
 
-
-       
-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;
@@ -1242,13 +1147,21 @@ void cserver::command_handler(void *cmd_item, void *data)
 }
 
 
+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;
+
+       g_mainloop = g_main_loop_new(NULL, FALSE);
 
-       mainloop = g_main_loop_new(NULL, FALSE);
-       
        try {
                ipc = new csock((char*)STR_SF_IPC_SOCKET, csock::SOCK_TCP|csock::SOCK_WORKER, 0, 1);
        } catch (int ErrNo) {
@@ -1258,10 +1171,38 @@ void cserver::sf_main_loop(void)
 
        ipc->set_worker(cb_ipc_start, cb_ipc_worker, cb_ipc_stop);
        ipc->wait_for_client();
-        
-       g_main_loop_run(mainloop);
-    g_main_loop_unref(mainloop);       
-       
+
+
+       g_poweroff_fd = heynoti_init();
+
+       if(g_poweroff_fd < 0)
+       {
+               ERR("heynoti_init FAIL\n");
+       }
+       else
+       {
+               if(heynoti_subscribe(g_poweroff_fd, POWEROFF_NOTI_NAME, system_poweroff_cb, NULL))
+               {
+                       ERR("heynoti_subscribe fail\n");
+               }
+               else
+               {
+                       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(g_mainloop);
+       g_main_loop_unref(g_mainloop);  
+
        return;
 }
 
index aab70b2..ff26efb 100644 (file)
@@ -72,7 +72,6 @@
 
 #include <resource_str.h>
 
-#include <vconf.h>
 
 #if !defined(PATH_MAX)
 #define PATH_MAX 256
@@ -83,28 +82,110 @@ extern int optind, opterr, optopt;
 
 static cserver server;
 
-inline static int daemonize(void)
+#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)
 {
-       pid_t pid;
+       int fd;
+       char buf[255];
+       time_t now_time;
 
-       pid = fork();
-       if (pid < 0)
-               return -1;
-       else if (pid != 0)
-               exit(0);
+       if(signo==SIGPIPE)
+       {
+               time(&now_time);
+
+               if ( access (SF_SERVER_STATE_LOG_DIR, F_OK) <   0 ) {
+                       if(0 != mkdir(SF_SERVER_STATE_LOG_DIR, 0755))
+                               ERR("directory make fail");
+               }
 
-       setsid();
-       chdir("/");
+               fd = open(SF_SERVER_STATE_LOG_FILE,     O_WRONLY|O_CREAT|O_APPEND, 0755);
 
-       close(0);
-       close(1);
-       close(2);
+               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);
+               }
+       }
 
-       open("/dev/null", O_RDONLY);
-       open("/dev/null", O_RDWR);
-       dup(1);
+       return;
+}
 
-       return 0;
+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 ) {
+                       if(0 != mkdir(SF_SERVER_STATE_LOG_DIR, 0755))
+                               ERR("directory make fail");
+               }
+
+               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));
+               }
+                if (fd != -1) {
+                        close(fd);
+                }
+               
+               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;
 }
 
 
@@ -120,11 +201,7 @@ int main(int argc, char *argv[])
        if ( argc > 1) {
                while ((opt = getopt(argc, argv, "bs:f:p:d:h")) != -1) {
                        DBG("input opt : %c , opterr : %d , optind : %d ,  optopt : %d\n",(char)opt , opterr , optind , optopt);
-                       if (opt == 'b' ) {
-                               {
-                               daemonize();
-                               }
-                       } else if (opt == 's' ) {
+                       if (opt == 's' ) {
                                if (sensor_catalog) {
                                        INFO("Sensors are already loaded\n");
                                        continue;
@@ -231,8 +308,6 @@ int main(int argc, char *argv[])
        }else {
                DBG("No option just run by default\n");
 
-               daemonize();
-
                try {
                        sensor_catalog = new csensor_catalog;
                } catch (...) {
@@ -317,7 +392,11 @@ int main(int argc, char *argv[])
                return -1;
        }
 
-       vconf_set_int ("memory/hibernation/sfsvc_ready", 1);
+       
+       if (sig_act_init() != 0) {
+               ERR("sig_act_init fail!!");
+       }
+
 
        server.sf_main_loop();
 
diff --git a/sf_data_stream-mfld-blackbay.conf b/sf_data_stream-mfld-blackbay.conf
new file mode 100755 (executable)
index 0000000..2d22cc6
--- /dev/null
@@ -0,0 +1,39 @@
+[accel_datastream]
+multi_stream=disable
+processor_input=accel_processor, accel_processor, accel_processor
+version=1
+id=2211
+override=yes
+disable=no
+
+[geomag_datastream]
+multi_stream=disable
+processor_input=geo_processor, geo_processor, geo_processor
+version=1
+id=2212
+override=yes
+disable=no
+
+[lumin_datastream]
+multi_stream=disable
+processor_input=light_processor, light_processor, light_processor
+version=1
+id=2213
+override=yes
+disable=no
+
+[proxi_datastream]
+multi_stream=disable
+processor_input=proxi_processor, proxi_processor, proxi_processor
+version=1
+id=2214
+override=yes
+disable=no
+
+[gyro_datastream]
+multi_stream=disable
+processor_input=gyro_processor, gyro_processor, gyro_processor
+version=1
+id=2210
+override=yes
+disable=no
index caa1d93..816c34c 100755 (executable)
@@ -2,7 +2,11 @@
 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
+processor_input=k2dh_processor, k2dh_processor, k2dh_sensor
 version=1
 id=2211
 override=yes
@@ -13,9 +17,15 @@ multi_stream=disable
 filter_input=ak8973b_filter, ak8973b_filter, ak8973b_sensor
 filter_input=ak8975_filter, ak8975_filter, ak8975_sensor
 filter_input=yas529_filter, yas529_filter, yas529_sensor
+processor_input=bmm050_processor, bmm050_processor, bmm050_sensor
+processor_input=yas529_processor, yas529_processor, yas529_filter, bma023_sensor
+processor_input=ak8963cl_processor, ak8963cl_processor, lsm330dlc_accel_sensor
 processor_input=ak8973b_processor, ak8973b_processor, ak8973b_filter
 processor_input=ak8975_processor, ak8975_processor, ak8975_filter, kr3dm_sensor
-processor_input=yas529_processor, yas529_processor, yas529_filter, bma023_sensor
+processor_input=ak8975c_processor, ak8975c_processor, ak8975c_sensor, bma254_sensor
+processor_input=ak8975ck_processor, ak8975ck_processor, kr3dm_sensor
+processor_input=ak8975cl_processor, ak8975cl_processor, lsm330dlc_accel_sensor
+processor_input=hscdtd008a_processor, hscdtd008a_processor, hscdtd008a_sensor
 version=1
 id=2212
 override=yes
@@ -29,7 +39,9 @@ filter_input=tmd2711ambi_filter, tmd2711ambi_filter, tmd2711ambi_sensor
 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
@@ -43,16 +55,19 @@ filter_input=tmd2711proxi_filter, tmd2711proxi_filter, tmd2711proxi_sensor
 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
+processor_input=px3315proxi_processor, px3315proxi_processor, px3315proxi_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
-processor_input=motion_processor, motion_processor, motion_filter
+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, lsm330dlc_accel_sensor
 version=1
 id=2209
 override=yes
@@ -63,7 +78,25 @@ multi_stream=disable
 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
+
index 0252119..6f695e1 100755 (executable)
@@ -74,3 +74,4 @@ id=1218
 version=1
 disable=no
 override=yes
+
diff --git a/sf_processor-mfld-blackbay.conf b/sf_processor-mfld-blackbay.conf
new file mode 100755 (executable)
index 0000000..ef948cf
--- /dev/null
@@ -0,0 +1,35 @@
+[accel_processor]
+path=/usr/lib/sensor_framework/libaccelprocessor.so
+id=2114
+version=1
+override=yes
+disable=no
+
+[light_processor]
+path=/usr/lib/sensor_framework/liblightsprocessor.so
+id=2117
+version=1
+override=yes
+disable=no
+
+[proxi_processor]
+path=/usr/lib/sensor_framework/libproxiprocessor.so
+id=2118
+version=1
+override=yes
+disable=no
+
+
+[gyro_processor]
+path=/usr/lib/sensor_framework/libgyroprocessor.so
+id=2121
+version=1
+override=yes
+disable=no
+
+[geo_processor]
+path=/usr/lib/sensor_framework/libcompassprocessor.so
+id=2124
+version=1
+override=yes
+disable=no
index f201f7c..0f02746 100755 (executable)
@@ -5,6 +5,27 @@ version=1
 override=yes
 disable=no
 
+[lsm330dlc_accel_processor]
+path=/usr/lib/sensor_framework/liblsm330dlc_accel_processor.so
+id=2114
+version=1
+override=yes
+disable=no
+
+[k2dh_processor]
+path=/usr/lib/sensor_framework/libk2dh_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
@@ -19,6 +40,13 @@ version=1
 override=yes
 disable=no
 
+[hscdtd008a_processor]
+path=/usr/lib/sensor_framework/libhscdtd008a_processor.so
+id=2116
+version=1
+override=yes
+disable=no
+
 [gp2ap002ambi_processor]
 path=/usr/lib/sensor_framework/libgp2ap002ambi_processor.so
 id=2117
@@ -61,6 +89,27 @@ version=1
 override=yes
 disable=no
 
+[px3315proxi_processor]
+path=/usr/lib/sensor_framework/libpx3315proxi_processor.so
+id=2113
+version=1
+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
@@ -82,6 +131,13 @@ version=1
 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
@@ -96,9 +152,85 @@ version=1
 override=yes
 disable=no
 
+[ak8963cl_processor]
+path=/usr/lib/sensor_framework/libak8963cl_processor.so
+id=2124
+version=1
+override=yes
+disable=no
+
 [ak8975_processor]
 path=/usr/lib/sensor_framework/libak8975_processor.so
 id=2124
 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
+
+[ak8975ck_processor]
+path=/usr/lib/sensor_framework/libak8975ck_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
+
+
index f50df6e..31f1821 100755 (executable)
@@ -6,6 +6,30 @@ id=1114
 version=1
 poll=10
 
+[lsm330dlc_accel_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/liblsm330dlc_accel.so
+id=1114
+version=1
+poll=200
+
+[k2dh_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libk2dh.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
@@ -22,6 +46,14 @@ id=1116
 version=1
 poll=90
 
+[hscdtd008a_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libhscdtd008a.so
+id=1116
+version=1
+poll=90
+
 [gp2ap002ambi_sensor]
 disable=no
 override=yes
@@ -70,6 +102,30 @@ id=1113
 version=1
 poll=90
 
+[px3315proxi_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libpx3315proxi.so
+id=1113
+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
@@ -86,6 +142,14 @@ id=1111
 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
@@ -102,6 +166,14 @@ id=1109
 version=1
 poll=90
 
+[ak8963cl_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libak8963cl.so
+id=1108
+version=1
+poll=100
+
 [ak8975_sensor]
 disable=no
 override=yes
@@ -109,3 +181,69 @@ path=/usr/lib/sensor_framework/libak8975.so
 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
+
+[ak8975ck_sensor]
+disable=no
+override=yes
+path=/usr/lib/sensor_framework/libak8975ck.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
+
+