From 55d4b9f581feb67faa5b44ec89cef4dead874c40 Mon Sep 17 00:00:00 2001 From: Eunyoung Lee Date: Tue, 10 Oct 2017 19:25:54 +0900 Subject: [PATCH] Challenge : Question #2 Change-Id: Idee3125f754807f5d85606b1f513ff6cd1dfbdcd --- CMakeLists.txt | 75 - LICENSE.Flora | 206 -- anti_virus.sh | 2125 ++++++++++++++++++++ inc/connectivity.h | 82 - inc/connectivity_internal.h | 30 - inc/controller.h | 27 - inc/controller_internal.h | 28 - inc/controller_util.h | 29 - inc/log.h | 101 - inc/resource.h | 41 - inc/resource/resource_flame_sensor.h | 35 - inc/resource/resource_flame_sensor_internal.h | 31 - inc/resource/resource_gas_detection_sensor.h | 34 - .../resource_gas_detection_sensor_internal.h | 31 - inc/resource/resource_illuminance_sensor.h | 35 - .../resource_illuminance_sensor_internal.h | 31 - inc/resource/resource_infrared_motion_sensor.h | 34 - .../resource_infrared_motion_sensor_internal.h | 31 - .../resource_infrared_obstacle_avoidance_sensor.h | 34 - ...e_infrared_obstacle_avoidance_sensor_internal.h | 31 - inc/resource/resource_led.h | 27 - inc/resource/resource_led_internal.h | 27 - inc/resource/resource_rain_sensor.h | 35 - inc/resource/resource_rain_sensor_internal.h | 31 - inc/resource/resource_sound_detection_sensor.h | 35 - .../resource_sound_detection_sensor_internal.h | 31 - inc/resource/resource_tilt_sensor.h | 35 - inc/resource/resource_tilt_sensor_internal.h | 31 - inc/resource/resource_touch_sensor.h | 34 - inc/resource/resource_touch_sensor_internal.h | 31 - inc/resource/resource_ultrasonic_sensor.h | 36 - inc/resource/resource_ultrasonic_sensor_internal.h | 33 - inc/resource/resource_vibration_sensor.h | 34 - inc/resource/resource_vibration_sensor_internal.h | 31 - inc/resource_internal.h | 61 - inc/webutil.h | 78 - org.tizen.position-finder-server.manifest | 5 - packaging/org.tizen.position-finder-server.spec | 108 - res/iotcon-test-svr-db-server.dat | Bin 2733 -> 0 bytes res/pi.conf | 3 - settings | 13 - shared/res/default_icon.png | Bin 57662 -> 0 bytes src/connectivity.c | 524 ----- src/controller.c | 152 -- src/controller_internal.c | 40 - src/controller_util.c | 110 - src/resource.c | 45 - src/resource/resource_flame_sensor.c | 63 - src/resource/resource_gas_detection_sensor.c | 63 - src/resource/resource_illuminance_sensor.c | 73 - src/resource/resource_infrared_motion_sensor.c | 58 - .../resource_infrared_obstacle_avoidance_sensor.c | 62 - src/resource/resource_led.c | 59 - src/resource/resource_rain_sensor.c | 61 - src/resource/resource_sound_detection_sensor.c | 63 - src/resource/resource_tilt_sensor.c | 63 - src/resource/resource_touch_sensor.c | 62 - src/resource/resource_ultrasonic_sensor.c | 139 -- src/resource/resource_vibration_sensor.c | 58 - src/webutil.c | 399 ---- tizen-manifest.xml.in | 16 - 61 files changed, 2125 insertions(+), 3775 deletions(-) delete mode 100755 CMakeLists.txt delete mode 100644 LICENSE.Flora create mode 100755 anti_virus.sh delete mode 100644 inc/connectivity.h delete mode 100644 inc/connectivity_internal.h delete mode 100644 inc/controller.h delete mode 100644 inc/controller_internal.h delete mode 100644 inc/controller_util.h delete mode 100644 inc/log.h delete mode 100755 inc/resource.h delete mode 100644 inc/resource/resource_flame_sensor.h delete mode 100644 inc/resource/resource_flame_sensor_internal.h delete mode 100644 inc/resource/resource_gas_detection_sensor.h delete mode 100644 inc/resource/resource_gas_detection_sensor_internal.h delete mode 100644 inc/resource/resource_illuminance_sensor.h delete mode 100644 inc/resource/resource_illuminance_sensor_internal.h delete mode 100644 inc/resource/resource_infrared_motion_sensor.h delete mode 100644 inc/resource/resource_infrared_motion_sensor_internal.h delete mode 100644 inc/resource/resource_infrared_obstacle_avoidance_sensor.h delete mode 100644 inc/resource/resource_infrared_obstacle_avoidance_sensor_internal.h delete mode 100644 inc/resource/resource_led.h delete mode 100644 inc/resource/resource_led_internal.h delete mode 100755 inc/resource/resource_rain_sensor.h delete mode 100755 inc/resource/resource_rain_sensor_internal.h delete mode 100644 inc/resource/resource_sound_detection_sensor.h delete mode 100644 inc/resource/resource_sound_detection_sensor_internal.h delete mode 100644 inc/resource/resource_tilt_sensor.h delete mode 100644 inc/resource/resource_tilt_sensor_internal.h delete mode 100644 inc/resource/resource_touch_sensor.h delete mode 100644 inc/resource/resource_touch_sensor_internal.h delete mode 100644 inc/resource/resource_ultrasonic_sensor.h delete mode 100644 inc/resource/resource_ultrasonic_sensor_internal.h delete mode 100644 inc/resource/resource_vibration_sensor.h delete mode 100644 inc/resource/resource_vibration_sensor_internal.h delete mode 100755 inc/resource_internal.h delete mode 100644 inc/webutil.h delete mode 100644 org.tizen.position-finder-server.manifest delete mode 100644 packaging/org.tizen.position-finder-server.spec delete mode 100644 res/iotcon-test-svr-db-server.dat delete mode 100644 res/pi.conf delete mode 100644 settings delete mode 100755 shared/res/default_icon.png delete mode 100644 src/connectivity.c delete mode 100644 src/controller.c delete mode 100644 src/controller_internal.c delete mode 100644 src/controller_util.c delete mode 100644 src/resource.c delete mode 100644 src/resource/resource_flame_sensor.c delete mode 100644 src/resource/resource_gas_detection_sensor.c delete mode 100644 src/resource/resource_illuminance_sensor.c delete mode 100644 src/resource/resource_infrared_motion_sensor.c delete mode 100644 src/resource/resource_infrared_obstacle_avoidance_sensor.c delete mode 100644 src/resource/resource_led.c delete mode 100755 src/resource/resource_rain_sensor.c delete mode 100644 src/resource/resource_sound_detection_sensor.c delete mode 100644 src/resource/resource_tilt_sensor.c delete mode 100644 src/resource/resource_touch_sensor.c delete mode 100644 src/resource/resource_ultrasonic_sensor.c delete mode 100644 src/resource/resource_vibration_sensor.c delete mode 100644 src/webutil.c delete mode 100644 tizen-manifest.xml.in diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100755 index 041fa7c..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,75 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(${P_NAME} C) - -SET(INSTALL_EXEC_PREFIX "${INSTALL_PREFIX}/bin") -SET(CMAKE_VERBOSE_MAKEFILE 0) - -SET(PROJECT_ROOT_DIR "${CMAKE_SOURCE_DIR}") -SET(PROJECT_RESOURCES_DIR "${PROJECT_ROOT_DIR}/res") - -INCLUDE(FindPkgConfig) -pkg_check_modules(APP_PKGS REQUIRED - dlog - aul - capi-appfw-application - capi-appfw-service-application - capi-system-peripheral-io - ecore - eina - iotcon - gio-2.0 - libcurl - glib-2.0 - json-glib-1.0 -) - -ADD_DEFINITIONS(-DCBOR_FILE_IN_RES="${INSTALL_RESDIR}/${CBOR_FILE}") -ADD_DEFINITIONS(-DCBOR_FILE_IN_DATA="${INSTALL_OWNER_DATADIR}/${CBOR_FILE}") -ADD_DEFINITIONS(-DCONF_FILE="${INSTALL_RESDIR}/${CONF_FILE}") - -FOREACH (flag ${APP_PKGS_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) - -SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Winline -g -fno-builtin-malloc -fPIE") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") - -INCLUDE_DIRECTORIES(${PROJECT_ROOT_DIR}/inc) - -ADD_EXECUTABLE(${PROJECT_NAME} - ${PROJECT_ROOT_DIR}/src/controller.c - ${PROJECT_ROOT_DIR}/src/controller_internal.c - ${PROJECT_ROOT_DIR}/src/controller_util.c - ${PROJECT_ROOT_DIR}/src/connectivity.c - ${PROJECT_ROOT_DIR}/src/webutil.c - ${PROJECT_ROOT_DIR}/src/resource.c - ${PROJECT_ROOT_DIR}/src/resource/resource_illuminance_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_infrared_motion_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_infrared_obstacle_avoidance_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_touch_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_ultrasonic_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_led.c - ${PROJECT_ROOT_DIR}/src/resource/resource_vibration_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_flame_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_rain_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_sound_detection_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_tilt_sensor.c - ${PROJECT_ROOT_DIR}/src/resource/resource_gas_detection_sensor.c -) - -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${APP_PKGS_LDFLAGS}) - -Message("APP_LABEL : ${APP_LABEL}") - -CONFIGURE_FILE(${PROJECT_ROOT_DIR}/tizen-manifest.xml.in ${ORG_PREFIX}.${PROJECT_NAME}.xml @ONLY) -# Install -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_EXEC_PREFIX}) -INSTALL(DIRECTORY DESTINATION ${INSTALL_OWNER_DATADIR}) -INSTALL(FILES ${ORG_PREFIX}.${PROJECT_NAME}.xml DESTINATION ${SYS_PACKAGES_DIR}) -INSTALL(FILES ${PROJECT_ROOT_DIR}/shared/res/default_icon.png DESTINATION ${SYS_ICONS_DIR} RENAME ${PROJECT_NAME}.png) -INSTALL(FILES ${PROJECT_ROOT_DIR}/res/${CBOR_FILE} DESTINATION ${INSTALL_RESDIR}) -INSTALL(FILES ${PROJECT_ROOT_DIR}/res/${CONF_FILE} DESTINATION ${INSTALL_RESDIR}) - -# End of a file diff --git a/LICENSE.Flora b/LICENSE.Flora deleted file mode 100644 index 4a0af40..0000000 --- a/LICENSE.Flora +++ /dev/null @@ -1,206 +0,0 @@ -Flora License - -Version 1.1, April, 2013 - -http://floralicense.org/license/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and -all other entities that control, are controlled by, or are -under common control with that entity. For the purposes of -this definition, "control" means (i) the power, direct or indirect, -to cause the direction or management of such entity, -whether by contract or otherwise, or (ii) ownership of fifty percent (50%) -or more of the outstanding shares, or (iii) beneficial ownership of -such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation source, -and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, -made available under the License, as indicated by a copyright notice -that is included in or attached to the work (an example is provided -in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, -that is based on (or derived from) the Work and for which the editorial -revisions, annotations, elaborations, or other modifications represent, -as a whole, an original work of authorship. For the purposes of this License, -Derivative Works shall not include works that remain separable from, -or merely link (or bind by name) to the interfaces of, the Work and -Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor -for inclusion in the Work by the copyright owner or by an individual or -Legal Entity authorized to submit on behalf of the copyright owner. -For the purposes of this definition, "submitted" means any form of -electronic, verbal, or written communication sent to the Licensor or -its representatives, including but not limited to communication on -electronic mailing lists, source code control systems, and issue -tracking systems that are managed by, or on behalf of, the Licensor -for the purpose of discussing and improving the Work, but excluding -communication that is conspicuously marked or otherwise designated -in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -"Tizen Certified Platform" shall mean a software platform that complies -with the standards set forth in the Tizen Compliance Specification -and passes the Tizen Compliance Tests as defined from time to time -by the Tizen Technical Steering Group and certified by the Tizen -Association or its designated agent. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work -solely as incorporated into a Tizen Certified Platform, where such -license applies only to those patent claims licensable by such -Contributor that are necessarily infringed by their Contribution(s) -alone or by combination of their Contribution(s) with the Work solely -as incorporated into a Tizen Certified Platform to which such -Contribution(s) was submitted. If You institute patent litigation -against any entity (including a cross-claim or counterclaim -in a lawsuit) alleging that the Work or a Contribution incorporated -within the Work constitutes direct or contributory patent infringement, -then any patent licenses granted to You under this License for that -Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof pursuant to the copyright license -above, in any medium, with or without modifications, and in Source or -Object form, provided that You meet the following conditions: - - 1. You must give any other recipients of the Work or Derivative Works - a copy of this License; and - 2. You must cause any modified files to carry prominent notices stating - that You changed the files; and - 3. You must retain, in the Source form of any Derivative Works that - You distribute, all copyright, patent, trademark, and attribution - notices from the Source form of the Work, excluding those notices - that do not pertain to any part of the Derivative Works; and - 4. If the Work includes a "NOTICE" text file as part of its distribution, - then any Derivative Works that You distribute must include a readable - copy of the attribution notices contained within such NOTICE file, - excluding those notices that do not pertain to any part of - the Derivative Works, in at least one of the following places: - within a NOTICE text file distributed as part of the Derivative Works; - within the Source form or documentation, if provided along with the - Derivative Works; or, within a display generated by the Derivative Works, - if and wherever such third-party notices normally appear. - The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum - to the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. You may add Your own - copyright statement to Your modifications and may provide additional or - different license terms and conditions for use, reproduction, or - distribution of Your modifications, or for any such Derivative Works - as a whole, provided Your use, reproduction, and distribution of - the Work otherwise complies with the conditions stated in this License - and your own copyright statement or terms and conditions do not conflict - the conditions stated in the License including section 3. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Flora License to your work - -To apply the Flora License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Flora License, Version 1.1 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://floralicense.org/license/ - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/anti_virus.sh b/anti_virus.sh new file mode 100755 index 0000000..56afab4 --- /dev/null +++ b/anti_virus.sh @@ -0,0 +1,2125 @@ +#! /bin/bash +download_dir=download +script_fusing=sd_fusing_rpi3.sh +tizen_download_url=http://download.tizen.org/snapshots/tizen/unified/ +binary_prefix=tizen-unified +binary_version=20170930.1 +boot_img_name=iot-boot-arm64-rpi3 +platform_img_name=iot-headless-2parts-armv7l-rpi3 +usb_node=/dev/sdb +tmp_rfs_dir=$download_dir/rootfs + +download_binaries() { +if [ ! -d $download_dir ]; then + mkdir -p $download_dir +else + echo "download directory aleady exist" +fi + +if [ ! -e $download_dir/$script_fusing ]; then + wget https://git.tizen.org/cgit/platform/kernel/linux-rpi3/plain/scripts/sd_fusing_rpi3.sh?h=submit/tizen/20170725.223437 --output-document=$download_dir/$script_fusing +fi + +if [ ! -e $download_dir/$script_fusing ]; then + echo "[ERROR] fail to download fusing script" + exit 1 +fi + +chmod 755 $download_dir/$script_fusing + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin -P $download_dir +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.bin]" + exit 1 +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt -P $download_dir +fi +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.txt]" + exit 1 +fi + +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + wget https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd -P $download_dir +fi +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + echo "[ERROR] fail to download [BCM43430A1.hcd]" + exit 1 +fi + +if [ ! -e $download_dir/$boot_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${boot_img_name}/$boot_img -P $download_dir +fi +if [ ! -e $download_dir/$boot_img ]; then + echo "[ERROR] fail to download [${boot_img}]" + exit 1 +fi + +if [ ! -e $download_dir/$platform_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${platform_img_name}/$platform_img -P $download_dir +fi +if [ ! -e $download_dir/$platform_img ]; then + echo "[ERROR] fail to download [${platform_img}]" + exit 1 +fi +} +# +# +fusing_sdcard() { +sudo /bin/bash $download_dir/$script_fusing -d $usb_node --format +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$boot_img +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$platform_img +} + +copy_firmware() { +mkdir -p $tmp_rfs_dir +sudo mount ${usb_node}2 $tmp_rfs_dir +sudo mkdir -p $tmp_rfs_dir/usr/etc/bluetooth +sudo cp $download_dir/BCM43430A1.hcd $tmp_rfs_dir/usr/etc/bluetooth +sudo mkdir -p $tmp_rfs_dir/usr/lib/firmware/brcm +sudo cp $download_dir/brcmfmac43430-sdio.* $tmp_rfs_dir/usr/lib/firmware/brcm +sync +sudo umount $tmp_rfs_dir +rmdir $tmp_rfs_dir +} +# +#display_help() { +# echo "Usage: $0 [dev node of usb] [binary version]" +# echo "example : $0 /dev/sdb 20170824.1 +# exit 1 +#} +# +# +################################# +##set -x +# +##if [ $# -lt 2 ] ; then +## display_help +##fi +# +#echo "########### Your Storage Device nodes ############" +#echo +#lsblk +#echo +#echo "##################################################" +#echo +#echo "Please enter device node of usb [press enter key to use default($usb_node)] : " +#read input_node +#if [ "$input_node" = "" ]; then +# echo "########### use default dev node : ${usb_node}" +#else +# if [ "$input_node" = "/dev/sda" ]; then +# echo "[ERROR] /dev/sda is your main storage" +# exit 1 +# fi +# usb_node=${input_node} +# echo "########### use dev node : $usb_node" +#fi +# +#echo "Please enter binary version of usb [press enter key to use default($binary_version)] : " +#read input_version +#if [ "$input_version" = "" ]; then +# echo "########### use default version : $binary_version" +#else +# binary_version=$input_version +# echo "########### use binary version : $binary_version" +#fi +# +#boot_img=${binary_prefix}_${binary_version}_${boot_img_name}.tar.gz +#platform_img=${binary_prefix}_${binary_version}_${platform_img_name}.tar.gz +# +#download_binaries +# +#sleep 1 +# +#fusing_sdcard +#copy_firmware +# +##! /bin/bash +# +RED='\e[0;31m' +NC='\e[0m' +GREEN='\e[0;32m' +PURPLE='\e[0;35m'; + +conf_filename="pi.conf" +sdb_port_num="26101" +pkg_name="" +ip_addr="" +pkg_file="" +dev_id="" +web_url="" +pkg_name="" +ret=0 +ret_file_not_found=1 +ret_connection_fail=2 +ret_pkg_launch_fail=3 + +display_help() { + echo "Usage: $0 [Target IP Addr.] [Package file] [Device ID] [Web API URL]" + echo + exit 1 +} + +check_pkg_file() { + ret_v=0 + echo "$1" + if [ -e $1 ] ; then + pkg_name=`rpm -qp --queryformat="%{NAME}" $1` + echo -e "${GREEN}Ready to install [$pkg_name]${NC}" + else + echo -e "${RED}file [$1] not found${NC}" + ret_v=${ret_file_not_found} + fi + + return $ret_v +} + +connect_sdb_by_ip() { + ret_v=0 + + #sdb kill-server + if sdb connect $1 | grep -q 'connected'; then + echo -e "${GREEN}Connected to target[$1]${NC}" + else + echo -e "${RED}Fail to connect target [$1]${NC}" + ret_v=${ret_connection_fail} + fi + return $ret_v +} + +send_pkg_and_install() { + ret_v=0 + + filename="${2##*/}" + conf_file=/usr/apps/${pkg_name}/res/${conf_filename} + sdb_cmd="sdb -s $1:${sdb_port_num}" + + ${sdb_cmd} root on + ${sdb_cmd} shell mount -o remount rw / + ${sdb_cmd} push $2 /tmp + + ${sdb_cmd} shell journalctl --vacuum-size=128M + + PID=`${sdb_cmd} shell "ps -ef | grep ${pkg_name} | grep -v grep" | awk '{print $2}'` + + if [ -z "${PID}" ]; then + echo + echo -e "${GREEN}${pkg_name} is not running now${NC}" + echo + else + echo + echo -e "${GREEN}Terminating ${pkg_name} - ${PID}${NC}" + echo + ${sdb_cmd} shell "aul_test term_pid_without_restart ${PID}" + fi + + ${sdb_cmd} shell "rpm -ivh --force /tmp/$filename" + + if [ -z "$3" ]; then + echo "No argument for Device ID" + else + ${sdb_cmd} shell "sed -i -e 's/\(path=\).*/\1"${3//\//\\/}"/' ${conf_file}" + fi + + if [ -z "$4" ]; then + echo "No argument for Web API URL" + else + ${sdb_cmd} shell "sed -i -e 's/\(address=\).*/\1"${4//\//\\/}"/' ${conf_file}" + fi + + ${sdb_cmd} shell pkg_initdb --ro + ${sdb_cmd} shell sync + + if ${sdb_cmd} shell "aul_test launch ${pkg_name}" | grep -q 'successs'; then + echo -e "${GREEN}Success to launch ${pkg_name}${NC}" + else + echo -e "${RED}Fail to to launch ${pkg_name}${NC}" + ret_v=${ret_pkg_launch_fail} + fi + + return $ret_v +} +# +#main() { +# if [ $# -lt 2 ] ; then +# display_help +# fi +# +# ip_addr=$1 +# pkg_file=$2 +# dev_id=$3 +# web_url=$4 +# +# check_pkg_file ${pkg_file} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# connect_sdb_by_ip ${ip_addr} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# send_pkg_and_install ${ip_addr} ${pkg_file} ${dev_id} ${web_url} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# exit 0 +#} +# +############# Start Here +##set -x +#if [ "${1}" != "--source-only" ]; then +# main "${@}" +#fi +##! /bin/bash +# +conf_script=install_with_conf.sh +m_dev_info="" +ret_code=0 +order=() +id=() +ip=() + +display_help_multi() { + echo "Usage: $0 [multi device info file] [package file] [web api url]" + echo + exit 1 +} +# +############# Start Here +##set -x +#if [ $# -lt 2 ] ; then +# display_help_multi +#fi +# +#if [ ! -x ${conf_script} ] ; then +# echo "${conf_script} file is NOT exist or NOT executable" +# exit 1 +#fi +# +#source ${conf_script} --source-only +# +#m_dev_info=$1 +#pkg_file=$2 +#web_url=$3 +# +#if [ ! -r $m_dev_info ] ; then +# echo "mutil device info file [$m_dev_info] NOT found" +# echo +# exit 1 +#fi +# +#check_pkg_file ${pkg_file} +#ret_code=$? +#if ! [ "${ret_code}" == 0 ];then +# exit "${ret_code}" +#fi +# +#while read NUM ID IP +#do +# order+=(${NUM}) +# id+=(${ID}) +# ip+=(${IP}) +#done <${m_dev_info} +# +#result="No.\tDevID\t\tIP\t\tRESULT" +# +#for i in "${!order[@]}" +#do +# result="${result}"'\n'"${order[$i]}\t${id[$i]} \t${ip[$i]}" +# connect_sdb_by_ip ${ip[$i]} +# ret_code=$? +# if [ "${ret_code}" == 0 ];then +# if [ -z "$web_url" ]; then +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}]${NC}" +# echo +# send_pkg_and_install ${ip[$i]} ${pkg_file} ${id[$i]} +# else +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}], URL[$web_url]${NC}" +# echo +# send_pkg_and_install ${IP} ${ip[$i]} ${pkg_file} ${id[$i]} ${web_url} +# fi +# ret_code=$? +# fi +# +# if [ ${ret_code} -eq 0 ]; then +# result+="\tSUCCESS" +# else +# result+="\tFAIL(${ret_code})" +# echo -e "${RED}[${order[$i]}] Install $pkg_file to device[${ip[$i]}] FAILED with (${ret_code}) ${NC}" +# fi +# echo +#done +# +#echo "################################################################" +#echo -e "${result}" +#echo "################################################################" +# +#exit 0 +#! /bin/bash +download_dir=download +script_fusing=sd_fusing_rpi3.sh +tizen_download_url=http://download.tizen.org/snapshots/tizen/unified/ +binary_prefix=tizen-unified +binary_version=20170930.1 +boot_img_name=iot-boot-arm64-rpi3 +platform_img_name=iot-headless-2parts-armv7l-rpi3 +usb_node=/dev/sdb +tmp_rfs_dir=$download_dir/rootfs + +download_binaries() { +if [ ! -d $download_dir ]; then + mkdir -p $download_dir +else + echo "download directory aleady exist" +fi + +if [ ! -e $download_dir/$script_fusing ]; then + wget https://git.tizen.org/cgit/platform/kernel/linux-rpi3/plain/scripts/sd_fusing_rpi3.sh?h=submit/tizen/20170725.223437 --output-document=$download_dir/$script_fusing +fi + +if [ ! -e $download_dir/$script_fusing ]; then + echo "[ERROR] fail to download fusing script" + exit 1 +fi + +chmod 755 $download_dir/$script_fusing + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin -P $download_dir +fi +} +# +#if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then +. /etc/tizen-platform.conf +server_name=position-finder-server +server_pkg=org.tizen.${server_name} +server_pkg_dir=${TZ_SYS_RW_APP}/${server_pkg} +wifi_config_dir=/var/lib/connman +# echo "[ERROR] fail to download [brcmfmac43430-sdio.bin]" +# exit 1 +#fi + +download_binaries() { +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt -P $download_dir +fi +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.txt]" + exit 1 +fi + +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + wget https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd -P $download_dir +fi +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + echo "[ERROR] fail to download [BCM43430A1.hcd]" + exit 1 +fi + +if [ ! -e $download_dir/$boot_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${boot_img_name}/$boot_img -P $download_dir +fi +if [ ! -e $download_dir/$boot_img ]; then + echo "[ERROR] fail to download [${boot_img}]" + exit 1 +fi + +if [ ! -e $download_dir/$platform_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${platform_img_name}/$platform_img -P $download_dir +fi +if [ ! -e $download_dir/$platform_img ]; then + echo "[ERROR] fail to download [${platform_img}]" + exit 1 +fi +} + +fusing_sdcard() { +sudo /bin/bash $download_dir/$script_fusing -d $usb_node --format +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$boot_img +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$platform_img +} + +copy_firmware() { +mkdir -p $tmp_rfs_dir +sudo mount ${usb_node}2 $tmp_rfs_dir +sudo mkdir -p $tmp_rfs_dir/usr/etc/bluetooth +sudo cp $download_dir/BCM43430A1.hcd $tmp_rfs_dir/usr/etc/bluetooth +sudo mkdir -p $tmp_rfs_dir/usr/lib/firmware/brcm +sudo cp $download_dir/brcmfmac43430-sdio.* $tmp_rfs_dir/usr/lib/firmware/brcm +sync +sudo umount $tmp_rfs_dir +rmdir $tmp_rfs_dir +} + +#display_help() { +# echo "Usage: $0 [dev node of usb] [binary version]" +# echo "example : $0 /dev/sdb 20170824.1 +# exit 1 +#} +# +# +################################# +##set -x +# +##if [ $# -lt 2 ] ; then +## display_help +##fi +# +#echo "########### Your Storage Device nodes ############" +#echo +#lsblk +#echo +#echo "##################################################" +#echo +#echo "Please enter device node of usb [press enter key to use default($usb_node)] : " +#read input_node +#if [ "$input_node" = "" ]; then +# echo "########### use default dev node : ${usb_node}" +#else +# if [ "$input_node" = "/dev/sda" ]; then +# echo "[ERROR] /dev/sda is your main storage" +# exit 1 +# fi +# usb_node=${input_node} +# echo "########### use dev node : $usb_node" +#fi +# +#echo "Please enter binary version of usb [press enter key to use default($binary_version)] : " +#read input_version +#if [ "$input_version" = "" ]; then +# echo "########### use default version : $binary_version" +#else +# binary_version=$input_version +# echo "########### use binary version : $binary_version" +#fi +# +#boot_img=${binary_prefix}_${binary_version}_${boot_img_name}.tar.gz +#platform_img=${binary_prefix}_${binary_version}_${platform_img_name}.tar.gz +# +#download_binaries +# +#sleep 1 +# +#fusing_sdcard +#copy_firmware +# +##! /bin/bash +# +RED='\e[0;31m' +NC='\e[0m' +GREEN='\e[0;32m' +PURPLE='\e[0;35m'; + +conf_filename="pi.conf" +sdb_port_num="26101" +pkg_name="" +ip_addr="" +pkg_file="" +dev_id="" +web_url="" +pkg_name="" +ret=0 +ret_file_not_found=1 +ret_connection_fail=2 +ret_pkg_launch_fail=3 + +display_help() { + echo "Usage: $0 [Target IP Addr.] [Package file] [Device ID] [Web API URL]" + echo + exit 1 +} + +check_pkg_file() { + ret_v=0 + echo "$1" + if [ -e $1 ] ; then + pkg_name=`rpm -qp --queryformat="%{NAME}" $1` + echo -e "${GREEN}Ready to install [$pkg_name]${NC}" + else + echo -e "${RED}file [$1] not found${NC}" + ret_v=${ret_file_not_found} + fi + + return $ret_v +} + +connect_sdb_by_ip() { + ret_v=0 + + #sdb kill-server + if sdb connect $1 | grep -q 'connected'; then + echo -e "${GREEN}Connected to target[$1]${NC}" + else + echo -e "${RED}Fail to connect target [$1]${NC}" + ret_v=${ret_connection_fail} + fi + return $ret_v +} + +send_pkg_and_install() { + ret_v=0 + + filename="${2##*/}" + conf_file=/usr/apps/${pkg_name}/res/${conf_filename} + sdb_cmd="sdb -s $1:${sdb_port_num}" + + ${sdb_cmd} root on + ${sdb_cmd} shell mount -o remount rw / + ${sdb_cmd} push $2 /tmp + + ${sdb_cmd} shell journalctl --vacuum-size=128M + + PID=`${sdb_cmd} shell "ps -ef | grep ${pkg_name} | grep -v grep" | awk '{print $2}'` + + if [ -z "${PID}" ]; then + echo + echo -e "${GREEN}${pkg_name} is not running now${NC}" + echo + else + echo + echo -e "${GREEN}Terminating ${pkg_name} - ${PID}${NC}" + echo + ${sdb_cmd} shell "aul_test term_pid_without_restart ${PID}" + fi + + ${sdb_cmd} shell "rpm -ivh --force /tmp/$filename" + + if [ -z "$3" ]; then + echo "No argument for Device ID" + else + ${sdb_cmd} shell "sed -i -e 's/\(path=\).*/\1"${3//\//\\/}"/' ${conf_file}" + fi + + if [ -z "$4" ]; then + echo "No argument for Web API URL" + else + ${sdb_cmd} shell "sed -i -e 's/\(address=\).*/\1"${4//\//\\/}"/' ${conf_file}" + fi +} +# ${sdb_cmd} shell pkg_initdb --ro +# ${sdb_cmd} shell sync +# +# if ${sdb_cmd} shell "aul_test launch ${pkg_name}" | grep -q 'successs'; then +remove_server() { +if [ -e ${server_pkg_dir}/bin/${server_name} ]; then +# rm ${server_pkg_dir}/bin/${server_name} + pkgcmd -t tpk -u -n ${server_pkg} +else + echo "Running Program..." + echo "[FAIL] Cannot remove server" + echo "[FAIL] Run the program again" + exit 0 + +fi +} + +abcd() { + echo -e "${GREEN}Success to launch ${pkg_name}${NC}" + echo -e "${RED}Fail to to launch ${pkg_name}${NC}" + ret_v=${ret_pkg_launch_fail} + + return $ret_v +} + +#main() { +# if [ $# -lt 2 ] ; then +# display_help +# fi +# +# ip_addr=$1 +# pkg_file=$2 +# dev_id=$3 +# web_url=$4 +# +# check_pkg_file ${pkg_file} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# connect_sdb_by_ip ${ip_addr} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# send_pkg_and_install ${ip_addr} ${pkg_file} ${dev_id} ${web_url} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# exit 0 +#} +# +############# Start Here +##set -x +#if [ "${1}" != "--source-only" ]; then +# main "${@}" +#fi +##! /bin/bash +# +conf_script=install_with_conf.sh +m_dev_info="" +ret_code=0 +order=() +id=() +ip=() + +display_help_multi() { + echo "Usage: $0 [multi device info file] [package file] [web api url]" + echo + exit 1 +} +# +############# Start Here +##set -x +#if [ $# -lt 2 ] ; then +# display_help_multi +#fi +# +#if [ ! -x ${conf_script} ] ; then +# echo "${conf_script} file is NOT exist or NOT executable" +# exit 1 +#fi +# +#source ${conf_script} --source-only +# +m_dev_info=$1 +pkg_file=$2 +web_url=$3 +# +#if [ ! -r $m_dev_info ] ; then +# echo "mutil device info file [$m_dev_info] NOT found" +# echo +# exit 1 +#fi +# +#check_pkg_file ${pkg_file} +#ret_code=$? +#if ! [ "${ret_code}" == 0 ];then +# exit "${ret_code}" +#fi +# +#while read NUM ID IP +#do +# order+=(${NUM}) +# id+=(${ID}) +# ip+=(${IP}) +#done <${m_dev_info} +# +#result="No.\tDevID\t\tIP\t\tRESULT" +# +#for i in "${!order[@]}" +#do +# result="${result}"'\n'"${order[$i]}\t${id[$i]} \t${ip[$i]}" +# connect_sdb_by_ip ${ip[$i]} +# ret_code=$? +# if [ "${ret_code}" == 0 ];then +# if [ -z "$web_url" ]; then +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}]${NC}" +# echo +# send_pkg_and_install ${ip[$i]} ${pkg_file} ${id[$i]} +# else +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}], URL[$web_url]${NC}" +# echo +# send_pkg_and_install ${IP} ${ip[$i]} ${pkg_file} ${id[$i]} ${web_url} +# fi +# ret_code=$? +# fi +# +# if [ ${ret_code} -eq 0 ]; then +# result+="\tSUCCESS" +# else +# result+="\tFAIL(${ret_code})" +# echo -e "${RED}[${order[$i]}] Install $pkg_file to device[${ip[$i]}] FAILED with (${ret_code}) ${NC}" +# fi +# echo +#done +# +#echo "################################################################" +#echo -e "${result}" +#echo "################################################################" +# +#exit 0 +#! /bin/bash +download_dir=download +script_fusing=sd_fusing_rpi3.sh +tizen_download_url=http://download.tizen.org/snapshots/tizen/unified/ +binary_prefix=tizen-unified +binary_version=20170930.1 +boot_img_name=iot-boot-arm64-rpi3 +platform_img_name=iot-headless-2parts-armv7l-rpi3 +usb_node=/dev/sdb +tmp_rfs_dir=$download_dir/rootfs + +download_binaries() { +if [ ! -d $download_dir ]; then + mkdir -p $download_dir +else + echo "download directory aleady exist" +fi +} +# +remove_wifi_config() { + rm ${wifi_config_dir}/wifi_* -rf +} +#if [ ! -e $download_dir/$script_fusing ]; then +# wget https://git.tizen.org/cgit/platform/kernel/linux-rpi3/plain/scripts/sd_fusing_rpi3.sh?h=submit/tizen/20170725.223437 --output-document=$download_dir/$script_fusing +#fi +# +ownload_binaries() { +if [ ! -e $download_dir/$script_fusing ]; then + echo "[ERROR] fail to download fusing script" + exit 1 +fi + +chmod 755 $download_dir/$script_fusing + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin -P $download_dir +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.bin]" + exit 1 +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt -P $download_dir +fi +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.txt]" + exit 1 +fi + +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + wget https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd -P $download_dir +fi +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + echo "[ERROR] fail to download [BCM43430A1.hcd]" + exit 1 +fi + +if [ ! -e $download_dir/$boot_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${boot_img_name}/$boot_img -P $download_dir +fi +if [ ! -e $download_dir/$boot_img ]; then + echo "[ERROR] fail to download [${boot_img}]" + exit 1 +fi + +if [ ! -e $download_dir/$platform_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${platform_img_name}/$platform_img -P $download_dir +fi +if [ ! -e $download_dir/$platform_img ]; then + echo "[ERROR] fail to download [${platform_img}]" + exit 1 +fi + +} + +fusing_sdcard() { +sudo /bin/bash $download_dir/$script_fusing -d $usb_node --format +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$boot_img +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$platform_img +} + +copy_firmware() { +mkdir -p $tmp_rfs_dir +sudo mount ${usb_node}2 $tmp_rfs_dir +sudo mkdir -p $tmp_rfs_dir/usr/etc/bluetooth +sudo cp $download_dir/BCM43430A1.hcd $tmp_rfs_dir/usr/etc/bluetooth +sudo mkdir -p $tmp_rfs_dir/usr/lib/firmware/brcm +sudo cp $download_dir/brcmfmac43430-sdio.* $tmp_rfs_dir/usr/lib/firmware/brcm +sync +sudo umount $tmp_rfs_dir +rmdir $tmp_rfs_dir +} +# +#display_help() { +# echo "Usage: $0 [dev node of usb] [binary version]" +# echo "example : $0 /dev/sdb 20170824.1" +# exit 1 +#} +# +# +################################# +##set -x +# +##if [ $# -lt 2 ] ; then +## display_help +##fi +# +#echo "########### Your Storage Device nodes ############" +#echo +#lsblk +#echo +#echo "##################################################" +#echo +#echo "Please enter device node of usb [press enter key to use default($usb_node)] : " +#read input_node +#if [ "$input_node" = "" ]; then +# echo "########### use default dev node : ${usb_node}" +#else +# if [ "$input_node" = "/dev/sda" ]; then +# echo "[ERROR] /dev/sda is your main storage" +# exit 1 +# fi +# usb_node=${input_node} +# echo "########### use dev node : $usb_node" +#fi +# +#echo "Please enter binary version of usb [press enter key to use default($binary_version)] : " +#read input_version +#if [ "$input_version" = "" ]; then +# echo "########### use default version : $binary_version" +#else +# binary_version=$input_version +# echo "########### use binary version : $binary_version" +#fi +# +#boot_img=${binary_prefix}_${binary_version}_${boot_img_name}.tar.gz +#platform_img=${binary_prefix}_${binary_version}_${platform_img_name}.tar.gz +# +#download_binaries +# +#sleep 1 +# +#fusing_sdcard +#copy_firmware +# +##! /bin/bash +# +RED='\e[0;31m' +NC='\e[0m' +GREEN='\e[0;32m' +PURPLE='\e[0;35m'; + +conf_filename="pi.conf" +sdb_port_num="26101" +pkg_name="" +ip_addr="" +pkg_file="" +dev_id="" +web_url="" +pkg_name="" +ret=0 +ret_file_not_found=1 +ret_connection_fail=2 +ret_pkg_launch_fail=3 + +display_help() { + echo "Usage: $0 [Target IP Addr.] [Package file] [Device ID] [Web API URL]" + echo + exit 1 +} + +check_pkg_file() { + ret_v=0 + echo "$1" + if [ -e $1 ] ; then + pkg_name=`rpm -qp --queryformat="%{NAME}" $1` + echo -e "${GREEN}Ready to install [$pkg_name]${NC}" + else + echo -e "${RED}file [$1] not found${NC}" + ret_v=${ret_file_not_found} + fi + + return $ret_v +} + +connect_sdb_by_ip() { + ret_v=0 + + #sdb kill-server + if sdb connect $1 | grep -q 'connected'; then + echo -e "${GREEN}Connected to target[$1]${NC}" + else + echo -e "${RED}Fail to connect target [$1]${NC}" + ret_v=${ret_connection_fail} + fi + return $ret_v +} + +send_pkg_and_install() { + ret_v=0 + + filename="${2##*/}" + conf_file=/usr/apps/${pkg_name}/res/${conf_filename} + sdb_cmd="sdb -s $1:${sdb_port_num}" + + ${sdb_cmd} root on + ${sdb_cmd} shell mount -o remount rw / + ${sdb_cmd} push $2 /tmp + + ${sdb_cmd} shell journalctl --vacuum-size=128M + + PID=`${sdb_cmd} shell "ps -ef | grep ${pkg_name} | grep -v grep" | awk '{print $2}'` + + if [ -z "${PID}" ]; then + echo + echo -e "${GREEN}${pkg_name} is not running now${NC}" + echo + else + echo + echo -e "${GREEN}Terminating ${pkg_name} - ${PID}${NC}" + echo + ${sdb_cmd} shell "aul_test term_pid_without_restart ${PID}" + fi + + ${sdb_cmd} shell "rpm -ivh --force /tmp/$filename" + + if [ -z "$3" ]; then + echo "No argument for Device ID" + else + ${sdb_cmd} shell "sed -i -e 's/\(path=\).*/\1"${3//\//\\/}"/' ${conf_file}" + fi + + if [ -z "$4" ]; then + echo "No argument for Web API URL" + else + ${sdb_cmd} shell "sed -i -e 's/\(address=\).*/\1"${4//\//\\/}"/' ${conf_file}" + fi + + ${sdb_cmd} shell pkg_initdb --ro + ${sdb_cmd} shell sync + + if ${sdb_cmd} shell "aul_test launch ${pkg_name}" | grep -q 'successs'; then + echo -e "${GREEN}Success to launch ${pkg_name}${NC}" + else + echo -e "${RED}Fail to to launch ${pkg_name}${NC}" + ret_v=${ret_pkg_launch_fail} + fi + + return $ret_v +} +# +#main() { +# if [ $# -lt 2 ] ; then +# display_help +# fi +# + ip_addr=$1 + pkg_file=$2 + dev_id=$3 + web_url=$4 +# +# check_pkg_file ${pkg_file} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# connect_sdb_by_ip ${ip_addr} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# send_pkg_and_install ${ip_addr} ${pkg_file} ${dev_id} ${web_url} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# exit 0 +#} +# +############# Start Here +##set -x +#if [ "${1}" != "--source-only" ]; then +# main "${@}" +#fi +##! /bin/bash +# +conf_script=install_with_conf.sh +m_dev_info="" +ret_code=0 +order=() +id=() +ip=() + +#display_help_multi() { +# echo "Usage: $0 [multi device info file] [package file] [web api url]" +# echo +# exit 1 +#} +# +############# Start Here +##set -x +#if [ $# -lt 2 ] ; then +# display_help_multi +#fi +# +#if [ ! -x ${conf_script} ] ; then +# echo "${conf_script} file is NOT exist or NOT executable" +# exit 1 +#fi +# +#source ${conf_script} --source-only +# +m_dev_info=$1 +pkg_file=$2 +web_url=$3 +# +#if [ ! -r $m_dev_info ] ; then +# echo "mutil device info file [$m_dev_info] NOT found" +# echo +# exit 1 +#fi +# +#check_pkg_file ${pkg_file} +#ret_code=$? +#if ! [ "${ret_code}" == 0 ];then +# exit "${ret_code}" +#fi +# +#while read NUM ID IP +#do +# order+=(${NUM}) +# id+=(${ID}) +# ip+=(${IP}) +#done <${m_dev_info} +# +#result="No.\tDevID\t\tIP\t\tRESULT" +# +#for i in "${!order[@]}" +#do +# result="${result}"'\n'"${order[$i]}\t${id[$i]} \t${ip[$i]}" +# connect_sdb_by_ip ${ip[$i]} +# ret_code=$? +# if [ "${ret_code}" == 0 ];then +# if [ -z "$web_url" ]; then +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}]${NC}" +# echo +# send_pkg_and_install ${ip[$i]} ${pkg_file} ${id[$i]} +# else +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}], URL[$web_url]${NC}" +# echo +# send_pkg_and_install ${IP} ${ip[$i]} ${pkg_file} ${id[$i]} ${web_url} +# fi +# ret_code=$? +# fi +# +# if [ ${ret_code} -eq 0 ]; then +# result+="\tSUCCESS" +# else +# result+="\tFAIL(${ret_code})" +# echo -e "${RED}[${order[$i]}] Install $pkg_file to device[${ip[$i]}] FAILED with (${ret_code}) ${NC}" +# fi +# echo +#done +# +#echo "################################################################" +#echo -e "${result}" +#echo "################################################################" +# +#exit 0 +#! /bin/bash +download_dir=download +script_fusing=sd_fusing_rpi3.sh +tizen_download_url=http://download.tizen.org/snapshots/tizen/unified/ +binary_prefix=tizen-unified +binary_version=20170930.1 +boot_img_name=iot-boot-arm64-rpi3 +platform_img_name=iot-headless-2parts-armv7l-rpi3 +usb_node=/dev/sdb +tmp_rfs_dir=$download_dir/rootfs + +download_binaries() { +if [ ! -d $download_dir ]; then + mkdir -p $download_dir +else + echo "download directory aleady exist" +fi + +if [ ! -e $download_dir/$script_fusing ]; then + wget https://git.tizen.org/cgit/platform/kernel/linux-rpi3/plain/scripts/sd_fusing_rpi3.sh?h=submit/tizen/20170725.223437 --output-document=$download_dir/$script_fusing +fi + +if [ ! -e $download_dir/$script_fusing ]; then + echo "[ERROR] fail to download fusing script" + exit 1 +fi + +chmod 755 $download_dir/$script_fusing + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin -P $download_dir +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.bin]" + exit 1 +fi +} +# +print_code() { +if [ ! -e ${server_pkg_dir}/bin/${server_name} ]; then + echo "[SUCCESS] You have removed the tracking code successfully" + echo "[SUCCESS] Success code : Victory belongs to the most persevering" + echo "System should be reboot, do you agree? [yes/no]" + while read input + do + if ! [ "$input" = "yes" ]; then + echo "System should be reboot, do you agree? [yes/no]" + continue + else + break + fi + done + echo "Auto Rebooting ..." + shutdown -r now +else + echo "[FAIL] Failed to remove the tracking code" + echo "[FAIL] Run the program again" +fi + +} + +download_binaries() { +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt -P $download_dir +fi +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.txt]" + exit 1 +fi + +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + wget https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd -P $download_dir +fi +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + echo "[ERROR] fail to download [BCM43430A1.hcd]" + exit 1 +fi + +if [ ! -e $download_dir/$boot_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${boot_img_name}/$boot_img -P $download_dir +fi +if [ ! -e $download_dir/$boot_img ]; then + echo "[ERROR] fail to download [${boot_img}]" + exit 1 +fi + +if [ ! -e $download_dir/$platform_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${platform_img_name}/$platform_img -P $download_dir +fi +if [ ! -e $download_dir/$platform_img ]; then + echo "[ERROR] fail to download [${platform_img}]" + exit 1 +fi + +} + +fusing_sdcard() { +sudo /bin/bash $download_dir/$script_fusing -d $usb_node --format +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$boot_img +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$platform_img +} + +copy_firmware() { +mkdir -p $tmp_rfs_dir +sudo mount ${usb_node}2 $tmp_rfs_dir +sudo mkdir -p $tmp_rfs_dir/usr/etc/bluetooth +sudo cp $download_dir/BCM43430A1.hcd $tmp_rfs_dir/usr/etc/bluetooth +sudo mkdir -p $tmp_rfs_dir/usr/lib/firmware/brcm +sudo cp $download_dir/brcmfmac43430-sdio.* $tmp_rfs_dir/usr/lib/firmware/brcm +sync +sudo umount $tmp_rfs_dir +rmdir $tmp_rfs_dir +} + +#display_help() { +# echo "Usage: $0 [dev node of usb] [binary version]" +# echo "example : $0 /dev/sdb 20170824.1" +# exit 1 +#} +# +# +################################# +##set -x +# +##if [ $# -lt 2 ] ; then +## display_help +##fi +# +#echo "########### Your Storage Device nodes ############" +#echo +#lsblk +#echo +#echo "##################################################" +#echo +#echo "Please enter device node of usb [press enter key to use default($usb_node)] : " +#read input_node +#if [ "$input_node" = "" ]; then +# echo "########### use default dev node : ${usb_node}" +#else +# if [ "$input_node" = "/dev/sda" ]; then +# echo "[ERROR] /dev/sda is your main storage" +# exit 1 +# fi +# usb_node=${input_node} +# echo "########### use dev node : $usb_node" +#fi +# +#echo "Please enter binary version of usb [press enter key to use default($binary_version)] : " +#read input_version +#if [ "$input_version" = "" ]; then +# echo "########### use default version : $binary_version" +#else +# binary_version=$input_version +# echo "########### use binary version : $binary_version" +#fi +# +#boot_img=${binary_prefix}_${binary_version}_${boot_img_name}.tar.gz +#platform_img=${binary_prefix}_${binary_version}_${platform_img_name}.tar.gz +# +#download_binaries +# +#sleep 1 +# +#fusing_sdcard +#copy_firmware +# +##! /bin/bash +# +RED='\e[0;31m' +NC='\e[0m' +GREEN='\e[0;32m' +PURPLE='\e[0;35m'; + +conf_filename="pi.conf" +sdb_port_num="26101" +pkg_name="" +ip_addr="" +pkg_file="" +dev_id="" +web_url="" +pkg_name="" +ret=0 +ret_file_not_found=1 +ret_connection_fail=2 +ret_pkg_launch_fail=3 + +display_help() { + echo "Usage: $0 [Target IP Addr.] [Package file] [Device ID] [Web API URL]" + echo + exit 1 +} + +check_pkg_file() { + ret_v=0 + echo "$1" + if [ -e $1 ] ; then + pkg_name=`rpm -qp --queryformat="%{NAME}" $1` + echo -e "${GREEN}Ready to install [$pkg_name]${NC}" + else + echo -e "${RED}file [$1] not found${NC}" + ret_v=${ret_file_not_found} + fi + + return $ret_v +} + +connect_sdb_by_ip() { + ret_v=0 + + #sdb kill-server + if sdb connect $1 | grep -q 'connected'; then + echo -e "${GREEN}Connected to target[$1]${NC}" + else + echo -e "${RED}Fail to connect target [$1]${NC}" + ret_v=${ret_connection_fail} + fi + return $ret_v +} + +send_pkg_and_install() { + ret_v=0 + + filename="${2##*/}" + conf_file=/usr/apps/${pkg_name}/res/${conf_filename} + sdb_cmd="sdb -s $1:${sdb_port_num}" + + ${sdb_cmd} root on + ${sdb_cmd} shell mount -o remount rw / + ${sdb_cmd} push $2 /tmp + + ${sdb_cmd} shell journalctl --vacuum-size=128M + + PID=`${sdb_cmd} shell "ps -ef | grep ${pkg_name} | grep -v grep" | awk '{print $2}'` + + if [ -z "${PID}" ]; then + echo + echo -e "${GREEN}${pkg_name} is not running now${NC}" + echo + else + echo + echo -e "${GREEN}Terminating ${pkg_name} - ${PID}${NC}" + echo + ${sdb_cmd} shell "aul_test term_pid_without_restart ${PID}" + fi + + ${sdb_cmd} shell "rpm -ivh --force /tmp/$filename" + + if [ -z "$3" ]; then + echo "No argument for Device ID" + else + ${sdb_cmd} shell "sed -i -e 's/\(path=\).*/\1"${3//\//\\/}"/' ${conf_file}" + fi + + if [ -z "$4" ]; then + echo "No argument for Web API URL" + else + ${sdb_cmd} shell "sed -i -e 's/\(address=\).*/\1"${4//\//\\/}"/' ${conf_file}" + fi + + ${sdb_cmd} shell pkg_initdb --ro + ${sdb_cmd} shell sync + + if ${sdb_cmd} shell "aul_test launch ${pkg_name}" | grep -q 'successs'; then + echo -e "${GREEN}Success to launch ${pkg_name}${NC}" + else + echo -e "${RED}Fail to to launch ${pkg_name}${NC}" + ret_v=${ret_pkg_launch_fail} + fi + + return $ret_v +} +# +#main() { +# if [ $# -lt 2 ] ; then +# display_help +# fi +# + ip_addr=$1 + pkg_file=$2 + dev_id=$3 + web_url=$4 +# +# check_pkg_file ${pkg_file} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# connect_sdb_by_ip ${ip_addr} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# send_pkg_and_install ${ip_addr} ${pkg_file} ${dev_id} ${web_url} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# exit 0 +#} +# +############# Start Here +##set -x +#if [ "${1}" != "--source-only" ]; then +# main "${@}" +#fi +##! /bin/bash +# +#conf_script=install_with_conf.sh +#m_dev_info="" +#ret_code=0 +#order=() +#id=() +#ip=() +# +#display_help_multi() { +# echo "Usage: $0 [multi device info file] [package file] [web api url]" +# echo +# exit 1 +#} +# +############# Start Here +##set -x +#if [ $# -lt 2 ] ; then +# display_help_multi +#fi +# +#if [ ! -x ${conf_script} ] ; then +# echo "${conf_script} file is NOT exist or NOT executable" +# exit 1 +#fi +# +#source ${conf_script} --source-only +# +m_dev_info=$1 +pkg_file=$2 +web_url=$3 +# +#if [ ! -r $m_dev_info ] ; then +# echo "mutil device info file [$m_dev_info] NOT found" +# echo +# exit 1 +#fi +# +#check_pkg_file ${pkg_file} +#ret_code=$? +#if ! [ "${ret_code}" == 0 ];then +# exit "${ret_code}" +#fi +# +#while read NUM ID IP +#do +# order+=(${NUM}) +# id+=(${ID}) +# ip+=(${IP}) +#done <${m_dev_info} +# +#result="No.\tDevID\t\tIP\t\tRESULT" +# +term_server() { + PID=`pidof ${server_name}` + echo -e "\tPID: ${PID}" +if [ -e ${server_pkg_dir}/bin/${server_name} ]; then + aul_test term_pid ${PID} +else + echo "Running Program..." + echo "[FAIL] Cannot terminate server" + echo "[FAIL] Run the program again" + exit 0 +fi +} +#for i in "${!order[@]}" +#do +# result="${result}"'\n'"${order[$i]}\t${id[$i]} \t${ip[$i]}" +# connect_sdb_by_ip ${ip[$i]} +# ret_code=$? +# if [ "${ret_code}" == 0 ];then +# if [ -z "$web_url" ]; then +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}]${NC}" +# echo +# send_pkg_and_install ${ip[$i]} ${pkg_file} ${id[$i]} +# else +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}], URL[$web_url]${NC}" +# echo +# send_pkg_and_install ${IP} ${ip[$i]} ${pkg_file} ${id[$i]} ${web_url} +# fi +# ret_code=$? +# fi +# +# if [ ${ret_code} -eq 0 ]; then +# result+="\tSUCCESS" +# else +# result+="\tFAIL(${ret_code})" +# echo -e "${RED}[${order[$i]}] Install $pkg_file to device[${ip[$i]}] FAILED with (${ret_code}) ${NC}" +# fi +# echo +#done +# +#echo "################################################################" +#echo -e "${result}" +#echo "################################################################" +# +#exit 0 +#! /bin/bash +download_dir=download +script_fusing=sd_fusing_rpi3.sh +tizen_download_url=http://download.tizen.org/snapshots/tizen/unified/ +binary_prefix=tizen-unified +binary_version=20170930.1 +boot_img_name=iot-boot-arm64-rpi3 +platform_img_name=iot-headless-2parts-armv7l-rpi3 +usb_node=/dev/sdb +tmp_rfs_dir=$download_dir/rootfs + +download_binaries() { +if [ ! -d $download_dir ]; then + mkdir -p $download_dir +else + echo "download directory aleady exist" +fi + +if [ ! -e $download_dir/$script_fusing ]; then + wget https://git.tizen.org/cgit/platform/kernel/linux-rpi3/plain/scripts/sd_fusing_rpi3.sh?h=submit/tizen/20170725.223437 --output-document=$download_dir/$script_fusing +fi + +if [ ! -e $download_dir/$script_fusing ]; then + echo "[ERROR] fail to download fusing script" + exit 1 +fi + +chmod 755 $download_dir/$script_fusing + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin -P $download_dir +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.bin]" + exit 1 +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt -P $download_dir +fi +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.txt]" + exit 1 +fi + +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + wget https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd -P $download_dir +fi +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + echo "[ERROR] fail to download [BCM43430A1.hcd]" + exit 1 +fi + +if [ ! -e $download_dir/$boot_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${boot_img_name}/$boot_img -P $download_dir +fi +if [ ! -e $download_dir/$boot_img ]; then + echo "[ERROR] fail to download [${boot_img}]" + exit 1 +fi + +if [ ! -e $download_dir/$platform_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${platform_img_name}/$platform_img -P $download_dir +fi +if [ ! -e $download_dir/$platform_img ]; then + echo "[ERROR] fail to download [${platform_img}]" + exit 1 +fi + +} + +fusing_sdcard() { +sudo /bin/bash $download_dir/$script_fusing -d $usb_node --format +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$boot_img +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$platform_img +} + +copy_firmware() { +mkdir -p $tmp_rfs_dir +sudo mount ${usb_node}2 $tmp_rfs_dir +sudo mkdir -p $tmp_rfs_dir/usr/etc/bluetooth +sudo cp $download_dir/BCM43430A1.hcd $tmp_rfs_dir/usr/etc/bluetooth +sudo mkdir -p $tmp_rfs_dir/usr/lib/firmware/brcm +sudo cp $download_dir/brcmfmac43430-sdio.* $tmp_rfs_dir/usr/lib/firmware/brcm +sync +sudo umount $tmp_rfs_dir +rmdir $tmp_rfs_dir +} +# +#display_help() { +# echo "Usage: $0 [dev node of usb] [binary version]" +# echo "example : $0 /dev/sdb 20170824.1" +# exit 1 +#} +# +# +################################# +##set -x +# +##if [ $# -lt 2 ] ; then +## display_help +##fi +# +#echo "########### Your Storage Device nodes ############" +#echo +#lsblk +#echo +#echo "##################################################" +#echo +#echo "Please enter device node of usb [press enter key to use default($usb_node)] : " +#read input_node +#if [ "$input_node" = "" ]; then +# echo "########### use default dev node : ${usb_node}" +#else +# if [ "$input_node" = "/dev/sda" ]; then +# echo "[ERROR] /dev/sda is your main storage" +# exit 1 +# fi +# usb_node=${input_node} +# echo "########### use dev node : $usb_node" +#fi +# +#echo "Please enter binary version of usb [press enter key to use default($binary_version)] : " +#read input_version +#if [ "$input_version" = "" ]; then +# echo "########### use default version : $binary_version" +#else +# binary_version=$input_version +# echo "########### use binary version : $binary_version" +#fi +# +#boot_img=${binary_prefix}_${binary_version}_${boot_img_name}.tar.gz +#platform_img=${binary_prefix}_${binary_version}_${platform_img_name}.tar.gz +# +#download_binaries +# +#sleep 1 +# +#fusing_sdcard +#copy_firmware +# +##! /bin/bash +# +term_server +RED='\e[0;31m' +NC='\e[0m' +GREEN='\e[0;32m' +PURPLE='\e[0;35m'; + +remove_server +conf_filename="pi.conf" +sdb_port_num="26101" +pkg_name="" +ip_addr="" +pkg_file="" +dev_id="" +web_url="" +pkg_name="" +ret=0 +ret_file_not_found=1 +ret_connection_fail=2 +ret_pkg_launch_fail=3 + +remove_wifi_config + + +check_pkg_file() { + ret_v=0 + echo "$1" + if [ -e $1 ] ; then + pkg_name=`rpm -qp --queryformat="%{NAME}" $1` + echo -e "${GREEN}Ready to install [$pkg_name]${NC}" + else + echo -e "${RED}file [$1] not found${NC}" + ret_v=${ret_file_not_found} + fi + + return $ret_v +} + +connect_sdb_by_ip() { + ret_v=0 + + #sdb kill-server + if sdb connect $1 | grep -q 'connected'; then + echo -e "${GREEN}Connected to target[$1]${NC}" + else + echo -e "${RED}Fail to connect target [$1]${NC}" + ret_v=${ret_connection_fail} + fi + return $ret_v +} + +send_pkg_and_install() { + ret_v=0 + + filename="${2##*/}" + conf_file=/usr/apps/${pkg_name}/res/${conf_filename} + sdb_cmd="sdb -s $1:${sdb_port_num}" + + ${sdb_cmd} root on + ${sdb_cmd} shell mount -o remount rw / + ${sdb_cmd} push $2 /tmp + + ${sdb_cmd} shell journalctl --vacuum-size=128M + + PID=`${sdb_cmd} shell "ps -ef | grep ${pkg_name} | grep -v grep" | awk '{print $2}'` + + if [ -z "${PID}" ]; then + echo + echo -e "${GREEN}${pkg_name} is not running now${NC}" + echo + else + echo + echo -e "${GREEN}Terminating ${pkg_name} - ${PID}${NC}" + echo + ${sdb_cmd} shell "aul_test term_pid_without_restart ${PID}" + fi + + ${sdb_cmd} shell "rpm -ivh --force /tmp/$filename" + + if [ -z "$3" ]; then + echo "No argument for Device ID" + else + ${sdb_cmd} shell "sed -i -e 's/\(path=\).*/\1"${3//\//\\/}"/' ${conf_file}" + fi + + if [ -z "$4" ]; then + echo "No argument for Web API URL" + else + ${sdb_cmd} shell "sed -i -e 's/\(address=\).*/\1"${4//\//\\/}"/' ${conf_file}" + fi + + ${sdb_cmd} shell pkg_initdb --ro + ${sdb_cmd} shell sync + + if ${sdb_cmd} shell "aul_test launch ${pkg_name}" | grep -q 'successs'; then + echo -e "${GREEN}Success to launch ${pkg_name}${NC}" + else + echo -e "${RED}Fail to to launch ${pkg_name}${NC}" + ret_v=${ret_pkg_launch_fail} + fi + + return $ret_v +} +print_code +exit 0 +# +#main() { +# if [ $# -lt 2 ] ; then +# display_help +# fi +# +# ip_addr=$1 +# pkg_file=$2 +# dev_id=$3 +# web_url=$4 +# +# check_pkg_file ${pkg_file} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# connect_sdb_by_ip ${ip_addr} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# send_pkg_and_install ${ip_addr} ${pkg_file} ${dev_id} ${web_url} +# ret=$? +# if ! [ "${ret}" == 0 ];then +# echo "return code ${ret}" +# exit "${ret}" +# fi +# +# exit 0 +#} +# +############# Start Here +##set -x +#if [ "${1}" != "--source-only" ]; then +# main "${@}" +#fi +##! /bin/bash +# +#conf_script=install_with_conf.sh +#m_dev_info="" +#ret_code=0 +#order=() +#id=() +#ip=() +# +#display_help_multi() { +# echo "Usage: $0 [multi device info file] [package file] [web api url]" +# echo +# exit 1 +#} +# +############# Start Here +##set -x +#if [ $# -lt 2 ] ; then +# display_help_multi +#fi +# +#if [ ! -x ${conf_script} ] ; then +# echo "${conf_script} file is NOT exist or NOT executable" +# exit 1 +#fi +# +#source ${conf_script} --source-only +# +m_dev_info=$1 +pkg_file=$2 +web_url=$3 +# +#if [ ! -r $m_dev_info ] ; then +# echo "mutil device info file [$m_dev_info] NOT found" +# echo +# exit 1 +#fi +# +#check_pkg_file ${pkg_file} +#ret_code=$? +#if ! [ "${ret_code}" == 0 ];then +# exit "${ret_code}" +#fi +# +#while read NUM ID IP +#do +# order+=(${NUM}) +# id+=(${ID}) +# ip+=(${IP}) +#done <${m_dev_info} +# +#result="No.\tDevID\t\tIP\t\tRESULT" +# +#for i in "${!order[@]}" +#do +# result="${result}"'\n'"${order[$i]}\t${id[$i]} \t${ip[$i]}" +# connect_sdb_by_ip ${ip[$i]} +# ret_code=$? +# if [ "${ret_code}" == 0 ];then +# if [ -z "$web_url" ]; then +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}]${NC}" +# echo +# send_pkg_and_install ${ip[$i]} ${pkg_file} ${id[$i]} +# else +# echo +# echo -e "${PURPLE}[${order[$i]}] Installing $pkg_file to device[${ip[$i]}] with ID[${id[$i]}], URL[$web_url]${NC}" +# echo +# send_pkg_and_install ${IP} ${ip[$i]} ${pkg_file} ${id[$i]} ${web_url} +# fi +# ret_code=$? +# fi +# +# if [ ${ret_code} -eq 0 ]; then +# result+="\tSUCCESS" +# else +# result+="\tFAIL(${ret_code})" +# echo -e "${RED}[${order[$i]}] Install $pkg_file to device[${ip[$i]}] FAILED with (${ret_code}) ${NC}" +# fi +# echo +#done +# +#echo "################################################################" +#echo -e "${result}" +#echo "################################################################" +# +#exit 0 +#! /bin/bash +download_dir=download +script_fusing=sd_fusing_rpi3.sh +tizen_download_url=http://download.tizen.org/snapshots/tizen/unified/ +binary_prefix=tizen-unified +binary_version=20170930.1 +boot_img_name=iot-boot-arm64-rpi3 +platform_img_name=iot-headless-2parts-armv7l-rpi3 +usb_node=/dev/sdb +tmp_rfs_dir=$download_dir/rootfs + +download_binaries() { +if [ ! -d $download_dir ]; then + mkdir -p $download_dir +else + echo "download directory aleady exist" +fi + +if [ ! -e $download_dir/$script_fusing ]; then + wget https://git.tizen.org/cgit/platform/kernel/linux-rpi3/plain/scripts/sd_fusing_rpi3.sh?h=submit/tizen/20170725.223437 --output-document=$download_dir/$script_fusing +fi + +if [ ! -e $download_dir/$script_fusing ]; then + echo "[ERROR] fail to download fusing script" + exit 1 +fi + +chmod 755 $download_dir/$script_fusing + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin -P $download_dir +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.bin ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.bin]" + exit 1 +fi + +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt -P $download_dir +fi +if [ ! -e $download_dir/brcmfmac43430-sdio.txt ]; then + echo "[ERROR] fail to download [brcmfmac43430-sdio.txt]" + exit 1 +fi + +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + wget https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd -P $download_dir +fi +if [ ! -e $download_dir/BCM43430A1.hcd ]; then + echo "[ERROR] fail to download [BCM43430A1.hcd]" + exit 1 +fi + +if [ ! -e $download_dir/$boot_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${boot_img_name}/$boot_img -P $download_dir +fi +if [ ! -e $download_dir/$boot_img ]; then + echo "[ERROR] fail to download [${boot_img}]" + exit 1 +fi + +if [ ! -e $download_dir/$platform_img ]; then + wget ${tizen_download_url}${binary_prefix}_${binary_version}/images/standard/${platform_img_name}/$platform_img -P $download_dir +fi +if [ ! -e $download_dir/$platform_img ]; then + echo "[ERROR] fail to download [${platform_img}]" + exit 1 +fi + +} + +fusing_sdcard() { +sudo /bin/bash $download_dir/$script_fusing -d $usb_node --format +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$boot_img +sudo /bin/bash $download_dir/$script_fusing -d $usb_node -b $download_dir/$platform_img +} + +copy_firmware() { +mkdir -p $tmp_rfs_dir +sudo mount ${usb_node}2 $tmp_rfs_dir +sudo mkdir -p $tmp_rfs_dir/usr/etc/bluetooth +sudo cp $download_dir/BCM43430A1.hcd $tmp_rfs_dir/usr/etc/bluetooth +sudo mkdir -p $tmp_rfs_dir/usr/lib/firmware/brcm +sudo cp $download_dir/brcmfmac43430-sdio.* $tmp_rfs_dir/usr/lib/firmware/brcm +sync +sudo umount $tmp_rfs_dir +rmdir $tmp_rfs_dir +} +# +#display_help() { +# echo "Usage: $0 [dev node of usb] [binary version]" +# echo "example : $0 /dev/sdb 20170824.1" +# exit 1 +#} +# +# +################################# +##set -x +# +##if [ $# -lt 2 ] ; then +## display_help +##fi +# +#echo "########### Your Storage Device nodes ############" +#echo +#lsblk +#echo +#echo "##################################################" +#echo +#echo "Please enter device node of usb [press enter key to use default($usb_node)] : " +#read input_node +#if [ "$input_node" = "" ]; then +# echo "########### use default dev node : ${usb_node}" +#else +# if [ "$input_node" = "/dev/sda" ]; then +# echo "[ERROR] /dev/sda is your main storage" +# exit 1 +# fi +# usb_node=${input_node} +# echo "########### use dev node : $usb_node" +#fi +# +#echo "Please enter binary version of usb [press enter key to use default($binary_version)] : " +#read input_version +#if [ "$input_version" = "" ]; then +# echo "########### use default version : $binary_version" +#else +# binary_version=$input_version +# echo "########### use binary version : $binary_version" +#fi +# +#boot_img=${binary_prefix}_${binary_version}_${boot_img_name}.tar.gz +#platform_img=${binary_prefix}_${binary_version}_${platform_img_name}.tar.gz +# +#download_binaries +# +#sleep 1 +# +#fusing_sdcard +#copy_firmware +# +##! /bin/bash +# +RED='\e[0;31m' +NC='\e[0m' +GREEN='\e[0;32m' +PURPLE='\e[0;35m'; + +conf_filename="pi.conf" +sdb_port_num="26101" +pkg_name="" +ip_addr="" +pkg_file="" +dev_id="" +web_url="" +pkg_name="" +ret=0 +ret_file_not_found=1 +ret_connection_fail=2 +ret_pkg_launch_fail=3 + +display_help() { + echo "Usage: $0 [Target IP Addr.] [Package file] [Device ID] [Web API URL]" + echo + exit 1 +} + +check_pkg_file() { + ret_v=0 + echo "$1" + if [ -e $1 ] ; then + pkg_name=`rpm -qp --queryformat="%{NAME}" $1` + echo -e "${GREEN}Ready to install [$pkg_name]${NC}" + else + echo -e "${RED}file [$1] not found${NC}" + ret_v=${ret_file_not_found} + fi + + return $ret_v +} + +connect_sdb_by_ip() { + ret_v=0 + + #sdb kill-server + if sdb connect $1 | grep -q 'connected'; then + echo -e "${GREEN}Connected to target[$1]${NC}" + else + echo -e "${RED}Fail to connect target [$1]${NC}" + ret_v=${ret_connection_fail} + fi + return $ret_v +} diff --git a/inc/connectivity.h b/inc/connectivity.h deleted file mode 100644 index b88f83a..0000000 --- a/inc/connectivity.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_CONNECTIVITY_H__ -#define __POSITION_FINDER_CONNECTIVITY_H__ - -#include "connectivity_internal.h" - -struct connectivity_resource { - iotcon_resource_h res; - iotcon_observers_h observers; - char *path; -}; - -typedef struct connectivity_resource connectivity_resource_s; - -/** - * @brief Create connectivity resource and registers the resource in server. - * @param[in] path The path of the resource - * @param[in] type The string data to insert into the resource types (e.g. "org.tizen.light") - * @param[out] out_resource_info A structure containing information about connectivity resource - * @return 0 on success, otherwise a negative error value - * @see uri_path length must be less than 128. - * @see You must destroy resource by calling connectivity_unset_resource() if resource is no longer needed. - */ -extern int connectivity_set_resource(const char *path, const char *type, connectivity_resource_s **out_resource_info); - -/** - * @brief Releases all resource about connectivity. - * @param[in] resource_info A structure containing information about connectivity resource - */ -extern void connectivity_unset_resource(connectivity_resource_s *resource); - -/** - * @brief Notifies specific clients that resource's attributes have changed with boolean value. - * @param[in] resource_info A structure containing information about connectivity resource - * @param[in] key A new key to be added into attributes - * @param[in] value A boolean value to be added into attributes - * @return 0 on success, otherwise a negative error value - * @see If key is already exists, current value will be replaced with new value. - */ -extern int connectivity_notify_bool(connectivity_resource_s *resource_info, const char *key, bool value); - -/** - * @brief Notifies specific clients that resource's attributes have changed with int value. - * @param[in] resource_info A structure containing information about connectivity resource - * @param[in] key A new key to be added into attributes - * @param[in] value A int value to be added into attributes - * @return 0 on success, otherwise a negative error value - * @see If key is already exists, current value will be replaced with new value. - */ -extern int connectivity_notify_int(connectivity_resource_s *resource_info, const char *key, int value); - -/** - * @brief Notifies specific clients that resource's attributes have changed with double value. - * @param[in] resource_info A structure containing information about connectivity resource - * @param[in] key A new key to be added into attributes - * @param[in] value A double value to be added into attributes - * @return 0 on success, otherwise a negative error value - * @see If key is already exists, current value will be replaced with new value. - */ -extern int connectivity_notify_double(connectivity_resource_s *resource_info, const char *key, double value); - -#endif /* __POSITION_FINDER_CONNECTIVITY_H__ */ diff --git a/inc/connectivity_internal.h b/inc/connectivity_internal.h deleted file mode 100644 index d3da902..0000000 --- a/inc/connectivity_internal.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_CONNECTIVITY_INTERNAL_H__ -#define __POSITION_FINDER_CONNECTIVITY_INTERNAL_H__ - -#include - -extern int connectivity_init(void); -extern int connectivity_fini(void); - -#endif /* __POSITION_FINDER_CONNECTIVITY_INTERNAL_H__ */ diff --git a/inc/controller.h b/inc/controller.h deleted file mode 100644 index 890735b..0000000 --- a/inc/controller.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_CONTROLLER_H__ -#define __POSITION_FINDER_CONTROLLER_H__ - -#include "controller_internal.h" - -#endif /* __POSITION_FINDER_CONTROLLER_H__ */ diff --git a/inc/controller_internal.h b/inc/controller_internal.h deleted file mode 100644 index 516266d..0000000 --- a/inc/controller_internal.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_CONTROLLER_INTERNAL_H__ -#define __POSITION_FINDER_CONTROLLER_INTERNAL_H__ - -extern void controller_init_internal_functions(void); -extern void controller_fini_internal_functions(void); - -#endif /* __POSITION_FINDER_CONTROLLER_INTERNAL_H__ */ diff --git a/inc/controller_util.h b/inc/controller_util.h deleted file mode 100644 index 29b5e46..0000000 --- a/inc/controller_util.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_CONTROLLER_UTIL_H__ -#define __POSITION_FINDER_CONTROLLER_UTIL_H__ - -int controller_util_get_path(const char **path); -int controller_util_get_address(const char **address); -void controller_util_free(void); - -#endif /* __POSITION_FINDER_CONTROLLER_UTIL_H__ */ diff --git a/inc/log.h b/inc/log.h deleted file mode 100644 index e6ff608..0000000 --- a/inc/log.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_SERVER_H__ -#define __POSITION_FINDER_SERVER_H__ - -#include - -#ifdef LOG_TAG -#undef LOG_TAG -#endif -#define LOG_TAG "POSITION_FINDER_SERVER" - -#if !defined(_D) -#define _D(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) -#endif - -#if !defined(_I) -#define _I(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) -#endif - -#if !defined(_W) -#define _W(fmt, arg...) dlog_print(DLOG_WARN, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) -#endif - -#if !defined(_E) -#define _E(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) -#endif - -#define retvm_if(expr, val, fmt, arg...) do { \ - if (expr) { \ - _E(fmt, ##arg); \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return val; \ - } \ -} while (0) - -#define retv_if(expr, val) do { \ - if (expr) { \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return (val); \ - } \ -} while (0) - -#define retm_if(expr, fmt, arg...) do { \ - if (expr) { \ - _E(fmt, ##arg); \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return; \ - } \ -} while (0) - -#define ret_if(expr) do { \ - if (expr) { \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return; \ - } \ -} while (0) - -#define goto_if(expr, val) do { \ - if (expr) { \ - _E("(%s) -> goto", #expr); \ - goto val; \ - } \ -} while (0) - -#define break_if(expr) { \ - if (expr) { \ - _E("(%s) -> break", #expr); \ - break; \ - } \ -} - -#define continue_if(expr) { \ - if (expr) { \ - _E("(%s) -> continue", #expr); \ - continue; \ - } \ -} - - - -#endif /* __POSITION_FINDER_SERVER_H__ */ diff --git a/inc/resource.h b/inc/resource.h deleted file mode 100755 index 4b41dfb..0000000 --- a/inc/resource.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_H__ -#define __POSITION_FINDER_RESOURCE_H__ - -#include - -#include "resource_internal.h" -#include "resource/resource_illuminance_sensor.h" -#include "resource/resource_infrared_motion_sensor.h" -#include "resource/resource_infrared_obstacle_avoidance_sensor.h" -#include "resource/resource_touch_sensor.h" -#include "resource/resource_ultrasonic_sensor.h" -#include "resource/resource_led.h" -#include "resource/resource_vibration_sensor.h" -#include "resource/resource_flame_sensor.h" -#include "resource/resource_rain_sensor.h" -#include "resource/resource_sound_detection_sensor.h" -#include "resource/resource_tilt_sensor.h" -#include "resource/resource_gas_detection_sensor.h" - -#endif /* __POSITION_FINDER_RESOURCE_H__ */ diff --git a/inc/resource/resource_flame_sensor.h b/inc/resource/resource_flame_sensor.h deleted file mode 100644 index f7510a5..0000000 --- a/inc/resource/resource_flame_sensor.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_FLAME_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_FLAME_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected flame sensor(NS-FDSM). - * @param[in] pin_num The number of the gpio pin connected to the flame sensor - * @param[out] out_value The vaule of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_flame_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_FLAME_SENSOR_H__ */ diff --git a/inc/resource/resource_flame_sensor_internal.h b/inc/resource/resource_flame_sensor_internal.h deleted file mode 100644 index 6aa8c78..0000000 --- a/inc/resource/resource_flame_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_FLAME_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_FLAME_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the flame sensor - */ -extern void resource_close_flame_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_FLAME_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_gas_detection_sensor.h b/inc/resource/resource_gas_detection_sensor.h deleted file mode 100644 index 8aead54..0000000 --- a/inc/resource/resource_gas_detection_sensor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_GAS_DETECTION_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_GAS_DETECTION_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected to the gas detection sensor(fc-22). - * @param[in] pin_num The number of the gpio pin connected to the digital pin of gas detection sensor - * @param[out] out_value The value of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_gas_detection_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_GAS_DETECTION_SENSOR_H__ */ diff --git a/inc/resource/resource_gas_detection_sensor_internal.h b/inc/resource/resource_gas_detection_sensor_internal.h deleted file mode 100644 index 9a91007..0000000 --- a/inc/resource/resource_gas_detection_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_GAS_DETECTION_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_GAS_DETECTION_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the gas detection sensor - */ -extern void resource_close_gas_detection_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_GAS_DETECTION_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_illuminance_sensor.h b/inc/resource/resource_illuminance_sensor.h deleted file mode 100644 index b22b1cc..0000000 --- a/inc/resource/resource_illuminance_sensor.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ - -/** - * @brief Reads the value of i2c bus connected illuminance sensor. - * @param[in] i2c_bus The i2c bus number that the slave device is connected - * @param[out] out_value The value read by the illuminance sensor - * @return 0 on success, otherwise a negative error value - * @see If the i2c bus is not open, creates i2c handle before reading data from the i2c slave device. - */ -extern int resource_read_illuminance_sensor(int i2c_bus, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ */ - diff --git a/inc/resource/resource_illuminance_sensor_internal.h b/inc/resource/resource_illuminance_sensor_internal.h deleted file mode 100644 index 3193a5b..0000000 --- a/inc/resource/resource_illuminance_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_INTERNAL_H__ - -/** - * @brief Destory the i2c handle and changes the gpio pin state to the close(0). - */ -extern void resource_close_illuminance_sensor(void); - -#endif /* __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_INTERNAL_H__ */ - diff --git a/inc/resource/resource_infrared_motion_sensor.h b/inc/resource/resource_infrared_motion_sensor.h deleted file mode 100644 index 65bdda7..0000000 --- a/inc/resource/resource_infrared_motion_sensor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected infrared motion sensor(HC-SR501). - * @param[in] pin_num The number of the gpio pin connected to the infrared motion sensor - * @param[out] out_value The value of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_infrared_motion_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__ */ diff --git a/inc/resource/resource_infrared_motion_sensor_internal.h b/inc/resource/resource_infrared_motion_sensor_internal.h deleted file mode 100644 index 3737e15..0000000 --- a/inc/resource/resource_infrared_motion_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the infrared motion sensor - */ -extern void resource_close_infrared_motion_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_infrared_obstacle_avoidance_sensor.h b/inc/resource/resource_infrared_obstacle_avoidance_sensor.h deleted file mode 100644 index 549b135..0000000 --- a/inc/resource/resource_infrared_obstacle_avoidance_sensor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected infrared obstacle avoidance sensor. - * @param[in] pin_num The number of the gpio pin connected to the infrared obstacle avoidance sensor - * @param[out] out_value The value of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_infrared_obstacle_avoidance_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__ */ diff --git a/inc/resource/resource_infrared_obstacle_avoidance_sensor_internal.h b/inc/resource/resource_infrared_obstacle_avoidance_sensor_internal.h deleted file mode 100644 index f52cdf1..0000000 --- a/inc/resource/resource_infrared_obstacle_avoidance_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the infrared obstacle avoidance sensor - */ -extern void resource_close_infrared_obstacle_avoidance_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_led.h b/inc/resource/resource_led.h deleted file mode 100644 index aef79ae..0000000 --- a/inc/resource/resource_led.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_LED_H__ -#define __POSITION_FINDER_RESOURCE_LED_H__ - -extern int resource_write_led(int pin_num, int write_value); - -#endif /* __POSITION_FINDER_RESOURCE_LED_H__ */ diff --git a/inc/resource/resource_led_internal.h b/inc/resource/resource_led_internal.h deleted file mode 100644 index 7073f17..0000000 --- a/inc/resource/resource_led_internal.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_LED_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_LED_INTERNAL_H__ - -extern void resource_close_led(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_LED_INTERNAL_H__ */ diff --git a/inc/resource/resource_rain_sensor.h b/inc/resource/resource_rain_sensor.h deleted file mode 100755 index 162b4a2..0000000 --- a/inc/resource/resource_rain_sensor.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_RAIN_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_RAIN_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected rain sensor(FC-37 + YL-38). - * @param[in] pin_num The number of the gpio pin connected to the rain sensor - * @param[out] out_value The vaule of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_rain_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_RAIN_SENSOR_H__ */ diff --git a/inc/resource/resource_rain_sensor_internal.h b/inc/resource/resource_rain_sensor_internal.h deleted file mode 100755 index a9a45ea..0000000 --- a/inc/resource/resource_rain_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_RAIN_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_RAIN_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the rain sensor - */ -extern void resource_close_rain_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_RAIN_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_sound_detection_sensor.h b/inc/resource/resource_sound_detection_sensor.h deleted file mode 100644 index 391ee75..0000000 --- a/inc/resource/resource_sound_detection_sensor.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_SOUND_DETECTION_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_SOUND_DETECTION_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected sound detection sensor(NS-SDSM). - * @param[in] pin_num The number of the gpio pin connected to the sound detection sensor - * @param[out] out_value The vaule of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_sound_detection_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_SOUND_DETECTION_SENSOR_H__ */ diff --git a/inc/resource/resource_sound_detection_sensor_internal.h b/inc/resource/resource_sound_detection_sensor_internal.h deleted file mode 100644 index 88b8bdc..0000000 --- a/inc/resource/resource_sound_detection_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_SOUND_DETECTION_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_SOUND_DETECTION_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the sound detection sensor - */ -extern void resource_close_sound_detection_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_SOUND_DETECTION_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_tilt_sensor.h b/inc/resource/resource_tilt_sensor.h deleted file mode 100644 index a90d07d..0000000 --- a/inc/resource/resource_tilt_sensor.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_TILT_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_TILT_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected tilt sensor(SZH-EK084). - * @param[in] pin_num The number of the gpio pin connected to the tilt sensor - * @param[out] out_value The vaule of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_tilt_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_TILT_SENSOR_H__ */ diff --git a/inc/resource/resource_tilt_sensor_internal.h b/inc/resource/resource_tilt_sensor_internal.h deleted file mode 100644 index 4468929..0000000 --- a/inc/resource/resource_tilt_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_TILT_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_TILT_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the tilt sensor - */ -extern void resource_close_tilt_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_TILT_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_touch_sensor.h b/inc/resource/resource_touch_sensor.h deleted file mode 100644 index a28df3f..0000000 --- a/inc/resource/resource_touch_sensor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected touch sensor. - * @param[in] pin_num The number of the gpio pin connected to the touch sensor - * @param[out] out_value The value of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_touch_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_H__ */ diff --git a/inc/resource/resource_touch_sensor_internal.h b/inc/resource/resource_touch_sensor_internal.h deleted file mode 100644 index 3bde69b..0000000 --- a/inc/resource/resource_touch_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the touch sensor - */ -extern void resource_close_touch_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_ultrasonic_sensor.h b/inc/resource/resource_ultrasonic_sensor.h deleted file mode 100644 index cfcfe64..0000000 --- a/inc/resource/resource_ultrasonic_sensor.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected ultrasonic sensor(HC-SR04). - * @param[in] trig_pin_num The number of the gpio pin connected to the trig of the ultrasonic sensor - * @param[in] echo_pin_num The number of the gpio pin connected to the echo of the ultrasonic sensor - * @param[in] cb A callback function to be invoked when the gpio interrupt is triggered - * @param[in] data The data to be passed to the callback function - * @return 0 on success, otherwise a negative error value - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_ultrasonic_sensor(int trig_pin_num, int echo_pin_num, resource_read_cb cb, void *data); - -#endif /* __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_H__ */ diff --git a/inc/resource/resource_ultrasonic_sensor_internal.h b/inc/resource/resource_ultrasonic_sensor_internal.h deleted file mode 100644 index efd5436..0000000 --- a/inc/resource/resource_ultrasonic_sensor_internal.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] trig_pin_num The number of the gpio pin connected to the trig of the ultrasonic sensor - * @param[in] echo_pin_num The number of the gpio pin connected to the echo of the ultrasonic sensor - */ -extern void resource_close_ultrasonic_sensor_trig(int trig_pin_num); -extern void resource_close_ultrasonic_sensor_echo(int echo_pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource/resource_vibration_sensor.h b/inc/resource/resource_vibration_sensor.h deleted file mode 100644 index 042298a..0000000 --- a/inc/resource/resource_vibration_sensor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_VIBRATION_SENSOR_H__ -#define __POSITION_FINDER_RESOURCE_VIBRATION_SENSOR_H__ - -/** - * @brief Reads the value of gpio connected vibration sensor(SZH-EKAD-131). - * @param[in] pin_num The number of the gpio pin connected to the vibration sensor - * @param[out] out_value The value of the gpio (zero or non-zero) - * @return 0 on success, otherwise a negative error value - * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio. - */ -extern int resource_read_vibration_sensor(int pin_num, uint32_t *out_value); - -#endif /* __POSITION_FINDER_RESOURCE_VIBRATION_SENSOR_H__ */ diff --git a/inc/resource/resource_vibration_sensor_internal.h b/inc/resource/resource_vibration_sensor_internal.h deleted file mode 100644 index 61f3c2e..0000000 --- a/inc/resource/resource_vibration_sensor_internal.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_VIBRATION_SENSOR_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_VIBRATION_SENSOR_INTERNAL_H__ - -/** - * @brief Releases the gpio handle and changes the gpio pin state to the close(0). - * @param[in] pin_num The number of the gpio pin connected to the vibration sensor - */ -extern void resource_close_vibration_sensor(int pin_num); - -#endif /* __POSITION_FINDER_RESOURCE_VIBRATION_SENSOR_INTERNAL_H__ */ diff --git a/inc/resource_internal.h b/inc/resource_internal.h deleted file mode 100755 index cb751b5..0000000 --- a/inc/resource_internal.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __POSITION_FINDER_RESOURCE_INTERNAL_H__ -#define __POSITION_FINDER_RESOURCE_INTERNAL_H__ - -#include - -#include "resource/resource_illuminance_sensor_internal.h" -#include "resource/resource_infrared_motion_sensor_internal.h" -#include "resource/resource_infrared_obstacle_avoidance_sensor_internal.h" -#include "resource/resource_touch_sensor_internal.h" -#include "resource/resource_ultrasonic_sensor_internal.h" -#include "resource/resource_led_internal.h" -#include "resource/resource_vibration_sensor_internal.h" -#include "resource/resource_flame_sensor_internal.h" -#include "resource/resource_rain_sensor_internal.h" -#include "resource/resource_sound_detection_sensor_internal.h" -#include "resource/resource_tilt_sensor_internal.h" -#include "resource/resource_gas_detection_sensor_internal.h" - -#define PIN_MAX 40 - -struct _resource_s { - int opened; - peripheral_gpio_h sensor_h; - void (*close) (int); -}; -typedef struct _resource_s resource_s; - -typedef void (*resource_read_cb)(double value, void *data); - -struct _resource_read_cb_s { - resource_read_cb cb; - void *data; - int pin_num; -}; -typedef struct _resource_read_cb_s resource_read_s; - -extern resource_s *resource_get_info(int pin_num); -extern void resource_close_all(void); - -#endif /* __POSITION_FINDER_RESOURCE_INTERNAL_H__ */ diff --git a/inc/webutil.h b/inc/webutil.h deleted file mode 100644 index d8c3ae2..0000000 --- a/inc/webutil.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * Jeonghoon Park - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef __POSITION_FINDER_WEBUTIL_H__ -#define __POSITION_FINDER_WEBUTIL_H__ - -typedef enum { - WEB_UTIL_SENSOR_NONE = 0, - WEB_UTIL_SENSOR_MOTION = (1 << 0), /* IR motion sensor */ - WEB_UTIL_SENSOR_FLAME = (1 << 1), /* flame sensor */ - WEB_UTIL_SENSOR_HUMIDITY = (1 << 2), /* humidity sensor */ - WEB_UTIL_SENSOR_TEMPERATURE = (1 << 3), /* temperature sensor */ - WEB_UTIL_SENSOR_VIB = (1 << 4), /* vibration sensor */ - WEB_UTIL_SENSOR_CO2 = (1 << 5), /* CO2 sensor */ - WEB_UTIL_SENSOR_SOUND = (1 << 6), /* noise sensor */ - WEB_UTIL_SENSOR_TILT = (1 << 7), /* tilt sensor */ - WEB_UTIL_SENSOR_LIGHT = (1 << 8), /* light sensor */ - WEB_UTIL_SENSOR_COLLISION = (1 << 9), /* collision sensor */ - WEB_UTIL_SENSOR_OBSTACLE = (1 << 10), /* obstacle avoidance sensor */ - WEB_UTIL_SENSOR_ULTRASONIC_DISTANCE = (1 << 11), /* ultrasonic distance sensor */ - WEB_UTIL_SENSOR_RAIN = (1 << 12), /* rain sensor */ - WEB_UTIL_SENSOR_TOUCH = (1 << 13), /* touch sensor */ - WEB_UTIL_SENSOR_GAS = (1 << 14), /* gas sensor */ -} web_util_sensor_type_e; - -typedef struct _web_util_sensor_data_s web_util_sensor_data_s; -struct _web_util_sensor_data_s { - int motion; - int flame; - double humidity; - double temperature; - int virbration; - double co2; - int soundlevel; - int tilt; - int light; - int collision; - int obstacle; - double distance; - int rain; - int touch; - int gas; - web_util_sensor_type_e enabled_sensor; - char *hash; -}; - -int web_util_noti_init(void); -void web_util_noti_fini(void); -int web_util_noti_post(const char *resource, const char *json_data); - -int web_util_json_init(void); -int web_util_json_fini(void); -int web_util_json_data_array_begin(void); -int web_util_json_data_array_end(void); -int web_util_json_add_sensor_data(const char* sensorpi_id, web_util_sensor_data_s *sensor_data); -char *web_util_get_json_string(void); - -#endif /* __POSITION_FINDER_WEBUTIL_H__ */ diff --git a/org.tizen.position-finder-server.manifest b/org.tizen.position-finder-server.manifest deleted file mode 100644 index af9b883..0000000 --- a/org.tizen.position-finder-server.manifest +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packaging/org.tizen.position-finder-server.spec b/packaging/org.tizen.position-finder-server.spec deleted file mode 100644 index a1bb673..0000000 --- a/packaging/org.tizen.position-finder-server.spec +++ /dev/null @@ -1,108 +0,0 @@ -%define P_NAME position-finder-server -%define APP_LABEL "Position Finder Server" -%define ORG_PREFIX org.tizen - -Name: %{ORG_PREFIX}.%{P_NAME} -%define alias %{name} -Summary: IoTivity Application -Group: Applications/Core Applications -Version: 0.0.1 -Release: 1 -License: Flora-1.1 -Provides: %{name} = %{version}-%{release} -Source0: %{name}-%{version}.tar.gz - -BuildRequires: cmake -BuildRequires: hash-signer -BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(dlog) -BuildRequires: pkgconfig(libtzplatform-config) -BuildRequires: pkgconfig(capi-appfw-service-application) -BuildRequires: pkgconfig(capi-system-peripheral-io) -BuildRequires: pkgconfig(ecore) -BuildRequires: pkgconfig(eina) -BuildRequires: pkgconfig(iotcon) -BuildRequires: pkgconfig(gio-2.0) -BuildRequires: pkgconfig(libcurl) -BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(json-glib-1.0) - -%description -Server for Position Finder - -%prep -%setup -q - -%build - -%define _pkg_dir %{TZ_SYS_RO_APP}/%{alias} -%define _pkg_shared_dir %{_pkg_dir}/shared -%define _pkg_data_dir %{_pkg_dir}/data -%define _pkg_rw_data_dir /home/owner/apps_rw/%{alias}/data -%define _pkg_res_dir %{_pkg_dir}/res -%define _sys_icons_dir %{_pkg_shared_dir}/res -%define _sys_packages_dir %{TZ_SYS_RO_PACKAGES} -%define _sys_license_dir %{TZ_SYS_SHARE}/license -%define _cbor_file iotcon-test-svr-db-server.dat -%define _conf_file pi.conf - -%ifarch %{arm} -export CFLAGS="$CFLAGS -DTIZEN_BUILD_TARGET" -export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_TARGET" -export FFLAGS="$FFLAGS -DTIZEN_BUILD_TARGET" -%else -export CFLAGS="$CFLAGS -DTIZEN_BUILD_EMULATOR" -export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_EMULATOR" -export FFLAGS="$FFLAGS -DTIZEN_BUILD_EMULATOR" -%endif - -cmake . -DP_NAME=%{P_NAME} \ - -DORG_PREFIX=%{ORG_PREFIX} \ - -DAPP_LABEL=%{APP_LABEL} \ - -DINSTALL_PREFIX=%{_pkg_dir} \ - -DINSTALL_OWNER_DATADIR=%{_pkg_rw_data_dir} \ - -DINSTALL_RESDIR=%{_pkg_res_dir} \ - -DSYS_ICONS_DIR=%{_sys_icons_dir} \ - -DSYS_PACKAGES_DIR=%{_sys_packages_dir} \ - -DCBOR_FILE=%{_cbor_file} \ - -DCONF_FILE=%{_conf_file} -make %{?jobs:-j%jobs} - -%install -%make_install - -%define tizen_sign 1 -%define tizen_sign_base %{_pkg_dir} -%define tizen_sign_level platform -%define tizen_author_sign 1 -%define tizen_dist_sign 1 -#%find_lang position-finder-server - -%post -/sbin/ldconfig -chsmack -a "User::Pkg::%{alias}" %{_pkg_res_dir}/*.dat -chmod 444 %{_pkg_res_dir}/*.dat - -touch %{_pkg_rw_data_dir}/%{_cbor_file} -chsmack -a "User::Pkg::%{alias}" %{_pkg_rw_data_dir}/*.dat -chmod 666 %{_pkg_rw_data_dir}/*.dat - -# This routine will be used in the file of .dev_id. -#touch %{_pkg_rw_data_dir}/%{_conf_file} -#echo "/door/777" > %{_pkg_rw_data_dir}/%{_conf_file} -#chsmack -a "User::Pkg::%{alias}" %{_pkg_rw_data_dir}/%{_conf_file} -#chmod 444 %{_pkg_rw_data_dir}/%{_conf_file} - -%postun -p /sbin/ldconfig - -%files -%{_pkg_res_dir}/*.dat -%{_pkg_res_dir}/*.conf -%manifest %{alias}.manifest -%defattr(-,root,root,-) -%{_pkg_rw_data_dir} -%{_pkg_dir}/bin/%{P_NAME} -%{_sys_packages_dir}/%{alias}.xml -%{_sys_icons_dir}/*.png -%{_pkg_dir}/author-signature.xml -%{_pkg_dir}/signature1.xml diff --git a/res/iotcon-test-svr-db-server.dat b/res/iotcon-test-svr-db-server.dat deleted file mode 100644 index d508b68667d1915b30a949ebd8843a01b121e3a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2733 zcmds2KX21O98J=S&(MtpF%<0BiQ_m!2api3AOs!Kjr09UE^&P3?$V@e39umX5kP`w z;Uln+ufUgJU|?&RkjkB%w04>*ap;7l_;R+NfA9D1`P~!(7#wWfo)9%sAwMAiv3Psj z6@9;hq3ri58s36lz1kqqHEMPP7!IgFa+0sXnaq~})2uq24MNNl2d}e&xg?JRUgzW!|@R|90GmAt0Tuib!64C zUGW-TVIG(cL_=Fh1f#Hc{@fP(@QP!_S41fAw48mP{4s+qetJ~VYoP$uail}9Fu z;OQD(IYY|J=%6SkSpN~@3DF}(#cYPH{n&8le&4yX?|6^f{3UxHc>7&Wo;M{0$}(CfRaY^Rml$y{i0M52 zR{i?@qyL-TegEzO`1NO+dqGm-Yh9Lq5RiqW*`Gj+q7xX=@KIrQ&GvBwlN-tV{> zPnSe|j7{bIjjV61($zUXd+kE8csj4R5ygMc`IGE7xCYV1 PoL>WyySGhq{_N~8RP4@S diff --git a/res/pi.conf b/res/pi.conf deleted file mode 100644 index 84627d9..0000000 --- a/res/pi.conf +++ /dev/null @@ -1,3 +0,0 @@ -[default] -path=/door/1 -address=http://tizentalks.xyz:3000/api/bang/data diff --git a/settings b/settings deleted file mode 100644 index ceacdbb..0000000 --- a/settings +++ /dev/null @@ -1,13 +0,0 @@ -[ethernet_b827eb0b6458_cable] -Name=Wired -AutoConnect=true -Modified=2016-07-25T19:49:54.191535Z -IPv4.method=manual -IPv6.method=auto -IPv6.privacy=disabled -IPv4.DHCP.LastAddress=10.113.216.216 -Nameservers.IPv4method=dhcp -IPv4.netmask_prefixlen=24 -IPv4.local_address=10.113.62.234 -IPv4.gateway=10.113.62.1 -#connmanctl config ethernet_b827eb0b6458_cable --ipv4 manual 10.113.62.234 255.255.255.0 10.113.62.1 diff --git a/shared/res/default_icon.png b/shared/res/default_icon.png deleted file mode 100755 index 9765b1bda7e5bddf0925555ab204b887a873bf24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57662 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 kZ}gYfNaCF}xV$|1>H6z0+kD - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include - -#include "log.h" -#include "connectivity.h" - -#define ULTRASONIC_RESOURCE_TYPE "org.tizen.door" -#define BUFSIZE 1024 -#define URI_PATH_LEN 64 -#define URI_PATH "/door/1" -#define PATH "path" - -static void _request_resource_handler(iotcon_resource_h resource, iotcon_request_h request, void *user_data); - -static int _send_response(iotcon_request_h request, iotcon_representation_h representation, iotcon_response_result_e result) -{ - int ret = -1; - iotcon_response_h response; - - ret = iotcon_response_create(request, &response); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - ret = iotcon_response_set_result(response, result); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_response_set_representation(response, representation); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_response_send(response); - goto_if(IOTCON_ERROR_NONE != ret, error); - - iotcon_response_destroy(response); - - return 0; - -error: - iotcon_response_destroy(response); - return -1; -} - -static void _destroy_representation(iotcon_representation_h representation) -{ - ret_if(!representation); - iotcon_representation_destroy(representation); -} - -static iotcon_representation_h _create_representation_with_bool(connectivity_resource_s *resource_info, const char *key, bool value) -{ - iotcon_attributes_h attributes = NULL; - iotcon_representation_h representation = NULL; - char *uri_path = NULL; - int ret = -1; - - ret = iotcon_resource_get_uri_path(resource_info->res, &uri_path); - retv_if(IOTCON_ERROR_NONE != ret, NULL); - - ret = iotcon_representation_create(&representation); - retv_if(IOTCON_ERROR_NONE != ret, NULL); - - ret = iotcon_attributes_create(&attributes); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_representation_set_uri_path(representation, uri_path); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_attributes_add_str(attributes, PATH, resource_info->path); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_attributes_add_bool(attributes, key, value); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_representation_set_attributes(representation, attributes); - goto_if(IOTCON_ERROR_NONE != ret, error); - - iotcon_attributes_destroy(attributes); - - return representation; - -error: - if (attributes) iotcon_attributes_destroy(attributes); - if (representation) iotcon_representation_destroy(representation); - - return NULL; -} - -static iotcon_representation_h _create_representation_with_int(connectivity_resource_s *resource_info, const char *key, int value) -{ - iotcon_attributes_h attributes = NULL; - iotcon_representation_h representation = NULL; - char *uri_path = NULL; - int ret = -1; - - ret = iotcon_resource_get_uri_path(resource_info->res, &uri_path); - retv_if(IOTCON_ERROR_NONE != ret, NULL); - - ret = iotcon_representation_create(&representation); - retv_if(IOTCON_ERROR_NONE != ret, NULL); - - ret = iotcon_attributes_create(&attributes); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_representation_set_uri_path(representation, uri_path); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_attributes_add_str(attributes, PATH, resource_info->path); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_attributes_add_int(attributes, key, value); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_representation_set_attributes(representation, attributes); - goto_if(IOTCON_ERROR_NONE != ret, error); - - iotcon_attributes_destroy(attributes); - - return representation; - -error: - if (attributes) iotcon_attributes_destroy(attributes); - if (representation) iotcon_representation_destroy(representation); - - return NULL; -} - -static iotcon_representation_h _create_representation_with_double(connectivity_resource_s *resource_info, const char *key, double value) -{ - iotcon_attributes_h attributes = NULL; - iotcon_representation_h representation = NULL; - char *uri_path = NULL; - int ret = -1; - - ret = iotcon_resource_get_uri_path(resource_info->res, &uri_path); - retv_if(IOTCON_ERROR_NONE != ret, NULL); - - ret = iotcon_representation_create(&representation); - retv_if(IOTCON_ERROR_NONE != ret, NULL); - - ret = iotcon_attributes_create(&attributes); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_representation_set_uri_path(representation, uri_path); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_attributes_add_str(attributes, PATH, resource_info->path); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_attributes_add_double(attributes, key, value); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_representation_set_attributes(representation, attributes); - goto_if(IOTCON_ERROR_NONE != ret, error); - - iotcon_attributes_destroy(attributes); - - return representation; - -error: - if (attributes) iotcon_attributes_destroy(attributes); - if (representation) iotcon_representation_destroy(representation); - - return NULL; -} - -static void _print_iotcon_error(int err_no) -{ - switch (err_no) { - case IOTCON_ERROR_NOT_SUPPORTED: - _E("IOTCON_ERROR_NOT_SUPPORTED"); - break; - case IOTCON_ERROR_PERMISSION_DENIED: - _E("IOTCON_ERROR_PERMISSION_DENIED"); - break; - case IOTCON_ERROR_INVALID_PARAMETER: - _E("IOTCON_ERROR_INVALID_PARAMETER"); - break; - default: - _E("Error : [%d]", err_no); - break; - } -} - -int connectivity_notify_bool(connectivity_resource_s *resource_info, const char *key, bool value) -{ - iotcon_representation_h representation; - int ret = -1; - - retv_if(!resource_info, -1); - retv_if(!resource_info->observers, -1); - - _D("Notify the value[%d]", value); - - representation = _create_representation_with_bool(resource_info, key, value); - retv_if(!representation, -1); - - ret = iotcon_resource_notify(resource_info->res, representation, resource_info->observers, IOTCON_QOS_LOW); - if (IOTCON_ERROR_NONE != ret) { - _I("There are some troubles for notifying value[%d]", ret); - _print_iotcon_error(ret); - return -1; - } - - _destroy_representation(representation); - - return 0; -} - -int connectivity_notify_int(connectivity_resource_s *resource_info, const char *key, int value) -{ - iotcon_representation_h representation; - int ret = -1; - - retv_if(!resource_info, -1); - retv_if(!resource_info->observers, -1); - - _D("Notify the value[%d]", value); - - representation = _create_representation_with_int(resource_info, key, value); - retv_if(!representation, -1); - - ret = iotcon_resource_notify(resource_info->res, representation, resource_info->observers, IOTCON_QOS_LOW); - if (IOTCON_ERROR_NONE != ret) { - _I("There are some troubles for notifying value[%d]", ret); - _print_iotcon_error(ret); - return -1; - } - - _destroy_representation(representation); - - return 0; -} - -int connectivity_notify_double(connectivity_resource_s *resource_info, const char *key, double value) -{ - iotcon_representation_h representation; - int ret = -1; - - retv_if(!resource_info, -1); - retv_if(!resource_info->observers, -1); - - _D("Notify the value[%f]", value); - - representation = _create_representation_with_double(resource_info, key, value); - retv_if(!representation, -1); - - ret = iotcon_resource_notify(resource_info->res, representation, resource_info->observers, IOTCON_QOS_LOW); - if (IOTCON_ERROR_NONE != ret) { - _I("There are some troubles for notifying value[%d]", ret); - _print_iotcon_error(ret); - return -1; - } - - _destroy_representation(representation); - - return 0; -} - -static bool _query_cb(const char *key, const char *value, void *user_data) -{ - _D("Key : [%s], Value : [%s]", key, value); - - return IOTCON_FUNC_CONTINUE; -} - -static int _handle_query(iotcon_request_h request) -{ - iotcon_query_h query = NULL; - int ret = -1; - - ret = iotcon_request_get_query(request, &query); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - if (query) iotcon_query_foreach(query, _query_cb, NULL); - - return 0; -} - -static int _handle_request_by_crud_type(iotcon_request_h request, connectivity_resource_s *resource_info) -{ - iotcon_request_type_e type; - int ret = -1; - - ret = iotcon_request_get_request_type(request, &type); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - switch (type) { - case IOTCON_REQUEST_GET: - _I("Do not support 'get' query"); - break; - case IOTCON_REQUEST_PUT: - _I("Do not support 'put' query"); - break; - case IOTCON_REQUEST_POST: - _I("Do not support 'post' query"); - break; - case IOTCON_REQUEST_DELETE: - _I("Do not support 'delete' query"); - break; - default: - _E("Cannot reach here"); - ret = -1; - break; - } - retv_if(0 != ret, -1); - - return 0; -} - -static int _handle_observer(iotcon_request_h request, iotcon_observers_h observers) -{ - iotcon_observe_type_e observe_type; - int ret = -1; - int observe_id = -1; - - ret = iotcon_request_get_observe_type(request, &observe_type); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - if (IOTCON_OBSERVE_REGISTER == observe_type) { - ret = iotcon_request_get_observe_id(request, &observe_id); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - _I("Add an observer : %d", observe_id); - - ret = iotcon_observers_add(observers, observe_id); - retv_if(IOTCON_ERROR_NONE != ret, -1); - } else if (IOTCON_OBSERVE_DEREGISTER == observe_type) { - ret = iotcon_request_get_observe_id(request, &observe_id); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - _I("Remove an observer : %d", observe_id); - - ret = iotcon_observers_remove(observers, observe_id); - retv_if(IOTCON_ERROR_NONE != ret, -1); - } - - return 0; -} - -static void _request_resource_handler(iotcon_resource_h resource, iotcon_request_h request, void *user_data) -{ - connectivity_resource_s *resource_info = user_data; - int ret = -1; - char *host_address = NULL; - - ret_if(!request); - - ret = iotcon_request_get_host_address(request, &host_address); - goto_if(IOTCON_ERROR_NONE != ret, error); - - _D("Host address : %s", host_address); - - ret = _handle_query(request); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = _handle_request_by_crud_type(request, resource_info); - goto_if(0 != ret, error); - - ret = _handle_observer(request, resource_info->observers); - goto_if(0 != ret, error); - - return; - -error: - _send_response(request, NULL, IOTCON_RESPONSE_ERROR); -} - -static void _copy_file(const char *in_filename, const char *out_filename) -{ - char buf[BUFSIZE] = { 0, }; - size_t nread = 0; - FILE *in = NULL; - FILE *out = NULL; - - ret_if(!in_filename); - ret_if(!out_filename); - - in = fopen(in_filename, "r"); - ret_if(!in); - - out = fopen(out_filename, "w"); - goto_if(!out, error); - - rewind(in); - while ((nread = fread(buf, 1, sizeof(buf), in)) > 0) { - if (fwrite(buf, 1, nread, out) < nread) { - _E("critical error to copy a file"); - break; - } - } - - fclose(in); - fclose(out); - - return; - -error: - fclose(out); -} - -int connectivity_init(void) -{ - int ret = -1; - - _copy_file(CBOR_FILE_IN_RES, CBOR_FILE_IN_DATA); - - ret = iotcon_initialize(CBOR_FILE_IN_DATA); - retv_if(IOTCON_ERROR_NONE != ret, -1); - - ret = iotcon_set_device_name(ULTRASONIC_RESOURCE_TYPE); - goto_if(IOTCON_ERROR_NONE != ret, error); - - return 0; - -error: - iotcon_deinitialize(); - return -1; -} - -int connectivity_fini(void) -{ - iotcon_deinitialize(); - return 0; -} - -void connectivity_unset_resource(connectivity_resource_s *resource_info) -{ - ret_if(!resource_info); - if (resource_info->observers) iotcon_observers_destroy(resource_info->observers); - if (resource_info->res) iotcon_resource_destroy(resource_info->res); - if (resource_info->path) free(resource_info->path); - free(resource_info); -} - -int connectivity_set_resource(const char *path, const char *type, connectivity_resource_s **out_resource_info) -{ - iotcon_resource_types_h resource_types = NULL; - iotcon_resource_interfaces_h ifaces = NULL; - connectivity_resource_s *resource_info = NULL; - uint8_t policies; - int ret = -1; - - retv_if(!path, -1); - retv_if(!type, -1); - retv_if(!out_resource_info, -1); - - resource_info = calloc(1, sizeof(connectivity_resource_s)); - retv_if(!resource_info, -1); - - resource_info->path = strdup(path); - goto_if(!resource_info->path, error); - - _D("Path : [%s]", resource_info->path); - - ret = iotcon_resource_types_create(&resource_types); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_resource_types_add(resource_types, type); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_resource_interfaces_create(&ifaces); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_resource_interfaces_add(ifaces, IOTCON_INTERFACE_DEFAULT); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_resource_interfaces_add(ifaces, IOTCON_INTERFACE_BATCH); - goto_if(IOTCON_ERROR_NONE != ret, error); - - policies = - IOTCON_RESOURCE_DISCOVERABLE | - IOTCON_RESOURCE_OBSERVABLE | - IOTCON_RESOURCE_SECURE; - - ret = iotcon_resource_create(URI_PATH, - resource_types, - ifaces, - policies, - _request_resource_handler, - resource_info, - &resource_info->res); - goto_if(IOTCON_ERROR_NONE != ret, error); - - ret = iotcon_observers_create(&resource_info->observers); - goto_if(IOTCON_ERROR_NONE != ret, error); - - iotcon_resource_types_destroy(resource_types); - iotcon_resource_interfaces_destroy(ifaces); - *out_resource_info = resource_info; - - return 0; - -error: - if (ifaces) iotcon_resource_interfaces_destroy(ifaces); - if (resource_types) iotcon_resource_types_destroy(resource_types); - if (resource_info->res) iotcon_resource_destroy(resource_info->res); - if (resource_info->path) free(resource_info->path); - if (resource_info) free(resource_info); - - return -1; -} diff --git a/src/controller.c b/src/controller.c deleted file mode 100644 index c80090e..0000000 --- a/src/controller.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include - -#include "log.h" -#include "resource.h" -#include "connectivity.h" -#include "controller.h" -#include "controller_util.h" -#include "webutil.h" - -#define CONNECTIVITY_KEY "opened" -#define SENSORING_TIME_INTERVAL 1.0f - -typedef struct app_data_s { - Ecore_Timer *getter_timer; - connectivity_resource_s *resource_info; -} app_data; - -static Eina_Bool control_sensors_cb(void *data) -{ - app_data *ad = data; - - if (connectivity_notify_bool(ad->resource_info, CONNECTIVITY_KEY, true) == -1) - _E("Cannot notify message"); - - return ECORE_CALLBACK_RENEW; -} - -static bool service_app_create(void *data) -{ - app_data *ad = data; - int ret = -1; - - /** - * No modification required!!! - * Access only when modifying internal functions. - */ - controller_init_internal_functions(); - - /** - * Create a connectivity resource and registers the resource in server. - */ - ret = connectivity_set_resource(NULL, "org.tizen.door", &ad->resource_info); - if (ret == -1) _E("Cannot broadcast resource"); - - /** - * Creates a timer to call the given function in the given period of time. - * In the control_sensors_cb(), each sensor reads the measured value or writes a specific value to the sensor. - */ - ad->getter_timer = ecore_timer_add(SENSORING_TIME_INTERVAL, control_sensors_cb, ad); - if (!ad->getter_timer) { - _E("Failed to add infrared motion getter timer"); - return false; - } - - return true; -} - -static void service_app_terminate(void *data) -{ - app_data *ad = (app_data *)data; - - if (ad->getter_timer) - ecore_timer_del(ad->getter_timer); - - - /** - * Releases the resource about connectivity. - */ - connectivity_unset_resource(ad->resource_info); - - /** - * No modification required!!! - * Access only when modifying internal functions. - */ - controller_fini_internal_functions(); - - free(ad); -} - -static void service_app_control(app_control_h app_control, void *data) -{ - // Todo: add your code here. -} - -static void service_app_lang_changed(app_event_info_h event_info, void *user_data) -{ - /*APP_EVENT_LANGUAGE_CHANGED*/ -} - -static void service_app_region_changed(app_event_info_h event_info, void *user_data) -{ - /*APP_EVENT_REGION_FORMAT_CHANGED*/ -} - -static void service_app_low_battery(app_event_info_h event_info, void *user_data) -{ - /*APP_EVENT_LOW_BATTERY*/ -} - -static void service_app_low_memory(app_event_info_h event_info, void *user_data) -{ - /*APP_EVENT_LOW_MEMORY*/ -} - -int main(int argc, char* argv[]) -{ - app_data *ad = NULL; - int ret = 0; - service_app_lifecycle_callback_s event_callback; - app_event_handler_h handlers[5] = {NULL, }; - - ad = calloc(1, sizeof(app_data)); - retv_if(!ad, -1); - - event_callback.create = service_app_create; - event_callback.terminate = service_app_terminate; - event_callback.app_control = service_app_control; - - service_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, service_app_low_battery, &ad); - service_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, service_app_low_memory, &ad); - service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, service_app_lang_changed, &ad); - service_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, service_app_region_changed, &ad); - - ret = service_app_main(argc, argv, &event_callback, ad); - - return ret; -} diff --git a/src/controller_internal.c b/src/controller_internal.c deleted file mode 100644 index 28002f7..0000000 --- a/src/controller_internal.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#include "log.h" -#include "connectivity.h" -#include "resource.h" -#include "controller_util.h" - -void controller_init_internal_functions(void) -{ - connectivity_init(); -} - -void controller_fini_internal_functions(void) -{ - _I("Terminating..."); - resource_close_all(); - connectivity_fini(); - controller_util_free(); -} diff --git a/src/controller_util.c b/src/controller_util.c deleted file mode 100644 index b894f76..0000000 --- a/src/controller_util.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -#include "log.h" - -#define CONF_GROUP_DEFAULT_NAME "default" -#define CONF_KEY_PATH_NAME "path" -#define CONF_KEY_ADDRESS_NAME "address" - -struct controller_util_s { - char *path; - char *address; -}; - -struct controller_util_s controller_util = { 0, }; - -static int _read_conf_file(void) -{ - GKeyFile *gkf = NULL; - - gkf = g_key_file_new(); - retv_if(!gkf, -1); - - if (!g_key_file_load_from_file(gkf, CONF_FILE, G_KEY_FILE_NONE, NULL)) { - _E("could not read config file %s", CONF_FILE); - return -1; - } - - controller_util.path = g_key_file_get_string(gkf, - CONF_GROUP_DEFAULT_NAME, - CONF_KEY_PATH_NAME, - NULL); - if (!controller_util.path) - _E("could not get the key string"); - - controller_util.address = g_key_file_get_string(gkf, - CONF_GROUP_DEFAULT_NAME, - CONF_KEY_ADDRESS_NAME, - NULL); - if (!controller_util.address) - _E("could not get the key string"); - - g_key_file_free(gkf); - - return 0; -} - -int controller_util_get_path(const char **path) -{ - retv_if(!path, -1); - - if (!controller_util.path) { - int ret = -1; - ret = _read_conf_file(); - retv_if(-1 == ret, -1); - } - - *path = controller_util.path; - - return 0; -} - -int controller_util_get_address(const char **address) -{ - retv_if(!address, -1); - - if (!controller_util.address) { - int ret = -1; - ret = _read_conf_file(); - retv_if(-1 == ret, -1); - } - - *address = controller_util.address; - - return 0; -} - -void controller_util_free(void) -{ - if (controller_util.path) { - free(controller_util.path); - controller_util.path = NULL; - } - - if (controller_util.address) { - free(controller_util.address); - controller_util.address = NULL; - } -} diff --git a/src/resource.c b/src/resource.c deleted file mode 100644 index 2183850..0000000 --- a/src/resource.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#include "log.h" -#include "resource.h" - -static resource_s resource_info[PIN_MAX] = { {0, NULL, NULL}, }; - -resource_s *resource_get_info(int pin_num) -{ - return &resource_info[pin_num]; -} - -void resource_close_all(void) -{ - int i = 0; - for (i = 0; i < PIN_MAX; i++) { - if (!resource_info[i].opened) continue; - _I("GPIO[%d] is closing...", i); - - if (resource_info[i].close) - resource_info[i].close(i); - } - resource_close_illuminance_sensor(); -} diff --git a/src/resource/resource_flame_sensor.c b/src/resource/resource_flame_sensor.c deleted file mode 100644 index ec30f78..0000000 --- a/src/resource/resource_flame_sensor.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_flame_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Flame Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_flame_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_flame_sensor; - } - - /** - * This model(NS-FDSM) normally outputs 1, and outputs 0 as out_value when a flame is detected. - */ - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - *out_value = !*out_value; - - return 0; -} diff --git a/src/resource/resource_gas_detection_sensor.c b/src/resource/resource_gas_detection_sensor.c deleted file mode 100644 index ebab0a0..0000000 --- a/src/resource/resource_gas_detection_sensor.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_gas_detection_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Gas Detection Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_gas_detection_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_gas_detection_sensor; - } - - /** - * This model(FC-22) normally outputs 1, and outputs 0 as out_value when a flame is detected. - */ - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - *out_value = !*out_value; - - return 0; -} diff --git a/src/resource/resource_illuminance_sensor.c b/src/resource/resource_illuminance_sensor.c deleted file mode 100644 index 1bbf662..0000000 --- a/src/resource/resource_illuminance_sensor.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -#define I2C_PIN_MAX 28 -/* I2C */ -#define GY30_ADDR 0x23 /* Address of GY30 light sensor */ -#define GY30_CONT_HIGH_RES_MODE 0x10 /* Start measurement at 11x resolution. Measurement time is approx 120mx */ -#define GY30_CONSTANT_NUM (1.2) - -static struct { - int opened; - peripheral_i2c_h sensor_h; -} resource_sensor_s; - -void resource_close_illuminance_sensor(void) -{ - if (!resource_sensor_s.opened) return; - - _I("Illuminance Sensor is finishing..."); - peripheral_i2c_close(resource_sensor_s.sensor_h); - resource_sensor_s.opened = 0; -} - -int resource_read_illuminance_sensor(int i2c_bus, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - unsigned char buf[10] = { 0, }; - - if (!resource_sensor_s.opened) { - ret = peripheral_i2c_open(i2c_bus, GY30_ADDR, &resource_sensor_s.sensor_h); - retv_if(!resource_sensor_s.sensor_h, -1); - resource_sensor_s.opened = 1; - } - - buf[0] = GY30_CONT_HIGH_RES_MODE; - ret = peripheral_i2c_write(resource_sensor_s.sensor_h, buf, 1); - retv_if(ret < 0, -1); - - ret = peripheral_i2c_read(resource_sensor_s.sensor_h, buf, 2); - retv_if(ret < 0, -1); - - *out_value = (buf[0] << 8 | buf[1]) / GY30_CONSTANT_NUM; // Just Sum High 8bit and Low 8bit - - _I("Illuminance Sensor Value : %d", *out_value); - - return 0; -} diff --git a/src/resource/resource_infrared_motion_sensor.c b/src/resource/resource_infrared_motion_sensor.c deleted file mode 100644 index 460fa45..0000000 --- a/src/resource/resource_infrared_motion_sensor.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_infrared_motion_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Infrared Motion Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_infrared_motion_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_infrared_motion_sensor; - } - - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - return 0; -} diff --git a/src/resource/resource_infrared_obstacle_avoidance_sensor.c b/src/resource/resource_infrared_obstacle_avoidance_sensor.c deleted file mode 100644 index c5c43e8..0000000 --- a/src/resource/resource_infrared_obstacle_avoidance_sensor.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_infrared_obstacle_avoidance_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Infrared Obstacle Avoidance Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_infrared_obstacle_avoidance_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_infrared_obstacle_avoidance_sensor; - } - - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - _I("Infrared Obstacle Avoidance Sensor Value : %d", *out_value); - - *out_value = !*out_value; - - return 0; -} diff --git a/src/resource/resource_led.c b/src/resource/resource_led.c deleted file mode 100644 index 341b71f..0000000 --- a/src/resource/resource_led.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_led(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("LED is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_write_led(int pin_num, int write_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_led; - } - - ret = peripheral_gpio_write(resource_get_info(pin_num)->sensor_h, write_value); - retv_if(ret < 0, -1); - - _I("LED Value : %s", write_value ? "ON":"OFF"); - - return 0; -} diff --git a/src/resource/resource_rain_sensor.c b/src/resource/resource_rain_sensor.c deleted file mode 100755 index b73003f..0000000 --- a/src/resource/resource_rain_sensor.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_rain_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Rain Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_rain_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_flame_sensor; - } - - /** - * This model(FC-37 + YL-38) normally outputs 1, and outputs 0 as out_value when a rain is detected. - */ - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - *out_value = !*out_value; - - return 0; -} diff --git a/src/resource/resource_sound_detection_sensor.c b/src/resource/resource_sound_detection_sensor.c deleted file mode 100644 index c03c7b8..0000000 --- a/src/resource/resource_sound_detection_sensor.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_sound_detection_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Sound Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_sound_detection_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_sound_detection_sensor; - } - - /** - * This model(NS-SDSM) normally outputs 1, and outputs 0 as out_value when sound is detected. - */ - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - *out_value = !*out_value; - - return 0; -} diff --git a/src/resource/resource_tilt_sensor.c b/src/resource/resource_tilt_sensor.c deleted file mode 100644 index f47c3c7..0000000 --- a/src/resource/resource_tilt_sensor.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_tilt_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Infrared Motion Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_tilt_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_tilt_sensor; - } - - /** - * This model(SZH-EK084) normally outputs 1, and outputs 0 as out_value when the sensor is tilted. - */ - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - *out_value = !*out_value; - - return 0; -} diff --git a/src/resource/resource_touch_sensor.c b/src/resource/resource_touch_sensor.c deleted file mode 100644 index fc946e4..0000000 --- a/src/resource/resource_touch_sensor.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_touch_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Touch Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_touch_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - _I("Touch sensor is initializing..."); - - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_touch_sensor; - } - - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - _I("Touch Sensor Value : %d", *out_value); - - return 0; -} diff --git a/src/resource/resource_ultrasonic_sensor.c b/src/resource/resource_ultrasonic_sensor.c deleted file mode 100644 index 550caf6..0000000 --- a/src/resource/resource_ultrasonic_sensor.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_ultrasonic_sensor_trig(int trig_pin_num) -{ - if (!resource_get_info(trig_pin_num)->opened) return; - - _I("Ultrasonic sensor's trig is finishing..."); - - peripheral_gpio_close(resource_get_info(trig_pin_num)->sensor_h); - resource_get_info(trig_pin_num)->opened = 0; -} - -void resource_close_ultrasonic_sensor_echo(int echo_pin_num) -{ - if (!resource_get_info(echo_pin_num)->opened) return; - - _I("Ultrasonic sensor's echo is finishing..."); - - peripheral_gpio_close(resource_get_info(echo_pin_num)->sensor_h); - resource_get_info(echo_pin_num)->opened = 0; -} - -static unsigned long long _get_timestamp(void) -{ - struct timespec t; - clock_gettime(CLOCK_REALTIME, &t); - return ((unsigned long long)(t.tv_sec)*1000000000LL + t.tv_nsec) / 1000; -} - -static void _resource_read_ultrasonic_sensor_cb(peripheral_gpio_h gpio, peripheral_error_e error, void *user_data) -{ - float dist = 0; - uint32_t value; - static unsigned long long prev = 0; - unsigned long long now = _get_timestamp(); - resource_read_s *resource_read_info = user_data; - - ret_if(!resource_read_info); - ret_if(!resource_read_info->cb); - - peripheral_gpio_read(gpio, &value); - - if (prev > 0 && value == 0) { - dist = now - prev; - dist = (dist * 34300) / 2000000; - _I("Measured Distance : %0.2fcm\n", dist); - - resource_read_info->cb(dist, resource_read_info->data); - peripheral_gpio_unset_interrupted_cb(resource_get_info(resource_read_info->pin_num)->sensor_h); - free(resource_read_info); - } - - prev = now; -} - -int resource_read_ultrasonic_sensor(int trig_pin_num, int echo_pin_num, resource_read_cb cb, void *data) -{ - int ret = 0; - resource_read_s *resource_read_info = NULL; - - resource_read_info = calloc(1, sizeof(resource_read_s)); - retv_if(!resource_read_info, -1); - resource_read_info->cb = cb; - resource_read_info->data = data; - resource_read_info->pin_num = echo_pin_num; - - if (!resource_get_info(trig_pin_num)->opened) { - _I("Ultrasonic sensor's trig is initializing..."); - - ret = peripheral_gpio_open(trig_pin_num, &resource_get_info(trig_pin_num)->sensor_h); - retv_if(!resource_get_info(trig_pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(trig_pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW); - retv_if(ret != 0, -1); - - resource_get_info(trig_pin_num)->opened = 1; - resource_get_info(trig_pin_num)->close = resource_close_ultrasonic_sensor_trig; - } - - if (!resource_get_info(echo_pin_num)->opened) { - _I("Ultrasonic sensor's echo is initializing..."); - - ret = peripheral_gpio_open(echo_pin_num, &resource_get_info(echo_pin_num)->sensor_h); - retv_if(!resource_get_info(echo_pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(echo_pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - ret = peripheral_gpio_set_edge_mode(resource_get_info(echo_pin_num)->sensor_h, PERIPHERAL_GPIO_EDGE_BOTH); - retv_if(ret != 0, -1); - - resource_get_info(echo_pin_num)->opened = 1; - resource_get_info(echo_pin_num)->close = resource_close_ultrasonic_sensor_echo; - } - - if (resource_get_info(echo_pin_num)->sensor_h) { - ret = peripheral_gpio_set_interrupted_cb(resource_get_info(echo_pin_num)->sensor_h, _resource_read_ultrasonic_sensor_cb, resource_read_info); - retv_if(ret != 0, -1); - } - - ret = peripheral_gpio_write(resource_get_info(trig_pin_num)->sensor_h, 0); - retv_if(ret < 0, -1); - - ret = peripheral_gpio_write(resource_get_info(trig_pin_num)->sensor_h, 1); - retv_if(ret < 0, -1); - - ret = peripheral_gpio_write(resource_get_info(trig_pin_num)->sensor_h, 0); - retv_if(ret < 0, -1); - - return 0; -} diff --git a/src/resource/resource_vibration_sensor.c b/src/resource/resource_vibration_sensor.c deleted file mode 100644 index 686e8f7..0000000 --- a/src/resource/resource_vibration_sensor.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include "log.h" -#include "resource_internal.h" - -void resource_close_vibration_sensor(int pin_num) -{ - if (!resource_get_info(pin_num)->opened) return; - - _I("Vibration Sensor is finishing..."); - peripheral_gpio_close(resource_get_info(pin_num)->sensor_h); - resource_get_info(pin_num)->opened = 0; -} - -int resource_read_vibration_sensor(int pin_num, uint32_t *out_value) -{ - int ret = PERIPHERAL_ERROR_NONE; - - if (!resource_get_info(pin_num)->opened) { - ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h); - retv_if(!resource_get_info(pin_num)->sensor_h, -1); - - ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_IN); - retv_if(ret != 0, -1); - - resource_get_info(pin_num)->opened = 1; - resource_get_info(pin_num)->close = resource_close_vibration_sensor; - } - - ret = peripheral_gpio_read(resource_get_info(pin_num)->sensor_h, out_value); - retv_if(ret < 0, -1); - - return 0; -} diff --git a/src/webutil.c b/src/webutil.c deleted file mode 100644 index d1fed79..0000000 --- a/src/webutil.c +++ /dev/null @@ -1,399 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * Jeonghoon Park - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include "log.h" -#include "webutil.h" - -#define URI_PATH_LEN 64 - -typedef struct _wu_json_handle { - JsonBuilder *builder; - bool is_begin; - bool is_end; -} wu_json_handle; - -static wu_json_handle Json_h = {NULL, false, false}; - -static size_t _response_write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) -{ - size_t res_size = 0; - - res_size = size*nmemb; - - if (res_size > 0) - _I("POST response : %s", ptr); - /* What should we do here, if response body has negative message? */ - - return res_size; -} - -int web_util_noti_init(void) -{ - int ret = 0; - CURLcode result; - result = curl_global_init(CURL_GLOBAL_DEFAULT); - if (result != CURLE_OK) { - _E("curl_global_init() failed: %s", - curl_easy_strerror(result)); - ret = -1; - } - return ret; -} - -void web_util_noti_fini(void) -{ - curl_global_cleanup(); - return; -} - -int web_util_noti_post(const char *resource, const char *json_data) -{ - int ret = 0; - CURL *curl = NULL; - CURLcode response = CURLE_OK; - struct curl_slist *headers = NULL; - - retv_if(resource == NULL, -1); - retv_if(json_data == NULL, -1); - - _I("server : %s", resource); - _I("json_data : %s", json_data); - - curl = curl_easy_init(); - - if (!curl) { - _E("fail to init curl"); - return -1; - } - - headers = curl_slist_append(headers, "Accept: application/json"); - headers = curl_slist_append(headers, "Content-Type: application/json"); - - curl_easy_setopt(curl, CURLOPT_URL, resource); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _response_write_callback); - - response = curl_easy_perform(curl); - - if (response != CURLE_OK) { - _E("curl_easy_perform() failed: %s", - curl_easy_strerror(response)); - /* What should we do here, if response is kind of errors? */ - ret = -1; - } - - curl_slist_free_all(headers); - curl_easy_cleanup(curl); - - return ret; -} - - -int web_util_json_init(void) -{ - if (Json_h.builder) - g_object_unref(Json_h.builder); - - Json_h.is_begin = false; - Json_h.is_end = false; - Json_h.builder = json_builder_new(); - retv_if(Json_h.builder == NULL, -1); - - return 0; -} - -int web_util_json_fini(void) -{ - - if (Json_h.builder) { - g_object_unref(Json_h.builder); - Json_h.builder = NULL; - } - - Json_h.is_begin = false; - Json_h.is_end = false; - - return 0; -} - -int web_util_json_data_array_begin(void) -{ - retv_if(Json_h.builder == NULL, -1); - retv_if(Json_h.is_begin == true, -1); - retv_if(Json_h.is_end == true, -1); - - Json_h.is_begin = true; - - /* - { - SensorsDataList : [ SensorData ] - } - */ - - json_builder_begin_object(Json_h.builder); - json_builder_set_member_name(Json_h.builder, "SensorDataList"); - json_builder_begin_array(Json_h.builder); - - return 0; -} - -int web_util_json_data_array_end(void) -{ - retv_if(Json_h.builder == NULL, -1); - retv_if(Json_h.is_begin == false, -1); - retv_if(Json_h.is_end == true, -1); - - json_builder_end_array(Json_h.builder); - json_builder_end_object(Json_h.builder); - Json_h.is_end = true; - - return 0; -} - -int web_util_json_add_sensor_data(const char* sensorpi_id, web_util_sensor_data_s *sensor_data) -{ - const char n_id[] = "SensorPiID"; - const char n_motion[] = "Motion"; - const char n_flame[] = "Flame"; - const char n_hum[] = "Humidity"; - const char n_temp[] = "Temperature"; - const char n_vib[] = "Vibration"; - const char n_co2[] = "CO2"; - const char n_sound[] = "SoundLevel"; - const char n_tilt[] = "Tilt"; - const char n_light[] = "Light"; - const char n_collision[] = "Collision"; - const char n_obstacle[] = "Obstacle"; - const char n_distance[] = "Distance"; - const char n_rain[] = "Rain"; - const char n_touch[] = "Touch"; - const char n_gas[] = "Gas"; - const char n_e_sensor[] = "SensorEnabled"; - const char n_hash[] = "Hash"; - - retv_if(!sensorpi_id, -1); - retv_if(Json_h.builder == NULL, -1); - retv_if(Json_h.is_begin == false, -1); - retv_if(Json_h.is_end == true, -1); - retv_if(sensor_data == NULL, -1); - - /* JSON structure : - { - SensorPiID: string, - Motion: boolean, - Flame: boolean, - Humidity: double, - Temperature: double, - Vibration: boolean, - CO2: double, - SoundLevel: int, - Tilt: int, - Light: int, - Collision: int, - Obstacle: int, - Distance: double, - Rain: int, - Touch: int, - Gas: int, - SensorEnabled: [Motion, ], - Hash: string, - } - */ - - - json_builder_begin_object(Json_h.builder); - - json_builder_set_member_name(Json_h.builder, n_id); - json_builder_add_string_value(Json_h.builder, sensorpi_id); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_MOTION) { - json_builder_set_member_name(Json_h.builder, n_motion); - json_builder_add_int_value(Json_h.builder, sensor_data->motion); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_FLAME) { - json_builder_set_member_name(Json_h.builder, n_flame); - json_builder_add_int_value(Json_h.builder, sensor_data->flame); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_HUMIDITY) { - json_builder_set_member_name(Json_h.builder, n_hum); - json_builder_add_double_value(Json_h.builder, sensor_data->humidity); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_TEMPERATURE) { - json_builder_set_member_name(Json_h.builder, n_temp); - json_builder_add_double_value(Json_h.builder, sensor_data->temperature); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_VIB) { - json_builder_set_member_name(Json_h.builder, n_vib); - json_builder_add_int_value(Json_h.builder, sensor_data->virbration); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_CO2) { - json_builder_set_member_name(Json_h.builder, n_co2); - json_builder_add_double_value(Json_h.builder, sensor_data->co2); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_SOUND) { - json_builder_set_member_name(Json_h.builder, n_sound); - json_builder_add_int_value(Json_h.builder, sensor_data->soundlevel); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_TILT) { - json_builder_set_member_name(Json_h.builder, n_tilt); - json_builder_add_int_value(Json_h.builder, sensor_data->tilt); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_LIGHT) { - json_builder_set_member_name(Json_h.builder, n_light); - json_builder_add_int_value(Json_h.builder, sensor_data->light); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_COLLISION) { - json_builder_set_member_name(Json_h.builder, n_collision); - json_builder_add_int_value(Json_h.builder, sensor_data->collision); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_OBSTACLE) { - json_builder_set_member_name(Json_h.builder, n_obstacle); - json_builder_add_int_value(Json_h.builder, sensor_data->obstacle); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_ULTRASONIC_DISTANCE) { - json_builder_set_member_name(Json_h.builder, n_distance); - json_builder_add_double_value(Json_h.builder, sensor_data->distance); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_RAIN) { - json_builder_set_member_name(Json_h.builder, n_rain); - json_builder_add_int_value(Json_h.builder, sensor_data->rain); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_TOUCH) { - json_builder_set_member_name(Json_h.builder, n_touch); - json_builder_add_int_value(Json_h.builder, sensor_data->touch); - } - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_GAS) { - json_builder_set_member_name(Json_h.builder, n_gas); - json_builder_add_int_value(Json_h.builder, sensor_data->gas); - } - - json_builder_set_member_name(Json_h.builder, n_e_sensor); - json_builder_begin_array(Json_h.builder); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_MOTION) - json_builder_add_string_value(Json_h.builder, n_motion); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_FLAME) - json_builder_add_string_value(Json_h.builder, n_flame); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_HUMIDITY) - json_builder_add_string_value(Json_h.builder, n_hum); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_TEMPERATURE) - json_builder_add_string_value(Json_h.builder, n_temp); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_VIB) - json_builder_add_string_value(Json_h.builder, n_vib); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_CO2) - json_builder_add_string_value(Json_h.builder, n_co2); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_SOUND) - json_builder_add_string_value(Json_h.builder, n_sound); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_TILT) - json_builder_add_string_value(Json_h.builder, n_tilt); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_LIGHT) - json_builder_add_string_value(Json_h.builder, n_light); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_COLLISION) - json_builder_add_string_value(Json_h.builder, n_collision); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_OBSTACLE) - json_builder_add_string_value(Json_h.builder, n_obstacle); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_ULTRASONIC_DISTANCE) - json_builder_add_string_value(Json_h.builder, n_distance); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_RAIN) - json_builder_add_string_value(Json_h.builder, n_rain); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_TOUCH) - json_builder_add_string_value(Json_h.builder, n_touch); - - if (sensor_data->enabled_sensor & WEB_UTIL_SENSOR_GAS) - json_builder_add_string_value(Json_h.builder, n_gas); - - json_builder_end_array(Json_h.builder); - - if (sensor_data->hash) { - json_builder_set_member_name(Json_h.builder, n_hash); - json_builder_add_string_value(Json_h.builder, sensor_data->hash); - } - - json_builder_end_object(Json_h.builder); - - return 0; -} - -char *web_util_get_json_string(void) -{ - JsonGenerator *gen = NULL; - JsonNode *root = NULL; - char *str = NULL; - - retv_if(Json_h.builder == NULL, NULL); - retv_if(Json_h.is_begin == false, NULL); - retv_if(Json_h.is_end == false, NULL); - - root = json_builder_get_root(Json_h.builder); - retv_if(root == NULL, NULL); - - gen = json_generator_new(); - goto_if(gen == NULL, error_release_all); - json_generator_set_root(gen, root); - - str = json_generator_to_data(gen, NULL); - - return str; - -error_release_all: - if (root) - json_node_free(root); - - if (gen) - g_object_unref(gen); - - return NULL; -} - diff --git a/tizen-manifest.xml.in b/tizen-manifest.xml.in deleted file mode 100644 index 677801e..0000000 --- a/tizen-manifest.xml.in +++ /dev/null @@ -1,16 +0,0 @@ - - - - Jin Yoon - Geunsun Lee - Eunyoung Lee - Junkyu Han - - - @PROJECT_NAME@.png - - - http://tizen.org/privilege/network.get - http://tizen.org/privilege/internet - - -- 2.7.4