[zb4osgi-changeset] [scm] ZigBee 4 OSGi repository change: r404 - in /projects/zb4osgi/sandbox/howlab/telegesis-driver-api: ./ src/ src/main/ src/main/assembly/ src/main/java/ src/main/java/es/ src/main/java/es/unizar/ src/main/java/es/unizar/howlab/ src/main/java/es/unizar/howlab/core/ src/main/java/es/unizar/howlab/core/zigbee/ src/main/java/es/unizar/howlab/core/zigbee/telegesis/ src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/osgi/ src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ src/main/resources/ src/main/resources/es/ src/main/resources/es/unizar/ src/main/resources/es/unizar/howlab/ src/main/resources/es/unizar/howlab/core/ src/main/resources/es/unizar/howlab/core/zigbee/ src/main/resources/es/unizar/howlab/core/zigbee/telegesis/ src/main/resources/es/unizar/howlab/core/zigbee/telegesis/driver/ src/main/resources/es/unizar/howlab/core/zigbee/telegesis/driver/api/ src/test/ src/test/java/ src/test/java/es/ src/test/java/es/unizar/ src/test/java/es/unizar/howlab/ src/test/java/es/unizar/howlab/core/ src/test/java/es/unizar/howlab/core/zigbee/ src/test/java/es/unizar/howlab/core/zigbee/telegesis/ src/test/java/es/unizar/howlab/core/zigbee/telegesis/driver/
scm-notify at zb4osgi.aaloa.org
scm-notify at zb4osgi.aaloa.org
Thu Feb 2 13:18:35 CET 2012
Author: alvaro.marco
Date: Thu Feb 2 13:18:35 2012
New Revision: 404
Log:
howlab import
Added:
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/LICENSE
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/es.unizar.howlab.io.serial.xml
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/nbactions.xml
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/pom.xml
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/assembly/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/assembly/felix.xml
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/Driver.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/DriverListener.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDevice.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDeviceListener.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNode.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNodeListener.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/osgi/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/osgi/Constants.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ByteAddress.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/EUI64Address.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkAddress.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkInfo.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkScanInfo.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ZigbeeNodeType.java
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/LICENSE
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/howlab/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/howlab/core/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/howlab/core/zigbee/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/howlab/core/zigbee/telegesis/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/howlab/core/zigbee/telegesis/driver/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/es/unizar/howlab/core/zigbee/telegesis/driver/api/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/unizar/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/unizar/howlab/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/unizar/howlab/core/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/unizar/howlab/core/zigbee/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/unizar/howlab/core/zigbee/telegesis/
projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/test/java/es/unizar/howlab/core/zigbee/telegesis/driver/
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/LICENSE
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/LICENSE (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/LICENSE Thu Feb 2 13:18:35 2012
@@ -1,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ 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.
+
+ 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,
+ 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 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 in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) 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
+
+ (d) 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.
+
+ 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 Apache License to your work.
+
+ To apply the Apache 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 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.
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/es.unizar.howlab.io.serial.xml
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/es.unizar.howlab.io.serial.xml (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/es.unizar.howlab.io.serial.xml Thu Feb 2 13:18:35 2012
@@ -1,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Document : config.xml
+ Created on : June 8, 2011, 9:15 AM
+ Author : ciru
+ Description:
+ Purpose of the document follows.
+-->
+
+<config>
+
+ <connections>
+<!-- <connection>
+ <protocol>rs232</protocol>
+ <where>COM5</where>
+ <how>115200</how>
+ <connectTime>100</connectTime>
+ <retry>true</retry>
+ </connection>-->
+ <connection>
+ <protocol>rs232</protocol>
+ <where>COM6</where>
+ <how>115200</how>
+ <connectTime>100</connectTime>
+ <retry>true</retry>
+ </connection>
+ <!--connection>
+ <protocol>tcp</protocol>
+ <where>192.168.0.3</where>
+ <how>10001</how>
+ <connectTime>1000</connectTime>
+ <retry>false</retry>
+ </connection
+ <connection>
+ <protocol>tcp</protocol>
+ <where>192.168.0.5</where>
+ <how>10001</how>
+ <connectTime>1000</connectTime>
+ <retry>false</retry>
+ </connection>-->
+ </connections>
+</config>
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/nbactions.xml
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/nbactions.xml (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/nbactions.xml Thu Feb 2 13:18:35 2012
@@ -1,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+ <action>
+ <actionName>run</actionName>
+ <goals>
+ <goal>package</goal>
+ <goal>antrun:run</goal>
+ </goals>
+ <activatedProfiles>
+ <activatedProfile>run-on-felix</activatedProfile>
+ </activatedProfiles>
+ <properties>
+ <skipTests>true</skipTests>
+ </properties>
+ </action>
+ <action>
+ <actionName>debug</actionName>
+ <goals>
+ <goal>package</goal>
+ <goal>antrun:run</goal>
+ </goals>
+ <properties>
+ <vm.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address}</vm.args>
+ <jpda.listen>true</jpda.listen>
+ </properties>
+ <activatedProfiles>
+ <activatedProfile>run-on-felix</activatedProfile>
+ </activatedProfiles>
+ </action>
+ <action>
+ <actionName>profile</actionName>
+ <goals>
+ <goal>package</goal>
+ <goal>antrun:run</goal>
+ </goals>
+ <properties>
+ <vm.args>${profiler.args}</vm.args>
+ <!-- XXX <java jvm="${profiler.java}" ...> -->
+ <profiler.action>profile</profiler.action>
+ </properties>
+ <activatedProfiles>
+ <activatedProfile>run-on-felix</activatedProfile>
+ </activatedProfiles>
+ </action>
+ <action>
+ <actionName>build</actionName>
+ <goals>
+ <goal>install</goal>
+ </goals>
+ <properties>
+ <skipTests>true</skipTests>
+ </properties>
+ </action>
+ <action>
+ <actionName>rebuild</actionName>
+ <goals>
+ <goal>clean</goal>
+ <goal>install</goal>
+ </goals>
+ <properties>
+ <skipTests>true</skipTests>
+ </properties>
+ </action>
+ <action>
+ <actionName>CUSTOM-Prepare a Release</actionName>
+ <displayName>Prepare a Release</displayName>
+ <goals>
+ <goal>release:prepare</goal>
+ </goals>
+ </action>
+ <action>
+ <actionName>CUSTOM-Perform a Release</actionName>
+ <displayName>Perform a Release</displayName>
+ <goals>
+ <goal>release:perform</goal>
+ </goals>
+ </action>
+</actions>
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/pom.xml
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/pom.xml (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/pom.xml Thu Feb 2 13:18:35 2012
@@ -1,0 +1,256 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>es.unizar.howlab.core.zigbee.telegesis</groupId>
+ <artifactId>telegesis-driver-api</artifactId>
+ <version>1.5-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>telegesis-driver-api OSGi Bundle</name>
+
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0, January 2004</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ </license>
+ </licenses>
+
+ <!-- Añadir ruta developer, estableciendo la ruta al trunk: -->
+ <scm>
+ <developerConnection>scm:svn:https://web.hermes.cps.unizar.es/repos/howlab/Software/core/zigbee/telegesis/driver-api/trunk</developerConnection>
+ </scm>
+
+ <!-- Añadir distribution management (en el settings.xml tenemos que tener el usuario y contraseña para el id en el server: -->
+ <distributionManagement>
+ <repository>
+ <uniqueVersion>false</uniqueVersion>
+ <id>repo_nas_rel</id>
+ <url>ftp://howlab.dyndns.org/repo/software/releases/</url>
+ <layout>default</layout>
+ </repository>
+ <snapshotRepository>
+ <uniqueVersion>false</uniqueVersion>
+ <id>repo_nas_snap</id>
+ <url>ftp://howlab.dyndns.org/repo/software/snapshots</url>
+ <layout>default</layout>
+ </snapshotRepository>
+ </distributionManagement>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <repositories>
+ <repository>
+ <id>repo_nas_rel</id>
+ <url>ftp://howlab.dyndns.org/repo/software/releases/</url>
+ </repository>
+ <repository>
+ <id>repo_nas_snap</id>
+ <url>ftp://howlab.dyndns.org/repo/software/snapshots</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>1.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>es.unizar.howlab.core.zigbee.telegesis</groupId>
+ <artifactId>telegesis-gateway-api</artifactId>
+ <version>1.3</version>
+ <type>bundle</type>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.2.0</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.8</version>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Añadir pluggin maven-release-plugin -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.2.1</version>
+ </plugin>
+ </plugins>
+
+ <!-- Añadir extensiones wagon para que se pueda acceder al respositorio de distribucion por ftp -->
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ftp</artifactId>
+ <version>1.0</version>
+ </extension>
+ </extensions>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>build-for-felix</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.main</artifactId>
+ <version>3.0.7</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- To include a shell:
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.gogo.shell</artifactId>
+ <version>0.6.1</version>
+ </dependency>
+ -->
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.6</version>
+ <executions>
+ <execution>
+ <id>compile</id>
+ <phase>package</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <pathconvert property="plugins.jars" pathsep="${path.separator}">
+ <path refid="maven.runtime.classpath" />
+ <map from="${project.build.directory}${file.separator}classes" to="" />
+ </pathconvert>
+ <pathconvert pathsep=" " property="bundles">
+ <path path="${plugins.jars}" />
+ <mapper>
+ <chainedmapper>
+ <flattenmapper />
+ <globmapper from="*" to="file:modules/*" casesensitive="no" />
+ </chainedmapper>
+ </mapper>
+ </pathconvert>
+ <propertyfile file="${project.build.directory}/config.properties">
+ <entry key="felix.auto.start" value="${bundles} file:modules/${project.build.finalName}.jar" />
+ <entry key="org.osgi.framework.bootdelegation" value="*" />
+ </propertyfile>
+ <copy file="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}" tofile="${project.build.directory}/felix.jar" />
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2</version>
+ <executions>
+ <execution>
+ <id>create-executable-jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/assembly/felix.xml</descriptor>
+ </descriptors>
+ <finalName>${project.build.finalName}</finalName>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>run-on-felix</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.main</artifactId>
+ <version>3.0.7</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- org.apache.felix:org.apache.felix.gogo.shell:0.6.1 useless from Maven since stdin is swallowed -->
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.6</version>
+ <configuration>
+ <target>
+ <property name="vm.args" value="" />
+ <pathconvert property="plugins.jars" pathsep="${path.separator}">
+ <path refid="maven.runtime.classpath" />
+ <map from="${project.build.directory}${file.separator}classes" to="" />
+ </pathconvert>
+ <makeurl property="urls" separator=" ">
+ <path path="${plugins.jars}" />
+ <path location="${project.build.directory}/${project.build.finalName}.jar" />
+ </makeurl>
+ <propertyfile file="${project.build.directory}/run.properties">
+ <entry key="felix.auto.start" value="${urls}" />
+ <entry key="felix.auto.deploy.action" value="uninstall,install,update,start" />
+ <entry key="org.osgi.framework.storage" value="${project.build.directory}${file.separator}felix-cache" />
+ <entry key="org.osgi.framework.bootdelegation" value="*" />
+ </propertyfile>
+ <makeurl property="run.properties.url" file="${project.build.directory}/run.properties" />
+ <java fork="true" jar="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}">
+ <sysproperty key="felix.config.properties" value="${run.properties.url}" />
+ <jvmarg line="${vm.args}" />
+ </java>
+ </target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/assembly/felix.xml
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/assembly/felix.xml (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/assembly/felix.xml Thu Feb 2 13:18:35 2012
@@ -1,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly>
+ <id>all</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <dependencySets>
+ <dependencySet>
+ <useProjectArtifact>false</useProjectArtifact>
+ <outputDirectory>modules</outputDirectory>
+ <excludes>
+ <exclude>org.apache.felix:org.apache.felix.main</exclude>
+ </excludes>
+ </dependencySet>
+ </dependencySets>
+ <files>
+ <file>
+ <source>${project.build.directory}/${project.build.finalName}.jar</source>
+ <outputDirectory>modules</outputDirectory>
+ </file>
+ <file>
+ <source>${project.build.directory}/felix.jar</source>
+ <outputDirectory>bin</outputDirectory>
+ </file>
+ <file>
+ <source>${project.build.directory}/config.properties</source>
+ <outputDirectory>conf</outputDirectory>
+ </file>
+ </files>
+</assembly>
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/Driver.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/Driver.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/Driver.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,369 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver;
+
+import es.unizar.howlab.core.zigbee.telegesis.driver.util.*;
+import es.unizar.howlab.core.zigbee.telegesis.gateway.Gateway;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public interface Driver {
+
+ // <editor-fold defaultstate="collapsed" desc="NETWORK CONTROL">
+ /**
+ * Retrieves current network information, if joined to the network or null
+ * if not joined to any network
+ * @return NetworkInformation
+ */
+ public NetworkInfo getNetworkInfo();
+
+ /**
+ * Ask driver to retrieve current network information from the dongle. Will
+ * return NetworkInformation if joined to the network or null if not joined
+ * to any network
+ * @return NetworkInformation
+ */
+ public NetworkInfo readNetworkInfo();
+
+ /**
+ * Performs a network scan to list available networks on the surroundings
+ * @return list of network founds
+ */
+ public NetworkScanInfo[] findNetworks();
+
+ /**
+ * Request driver to create a new network
+ * Note: if already joined to any network, this will return fail
+ * @return True if success, false otherwise
+ */
+ public boolean createNetwork();
+
+ /**
+ * Request driver to create a new network at provided channel and with provided
+ * PANID
+ * Note: if already joined to any network, this will return fail
+ * @param channel Network channel (between 11 and 26)
+ * @param PID Network PAN ID, in the format XXXX
+ * @return TRUE if success, false otherwise
+ */
+ public boolean createNetwork(int channel, String PID);
+
+ /**
+ * Request driver to create a new network at provided channel and with provided
+ * PANID, with security link key
+ * Note: if already joined to any network, this will return fail
+ * @param channel Network channel (between 11 and 26)
+ * @param PID Network PAN ID, in the format XXXX
+ * @param linkKey 128 bits link security key (16 characters, or 32 characters
+ * representing 128 bit hexadecimal notation)
+ * @return TRUE if success, false otherwise
+ */
+ public boolean createNetwork(int channel, String PID, String linkKey);
+
+ /**
+ * Request driver to create a new network at any channel and with provided
+ * PANID
+ * Note: if already joined to any network, this will return fail
+ * @param PID Network PAN ID, in the format XXXX
+ * @return TRUE if success, false otherwise
+ */
+ public boolean createNetwork(String PID);
+
+ /**
+ * Request driver to create a new network at any channel and with provided
+ * PANID, with security link key
+ * Note: if already joined to any network, this will return fail
+ * @param PID Network PAN ID, in the format XXXX
+ * @param linkKey 128 bits link security key (16 characters, or 32 characters
+ * representing 128 bit hexadecimal notation)
+ * @return TRUE if success, false otherwise
+ */
+ public boolean createNetwork(String PID, String linkKey);
+ /**
+ * Request driver to join any network
+ * Note: if already joined to any network, this will return fail
+ * @return True if success, false otherwise
+ */
+ public boolean joinNetwork();
+
+ /**
+ * Request driver to join the network with provided PANID
+ * Note: if already joined to any network, this will return fail
+ * @param PID Network PAN ID, in the format XXXX
+ * @return True if success, false otherwise
+ */
+ public boolean joinNetwork(String PID);
+
+ /**
+ * Request driver to join the network with provided PANID, and supplying a link
+ * security key
+ * Note: if already joined to any network, this will return fail
+ * @param PID Network PAN ID, in the format XXXX
+ * @param linkKey 128 bits link security key (16 characters, or 32 characters
+ * representing 128 bit hexadecimal notation)
+ * @return True if success, false otherwise
+ */
+ public boolean joinNetwork(String PID, String linkKey);
+
+ /**
+ * Request driver to join the network with provided PANID and channel
+ * Note: if already joined to any network, this will return fail
+ * @param channel Network channel (between 11 and 26)
+ * @param PID Network PAN ID, in the format XXXX
+ * @return True if success, false otherwise
+ */
+ public boolean joinNetwork(int channel, String PID);
+
+ /**
+ * Request driver to join the network with provided PANID and channel, and
+ * supplying a link security key
+ * Note: if already joined to any network, this will return fail
+ * @param channel Network channel (between 11 and 26)
+ * @param PID Network PAN ID, in the format XXXX
+ * @param linkKey 128 bits link security key (16 characters, or 32 characters
+ * representing 128 bit hexadecimal notation)
+ * @return True if success, false otherwise
+ */
+ public boolean joinNetwork(int channel, String PID, String linkKey);
+
+ /**
+ * Request driver to leave current network.
+ * Note: if not joined to any network, this will return sucess
+ * @return True if success, false otherwise
+ */
+ public boolean leaveNetwork();
+
+ /**
+ * Request driver to perform a network scan to detect nodes
+ * @return true if success, false otherwise
+ */
+ public boolean scanNetwork();
+
+ /**
+ * Request node to leave network
+ * @param node ZigbeeNode requested to leave network
+ * @return True if success, false otherwise
+ */
+ public boolean leaveNetwork(ZigbeeNode node);
+
+ /**
+ * Ask driver for existing node with provided address, which may be 64 bits
+ * EUI64Addr or 16 bits network address
+ * @param address String representation of EUI64Addr (8 hex chars) or NodeId
+ * (4 chars)
+ * @return Related node, or null if node not found
+ */
+ public ZigbeeNode getNode(String address);
+
+ /**
+ * Ask Network's nodes list
+ * @return
+ */
+ public ZigbeeNode[] getNodes();
+
+ /**
+ * Ask for network's coordinator
+ * @return ZigbeeNode coordinator or null if not joined to network
+ */
+ public ZigbeeNode getNetworkCoordinator();
+
+ /**
+ * Ask for gateway ZigbeeNode
+ * @return ZigbeeNode Gateway Node
+ */
+ public ZigbeeNode getDongle();
+
+ /**
+ * Request driver to send a message to the related node
+ * @param node ZigbeeNode
+ * @param message data to send
+ * @return True if success, false otherwise
+ */
+ public boolean sendMessage(ZigbeeNode node, byte[] message);
+
+ /**
+ * Request driver to send a message to the related ZigbeeDevice
+ * (Node+EndPoint)
+ * Note: ProfileID is assumed to be the same of the ZigbeeDevice if none is
+ * is profided (null)
+ * @param device ZigbeeDevice
+ * @param profileID ProfileID for the related message
+ * @param clusterID ClusterID for the related message
+ * @param message data to send
+ * @return True if success, false otherwise
+ */
+ public boolean sendMessage(ZigbeeDevice device, String profileID, String clusterID, byte[] message);
+
+ /**
+ * Request driver to send a broadcast message
+ * @param message data to send
+ * @return True if success, false otherwise
+ */
+ public boolean sendBroadcastMessage(byte[] message);
+
+ /**
+ * Request driver to read a register on the related node
+ * @param node ZigbeeNode
+ * @param regAddress register to read
+ * @return Register data or null if some error
+ */
+ public String readRegister(ZigbeeNode node, short regAddress);
+
+ /**
+ * Request driver to write a register on the related node
+ * @param node ZigbeeNode
+ * @param regAddress register to write
+ * @param data register data
+ * @return True if success, false otherwise
+ */
+ public boolean writeRegister(ZigbeeNode node, short regAddress, String data);
+
+ // </editor-fold>
+ // <editor-fold defaultstate="collapsed" desc="NODE DISCOVERY">
+ /**
+ * Request driver to retrieve and update active end points from a given node
+ * @param node ZigbeeNode
+ * @return True if success, false otherwise
+ */
+ public boolean updateActiveEndPoints(ZigbeeNode node);
+
+ /**
+ * Request driver to retrieve and update End point descriptor for the given
+ * Zigbee device
+ * @param device ZigbeeDevice
+ * @return True if success, false otherwise
+ */
+ public boolean updateEndPointDescriptor(ZigbeeDevice device);
+
+ /**
+ * Request driver to retrieve and update neighbours for the given node
+ * @param node ZigbeeNode
+ * @return True if success, false otherwise
+ */
+ public boolean updateNeighbourTable(ZigbeeNode node);
+
+ /**
+ * Request driver to find router for the given node
+ * @param node ZigbeeNode
+ * @return True if success, false otherwise
+ */
+ public boolean findRoute(ZigbeeNode node);
+
+ // </editor-fold>
+ // <editor-fold defaultstate="collapsed" desc="DRIVER CONTROL">
+ public enum DriverStatus {
+
+ /**
+ * Driver is on unknonw state
+ */
+ Unknown,
+ /**
+ * Driver is initializing
+ */
+ Initializing,
+ /**
+ * Driver is disabled, not attending commands nor events
+ */
+ Disabled,
+ /**
+ * Driver is ready to execute tasks
+ */
+ Ready,
+ /**
+ * Driver is performing automated tasks
+ */
+ Running,
+ /**
+ * Driver is finishins automated task prior to stop
+ */
+ Stopping
+ }
+
+ /**
+ * Tries to open connection with physical gateway and sets initial
+ * configuration
+ * NOTE: communication wont be established until init returns TRUE.
+ * Must be called prior to use
+ * @return TRUE if sucessfully open, FALSE in other case
+ */
+ public boolean init();
+
+ /**
+ * Start driver managed operations'
+ * @return TRUE if sucessfully startetd, FALSE in other case
+ */
+ public boolean start();
+
+ /**
+ * Stop driver managed operations'
+ * @return TRUE if sucessfully stopped, FALSE in other case
+ */
+ public boolean stop();
+
+ /**
+ * Disable driver. Changes status to DriverStatus.Disabled
+ */
+ public void disable();
+
+ /**
+ * Request driver status
+ * @return current Driver status
+ */
+ public DriverStatus getStatus();
+
+ /**
+ * Reguest driver Gateway
+ * @return underlying driver gateway
+ */
+ public Gateway getGateway();
+ /**
+ * Tries locking driver to prevent use while executing protected operations
+ * Note: calling this method will NOT stop execution
+ * @param milliseconds Max. lock time prior to autommatic unlock
+ * @return TRUE if sucessful lock or FALSE in other case (locked by another thread)
+ */
+ public boolean tryLock(int milliseconds);
+
+ /**
+ * Locks driver to prevent use while executing protected operations
+ * Note: calling this method WILL stop execution until sucessfully lock
+ * @param milliseconds Max. lock time prior to autommatic unlock
+ */
+ public void lock(int milliseconds);
+
+ /**
+ * Unlock driver to allow executing protected operations by another threads
+ * Note: Thread must be owner of the lock to unlock
+ * @return TRUE if sucessfully unlcoked or FALSE in other case (not lock owner)
+ */
+ public boolean unlock();
+
+ // </editor-fold>
+ /**
+ * Register a Driver listener
+ * @param lstnr
+ */
+ public void registerListener(DriverListener lstnr);
+
+ /**
+ * Unregister a Driver listener
+ * @param lstnr
+ */
+ public void unregisterListener(DriverListener lstnr);
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/DriverListener.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/DriverListener.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/DriverListener.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,75 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public interface DriverListener {
+
+ /**
+ * Handles notifications for new nodes discovered on the network
+ * @param node New node created
+ * @param drv Driver creating node
+ */
+ public void newNode(ZigbeeNode node, Driver drv);
+
+ /**
+ * Handles notifications for nodes leaving network (or disconnected)
+ * @param node Node leaving network
+ * @param drv Driver
+ */
+ public void nodeLeft(ZigbeeNode node, Driver drv);
+
+ /**
+ * Handles notifications for new devices discovered on the network
+ * @param device New Device created
+ * @param drv Driver creating device
+ */
+ public void newDevice(ZigbeeDevice device, Driver drv);
+
+ /**
+ * Handles notifications for devices leaving network (or disconnected)
+ * @param device Device leaving network
+ * @param drv Driver
+ */
+ public void deviceLeft(ZigbeeDevice device, Driver drv);
+
+ /**
+ * Handles notifications about joining network
+ * @param channel Network channel
+ * @param PANID Network PID
+ * @param EPID Network Extended PID
+ * @param drv Driver joining network
+ */
+ public void joinNetwork(int channel, String PANID, String EPID, Driver drv);
+
+ /**
+ * Handles notifications about leaving network
+ * @param drv Driver leaving network
+ */
+ public void leftNetwork(Driver drv);
+
+ /**
+ * Handles status change notifications
+ * @param status Current driver status
+ * @param oldStatus previous driver status
+ * @param drv Driver changing status
+ */
+ public void statusChanged(Driver.DriverStatus status, Driver.DriverStatus oldStatus, Driver drv);
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDevice.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDevice.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,128 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver;
+
+/**
+ * Representation for a ZigbeeDevice (EndPoint)
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public interface ZigbeeDevice {
+
+ public enum DeviceStatus{
+ /**
+ * Device status is unknonw, initializing node
+ */
+ Unknown,
+ /**
+ * Device is performing discovering operations
+ */
+ Discovering,
+ /**
+ * Device is performing recovering operations
+ */
+ Recovering,
+ /**
+ * Device is ready to attend requests
+ */
+ Ready,
+ /**
+ * Device is performing some operation
+ */
+ Busy,
+ /**
+ * Device is on an error state
+ */
+ Error
+ }
+
+ /**
+ * Retrieves current device status
+ * @return device status
+ */
+ public DeviceStatus getStatus();
+
+ /**
+ * Retrieves asocciated EndPoint
+ * @return
+ */
+ public short getEndPoint();
+
+ /**
+ * Returns End Point Profile ID
+ * @return
+ */
+ public String getProfileId();
+
+ /**
+ * Returns Zigbee deviceID
+ * @return
+ */
+ public String getDeviceId();
+
+ /**
+ * Returns list of supported in clusters (client)
+ * @return
+ */
+ public String[] getInClusterList();
+
+ /**
+ * Returns list of supported out clusters (server)
+ * @return
+ */
+ public String[] getOutClusterList();
+
+ /**
+ * Retrieves physical node containing ZigbeeDevice
+ * @return
+ */
+ public ZigbeeNode getZigbeeNode();
+
+ /**
+ * Executes a endpoint descriptor query on the device.
+ * @return True when success, false otherwise
+ */
+ public boolean discover();
+
+ /**
+ * Executes a Recovery operation on the device.
+ * @return True when success, false otherwise
+ */
+ public boolean recover();
+
+ /**
+ * Request to send a message to the related ZigbeeDevice
+ * Note: ProfileID is assumed to be the same of the ZigbeeDevice if none is
+ * is profided (null)
+ * @param profileID ProfileID for the related message
+ * @param clusterID ClusterID for the related message
+ * @param message data to send
+ * @return True if sucess, false otherwise
+ */
+ public boolean sendMessage(String profileID, String clusterID, byte[] message);
+
+ /**
+ * Register a Zigbee device listener
+ * @param lstnr
+ */
+ public void registerListener(ZigbeeDeviceListener lstnr);
+
+ /**
+ * Unregister a Zigbee device listener
+ * @param lstnr
+ */
+ public void unregisterListener(ZigbeeDeviceListener lstnr);
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDeviceListener.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDeviceListener.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeDeviceListener.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,42 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public interface ZigbeeDeviceListener {
+
+ /**
+ * Handles messages received by ZigbeeDevice
+ * @param profileID profileID for the message received
+ * @param clusterID clusterID for the message received
+ * @param message Message received
+ * @param zb Zigbee device receiving message
+ */
+ public void messageReceived(String profileID, String clusterID, byte[] message, ZigbeeDevice zb);
+
+ /**
+ * Handles status change notifications
+ * @param status Current device status
+ * @param oldStatus previous device status
+ * @param zb Zigbee changing status
+ */
+ public void statusChanged(ZigbeeDevice.DeviceStatus status, ZigbeeDevice.DeviceStatus oldStatus, ZigbeeDevice zb);
+
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNode.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNode.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNode.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,199 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver;
+
+import es.unizar.howlab.core.zigbee.telegesis.driver.util.*;
+import java.util.HashMap;
+
+/**
+ * Representation for a ZigbeeNode
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public interface ZigbeeNode {
+
+ public enum NodeStatus {
+
+ /**
+ * Node status is unknonw, initializing node
+ */
+ Unknown,
+ /**
+ * Node is performing discovering operations
+ */
+ Discovering,
+ /**
+ * Node is performing recovering operations
+ */
+ Recovering,
+ /**
+ * Node is ready to attend requests
+ */
+ Ready,
+ /**
+ * Node is performing some operation
+ */
+ Busy,
+ /**
+ * Node is on an error state
+ */
+ Error
+ }
+
+ /**
+ * Retrieves current node status
+ * @return node status
+ */
+ public NodeStatus getStatus();
+
+ /**
+ * Retrieves node type (coordinator, router...)
+ * @return ZigbeeDeviceType
+ */
+ public ZigbeeNodeType getType();
+
+ /**
+ * Retrieves node's EUI64Address (MAC)
+ * @return EUI64Addr
+ */
+ public EUI64Address getEUI64Addr();
+
+ /**
+ * Retrieves node's Newtwork address
+ * @return NodeID
+ */
+ public NetworkAddress getNodeID();
+
+ /**
+ * Retrieves node's devices list
+ * @return ZigbeeDevice array with ZigbeeDevices list
+ */
+ public ZigbeeDevice[] getZigbeeDevices();
+
+ /**
+ * Executes a ZigbeeDevices query on the node.
+ * @return True when success, false otherwise
+ */
+ public boolean discoverZigbeeDevices();
+
+ /**
+ * Executes a Neighbour query on the node.
+ * @return True when success, false otherwise
+ */
+ public boolean discoverNeighbours();
+
+ /**
+ * Executes a Recovery operation on the node.
+ * @return True when success, false otherwise
+ */
+ public boolean recover();
+
+ /**
+ * Executes a parent query on the node.
+ * @return True when success, false otherwise
+ */
+ public boolean discoverParent();
+
+ /**
+ * Retrieves devices with provided endPoint
+ * @param endPoint EndPoint id of requested device
+ * @return ZigbeeDevice
+ */
+ public ZigbeeDevice getZigbeeDevice(short endPoint);
+
+ /**
+ * Retrieves list of Node's neighbours
+ * @return Neighbour's list
+ */
+ public ZigbeeNode[] getNeighbours();
+
+ /**
+ * Retrieves node's parent
+ * @return node parent or null (if node has no parent)
+ */
+ public ZigbeeNode getParent();
+
+ /**
+ * Retrieves list of Node's children
+ * @return Children's list or null if ZigbeeEndDevice
+ */
+ public ZigbeeNode[] getChildren();
+
+ /**
+ * Retrieves list of nodes from coordinator to relaed Node
+ * @return ZigbeeNode list
+ */
+ public ZigbeeNode[] getRoute();
+
+ /**
+ * Retrieves RSSI level of last hop
+ * @return RSSI Level (in dBm)
+ */
+ public int getRSSI();
+
+ /**
+ * Retrieves LQI level of last hop
+ * @return LQI indicator
+ */
+ public short getLQI();
+
+ /**
+ * Request to send a message to the related ZigbeeNode
+ * @param message data to send
+ * @return True if sucess, false otherwise
+ */
+ public boolean sendMessage(byte[] message);
+
+ /**
+ * Request to read a register of the related ZigbeeNode
+ * @param regAddress Register to read
+ * @return Register value, or null if some error
+ */
+ public String readRegister(short regAddress);
+
+ /**
+ * Request last retrieved value of provided register in the related ZigbeeNode
+ * @param regAddress Register to read
+ * @return Last register known value, or null if not yet readed
+ */
+ public String getRegister(short regAddress);
+
+ /**
+ * Request last retrieved value of all registers readed in the related ZigbeeNode
+ * @return HashMap containing registers address (String) and values
+ */
+ public HashMap<String, String> getRegisters();
+
+ /**
+ * Request to write a register of the related ZigbeeNode
+ * @param regAddress Register to write
+ * @param data Data to write
+ * @return True if sucess, false otherwise
+ */
+ public boolean writeRegister(short regAddress, String data);
+
+ /**
+ * Register a Zigbee node listener
+ * @param lstnr
+ */
+ public void registerListener(ZigbeeNodeListener lstnr);
+
+ /**
+ * Unregister a Zigbee node listener
+ * @param lstnr
+ */
+ public void unregisterListener(ZigbeeNodeListener lstnr);
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNodeListener.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNodeListener.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/ZigbeeNodeListener.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,40 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public interface ZigbeeNodeListener {
+
+ /**
+ * Handles messages received by ZigbeeNode
+ * @param message Message received
+ * @param zn Zigbee node receiving message
+ */
+ public void messageReceived(byte[] message, ZigbeeNode zn);
+
+ /**
+ * Handles status change notifications
+ * @param status Current node status
+ * @param oldStatus previous node status
+ * @param zn Zigbee node changing status
+ */
+ public void statusChanged(ZigbeeNode.NodeStatus status, ZigbeeNode.NodeStatus oldStatus, ZigbeeNode zn);
+
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/osgi/Constants.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/osgi/Constants.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/osgi/Constants.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,34 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.osgi;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public class Constants {
+ public static final String DRIVER_DONGLE_ADDRESS = "driver.dongle_address";
+ public static final String DRIVER_FIRMWARE_REVISION = "driver.firmware_revision";
+ public static final String DRIVER_DEVICE_NAME = "driver.device_name";
+ public static final String DRIVER_ZIGBEE_NODE_ADDRESS = "driver.zigbee_node_address";
+ public static final String DRIVER_ZIGBEE_NODE_TYPE = "driver.zigbee_node_type";
+ public static final String DRIVER_ZIGBEE_DEVICE_ADDRESS = "driver.zigbee_device_address";
+ public static final String DRIVER_ZIGBEE_DEVICE_ENDPOINT = "driver.zigbee_device_endpoint";
+ public static final String DRIVER_ZIGBEE_DEVICE_ID = "driver.zigbee_device_id";
+ public static final String DRIVER_ZIGBEE_DEVICE_PROFILE_ID = "driver.zigbee_device_profile_id";
+
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ByteAddress.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ByteAddress.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ByteAddress.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,99 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.util;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public abstract class ByteAddress {
+
+ private byte[] byteAddress;
+ private String strAddress = "";
+
+ /**
+ * String-based address constructor
+ * Note: non-hexadecimal characters will be ommited
+ * @param address string representation
+ * @param size number of bytes
+ */
+ protected ByteAddress(String address, int size) {
+ byteAddress = new byte[size];
+ // eliminamos los caracteres que no sean hexadecimales
+ String clearAddr = address.toUpperCase().replaceAll("[^0123456789ABCDEF]", "");
+ for (int i = 0; i < size; i++) {
+ String strByte = clearAddr.substring(0, 2);
+ clearAddr = clearAddr.substring(2);
+ strAddress = strAddress + strByte;
+ byteAddress[i] = (byte) Integer.parseInt(strByte, 16);
+ }
+ }
+
+ /**
+ * Byte-based address constructor
+ * @param address byte representation
+ * @param size number of bytes
+ */
+ protected ByteAddress(byte[] address, int size) {
+ byteAddress = new byte[size];
+ for (int i = 0; i < size; i++) {
+ byteAddress[i] = address[i];
+ strAddress = strAddress + String.format("%02X", address[i]);
+ }
+ }
+
+ @Override
+ public String toString() {
+ return strAddress;
+ }
+
+ /**
+ * Gets formatted string representation fo related address
+ * @return string with formatted representation
+ */
+ public String toFormattedString() {
+ return toFormattedString(".");
+ }
+
+ /**
+ * Gets formatted string representation fo related address
+ * @param separator character for separating bytes
+ * @return string with formatted representation
+ */
+ public String toFormattedString(String separator) {
+ String formatted = String.format("%02X", byteAddress[0]);
+ for (int i = 1; i < byteAddress.length; i++) {
+ formatted = formatted + separator + String.format("%02X", byteAddress[i]);
+ }
+ return formatted;
+
+ }
+
+ public static String getUnformated(String formattedAddress) {
+ // eliminamos todos los caracteres que no sean hexadecimales
+ return formattedAddress.toUpperCase().replaceAll("[^0123456789ABCDEF]", "");
+
+ }
+
+ /**
+ * Gets byte representation of related address
+ * @return byte array containing address
+ */
+ public byte[] getBytes() {
+ return byteAddress;
+ }
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/EUI64Address.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/EUI64Address.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/EUI64Address.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,41 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.util;
+
+/**
+ *
+ * @author Alvaro
+ */
+public class EUI64Address extends ByteAddress{
+ /**
+ * String-based address constructor
+ * Note: non-hexadecimal characters will be ommited
+ * @param address string representation
+ */
+ public EUI64Address(String address) {
+ super(address, 8);
+ }
+
+ /**
+ * Byte-based address constructor
+ * @param address byte representation. Must be 8 bytes lenght
+ */
+ public EUI64Address(byte[] address) {
+ super(address, 8);
+ }
+
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkAddress.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkAddress.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkAddress.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,43 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.util;
+
+
+/**
+ *
+ * @author Alvaro
+ */
+public class NetworkAddress extends ByteAddress{
+ /**
+ * String-based address constructor
+ * Note: non-hexadecimal characters will be ommited
+ * @param address string representation
+ */
+ public NetworkAddress(String address) {
+ super(address, 2);
+ }
+
+ /**
+ * Byte-based address constructor
+ * @param address byte representation. Must be 2 bytes lenght
+ */
+ public NetworkAddress(byte[] address) {
+ super(address, 2);
+ }
+
+
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkInfo.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkInfo.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkInfo.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,67 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.util;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public class NetworkInfo {
+ private int mChannel;
+ private String mPID;
+ private String mEPID;
+
+ @Override
+ public String toString() {
+ return String.format("Channel: %d PID: %s EPID: %s ", mChannel, mPID, mEPID);
+ }
+
+
+ /**
+ * Parametrzized constructor
+ * @param channel Network channel
+ * @param PID Network PID
+ * @param EPID Network Extended PID
+ */
+ public NetworkInfo(int channel, String PID, String EPID) {
+ mChannel = channel;
+ mPID = PID;
+ mEPID = EPID;
+
+ }
+
+ /**
+ * @return Network IEEE 802.15.4 channel (11-26)
+ */
+ public int getChannel() {
+ return mChannel;
+ }
+
+ /**
+ * @return Network's PID
+ */
+ public String getPID() {
+ return mPID;
+ }
+
+ /**
+ * @return Network's EPID
+ */
+ public String getEPID() {
+ return mEPID;
+ }
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkScanInfo.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkScanInfo.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/NetworkScanInfo.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,86 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.util;
+
+/**
+ *
+ * @author HowLab, University of Zaragoza (alvaro)
+ */
+public class NetworkScanInfo {
+ private int mChannel;
+ private String mPID;
+ private String mEPID;
+ private short mProfile;
+ private boolean mJoinPermission;
+
+ @Override
+ public String toString() {
+ return String.format("Channel: %d PID: %s EPID: %s Profile: %s JoinPermission: %b", mChannel, mPID, mEPID, mProfile, mJoinPermission);
+ }
+
+ /**
+ * Parametrized constructor
+ * @param channel Network channel
+ * @param PID Network PID
+ * @param EPID Network Extended PID
+ * @param profile Network profile
+ * @param joinPermission Network join permission
+ */
+ public NetworkScanInfo(int channel, String PID, String EPID, short profile, boolean joinPermission) {
+
+ mChannel = channel;
+ mPID = PID;
+ mEPID = EPID;
+ mProfile = profile;
+ mJoinPermission = joinPermission;
+ }
+
+ /**
+ * @return the Channel
+ */
+ public int getChannel() {
+ return mChannel;
+ }
+
+ /**
+ * @return the PID
+ */
+ public String getPID() {
+ return mPID;
+ }
+
+ /**
+ * @return the EPID
+ */
+ public String getEPID() {
+ return mEPID;
+ }
+
+ /**
+ * @return the Profile
+ */
+ public short getProfile() {
+ return mProfile;
+ }
+
+ /**
+ * @return the JoinPermission
+ */
+ public boolean getJoinPermission() {
+ return mJoinPermission;
+ }
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ZigbeeNodeType.java
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ZigbeeNodeType.java (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/java/es/unizar/howlab/core/zigbee/telegesis/driver/util/ZigbeeNodeType.java Thu Feb 2 13:18:35 2012
@@ -1,0 +1,69 @@
+/*
+ * Copyright 2011-2012 HOWLab. http://howlab.unizar.es/
+ * Human OpenWare Research Lab. Universidad Zaragoza
+ *
+ * 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.
+ */
+package es.unizar.howlab.core.zigbee.telegesis.driver.util;
+
+import es.unizar.howlab.core.zigbee.telegesis.gateway.ZigbeeDeviceType;
+
+/**
+ * Zigbee allowed devices
+ * @author alvaro
+ */
+public enum ZigbeeNodeType {
+
+ /**
+ * unknown device type
+ */
+ Unknown,
+ /**
+ * device is a FFD (full function device) coordinator
+ */
+ Coordinator,
+ /**
+ * device is a FFD (full function device) router
+ */
+ Router,
+ /**
+ * device is a RFD (reduced function device)
+ */
+ EndDevice,
+ /**
+ * device is a RFD (reduced function device) sleepy
+ */
+ SleepyEndDevice,
+ /**
+ * device is a RFD (reduced function device) mobile
+ */
+ MobileEndDevice;
+
+ public static ZigbeeNodeType fromZigbeeDeviceType(ZigbeeDeviceType type){
+ switch (type){
+ case Coordinator:
+ return Coordinator;
+ case Router:
+ return Router;
+ case EndDevice:
+ return EndDevice;
+ case SleepyEndDevice:
+ return SleepyEndDevice;
+ case MobileEndDevice:
+ return MobileEndDevice;
+ default:
+ return Unknown;
+ }
+
+ }
+}
Added: projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/LICENSE
==============================================================================
--- projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/LICENSE (added)
+++ projects/zb4osgi/sandbox/howlab/telegesis-driver-api/src/main/resources/LICENSE Thu Feb 2 13:18:35 2012
@@ -1,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ 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.
+
+ 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,
+ 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 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 in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) 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
+
+ (d) 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.
+
+ 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 Apache License to your work.
+
+ To apply the Apache 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 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.
More information about the Commit
mailing list