From ef84791510e70bfdca5775b258075c59ae353f6d Mon Sep 17 00:00:00 2001 From: sinthuja Date: Thu, 4 May 2017 15:21:24 +0530 Subject: [PATCH] Finishing the android sense feature into sub features UI/BE/Analytics. --- .../pom.xml | 172 +++++++++++++ .../src/main/resources/build.properties | 1 + .../src/main/resources/p2.inf | 6 + .../pom.xml | 226 ++++++++++++++++++ .../src/main/resources/build.properties | 1 + .../src/main/resources/cloud.p2.inf | 21 ++ .../datasources/androidsense-datasources.xml | 46 ++++ .../src/main/resources/dbscripts/h2.sql | 8 + .../src/main/resources/dbscripts/mssql.sql | 8 + .../src/main/resources/dbscripts/mysql.sql | 12 + .../src/main/resources/dbscripts/oracle.sql | 8 + .../main/resources/dbscripts/postgresql.sql | 8 + .../src/main/resources/default.p2.inf | 19 ++ .../resources/devicetypes/android_sense.xml | 71 ++++++ .../src/main/resources/default.p2.inf | 2 +- .../pom.xml | 64 ++++- .../src/main/resources/cloud.p2.inf | 24 ++ .../src/main/resources/default.p2.inf | 22 ++ .../src/main/resources/p2.inf | 8 +- .../androidsense-plugin-feature/pom.xml | 3 + .../pom.xml | 149 ++++++++++++ .../src/main/resources/build.properties | 1 + .../src/main/resources/p2.inf | 6 + .../pom.xml | 136 +++++++++++ .../src/main/resources/build.properties | 1 + .../main/resources/devicetypes/arduino.xml | 43 ++++ .../src/main/resources/p2.inf | 12 + .../pom.xml | 135 +++++++++++ .../main/resources/agent/ArduinoBoardSketch.h | 77 ++++++ .../resources/agent/ArduinoBoardSketch.ino | 83 +++++++ .../src/main/resources/agent/Connect.ino | 163 +++++++++++++ .../src/main/resources/agent/PollServer.ino | 82 +++++++ .../src/main/resources/agent/PushData.ino | 133 +++++++++++ .../src/main/resources/agent/deviceType.png | Bin 0 -> 10418 bytes .../main/resources/agent/sketch.properties | 20 ++ .../src/main/resources/build.properties | 1 + .../main/resources/devicetypes/arduino.xml | 43 ++++ .../src/main/resources/p2.inf | 20 ++ .../arduino-plugin-feature/pom.xml | 5 +- 39 files changed, 1833 insertions(+), 7 deletions(-) create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/pom.xml create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/build.properties create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/p2.inf create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/pom.xml create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/build.properties create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/cloud.p2.inf create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/datasources/androidsense-datasources.xml create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/h2.sql create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mssql.sql create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mysql.sql create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/oracle.sql create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/postgresql.sql create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/default.p2.inf create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/devicetypes/android_sense.xml create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/cloud.p2.inf create mode 100644 features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/default.p2.inf create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/pom.xml create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/build.properties create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/p2.inf create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/pom.xml create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/build.properties create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/devicetypes/arduino.xml create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/p2.inf create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/pom.xml create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.h create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.ino create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/Connect.ino create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PollServer.ino create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PushData.ino create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/deviceType.png create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/sketch.properties create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/build.properties create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/devicetypes/arduino.xml create mode 100644 features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/p2.inf diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/pom.xml b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/pom.xml new file mode 100644 index 0000000000..4bd0e3f5b5 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/pom.xml @@ -0,0 +1,172 @@ + + + + + + + + org.wso2.carbon.devicemgt-plugins + androidsense-plugin-feature + 3.0.32-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature + 3.0.32-SNAPSHOT + pom + WSO2 Carbon - IoT Server Android Sense Analytics Feature + http://wso2.org + This feature contains the Android Sense Device type specific analytics implementations for the IoT Server + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.androidsense.analytics + + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/carbonapps + + **/* + + + + + + unpack-analytics + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.analytics + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/carbonapps + + **/* + + + + + + unpack-geo + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.iot.geo.dashboard + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/carbonapps + + **/* + + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot.androidsense.analytics + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:true + + + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version} + + + + + + + + + + diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/build.properties b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/build.properties new file mode 100644 index 0000000000..93c4b10701 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/build.properties @@ -0,0 +1 @@ +custom = true \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/p2.inf new file mode 100644 index 0000000000..f3bf580fa0 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature/src/main/resources/p2.inf @@ -0,0 +1,6 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../analytics/repository/deployment/server/carbonapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.analytics_${feature.version}/carbonapps/,target:${installFolder}/../../analytics/repository/deployment/server/carbonapps/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../analytics/repository/deployment/server/carbonapps/android_sense.car);\ diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/pom.xml b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/pom.xml new file mode 100644 index 0000000000..855e0e4f1f --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/pom.xml @@ -0,0 +1,226 @@ + + + + + + + + org.wso2.carbon.devicemgt-plugins + androidsense-plugin-feature + 3.0.32-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.androidsense.backend.feature + 3.0.32-SNAPSHOT + pom + WSO2 Carbon - IoT Server Android Sense Backend Feature + http://wso2.org + This feature contains the Android Sense Device type specific backend implementations for the IoT Server + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.androidsense.api + war + + + com.h2database.wso2 + h2-database-engine + + + + + + + default-profile + + true + + + + + maven-antrun-plugin + + + test + + run + + + + + + + + + + + + + + + cloud + + + + maven-antrun-plugin + + + test + + run + + + + + + + + + + + + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-jaxrs-war + package + + copy + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.androidsense.api + war + true + ${project.build.directory}/maven-shared-archive-resources/webapps/ + android_sense.war + + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + + create-android-sense-plugin-mgt-schema + package + + run + + + + + + + + + + + + + + + + + + + + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot.androidsense.backend + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:true + + + + org.wso2.carbon.core.server:${carbon.kernel.version} + org.wso2.carbon.device.mgt.server:${carbon.devicemgt.version} + + + + + + + + + diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/build.properties b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/build.properties new file mode 100644 index 0000000000..93c4b10701 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/build.properties @@ -0,0 +1 @@ +custom = true \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/cloud.p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/cloud.p2.inf new file mode 100644 index 0000000000..9c796aaa0d --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/cloud.p2.inf @@ -0,0 +1,21 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/devicetypes/android_sense/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/webapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/webapps/,target:${installFolder}/../../deployment/server/webapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/datasources/,target:${installFolder}/../../conf/datasources/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../database/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/android_sense.war);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../resources/sketches/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/datasources/androidsense-datasources.xml);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/AndroidSenseDM_DB.h2.db);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/android_sense.xml);\ \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/datasources/androidsense-datasources.xml b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/datasources/androidsense-datasources.xml new file mode 100644 index 0000000000..9a1374b09e --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/datasources/androidsense-datasources.xml @@ -0,0 +1,46 @@ + + + + + org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader + + + + AndroidSenseDM_DB + The datasource used for the Android Sense database + + jdbc/AndroidSenseDM_DB + + + + jdbc:h2:repository/database/AndroidSenseDM_DB;DB_CLOSE_ON_EXIT=FALSE + + wso2carbon + wso2carbon + org.h2.Driver + 50 + 60000 + true + SELECT 1 + 30000 + + + + + diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/h2.sql b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/h2.sql new file mode 100644 index 0000000000..ee3bfa73a4 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/h2.sql @@ -0,0 +1,8 @@ + +-- ----------------------------------------------------- +-- Table `ANDROID_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `ANDROID_SENSE_DEVICE` ( + `ANDROID_DEVICE_ID` VARCHAR(45) NOT NULL , + `DEVICE_NAME` VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (`ANDROID_DEVICE_ID`) ); diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mssql.sql b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mssql.sql new file mode 100644 index 0000000000..cf677ff074 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mssql.sql @@ -0,0 +1,8 @@ + +-- ----------------------------------------------------- +-- Table `ANDROID_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS ANDROID_SENSE_DEVICE ( + ANDROID_DEVICE_ID VARCHAR(45) NOT NULL , + DEVICE_NAME VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (ANDROID_DEVICE_ID) ); diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mysql.sql b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mysql.sql new file mode 100644 index 0000000000..4637b4daf2 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/mysql.sql @@ -0,0 +1,12 @@ +-- ----------------------------------------------------- +-- Table `ANDROID_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `ANDROID_SENSE_DEVICE` ( + `ANDROID_DEVICE_ID` VARCHAR(45) NOT NULL , + `DEVICE_NAME` VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (`ANDROID_DEVICE_ID`) ) +ENGINE = InnoDB; + + + + diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/oracle.sql b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/oracle.sql new file mode 100644 index 0000000000..6f8537eb82 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/oracle.sql @@ -0,0 +1,8 @@ + +-- ----------------------------------------------------- +-- Table `ANDROID_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE ANDROID_SENSE_DEVICE ( + ANDROID_DEVICE_ID VARCHAR(45) NOT NULL , + DEVICE_NAME VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (ANDROID_DEVICE_ID) ); diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/postgresql.sql b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/postgresql.sql new file mode 100644 index 0000000000..987f4992b3 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/dbscripts/postgresql.sql @@ -0,0 +1,8 @@ + +-- ----------------------------------------------------- +-- Table `ANDROID_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS ANDROID_SENSE_DEVICE ( + ANDROID_DEVICE_ID VARCHAR(45) NOT NULL , + DEVICE_NAME VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (ANDROID_DEVICE_ID)); diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/default.p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/default.p2.inf new file mode 100644 index 0000000000..b045886445 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/default.p2.inf @@ -0,0 +1,19 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/devicetypes/android_sense/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/webapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/webapps/,target:${installFolder}/../../../repository/deployment/server/webapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/datasources/,target:${installFolder}/../../../repository/conf/datasources/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.backend_${feature.version}/devicetypes/,target:${installFolder}/../../../repository/deployment/server/devicetypes/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/webapps/android_sense.war);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/webapps/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/resources/sketches/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/conf/datasources/androidsense-datasources.xml);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/database/AndroidSenseDM_DB.h2.db);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/devicetypes/android_sense.xml);\ \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/devicetypes/android_sense.xml b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/devicetypes/android_sense.xml new file mode 100644 index 0000000000..764aa311a5 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.backend.feature/src/main/resources/devicetypes/android_sense.xml @@ -0,0 +1,71 @@ + + + + + + + Add Keywords + Send keywords to the device + + + + + + + + Add Threshold + Send Threshold to the device + + + + + + + + Remove words + Remove Threshold from the device + + + + + + + + + + true + + + + true + + + androidsense.mqtt.adapter + 0 + true + + + + + en_US + 1.0.0 + This is license text + + + \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/default.p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/default.p2.inf index e8ab4aeea7..5423fc55d1 100644 --- a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/default.p2.inf +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/default.p2.inf @@ -5,7 +5,7 @@ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../r org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/webapps/);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/webapps/,target:${installFolder}/../../../repository/deployment/server/webapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/carbonapps/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/carbonapps/,target:${installFolder}/../../../resources/devicetypes/android_sense/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/carbonapps/,target:${installFolder}/../../../repository/resources/devicetypes/android_sense/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/datasources/,target:${installFolder}/../../../repository/conf/datasources/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/);\ diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/pom.xml b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/pom.xml index 9d27465fac..928cfca4bf 100644 --- a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/pom.xml +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/pom.xml @@ -36,6 +36,68 @@ This feature contains the Android Sense Device type UI specific implementations for the IoT Server + + + com.h2database.wso2 + h2-database-engine + + + + + + default-profile + + true + + + + + maven-antrun-plugin + + + test + + run + + + + + + + + + + + + + + + cloud + + + + maven-antrun-plugin + + + test + + run + + + + + + + + + + + + + + @@ -141,7 +203,7 @@ p2-feature-gen - org.wso2.carbon.device.mgt.iot.androidsense + org.wso2.carbon.device.mgt.iot.androidsense.ui ../../../features/etc/feature.properties diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/cloud.p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/cloud.p2.inf new file mode 100644 index 0000000000..bbdc137a00 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/cloud.p2.inf @@ -0,0 +1,24 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/devicetypes/android_sense/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/datasources/,target:${installFolder}/../../conf/datasources/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/jaggeryapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../database/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../resources/sketches/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/datasources/androidsense-datasources.xml);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/AndroidSenseDM_DB.h2.db);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.analytics-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.platform.configuration);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/android_sense.xml);\ \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/default.p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/default.p2.inf new file mode 100644 index 0000000000..d269b678e1 --- /dev/null +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/default.p2.inf @@ -0,0 +1,22 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/devicetypes/android_sense/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/datasources/,target:${installFolder}/../../../repository/conf/datasources/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/jaggeryapps/,target:${installFolder}/../../../repository/deployment/server/jaggeryapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/devicetypes/,target:${installFolder}/../../../repository/deployment/server/devicetypes/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/resources/sketches/android_sense);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/conf/datasources/androidsense-datasources.xml);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/database/AndroidSenseDM_DB.h2.db);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.analytics-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.platform.configuration);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/devicetypes/android_sense.xml);\ \ No newline at end of file diff --git a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/p2.inf b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/p2.inf index 90429a5c26..d269b678e1 100644 --- a/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/p2.inf +++ b/features/device-types-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.ui.feature/src/main/resources/p2.inf @@ -2,12 +2,12 @@ instructions.configure = \ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/devicetypes/);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../resources/devicetypes/android_sense/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/datasources/,target:${installFolder}/../../../repository/conf/datasources/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/android_sense,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/datasources/,target:${installFolder}/../../../repository/conf/datasources/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/jaggeryapps/,target:${installFolder}/../../../repository/deployment/server/jaggeryapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/jaggeryapps/,target:${installFolder}/../../../repository/deployment/server/jaggeryapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/devicetypes/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/devicetypes/,target:${installFolder}/../../../repository/deployment/server/devicetypes/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense.ui_${feature.version}/devicetypes/,target:${installFolder}/../../../repository/deployment/server/devicetypes/,overwrite:true);\ instructions.unconfigure = \ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/android_sense);\ diff --git a/features/device-types-feature/androidsense-plugin-feature/pom.xml b/features/device-types-feature/androidsense-plugin-feature/pom.xml index bd59256e21..01b2f146bd 100644 --- a/features/device-types-feature/androidsense-plugin-feature/pom.xml +++ b/features/device-types-feature/androidsense-plugin-feature/pom.xml @@ -33,7 +33,10 @@ http://wso2.org + org.wso2.carbon.device.mgt.iot.androidsense.ui.feature + org.wso2.carbon.device.mgt.iot.androidsense.backend.feature + org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/pom.xml b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/pom.xml new file mode 100644 index 0000000000..7b7d734b36 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/pom.xml @@ -0,0 +1,149 @@ + + + + + + + + org.wso2.carbon.devicemgt-plugins + arduino-plugin-feature + 3.0.32-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.arduino.analytics.feature + pom + WSO2 Carbon - IoT Server Arduino Analytics Feature + http://wso2.org + This feature contains the Arduino Device type specific anaytics implementations for the IoT Server + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.arduino.analytics + + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/carbonapps + + **/* + + + + + + unpack-analytics + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.analytics + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/carbonapps + + **/* + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot.arduino + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:true + + + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version} + + + + + + + + + + diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/build.properties b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/build.properties new file mode 100644 index 0000000000..9c86577d76 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/build.properties @@ -0,0 +1 @@ +custom = true diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/p2.inf b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/p2.inf new file mode 100644 index 0000000000..032418230f --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.analytics.feature/src/main/resources/p2.inf @@ -0,0 +1,6 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/carbonapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/carbonapps/,target:${installFolder}/../../deployment/server/carbonapps/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/carbonapps//arduino.car);\ \ No newline at end of file diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/pom.xml b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/pom.xml new file mode 100644 index 0000000000..f615c9a124 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/pom.xml @@ -0,0 +1,136 @@ + + + + + + + + org.wso2.carbon.devicemgt-plugins + arduino-plugin-feature + 3.0.32-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.arduino.backend.feature + pom + WSO2 Carbon - IoT Server Arduino Backend Feature + http://wso2.org + This feature contains the Arduino Device type backend specific implementations for the IoT Server + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.arduino.api + war + + + com.h2database.wso2 + h2-database-engine + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-jaxrs-war + package + + copy + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.arduino.api + + war + true + ${project.build.directory}/maven-shared-archive-resources/webapps/ + + arduino.war + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot.arduino + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:true + + + + org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.device.mgt.server:${carbon.devicemgt.version} + + + + + + + + + diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/build.properties b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/build.properties new file mode 100644 index 0000000000..9c86577d76 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/build.properties @@ -0,0 +1 @@ +custom = true diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/devicetypes/arduino.xml b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/devicetypes/arduino.xml new file mode 100644 index 0000000000..7871e1d424 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/devicetypes/arduino.xml @@ -0,0 +1,43 @@ + + + + + + + Control Bulb + Control Bulb on Arduino Uno + + + state + + + + + + + false + + + + en_US + 1.0.0 + This is license text + + + \ No newline at end of file diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/p2.inf b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/p2.inf new file mode 100644 index 0000000000..6c09044b9e --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.backend.feature/src/main/resources/p2.inf @@ -0,0 +1,12 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/webapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/webapps/,target:${installFolder}/../../../repository/deployment/server/webapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/devicetypes/,target:${installFolder}/../../../repository/deployment/server/devicetypes/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/webapps/arduino.war);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/webapps/arduino);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/devicetypes/arduino.xml);\ \ No newline at end of file diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/pom.xml b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/pom.xml new file mode 100644 index 0000000000..e65857bd90 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/pom.xml @@ -0,0 +1,135 @@ + + + + + + + + org.wso2.carbon.devicemgt-plugins + arduino-plugin-feature + 3.0.32-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.arduino.ui.feature + pom + WSO2 Carbon - IoT Server Arduino UI Feature + http://wso2.org + This feature contains the Arduino Device type UI specific implementations for the IoT Server + + + + + com.h2database.wso2 + h2-database-engine + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.arduino.ui + + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/jaggeryapps/devicemgt + + **/* + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot.arduino + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:true + + + + org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.device.mgt.server:${carbon.devicemgt.version} + + + + + + + + + + diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.h b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.h new file mode 100644 index 0000000000..b6955cf79b --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.h @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. +**/ + +#ifndef ArduinoWifiAgent_H +#define ArduinoWifiAgent_H + +#include "Arduino.h" + +// These are the interrupt and control pins +#define ADAFRUIT_CC3000_IRQ 3 // MUST be an interrupt pin! +// These can be any two pins +#define ADAFRUIT_CC3000_VBAT 5 +#define ADAFRUIT_CC3000_CS 10 + +#define WLAN_SSID "ssid" // Your wifi network SSID (cannot be longer than 32 characters!) +#define WLAN_PASS "password" // Your wifi network password + +#define WLAN_SECURITY WLAN_SEC_WPA2 +// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2 +#define IDLE_TIMEOUT_MS 3000 + +#define DEVICE_OWNER "${DEVICE_OWNER}" +#define DEVICE_ID "${DEVICE_ID}" +#define DEVICE_TOKEN "${DEVICE_TOKEN}" +#define REFRESH_DEVICE_TOKEN "${DEVICE_REFRESH_TOKEN}" +#define DEVICE_TYPE "arduino" +#define TIME 0 +#define SUPER_TENANT "carbon.super" + +#define DAS_SERVICE_EPOINT "/endpoints${TENANT_DOMAIN}/arduino_receiver?deviceId=${DEVICE_ID}" + +#define IOT_SERVICE_EPOINT "/arduino/device/${DEVICE_ID}/controls" + +#define POLL_INTERVAL 1000 +#define PUSH_INTERVAL 10000 +#define DEBUG true +#define CON_DEBUG true + +#define SERVICE_PORT ${SERVER_EP_PORT} //http port of iot server + +byte server[4] = {${SERVER_EP_IP}}; //Ip address of iot server + +//set static Ip +/** +byte deviceIP[4] = { 192, 168, 1,110 }; //Ststic ip address of arduino +byte dns2[] = { 8, 8, 8, 8 }; //Ststic dns of arduino +byte subnet[] = { 255, 255, 255, 0 }; //Ststic subnet of arduino +byte gateway[] = { 192, 168, 1, 1 }; //Ststic gateway of arduino +*/ + +String host, jsonPayLoad, replyMsg; +String responseMsg, subStrn; +double cpuTemperature = 0; +static unsigned long pushTimestamp = 0; +static unsigned long pollTimestamp = 0; +char charBuf[10]; +String payLoad; + + +#endif + + diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.ino b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.ino new file mode 100644 index 0000000000..7f0e6941ab --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/ArduinoBoardSketch.ino @@ -0,0 +1,83 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. +**/ + + +#include "ArduinoBoardSketch.h" +#include +#include +#include +Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, + SPI_CLOCK_DIVIDER); // you can change this clock speed + +Adafruit_CC3000_Client client; + +uint32_t sserver; + + +void setup() +{ + Serial.begin(115200); + Serial.println(F("Internal Temperature Sensor")); + pinMode(6, OUTPUT); + pinMode(13, OUTPUT); + connectHttp(); + setupResource(); + wdt_enable(WDTO_8S); + +} + +void loop() +{ + wdt_reset(); + while( !cc3000.checkConnected() ){ + connectHttp(); + + } + + + cpuTemperature=getBoardTemp(); + + + if(millis() - pushTimestamp > PUSH_INTERVAL){ + while (!client.connected()) { + setupClient(); + } + pushData(); + + pushTimestamp = millis(); + } + + //Serial.println("PUSHED"); + + + wdt_reset(); + + if(millis() - pollTimestamp > POLL_INTERVAL){ + while (!client.connected()) { + setupClient(); + } + Serial.println("Read Controls"); + readControls(); + + pollTimestamp = millis(); + + } + +// //Serial.println("LOOPING"); + wdt_reset(); +} diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/Connect.ino b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/Connect.ino new file mode 100644 index 0000000000..ba37853252 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/Connect.ino @@ -0,0 +1,163 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. +**/ + +#include "ArduinoBoardSketch.h" +/********************************************************************************************** + Use the below variables when required to set a static IP for the WifiSheild + ***********************************************************************************************/ + + uint32_t ip, ddns, ssubnet, ggateway; + +String connecting = "connecting.... "; + +void connectHttp() { + /* Initialise the module */ + if(DEBUG) Serial.println(F("\nInitializing...")); + if (!cc3000.begin()) + { + if(DEBUG) Serial.println(F("Couldn't begin()! Check your wiring?")); + while(1); + } + + /********************************************************************************************** + Only required if using static IP for the WifiSheild + ***********************************************************************************************/ + + /** + ip = cc3000.IP2U32(deviceIP[0], deviceIP[1], deviceIP[2], deviceIP[3]); + ddns = cc3000.IP2U32(dns2[0], dns2[1], dns2[2], dns2[3]); + ssubnet = cc3000.IP2U32(subnet[0], subnet[1], subnet[2], subnet[3]); + ggateway = cc3000.IP2U32(gateway[0], gateway[1], gateway[2], gateway[3]); + cc3000.setStaticIPAddress(ip, ssubnet, ggateway, ddns); + */ + // required for setting static IP + + /***********************************************************************************************/ + + + sserver = cc3000.IP2U32(server[0], server[1], server[2], server[3]); + + if(CON_DEBUG) { + Serial.print(F("\nAttempting to connect to ")); + Serial.println(WLAN_SSID); + } + + cc3000.deleteProfiles(); + + if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) { + if(CON_DEBUG) Serial.println(F("Failed!")); + while(1); + } + + if(CON_DEBUG) Serial.println(F("Connected to Wifi network!")); + + if(CON_DEBUG) Serial.println(F("Request DHCP")); + while (!cc3000.checkDHCP()) + { + delay(100); + } + + /* Display the IP address DNS, Gateway, etc. */ + while (! displayConnectionDetails()) { + delay(1000); + } + + if (cc3000.checkConnected()) { + Serial.println("client Connected to AP"); + client = cc3000.connectTCP(sserver, SERVICE_PORT); + if (client.connected()) { + if(CON_DEBUG) Serial.println("client Connected to server"); + } else { + if(CON_DEBUG) Serial.println(F("client Connection failed")); + } + } else { + Serial.println(F("client Connection to AP failed")); + } + + if(CON_DEBUG) Serial.println(F("-------------------------------------")); +} + + +void setupResource(){ + String hostIP = getHostIP(server); + String port = String(SERVICE_PORT); + + host = "Host: " + hostIP + ":" + port; + if(DEBUG) Serial.println(host); + + jsonPayLoad = "{\"event\":{\"metaData\":"; + jsonPayLoad += "{\"owner\":\""; + jsonPayLoad += String(DEVICE_OWNER); + jsonPayLoad += "\",\"deviceId\":\""; + jsonPayLoad += String(DEVICE_ID); + jsonPayLoad += "\"}, \"payloadData\":{"; + + if(DEBUG) { + Serial.print("JSON Payload: "); + Serial.println(jsonPayLoad); + Serial.println("-------------------------------"); + } +} + +String getHostIP(byte server[4]){ + String hostIP = String(server[0]); + + for ( int index = 1; index < 4; index++) { + hostIP += "." + String(server[index]); + } + + return hostIP; +} + + +bool displayConnectionDetails(void) +{ + uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv; + + if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv)) + { + if(DEBUG) Serial.println(F("Unable to retrieve the IP Address!\r\n")); + return false; + } + else + { + if(CON_DEBUG) { + Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress); + Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask); + Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway); + Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv); + Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv); + Serial.println(); + } + return true; + } +} + +void setupClient(){ + client = cc3000.connectTCP(sserver, SERVICE_PORT); //SERVICE_PORT + if (client.connected()) { + if(CON_DEBUG) Serial.println("client Connected to server"); + } else { + while( !cc3000.checkConnected() ){ + connectHttp(); + + } + if(CON_DEBUG) Serial.println(F("client Connection failed")); + } +} + diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PollServer.ino b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PollServer.ino new file mode 100644 index 0000000000..040790f2df --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PollServer.ino @@ -0,0 +1,82 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. +**/ + +#include "ArduinoBoardSketch.h" +void readControls() { + // String responseMsg; + + Serial.println("Started.."); + + client.fastrprint(F("GET ")); + client.fastrprint(IOT_SERVICE_EPOINT); + client.fastrprint(F(" HTTP/1.1")); + client.fastrprint(F("\n")); + client.fastrprint(host.c_str());client.fastrprint(F("\n")); + client.fastrprint(F("Authorization: Bearer ")); client.fastrprint(F(DEVICE_TOKEN)); client.fastrprint(F("\n")); + client.fastrprint(F("\n")); + client.fastrprint(F("protocol: HTTP\n")); + + client.println(); + + if(DEBUG) { + Serial.print("GET "); + Serial.print(IOT_SERVICE_EPOINT); + Serial.print(" HTTP/1.1"); Serial.println(); + Serial.print(host); Serial.println(); + Serial.print("Content-Type: application/json"); Serial.println(); + Serial.println(); + } + + delay(1000); + + while (client.available()) { + char response = client.read(); + if(DEBUG) Serial.print(response); + responseMsg += response; + + } + Serial.println(); + Serial.println("Ended.."); + int index = responseMsg.lastIndexOf(":"); + int newLine = responseMsg.lastIndexOf("\n"); + subStrn = responseMsg.substring(index + 1); + responseMsg = responseMsg.substring(newLine + 1, index); + + if(DEBUG) { + Serial.print("Polling Response: "); + Serial.print(responseMsg); + Serial.println(); + Serial.println("-------------------------------"); + } + + if (subStrn.equals("ON")) { + Serial.println("ITS ON"); + digitalWrite(13, HIGH); + digitalWrite(6, HIGH); + } else if (subStrn.equals("OFF")){ + + Serial.println("ITS OFF"); + digitalWrite(13, LOW); + digitalWrite(6, LOW); + + } + responseMsg = ""; + +} + + diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PushData.ino b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PushData.ino new file mode 100644 index 0000000000..c5879b0fea --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/PushData.ino @@ -0,0 +1,133 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. +**/ + +#include "ArduinoBoardSketch.h" + +/********************************************************************************************** + This method will traverse the array of digital pins and batch the data from the those pins together. + It makes a single call to the server and sends all pin values as a batch. + Server dis-assembles it accordingly and makes multiple publish calls for each sensor type. + ***********************************************************************************************/ + +void pushData(){ + + payLoad = "\"temperature\":"; + payLoad += dtostrf(cpuTemperature, 3, 2, charBuf); + payLoad += "}}}"; + + client.fastrprint(F("POST ")); + client.fastrprint(DAS_SERVICE_EPOINT); + client.fastrprint(F(" HTTP/1.1")); client.fastrprint(F("\n")); + client.fastrprint(host.c_str()); client.fastrprint(F("\n")); + client.fastrprint(F("Authorization: Bearer ")); client.fastrprint(F(DEVICE_TOKEN)); client.fastrprint(F("\n")); + client.fastrprint(F("Content-Type: application/json")); client.fastrprint(F("\n")); + client.fastrprint(F("Accept: application/json")); client.fastrprint(F("\n")); + client.fastrprint(F("Content-Length: ")); + + int payLength = jsonPayLoad.length() + payLoad.length(); + + client.fastrprint(String(payLength).c_str()); client.fastrprint(F("\n")); + client.fastrprint(F("\n")); + + if(DEBUG) { + Serial.print("POST "); + Serial.print(DAS_SERVICE_EPOINT); + Serial.print(" HTTP/1.1"); Serial.println(); + Serial.print(host); Serial.println(); + Serial.print("Content-Type: application/json"); Serial.println(); + Serial.print("Content-Length: "); + Serial.print(payLength); Serial.println(); + Serial.println(); + } + + + int chunkSize = 50; + + for (int i = 0; i < jsonPayLoad.length(); i++) { + if ( (i+1)*chunkSize > jsonPayLoad.length()) { + client.print(jsonPayLoad.substring(i*chunkSize, jsonPayLoad.length())); + if(DEBUG) Serial.print(jsonPayLoad.substring(i*chunkSize, jsonPayLoad.length())); + i = jsonPayLoad.length(); + } else { + client.print(jsonPayLoad.substring(i*chunkSize, (i+1)*chunkSize)); + if(DEBUG) Serial.print(jsonPayLoad.substring(i*chunkSize, (i+1)*chunkSize)); + } + } + + for (int i = 0; i < payLoad.length(); i++) { + if ( (i+1)*chunkSize > payLoad.length()) { + client.print(payLoad.substring(i*chunkSize, payLoad.length())); + if(DEBUG) Serial.print(payLoad.substring(i*chunkSize, payLoad.length())); + i = payLoad.length(); + } else { + client.print(payLoad.substring(i*chunkSize, (i+1)*chunkSize)); + if(DEBUG) Serial.print(payLoad.substring(i*chunkSize, (i+1)*chunkSize)); + } + } + + client.fastrprint(F("\n")); + if(DEBUG) Serial.println(); + + delay(1000); + + + while (client.available()) { + char response = client.read(); + if(DEBUG) Serial.print(response); + } + + + if(DEBUG) { + Serial.println(); + Serial.println("-------------------------------"); + } + + payLoad = ""; +} + + +double getBoardTemp(void) +{ + unsigned int wADC; + double t; + + // The internal temperature has to be used + // with the internal reference of 1.1V. + // Channel 8 can not be selected with + // the analogRead function yet. + + // Set the internal reference and mux. + ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); + ADCSRA |= _BV(ADEN); // enable the ADC + + delay(20); // wait for voltages to become stable. + + ADCSRA |= _BV(ADSC); // Start the ADC + + // Detect end-of-conversion + while (bit_is_set(ADCSRA,ADSC)); + + // Reading register "ADCW" takes care of how to read ADCL and ADCH. + wADC = ADCW; + + // The offset of 324.31 could be wrong. It is just an indication. + t = (wADC - 324.31 ) / 1.22; + + // The returned temperature is in degrees Celcius. + return (t); +} diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/deviceType.png b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/agent/deviceType.png new file mode 100644 index 0000000000000000000000000000000000000000..766cd2baa01859403bbf14a82d8ff5bc2acb5aea GIT binary patch literal 10418 zcmbVy1yt1E+U^k2gOs9xfPe@h3^l+YJ#-FT(hOa~(9(@aBhn$#(ujnhG}171N{6&` z-Jkz+{^#Cr-E+SCt;<@onAv;3JKkOI^E^8Op)3O?pdtW)KwvppNi`4%!|=}s4--g{ zkXuv&{yjuV>7djdEl}Tl;QBOcLJR!qkW?r^tFmnb`5qcpHL7)PAB+7)|!`{xpMbJZ-;jelHf$x8kAq@0?6+zhwGyJ1d zI!Xw7xT7n*vK-}HkIox?T9Gxv8Tre06!pRNc=4J;jRD{N_YM6i2=qo!#n~E| z6cam1M>AJ@qytJ$QkVhA;V`#07ld(}Ai0rH9(GQ1P9(bpl$VnoW@>864zu8b@gaFl zO}Y34{;ucW*-LRkxdiy7;8I-DQe0e8P;p)ukAS2!j}$+@G!Hja;%{3y2N#rygBkMg zwylA-|7k1n-`WbooslLeM`sO3N4vjQ0m8}=<>+GN=tK{P)3az>JD5AVyRiP5p??fm z66tL1hBTLUcC@Ge%f*7$|E75^E+i6$Hg;@x2nwfK& zn=t&--u(a9br7IakU#6>|5!JFCjpD`&)0wL0^rBL_7Tzn*gVd_E(y6e$_WB7O~^@# zYj{lm%D~m2n7FMocsHLsFBzFlkEv#FjG>CCq|A+gO26%lWLK^1$Toe`Nnyr#GI5Z3=eON~xw%1?6Ay~8diQ4cwJGnt+14cim2KcexP5~y z0Rs6`fj|f>5Xc4u5(9%kg%}_Z6a>n~0fEr}HuFE{{719@zQX_8?0?jc|7!LhyT7rq z!}eW*sG@`C=xsQ!th05m@sPI65`b6zOX3U?Qh1Zf&UA(;JnZri!m( zXu+VB5!Uf4Gn54s&$Uy`frD zEXok&%c(`pfx=_l&x8N z4%#mGps$860l(&$=ftcB?5*|4DjYO>^_kWS{?6TE)R@bO=#?tW!J+3>JfQjFeQdY& zaLtHJScwP)g<0u}fyJzxDz#00(cY_y3>)m0NI z6`g}JN|)3}j9Pl(EBY8%A2E(-UW&%lT}Ru$rjwVwTB;M%MKA|afi@Q1&*){?FrF5d z760!4t%@gt2H}Ntn4Ytz{*WCZ%#R)#Ud+bJ#t~y67rM|*qvndQNiY4K3hDarS0Z74 zlrg7kR$SS}D_}Xk+OTo9V~={+=by;rt>Z^cfsF=rw~lsXmSd%Fa5~3g5n$SY%zv)h zba~LuUg#+(n20kLVvqzer3nws#~;|Suy(_ATxDK~f&D1}pW&T1@C|AG^Cwgzj=T`V z|J?=|&nzBR7SJP-6`|OMR0I|p6dusej3kVR{v<~T1%0D*CX~nTkyAFokHoS88SIOF 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 + + + + + + Control Bulb + Control Bulb on Arduino Uno + + + state + + + + + + + false + + + + en_US + 1.0.0 + This is license text + + + \ No newline at end of file diff --git a/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/p2.inf b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/p2.inf new file mode 100644 index 0000000000..ecc9c40a25 --- /dev/null +++ b/features/device-types-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.ui.feature/src/main/resources/p2.inf @@ -0,0 +1,20 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/sketches/);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/sketches/arduino/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/agent/,target:${installFolder}/../../../repository/resources/sketches/arduino/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/jaggeryapps/,target:${installFolder}/../../../repository/deployment/server/jaggeryapps/,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/deployment/server/devicetypes/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/devicetypes/,target:${installFolder}/../../../repository/deployment/server/devicetypes/,overwrite:true);\ + +instructions.unconfigure = \ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/resources/sketches/arduino);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.device-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.analytics-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.realtime.analytics-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.platform.configuration);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/resources/devicetypes/arduino.car);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../repository/deployment/server/devicetypes/arduino.xml);\ \ No newline at end of file diff --git a/features/device-types-feature/arduino-plugin-feature/pom.xml b/features/device-types-feature/arduino-plugin-feature/pom.xml index a024a3d984..d4df856ae2 100644 --- a/features/device-types-feature/arduino-plugin-feature/pom.xml +++ b/features/device-types-feature/arduino-plugin-feature/pom.xml @@ -33,7 +33,10 @@ http://wso2.org - org.wso2.carbon.device.mgt.iot.arduino.feature + + org.wso2.carbon.device.mgt.iot.arduino.ui.feature + org.wso2.carbon.device.mgt.iot.arduino.backend.feature + org.wso2.carbon.device.mgt.iot.arduino.analytics.feature