From fe59fa941008df4bbb4450ffb01eeb2ed96de5c6 Mon Sep 17 00:00:00 2001 From: charithag Date: Fri, 30 Oct 2015 14:23:51 +0530 Subject: [PATCH] Add simple and advanced fire alarm agents --- .../artifact/deviceType.json | 8 +- modules/samples/virtual_firealarm/build.xml | 17 +- .../sketch_advanced/deviceConfig.properties | 33 +++ .../sketch_advanced/sketch.properties | 2 + .../sketch_advanced/start-device.sh | 190 ++++++++++++++++++ 5 files changed, 244 insertions(+), 6 deletions(-) create mode 100644 modules/samples/virtual_firealarm/sketch_advanced/deviceConfig.properties create mode 100644 modules/samples/virtual_firealarm/sketch_advanced/sketch.properties create mode 100755 modules/samples/virtual_firealarm/sketch_advanced/start-device.sh diff --git a/modules/samples/virtual_firealarm/artifact/deviceType.json b/modules/samples/virtual_firealarm/artifact/deviceType.json index 0b63d563..825bdb07 100644 --- a/modules/samples/virtual_firealarm/artifact/deviceType.json +++ b/modules/samples/virtual_firealarm/artifact/deviceType.json @@ -10,13 +10,13 @@ "overview_url":"http://www.google.lk", "setupGuide_guideImage":"virtual_firealarm/guide.png", "overview_actionLabel":"Create a virtual device", - "sketches_Sketches":"virtual_firealarm", + "sketches_Sketches":["virtual_firealarm","virtual_firealarm_advanced"], "ingredients_ingredients":[ - "Virtual Agent that simulates an actual firealarm" + "Virtual Agent that simulates an actual firealarm. Simple agent demonstrate the basic functionality and Advanced agent consists with advance features like policy management, edge computing etc." ], "overview_description":"Download our Virtual Agent and try-it out for close to real simulation of the FireAlarm Device-Type", - "setupGuide_description":"Extract the downloaded agent and run startservice.sh to start agent", - "quickStartupSteps_stepDescription":["Download the Virtual Agent","Run the 'startservice.sh' script","Provide the push-interval and network-interface"], + "setupGuide_description":"Extract the downloaded agent and run start-device.sh to start agent", + "quickStartupSteps_stepDescription":["Download the Virtual Agent","Run the 'start-device.sh' script","Provide the push-interval and network-interface"], "quickStartupSteps_stepLabel":["1","2","3"], "images_thumbnail":"virtual_firealarm/virtual_firealarm_thumbnail.png", "images_banner":"virtual_firealarm/virtual_firealarm_banner.png", diff --git a/modules/samples/virtual_firealarm/build.xml b/modules/samples/virtual_firealarm/build.xml index 2e23c9ac..2c7c8c8e 100644 --- a/modules/samples/virtual_firealarm/build.xml +++ b/modules/samples/virtual_firealarm/build.xml @@ -64,15 +64,24 @@ - + - + + + + + + + + + + @@ -92,6 +101,9 @@ + + + @@ -108,6 +120,7 @@ + diff --git a/modules/samples/virtual_firealarm/sketch_advanced/deviceConfig.properties b/modules/samples/virtual_firealarm/sketch_advanced/deviceConfig.properties new file mode 100644 index 00000000..0e2be440 --- /dev/null +++ b/modules/samples/virtual_firealarm/sketch_advanced/deviceConfig.properties @@ -0,0 +1,33 @@ +# +# Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# 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. +# +# + +#[Device-Configurations] +owner=${DEVICE_OWNER} +deviceId=${DEVICE_ID} +device-name=${DEVICE_NAME} +controller-context=/virtual_firealarm/controller +https-ep=${HTTPS_EP} +http-ep=${HTTP_EP} +apim-ep=${APIM_EP} +mqtt-ep=${MQTT_EP} +xmpp-ep=${XMPP_EP} +auth-method=token +auth-token=${DEVICE_TOKEN} +refresh-token=${DEVICE_REFRESH_TOKEN} +push-interval=15 + + diff --git a/modules/samples/virtual_firealarm/sketch_advanced/sketch.properties b/modules/samples/virtual_firealarm/sketch_advanced/sketch.properties new file mode 100644 index 00000000..801bd88d --- /dev/null +++ b/modules/samples/virtual_firealarm/sketch_advanced/sketch.properties @@ -0,0 +1,2 @@ +templates=deviceConfig.properties +zipfilename=FireAlarmVirtualAgent.zip diff --git a/modules/samples/virtual_firealarm/sketch_advanced/start-device.sh b/modules/samples/virtual_firealarm/sketch_advanced/start-device.sh new file mode 100755 index 00000000..647ea81c --- /dev/null +++ b/modules/samples/virtual_firealarm/sketch_advanced/start-device.sh @@ -0,0 +1,190 @@ +#!/bin/bash + +echo "----------------------------------------------------------------" +echo "| WSO2 IOT Sample " +echo "| Virtual RaspiAlarm " +echo "| ---------------- " +echo "| ....initializing startup-script " +echo "----------------------------------------------------------------" + +#while true; do +# read -p "What is the network-interface of your device that the Agent should use (find from ifconfig. ex: wlan0,en0,eth0..) > " interface +# +# echo "Setting the network-interface to " $interface +# sed s/^network-interface=.*/network-interface=$interface/ deviceConfig.properties > myTmp +# mv -f myTmp deviceConfig.properties +# break; +#done +# +#while true; do +# read -p "Whats the time-interval (in seconds) between successive Data-Pushes to the WSO2-IoT-Server (ex: '60' indicates 1 minute) > " interval +# +# if [ $interval -eq $interval 2>/dev/null ] +# then +# echo "Setting data-push interval to " $interval " seconds." +# sed s/^push-interval=.*/push-interval=$interval/ deviceConfig.properties > myTmp +# mv -f myTmp deviceConfig.properties +# break; +# else +# echo "Input needs to be an integer indicating the number seconds between successive data-pushes." +# fi +#done + + +java -jar wso2-firealarm-virtual-agent-advanced.jar + +#while true; do +# read -p "Do you wish to run 'apt-get update' and continue? [Yes/No] " yn +# case $yn in +# [Yy]* ) sudo apt-get update; +# break;; +# [Nn]* ) echo "Continuing without apt-get update..."; +# break;; +# * ) echo "Please answer yes or no."; +# esac +#done +# +#if [ $? -ne 0 ]; then +# echo "apt-get update failed.... Some dependencies may not get installed" +# echo "If an already installed version of the package exists, try running:" +# echo "----------------------------------------------------------------" +# echo "sudo -i" +# echo "cd /var/lib/dpkg/info" +# echo "rm -rf wso2-raspi-alarm*" +# echo "dpkg --remove --force-remove-reinstreq wso2-raspi-alarm" +# echo "exit" +# echo "----------------------------------------------------------------" +# echo "Retry Installation...." +# break; +#fi +# +#echo "Installing 'gdebi' package..." +#sudo apt-get install gdebi # installation of gdebi +# +# +#if [ $? -ne 0 ]; then +# echo "gdebi installation failed.... dependencies will not be installed without gdebi" +# read -p "Do you wish to continue without gdebi? [Yes/No] " yn +# case $yn in +# [Yy]* ) echo "Continueing without gdebi.....";; +# [Nn]* ) echo "Try to resolve errors and re-run the script."; +# exit;; +# * ) exit;; +# esac +#fi +# +# +#for f in ./wso2-raspi-alarm_1.0_armhf.deb; do +# ## Check if the glob gets expanded to existing files. +# ## If not, f here will be exactly the pattern above +# ## and the exists test will evaluate to false. +# # [ -e "$f" ] && echo "'wso2-raspi-alarm_1.0_armhf.deb' file found and installing" || echo "'wso2-raspi-alarm_1.0_armhf.deb' file does not exist in current path"; exit; +# if [ -e "$f" ]; then +# echo "'wso2-raspi-alarm_1.0_armhf.deb' file found and installing now...." +# else +# echo "'wso2-raspi-alarm_1.0_armhf.deb' file does not exist in current path. \nExiting installation..."; +# exit; +# fi +# ## This is all we needed to know, so we can break after the first iteration +# break +#done +# +#echo "Installing the 'wso2-raspi-alarm deb package'" +#sudo gdebi wso2-raspi-alarm_1.0_armhf.deb +# +#if [ $? -ne 0 ]; then +# echo "Installation Failed...." +# exit; +#fi + +#sudo killall -9 python +# +#for f in ./RaspberryAgent.zip; do +# ## Check if the glob gets expanded to existing files. +# ## If not, f here will be exactly the pattern above +# ## and the exists test will evaluate to false. +# # [ -e "$f" ] && echo "'wso2-raspi-alarm_1.0_armhf.deb' file found and installing" || echo "'wso2-raspi-alarm_1.0_armhf.deb' file does not exist in current path"; exit; +# if [ -e "$f" ]; then +# echo "Agent files found......" +# sudo rm -rf /usr/local/src/RaspberryAgent +# sudo unzip RaspberryAgent.zip -d /usr/local/src/ +# else +# echo "'RaspberryAgent.zip' file does not exist in current path. \nInstalling without upgrading agent..."; +# fi +# ## This is all we needed to know, so we can break after the first iteration +# break +#done +# +#for f in /usr/local/src/RaspberryAgent/rc.local; do +# ## Check if the glob gets expanded to existing files. +# ## If not, f here will be exactly the pattern above +# ## and the exists test will evaluate to false. +# if [ -e "$f" ]; then +# echo "Copying boot script" +# sudo mv /usr/local/src/RaspberryAgent/rc.local /etc/rc.local +# sudo chmod +x /etc/rc.local +# else +# echo "Unable to set agent statup on boot"; +# fi +# ## This is all we needed to know, so we can break after the first iteration +# break +#done +# +#for f in ./deviceConfigs.cfg; do +# ## Check if the glob gets expanded to existing files. +# ## If not, f here will be exactly the pattern above +# ## and the exists test will evaluate to false. +# if [ -e "$f" ]; then +# echo "Configuration file found......" +# else +# echo "'deviceConfigs.cfg' file does not exist in current path. \nExiting installation..."; +# exit; +# fi +# ## This is all we needed to know, so we can break after the first iteration +# break +#done +# +#echo "Altering Configuration file" +#sed -i 's|[/,]||g' deviceConfigs.cfg +# +#echo "Copying configurations file to /usr/local/src/RaspberryAgent" +#sudo cp ./deviceConfigs.cfg /usr/local/src/RaspberryAgent/ +# +#if [ $? -ne 0 ]; then +# echo "Copying configuration file failed...." +# exit; +#fi +# +#while true; do +# read -p "Whats the time-interval (in seconds) between successive Data-Pushes to the WSO2-DC (ex: '60' indicates 1 minute) > " input +# +# if [ $input -eq $input 2>/dev/null ] +# then +# echo "Setting data-push interval to $input seconds." +# echo $input > /usr/local/src/RaspberryAgent/time-interval +# break; +# else +# echo "Input needs to be an integer indicating the number seconds between successive data-pushes." +# fi +#done +# +#cd /usr/local/src/RaspberryAgent/ +#sudo chmod +x RaspberryStats.py +#sudo nohup ./RaspberryStats.py -i $input